Skip to content
LlamaParse 文档版本 跟随上游 源快照 accd93e7 更新于 2026-10-16

一个 Parse 任务的结果就是一个 JSON 对象。job 始终存在;其余每个字段只有当你用 expand 索取时才会出现。本页是各字段内容的参考。要判断该组合哪些 expand 取值、如何轮询,以及常见的取回模式与代码,见取回结果。要看出哪种请求选项会产出哪种输出,见配置 Parse。

响应信封

{
  "job": { "id": "JOB_ID", "status": "COMPLETED", "...": "..." },
  "markdown": { "pages": [ ... ] },
  "markdown_full": "# Complete Document\n\n...",
  "text": { "pages": [ ... ] },
  "text_full": "Complete Document\n\n...",
  "items": { "pages": [ ... ] },
  "metadata": { "pages": [ ... ], "document": { ... } },
  "forms": { "pages": [ ... ] },
  "job_metadata": { ... },
  "images_content_metadata": { "total_count": 3, "images": [ ... ] },
  "result_content_metadata": { "markdown": { ... }, "grounded_items": { ... } }
}
字段类型由哪个 expand 填充内容
jobobjectalways任务状态与标识。见任务对象。
markdownobjectmarkdown逐页 markdown。见Markdown 页。
markdown_fullstringmarkdown_full整份文档作为一个 markdown 字符串。
textobjecttext逐页纯文本。见文本页。
text_fullstringtext_full整份文档作为一个纯文本字符串。
itemsobjectitems逐页的结构化 items。见Items 页。
metadataobjectmetadata页级与文档级元数据。见元数据。
formsobjectforms逐页的表单树。见表单(Beta)。
job_metadataobjectjob_metadata任务执行元数据:状态迁移的时间戳与耗时。不是任务配置。
images_content_metadataobjectimages_content_metadata已保存的图片及其下载地址。见图片。
result_content_metadataobjectany *_content_metadata value结果文件的下载地址。见下载地址。

你没请求的字段会是 null 或直接缺失。有两条档位规则:forms 在 fast 档上永远不会被填充(因为该档不跑表单分析);固定在 2026-06-15 之前版本的 fast 任务只产出文本,因此对它请求 expand=markdown 会以 400 被拒,而 items 返回 null。见档位。

任务对象

每次响应都带 job,任务仍在运行时也一样。

字段类型含义
idstring解析任务的标识。把它传给后续的 get 调用。
statusstringPENDING、RUNNING、COMPLETED、FAILED 或 CANCELLED。只有状态为 COMPLETED 后内容字段才会被填充。
project_idstring任务所属的 project。
namestring or null可选的展示名。
tierstring or null任务所用的档位(fast、cost_effective、agentic、agentic_plus)。
created_at, updated_atstring or null时间戳。
error_messagestring or null当 status 为 FAILED 时的错误详情。
usageobject or null{ "credits": 30.0 }。需要 expand=usage。在计费系统记录该任务之前 credits 是 null,这可能滞后于任务完成一小段时间。
user_metadataobject or null你附在请求上的键值标记,原样返回。

页数组

每种逐页表示的外层形状都相同:一个 pages 数组,按文档顺序每页一条。page_number 从 1 开始、指该页在源文档中的位置,因此它就是拼接同一页的 markdown、items、metadata 与 forms 条目的键,也是与页面截图对齐的键。

表示法页上是否带 success页上是否带 page_width / page_height
markdown.pages[]是否
text.pages[]否否
items.pages[]是是
metadata.pages[]否否
forms.pages[]是是

在带 success 的那些页上,无法处理的页会被替换成一条失败页条目 —— 它有相同的 page_number,但不含任何内容字段:

{ "page_number": 2, "success": false, "error": "..." }

读这些页的内容字段之前先看 success。在有类型的 SDK 里,页是「成功形状与失败形状的联合」,所以这个判断同时也收窄了类型。失败的页会计入任务的 allowed_page_failure_ratio(见超时与失败条件)。

Markdown 页

expand=markdown 每页返回一条。markdown_full 则把这些内容拼成一个字符串返回。

字段类型含义
page_numberinteger页号,从 1 开始。
markdownstring该页内容的 markdown。表格会渲染成 HTML <table> 块或 markdown 竖线表,取决于 output_options.markdown.tables.output_tables_as_markdown。
headerstring or null检测到页眉时,页眉文字的 markdown。
footerstring or null检测到页脚时,页脚文字的 markdown。
line_numbersarray or null页边印刷行号映射到 markdown 中的偏移。仅在设了 output_options.markdown.annotate_line_numbers 时有。
successtrue成功的页上恒为 true。
{
  "page_number": 1,
  "success": true,
  "markdown": "# Heading\n\n## Subheading\n\nContent with **formatting**...",
  "header": "Page header",
  "footer": "LlamaIndex 2026",
  "line_numbers": [
    { "line_number": "22", "start_index": 0, "end_index": 34 }
  ]
}

印刷行号

开启 output_options.markdown.annotate_line_numbers 后,Parse 会检测物理左页边槽里的行号、从内容中移除这些印刷标记,并把每个行号映射到它所标注的文本:

字段类型含义
line_numberstring印刷出来的值。保留为字符串,因为文档里既会印 22 也会印 A-3。
start_indexinteger该页最终 markdown 中的偏移,从 0 开始、含端点。
end_indexinteger从 0 开始、不含端点的偏移。

偏移以 UTF-16 码元计数,与 JavaScript 的 String.slice 一致。当没有任何印刷行能被可靠映射时,该数组会被省略。

文本页

expand=text 返回每页的纯文本层,不带任何标记。设置了空间文本相关选项时,空白会保留视觉版式。

字段类型含义
page_numberinteger页号,从 1 开始。
textstring该页的纯文本。
{ "text": { "pages": [ { "page_number": 1, "text": "Extracted plain text content..." } ] } }

Items 页

expand=items 返回版面树:Parse 在该页上检出的每个元素都带类型、按阅读顺序排列。当你需要把表格当数据、把图形当文件,或需要元素在页上的位置时,就用它。

字段类型含义
page_numberinteger页号,从 1 开始。
page_width, page_heightnumber页面尺寸,以点为单位。该页上的边界框用同一单位。
itemsarray下面列出的 item 对象,按阅读顺序排列。
revisionsarray or nullWord 的修订记录与批注。仅在设了 output_options.markdown.annotate_revisions 时有。见修订。
successtrue成功的页上恒为 true。
{
  "page_number": 1,
  "page_width": 612.0,
  "page_height": 792.0,
  "success": true,
  "items": [
    { "type": "heading", "level": 1, "value": "Document Title", "md": "# Document Title", "bbox": [ { "x": 72.0, "y": 60.0, "w": 300.0, "h": 24.0 } ] },
    { "type": "table", "rows": [["Header1", "Header2"], ["Row1", "Data1"]], "html": "<table>...</table>", "csv": "Header1,Header2\nRow1,Data1", "md": "| Header1 | Header2 |\n|---|---|..." }
  ]
}

item 类型

每个 item 都带 type、md(它的 markdown 渲染)与 bbox(一个边界框数组,或 null)。其余字段依类型而定。

type表示什么类型专有字段
text一个段落或其他成段的正文value(纯文本)
heading一个标题level(1–6)、value
table一张表格;开启图表解析时也用于图表数据rows、html、csv、merged_from_pages、merged_into_page、parse_concerns —— 见表格
image一幅图形、照片或示意图url(指向抽出图片的链接)、caption
list一个有序或无序列表ordered(布尔)、items(嵌套的 text 与 list 条目)
code一个代码块value(代码本身)、language(语言标识或 null)
link一个超链接text(展示文字)、url
header该页的页眉items(其内部的条目)
footer该页的页脚items(其内部的条目)

header 与 footer 是容器:它们的 items 数组装着位于页眉或页脚区域内的标题、正文、图片等,每个都是普通条目。markdown 页对象则以纯字符串形式在 header 与 footer 字段里暴露同样的区域。

表格

字段类型含义
rowsarray of arrays逐行的单元格取值。每个单元格是字符串、数字或 null。
htmlstring表格作为 HTML <table>。保留合并单元格(colspan / rowspan)。
csvstring表格作为 CSV。
mdstring表格作为 markdown 竖线表。无法表达合并单元格。
merged_from_pagesarray of integers or null开启 merge_continued_tables 时,哪些页的表格片段被并入了这一张。
merged_into_pageinteger or null对于被并入别处的片段:完整合并表起始于哪一页。
parse_concernsarray or null表格抽取的质量标记。每条含 type(例如 inconsistent_row_cell_count)与可读的 details。

开启专门的图表解析后,从图表读出的数据会作为该页上的一个 table 条目返回,因此各系列的取值和任何普通表格一样在 rows 里。图表解析示例 演示了如何把它载入 DataFrame。

版本

开启 output_options.markdown.annotate_revisions 后,含 Word 修订记录或审阅者批注的 items 页还会带一个 revisions 数组:

{
  "page_number": 1,
  "items": [ ... ],
  "revisions": [
    {
      "type": "deleted",
      "target": "within thirty (30) days",
      "content": "within thirty (30) days",
      "author": "J. Reviewer",
      "target_bbox": { "x": 120.4, "y": 302.1, "w": 96.2, "h": 11.0 },
      "revision_bbox": { "x": 460.0, "y": 298.5, "w": 140.0, "h": 24.0 },
      "start_index": 512,
      "end_index": 536
    }
  ],
  "success": true
}
字段类型含义
typestring取 inserted、deleted、formatted、moved_from、moved_to、comment 之一。
targetstring该修订所作用的页文本。
contentstring修订或批注的内容。
authorstring or null审阅者姓名(可得时)。
target_bboxobject目标文本的边界框:x、y、w、h,以页面点为单位。
revision_bboxobject印刷出的修订气泡的边界框。
target_spansarray or null当目标不连续时出现:每一段各有自己的 target、target_bbox、start_index 与 end_index。
start_index, end_indexinteger or null目标在该页最终 markdown 中的偏移,起点含、终点不含。

边界框

items、表单字段、修订与图片都带边界框来指明它们在页上的位置。在 items 与表单字段上 bbox 是数组,因为一个元素可能占据多个矩形:比如一段绕着图形折行的文字,或者一个可填充区域被拆开的表单字段。

字段类型含义
x, ynumber框左上角的位置。
w, hnumber宽与高。
rnumber, optional可见文字绕框心的顺时针旋转角度。未旋转时省略。
labelstring or null框的标签(适用时)。
confidencenumber or null该框的置信度得分(可得时)。
start_index, end_indexinteger or null可选:指向该 item 文本的字符偏移。

各类框共用的约定:

  • 单位是页面点,不是像素、也不是归一化值。该页的 page_width 与 page_height(在 items 页、forms 页与 grounded-items 边车里)给出框所处的坐标框架。US Letter 一页是 612 × 792。
  • 原点是页面左上角,x 向右增大、y 向下增大,与图像坐标一致。
  • **框相对于 item 所在的那一页。**请从该页条目读 page_width 与 page_height;同一份文档里各页尺寸可能不同。
  • **x/y/w/h 描述的是未旋转的矩形;r 负责旋转它。**Parse 已经把该页的 original_orientation_angle(来自 metadata)合成进框里。只应用 r,绝不要再叠加页面方向角。

**算例。**在一页 612 × 792 上,一个词框 { "x": 72.0, "y": 100.0, "w": 35.0, "h": 12.0 } 距左边 72 点、距顶边 100 点。要把它画在 1224 × 1584 像素的页面截图上,横向按 1224 / 612 = 2、纵向按 1584 / 792 = 2 缩放:该矩形从像素 (144, 200) 到 (214, 224)。当两个缩放系数不同时要先按 r 旋转角点、再缩放,否则框会变形。细粒度边界框示例 里有一个能正确处理旋转与页面方向的完整渲染辅助函数。

**相机照片。**对于用 camera_photo_correction 校正过的照片,Parse 会把每个旋转的文字矩形映射回原始照片的坐标系,并导出最接近的正矩形近似。一个透视四边形无法由「一个矩形加一个角度」精确表示,所以在倾斜很强的照片上边缘可能有细微偏差。若这个近似会超出照片边界,Parse 会把它裁剪到一个有界的轴对齐框,并把 r 置为 0。

grounded items 边车

结果里内联的框最细只到 item 级。把 output_options.granular_bboxes 设为 "word"、"line"、"cell" 中任意若干,Parse 就会另写一份 grounded-items 文件,为每个 item 给出逐行、逐词或逐表格单元格的框。它的下载地址会自动作为 result_content_metadata.grounded_items 附上;expand 里不需要额外添加什么。

该文件是 JSONL —— 每行一个 JSON 对象、每页一行,而不是一个 JSON 数组。每一行要么是成功行,要么是失败行:

// Success row
{
  "page_number": 1,
  "page_width": 612,
  "page_height": 792,
  "success": true,
  "items": [
    {
      "type": "text",
      "md": "Hello world",
      "bbox": [{ "x": 72.0, "y": 100.0, "w": 200.0, "h": 12.0 }],
      "grounding": {
        "source": "md",
        "lines": [
          {
            "span": [0, 11],
            "bbox": { "x": 72.0, "y": 100.0, "w": 200.0, "h": 12.0 },
            "words": [
              { "span": [0, 5],  "bbox": { "x": 72.0, "y": 100.0, "w": 35.0, "h": 12.0 } },
              { "span": [6, 11], "bbox": { "x": 110.0, "y": 100.0, "w": 40.0, "h": 12.0 } }
            ]
          }
        ]
      }
    }
  ]
}

// Failure row — grounding could not be produced for this page
{ "page_number": 2, "success": false, "error": "..." }
字段含义
items[].type, md, bbox与内联 items 表示相同的 item 字段。嵌套条目(列表项)出现在 items[].items 下。
items[].grounding.source这些区间索引的是哪份文本:md 指该 item 的 markdown,caption 指图片题注。
items[].grounding.lines[]每个文本行一条:一个 bbox,以及一个指向源文本的 [start, end) 区间。
items[].grounding.lines[].words[]请求了 "word" 时每词一条:一个 bbox 与一个区间。
items[].grounding.rows[row][col]表格条目:逐单元格的 bbox、span 与 lines,缺失的单元格为 null,另有 row_bboxes 与 column_bboxes。

**区间是 UTF-8 字节偏移,不是字符偏移。**切片前要把源文本编码成 UTF-8,否则只要出现非 ASCII 字符,偏移就会错位:

grounding = item["grounding"]
source_bytes = item[grounding["source"]].encode("utf-8")
for line in grounding["lines"]:
    start, end = line["span"]
    print(source_bytes[start:end].decode("utf-8"), line["bbox"])

完整的算例(从请求到遍历逐词落地数据)见细粒度边界框示例。

元数据

expand=metadata 返回逐页的质量与出处字段,外加一个 document 块。

页元数据

字段类型含义
page_numberinteger页号,从 1 开始。
confidencenumber or nullParse 对本页输出有多确信,0–1。设了 confidence_score_effort: "high" 时,它反映的是高强度评估的结果。
cost_optimizedboolean or null当成本优化器 把本页路由到 cost_effective 时为 true。
triggered_auto_modeboolean or null本页触发了某条 auto_mode_configuration 规则时为 true。
original_orientation_angleinteger or nullParse 为读懂本页所做的旋转角度(度);无需旋转时为 0。该角度已经合成进本页的每一个边界框。
printed_page_numberstring or null页面上印刷的页号(如 "i"、"A-3")。仅在设了 output_options.extract_printed_page_number 时有。
watermarkstring or null在本页检出的水印文字;多个时用 |. 没有时该字段缺席。版本 2026-09-28 及之后,在 cost_effective, agentic and agentic_plus 上无论 output_options.watermark_handling 设成什么都有;见 Watermarks.
speaker_notesstring or null仅演示文稿输入:该幻灯片的演讲者备注。
slide_section_namestring or null仅演示文稿输入:该幻灯片所属的小节。
{
  "page_number": 1,
  "confidence": 0.985,
  "cost_optimized": false,
  "triggered_auto_mode": false,
  "original_orientation_angle": 0,
  "printed_page_number": null,
  "watermark": "CONFIDENTIAL",
  "speaker_notes": null,
  "slide_section_name": null
}

文档元数据

设了 confidence_score_effort: "high" 时,metadata.document 会被填充。

字段类型含义
confidencenumber or null高强度评审所打分的那些页的平均置信度,0–1。
confidence_breakdown.min_page_scorenumber最低的页得分,即整份文档里最差的那一页。
confidence_breakdown.scored_pagesinteger评审打了分的页数。
confidence_breakdown.total_pagesinteger文档的总页数。

表单(Beta)

Beta

表单增强输出处于 beta 阶段,输出形状与字段用词都可能变化。

只有在用 processing_options.forms: "enrich" 创建的任务上,expand=forms 才会被填充;否则它是 null。文档的每一页都有一条记录;未检出表单的页是 "forms": []。

字段类型含义
page_numberinteger页号,从 1 开始。
page_width, page_heightnumber or null页面尺寸,以点为单位,是字段 bbox 取值的坐标框架。
detected_form_typesarray of strings or null本页检出的表单类型;该页未被当作表单处理时为 null。
formsarray本页检出的每张表单对应一个对象。
successtrue成功的页上恒为 true。

每张表单都同时带着两份内容:json 是一棵有序节点树,list 是打平后的项目符号列表,其 md 可以原样塞进提示词。

节点 type表示什么字段
section表单上印着的一个分组(Part III、第 15 格)id, label, items(按阅读顺序排列的子节点)
field一个待填项:文本框、复选框、选择组或签名线field, id, label, value, isEmpty, valueItems, bbox
table一张可填写的网格id, label, columns, rows, html, bbox
text不属于任何字段、标题或表格的印刷文字:标题、说明或备注。 2.17.0 之前的 Python SDK、1.8.0 之前的 Java 与 C# SDK,以及不上报版本的 SDK 构建,会把它省略掉。value, bbox

field 节点怎么读,取决于它的 field 种类:

fieldvalue备注
text原样保存填入的文本印了但没填的字段是 isEmpty: true 且没有 value。
checkbox布尔值,表示是否勾选
signature布尔值,表示是否签署
single_select, multi_select无valueItems 列出各选项,通常每个都是自带布尔 value 的 checkbox 字段。

字段或表格上的 bbox 是环绕可填写区域的一组边界框数组,以页面点为单位。在 table 节点里,rows 的每个单元格是字符串、null(印了但空着),或是装着该单元格自有节点的 { "items": [...] }(例如一整列复选框)。当任务还设了 output_options.granular_bboxes 时,节点可能带一个可选的 grounding 对象,用它把自己印刷出来的 id、label 与字符串 value(表格还包括 columns 与标量单元格;文本节点只有 value)定位成逐行的框,并给出指向该文本的 UTF-8 字节区间。

{
  "page_number": 1, "page_width": 612, "page_height": 792, "success": true,
  "forms": [
    {
      "json": [
        { "type": "field", "field": "text", "id": "1", "label": "Wages, tips, other compensation", "value": "29,513",
          "bbox": [ { "x": 349.2, "y": 96.5, "w": 114.0, "h": 12.2 } ] },
        { "type": "field", "field": "multi_select", "id": "13",
          "valueItems": [
            { "type": "field", "field": "checkbox", "label": "Statutory employee", "value": true },
            { "type": "field", "field": "checkbox", "label": "Retirement plan", "value": false }
          ] }
      ],
      "list": { "type": "list", "ordered": false, "md": "- [1] Wages, tips, other compensation: 29,513\n- [13]\n  - [x] Statutory employee\n  - [ ] Retirement plan", "items": [ ... ] }
    }
  ]
}

Python SDK 把 json 暴露为 json_、valueItems 为 value_items、isEmpty 为 is_empty;原始响应与 TypeScript SDK 用的是这里显示的名字。要一个能穿过嵌套小节与表格单元格、访问到每个字段的遍历写法,见表单增强示例。

图片

expand=images_content_metadata 会列出该任务保存的图片,每张各有自己的下载地址。存在哪些图片取决于 output_options.images_to_save。

{
  "images_content_metadata": {
    "total_count": 2,
    "images": [
      { "index": 0, "filename": "image_0.png", "category": "screenshot", "content_type": "image/png",
        "bbox": { "x": 0, "y": 0, "w": 612, "h": 792 }, "presigned_url": "https://..." },
      { "index": 1, "filename": "image_1.jpg", "category": "layout", "content_type": "image/jpeg",
        "bbox": { "x": 72, "y": 300, "w": 468, "h": 210 }, "presigned_url": "https://..." }
    ]
  }
}
字段类型含义
total_countinteger返回的图片数量。
images[].indexinteger在抽取顺序中的位置。
images[].filenamestring文件名,例如 image_0.png。把它传给 image_filenames 参数以 取回其中的子集.
images[].categorystring or nullscreenshot (整页渲染), embedded (文档内的图片文件)或 layout (从页面上裁出的图形)。
images[].content_typestring or nullMIME 类型。
images[].bboxobject or null图片位于其页面的哪里:页面坐标下的 x、y、w、h,取整到整数。
images[].presigned_urlstring or null临时的下载地址。
images[].size_bytes—已弃用;永远是 null。

items 树里的 image 条目自带一个 url,指向它所代表的那张图片。

**旋转的页。**普通 PDF 的截图是按正立渲染的,而边界框用的是原始页面坐标系。请请求 expand=metadata,取同一 page_number 的 original_orientation_angle,在绘制前把截图转回去 —— 如渲染配方 所示。

下载地址

每个 *_content_metadata 取值都不内联返回内容,而是在 result_content_metadata 下加一条记录。各条记录形状相同:

{
  "result_content_metadata": {
    "markdown":       { "size_bytes": 45678,  "exists": true, "presigned_url": "https://..." },
    "items":          { "size_bytes": 67890,  "exists": true, "presigned_url": "https://..." },
    "grounded_items": { "size_bytes": 123456, "exists": true, "presigned_url": "https://..." }
  }
}
字段含义
size_bytes结果文件的大小。先读它再决定要不要下载。
exists该任务是否产出了这个文件。
presigned_url临时下载地址。失效后用同样的 expand 再请求一次即可换取新的。

result_content_metadata 下的键,以及你能下载到的文件:

expand 取值键文件
markdown_content_metadatamarkdown逐页 markdown,JSON,其 pages 形状与内联字段相同
text_content_metadatatext逐页文本,JSON
items_content_metadataitemsitems 树,JSON
metadata_content_metadatametadata页元数据,JSON
forms_content_metadataforms表单,JSON。仅 processing_options.forms: "enrich" 的任务
markdown_full_content_metadatamarkdown_full_content_metadata整份文档一个 .md 文件
text_full_content_metadatatext_full_content_metadata整份文档一个 .txt 文件
xlsx_content_metadataxlsx表格作为工作簿。仅设了 tables_as_spreadsheet.enable: true 的任务
output_pdf_content_metadataoutputPDF渲染出的 PDF。仅设了 output_options.save_output_pdf: true 的任务
raw_words_content_metadataraw_words每词一个 JSON 对象,含页号与框,格式为 JSONL。仅设了 output_options.additional_outputs: ["word_bbox"] 的任务
无需grounded_itemsgrounded items 边车文件,JSONL。仅设了 output_options.granular_bboxes 的任务

images_content_metadata 是个例外:它把图片对象放在顶层,而不是在这里加一条记录。

结果不分页。逐页表示会在一次响应里返回完整的 pages 数组,markdown_full 与 text_full 则返回一个字符串。长文档请改取 *_content_metadata 那一种,读 size_bytes,然后下载文件,而不是把内容一直握在响应里。

另请参阅

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。