{"componentChunkName":"component---src-templates-simple-markdown-js","path":"/docs/ai/document-ai/inspecting-document-content/","matchPath":"","result":{"data":{"markdownRemark":{"html":"<h1 style=\"position:relative;\"><a href=\"#inspecting-content\" aria-label=\"inspecting content permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"inspecting-content\"></div>Inspecting Content</h1>\n<p>Document AI provides read-only endpoints for reviewing processed document content without downloading the original file.</p>\n<p>Use them to retrieve:</p>\n<ul>\n<li>\nA document outline\n</li>\n<li>\nExtracted text and fields for one page\n</li>\n<li>\nKey-value fields across the document\n</li>\n<li>\nDetected signatures\n</li>\n</ul>\n<p>These endpoints are available after processing has produced results.</p>\n<h2 style=\"position:relative;\"><a href=\"#view-content-in-shipwell\" aria-label=\"view content in shipwell permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"view-content-in-shipwell\"></div>View content in Shipwell</h2>\n<p>Open a completed run in the Run Inspector. The document viewer can display extracted values and their locations alongside the source page.</p>\n<!-- SCREENSHOT PLACEHOLDER\nFile: images/run-inspector-source-overlay.png\nCapture: Run Inspector with a synthetic document page and a highlighted extracted field. No customer data.\nAlt: Extracted value highlighted on a source document\n-->\n<h2 style=\"position:relative;\"><a href=\"#get-the-document-outline\" aria-label=\"get the document outline permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"get-the-document-outline\"></div>Get the document outline</h2>\n<p>The outline is the best starting point for programmatic inspection:</p>\n\n      <div class=\"code-snippets-tabs\" >\n    <div class=\"snippets-tabs-headers\">\n      <span class=\"tab-header active\" data-lang=\"curl\" data-snippet-id=\"curl\">curl</span><span class=\"tab-header \" data-lang=\"python\" data-snippet-id=\"python\">python</span>\n    </div>\n    <div class=\"snippets-tabs-contents\">\n      <div class=\"tab-content active\" data-lang=\"curl\" data-snippet-id=\"curl\"><div class=\"code-wrapper\">\n        <div class=\"gatsby-code-button-container\"\n             data-toaster-id=\"61346118564664100000\"\n             data-toaster-duration=\"1500\"\n             onClick=\"copyCodeToClipboard(`curl &quot;https://sandbox-api.shipwell.com/document-store/documents/<document-id>/outline&quot; \\\\\n  -H &quot;Authorization: Token <user-token>&quot;`, `61346118564664100000`)\"\n        >\n          <div class=\"gatsby-code-button\" title=\"Copy the code snippet\">Copy</div>\n          <div class=\"done-indicator done-indicator-61346118564664100000\">Copied</div>\n        </div>\n        <div class=\"gatsby-highlight\" data-language=\"curl\"><pre class=\"language-curl\"><code class=\"language-curl\">curl &quot;https://sandbox-api.shipwell.com/document-store/documents/&lt;document-id&gt;/outline&quot; \\\n  -H &quot;Authorization: Token &lt;user-token&gt;&quot;</code></pre></div>\n      </div></div><div class=\"tab-content \" data-lang=\"python\" data-snippet-id=\"python\"><div class=\"code-wrapper\">\n        <div class=\"gatsby-code-button-container\"\n             data-toaster-id=\"61477378004357280000\"\n             data-toaster-duration=\"1500\"\n             onClick=\"copyCodeToClipboard(`import requests\n\nresponse = requests.get(\n    &quot;https://sandbox-api.shipwell.com/document-store/documents/<document-id>/outline&quot;,\n    headers={&quot;Authorization&quot;: &quot;Token <user-token>&quot;},\n    timeout=30,\n)\nresponse.raise_for_status()\noutline = response.json()`, `61477378004357280000`)\"\n        >\n          <div class=\"gatsby-code-button\" title=\"Copy the code snippet\">Copy</div>\n          <div class=\"done-indicator done-indicator-61477378004357280000\">Copied</div>\n        </div>\n        <div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> requests\n\nresponse <span class=\"token operator\">=</span> requests<span class=\"token punctuation\">.</span>get<span class=\"token punctuation\">(</span>\n    <span class=\"token string\">\"https://sandbox-api.shipwell.com/document-store/documents/&lt;document-id>/outline\"</span><span class=\"token punctuation\">,</span>\n    headers<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token string\">\"Authorization\"</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Token &lt;user-token>\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    timeout<span class=\"token operator\">=</span><span class=\"token number\">30</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">)</span>\nresponse<span class=\"token punctuation\">.</span>raise_for_status<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\noutline <span class=\"token operator\">=</span> response<span class=\"token punctuation\">.</span>json<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></code></pre></div>\n      </div></div>\n    </div></div>\n    \n<p>It returns:</p>\n<ul>\n<li>\nDocument and filename identifiers\n</li>\n<li>\nPage count\n</li>\n<li>\nAggregated schema results\n</li>\n<li>\nPer-page text, key-value, and signature counts\n</li>\n<li>\nA result breakdown for split documents\n</li>\n</ul>\n<p>For a split document, use <code class=\"language-text\">result_breakdown[].result_id</code> and <code class=\"language-text\">page_numbers</code> to identify the result slice containing a page.</p>\n<p>Add <code class=\"language-text\">run_id</code> to inspect one run:</p>\n<div class=\"code-wrapper\">\n        <div class=\"gatsby-code-button-container\"\n             data-toaster-id=\"59151131987041740000\"\n             data-toaster-duration=\"1500\"\n             onClick=\"copyCodeToClipboard(`GET /document-store/documents/<document-id>/outline?run_id=<run-id>`, `59151131987041740000`)\"\n        >\n          <div class=\"gatsby-code-button\" title=\"Copy the code snippet\">Copy</div>\n          <div class=\"done-indicator done-indicator-59151131987041740000\">Copied</div>\n        </div>\n        <div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">GET /document-store/documents/&lt;document-id>/outline?run_id=&lt;run-id></code></pre></div>\n      </div>\n<p>Add <code class=\"language-text\">result_id</code> to inspect one result slice:</p>\n<div class=\"code-wrapper\">\n        <div class=\"gatsby-code-button-container\"\n             data-toaster-id=\"51640898652838560000\"\n             data-toaster-duration=\"1500\"\n             onClick=\"copyCodeToClipboard(`GET /document-store/documents/<document-id>/outline?result_id=<result-id>`, `51640898652838560000`)\"\n        >\n          <div class=\"gatsby-code-button\" title=\"Copy the code snippet\">Copy</div>\n          <div class=\"done-indicator done-indicator-51640898652838560000\">Copied</div>\n        </div>\n        <div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">GET /document-store/documents/&lt;document-id>/outline?result_id=&lt;result-id></code></pre></div>\n      </div>\n<h2 style=\"position:relative;\"><a href=\"#get-one-page\" aria-label=\"get one page permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"get-one-page\"></div>Get one page</h2>\n<p>Use <code class=\"language-text\">GET /document-store/documents/{id}/pages/{page_number}</code> to retrieve extracted text, key-value fields, and signatures for one page. Add <code class=\"language-text\">result_id</code> when the document contains multiple result slices.</p>\n<p><code class=\"language-text\">extracted_text_truncated</code> indicates whether the returned page text reached the response limit.</p>\n<h2 style=\"position:relative;\"><a href=\"#list-key-value-fields\" aria-label=\"list key value fields permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"list-key-value-fields\"></div>List key-value fields</h2>\n<p>Retrieve key-value fields across the document:</p>\n<p>Use <code class=\"language-text\">GET /document-store/documents/{id}/kv-fields</code>.</p>\n<p>Available filters include:</p>\n<ul>\n<li>\n<code class=\"language-text\">page_number</code>\n</li>\n<li>\n<code class=\"language-text\">key_contains</code>\n</li>\n<li>\n<code class=\"language-text\">page</code>\n</li>\n<li>\n<code class=\"language-text\">page_size</code>\n — defaults to 200 and supports up to 1000\n</li>\n<li>\n<code class=\"language-text\">run_id</code>\n</li>\n<li>\n<code class=\"language-text\">result_id</code>\n</li>\n</ul>\n<p><code class=\"language-text\">total</code> reports the number of matches before pagination is applied.</p>\n<p>See <a href=\"/docs/ai/document-ai/signatures/\">Signatures</a> for detected regions and structured signature results.</p>\n<h2 style=\"position:relative;\"><a href=\"#geometry\" aria-label=\"geometry permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"geometry\"></div>Geometry</h2>\n<p>Geometry uses normalized coordinates from <code class=\"language-text\">0</code> to <code class=\"language-text\">1</code>, with the origin at the top-left:</p>\n<ul>\n<li>\n<code class=\"language-text\">left</code>\n — horizontal offset\n</li>\n<li>\n<code class=\"language-text\">top</code>\n — vertical offset\n</li>\n<li>\n<code class=\"language-text\">width</code>\n — region width\n</li>\n<li>\n<code class=\"language-text\">height</code>\n — region height\n</li>\n</ul>\n<p>Multiply these values by the rendered page dimensions to draw an overlay.</p>\n<p>Geometry can be empty when a source format does not provide spatial coordinates. Build review interfaces that can still display the extracted value without a highlight.</p>\n<h2 style=\"position:relative;\"><a href=\"#page-numbering\" aria-label=\"page numbering permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"page-numbering\"></div>Page numbering</h2>\n<p>Page numbers always refer to the uploaded parent document. A result created from pages 10–16 continues to use page numbers 10–16 rather than restarting at page 1.</p>\n<p>For a split document, first retrieve the outline and select the result whose <code class=\"language-text\">page_numbers</code> contains the requested page.</p>","headings":[{"value":"Inspecting Content","depth":1},{"value":"View content in Shipwell","depth":2},{"value":"Get the document outline","depth":2},{"value":"Get one page","depth":2},{"value":"List key-value fields","depth":2},{"value":"Geometry","depth":2},{"value":"Page numbering","depth":2}]},"contentItem":{"data":{"lastModified":"2026-07-17T16:00:10.000Z","enableToc":null,"disableLastModified":null,"tocMaxDepth":null,"requestLogin":false}},"siteConfig":{"enableToc":true,"disableLastModified":false,"tocMaxDepth":4}},"pageContext":{"matchPath":"","id":"80b7fab6-ab7a-5c5c-9cf4-5fcc928b2c3f__redocly content/docs/ai/document-ai/inspecting-document-content/","seo":{"title":"Inspecting Content","description":null,"image":"","keywords":null,"jsonLd":null,"lang":null,"siteUrl":null},"pageId":"docs/ai/document-ai/inspecting-document-content.md","pageBaseUrl":"/docs/ai/document-ai/inspecting-document-content","type":"markdown","toc":{"enable":true,"maxDepth":4,"headings":[{"depth":1,"value":"Inspecting Content","id":"inspecting-content"},{"depth":2,"value":"View content in Shipwell","id":"view-content-in-shipwell"},{"depth":2,"value":"Get the document outline","id":"get-the-document-outline"},{"depth":2,"value":"Get one page","id":"get-one-page"},{"depth":2,"value":"List key-value fields","id":"list-key-value-fields"},{"depth":2,"value":"Geometry","id":"geometry"},{"depth":2,"value":"Page numbering","id":"page-numbering"}]},"data":{"title":"Inspecting Content"},"catalogInfo":null,"link":"/docs/ai/document-ai/inspecting-document-content/","sidebarName":"developerPortal","isLanding":false,"showPrevButton":null,"showNextButton":null,"apiVersions":null,"apiVersionId":null,"isDefaultApiVersion":null}},"staticQueryHashes":["1123603147","1302185487","1344209882","1398840060","1520077861","1975142765","2667623876","2950305614","3240152602","3743992808","561138138"]}