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 109132d..10a4990 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 0887e9d..4564ee2 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
@@ -67,6 +70,20 @@
   // TODO(b/161811574): Add tests to check other nullable children.
 
   @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();
 
