diff --git a/oas-core/src/main/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversal.java b/oas-core/src/main/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversal.java
index 0c64fd7..793c773 100644
--- a/oas-core/src/main/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversal.java
+++ b/oas-core/src/main/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversal.java
@@ -29,6 +29,15 @@
     traverseInfo();
     traverseServers();
     traverseTags();
+    traverseExternalDocs();
+  }
+
+  private void traverseExternalDocs() {
+    Optional.ofNullable(openApiSchemaObj.getExternalDocs())
+        .ifPresent(
+            externalDocs ->
+                traversalCoordinator.handleTraversalCommand(
+                    traversalCommandFactory.create(externalDocs)));
   }
 
   private void traverseInfo() {
diff --git a/oas-core/src/test/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversalTest.java b/oas-core/src/test/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversalTest.java
index 9791f58..4eab574 100644
--- a/oas-core/src/test/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversalTest.java
+++ b/oas-core/src/test/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversalTest.java
@@ -16,6 +16,7 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.mockito.quality.Strictness;
+import org.openapi4j.parser.model.v3.ExternalDocs;
 import org.openapi4j.parser.model.v3.Info;
 import org.openapi4j.parser.model.v3.OpenApi3;
 import org.openapi4j.parser.model.v3.Server;
@@ -55,6 +56,8 @@
     when(openApiSpec.getTags()).thenReturn(tags);
 
     when(openApiSpec.getInfo()).thenReturn(new Info());
+
+    when(openApiSpec.getExternalDocs()).thenReturn(new ExternalDocs());
   }
 
   @Test
@@ -72,6 +75,20 @@
   }
 
   @Test
+  public void traverse_sendsExternalDocsChildTraversalToTraversalCoordinator() {
+    openApiSpecificationTraversal.traverse();
+
+    verify(traversalCoordinator).handleTraversalCommand(any(ExternalDocsTraversalCommand.class));
+  }
+
+  @Test
+  public void traverse_nullExternalDocsChild_doesNotThrowException() {
+    when(openApiSpec.getExternalDocs()).thenReturn(null);
+
+    openApiSpecificationTraversal.traverse();
+  }
+
+  @Test
   public void traverse_sendsServerChildrenTraversalsToTraversalCommander() {
     openApiSpecificationTraversal.traverse();
 
