1. 文档解析
法狗狗开放平台
  • OpenAPI接口调用说明
  • 接口签名处理说明
  • OpenAPI AccessToken 调用说明
  • AccessToken
    • 获取 AccessToken
      POST
    • 吊销 AccessToken
      DELETE
    • 续期 AccessToken
      POST
  • 智能比对
    • 智能比对调用说明
    • 创建比对任务(一对一)
      POST
    • 创建比对任务(一对多)
      POST
    • 生成比对结果链接
      POST
    • 查询比对结果
      GET
    • 通知比对任务结果
      POST
    • 比对任务列表
      GET
    • 是否扫描件
      POST
    • 导出差异报告
      GET
  • 智能审查
    • 智能审查调用说明
    • 文档识别
      POST
    • 获取审查模板
      GET
    • 审查点列表查询接口
      GET
    • 发起审查
      POST
    • 获取审查结果
      GET
    • 下载报告
      GET
    • 发起投标审查
      POST
    • 自设审查要点识别(生成 AI 规则)
      POST
  • 智能审查V2
    • OpenAPI 合同审查 V2 对接说明
    • 合同审查OpenAPI-V1升级到V2
    • 文档识别-单文档
    • 文档识别-本地file
    • 获取审查模板
    • 审查点列表查询接口
    • 提交合同审查
    • 获取审查结果
    • 下载报告
    • 获取用户页面 Token
  • 投标审查
    • 招标解析与投标审查 — OpenAPI 接入文档
    • 提交招标解析
    • 轮询解析结果
    • 提交投标审查
    • 轮询审查结果
    • 更新审查清单(checklist)
  • 智能抽取V2
    • 智能抽取调用说明
    • 抽取(自定义配置)
    • 获取结果
  • 智能抽取V3
    • 智能抽取V3调用说明
    • 抽取V3
    • 获取结果V3
  • 智能查重
    • 智能查重调用说明
    • 发起查重任务
    • 获取查重结果
    • 获取单个文件的具体结果
    • 获取查重结果页链接
    • 导出报告
  • 文档解析
    • 创建解析任务
      POST
    • 查询解析结果
      GET
  • 纠错
    • 创建纠错任务
  • 文档通用能力
    • 文件上传
    • 文件校验
    • OFD转图片(返回图片集合的压缩包)
    • OFD转PDF
    • 各种文档格式转PDF
    • 除去PDF的所有图片
    • PDF合并
    • PDF转为文档
    • 去PDF批注
    • PDF转图片
    • PDF转DOCX
    • 图片合成PDF
  • 图像通用能力
    • 图像去红色印章
    • 图像去水印
    • 提取OCR文本
    • 倾斜校正
    • 去图像二维码
    • 翻转图像校正
    • 图像增强锐化
  • 基础接口
    • 余额查询
    • 获取用户列表
  • 数据模型
    • 示例数据模型
      • 未命名数据模型
      • BboxBox
      • Pet
      • Category
      • Tag
    • PageItem
    • ReviewFileRole
    • RoleType
    • ResponseEntity
    • AccessTokenRequest
    • SubFeatureRate
    • SubFeatureRateInput
    • UploadResponse
    • AuditBiddingBidCreateRequest
    • CommonResponse
    • CreateTaskRequest
    • AccessTokenVO
    • CreateTaskResponse
    • QuotaDetailItem
    • QueryTaskResponse
    • FeatureGroupInput
    • ParseResult
    • FeatureItem
    • Page
    • ValidateResponse
    • Block
    • FileItem
    • MergedBlock
    • ParseFileRole
    • AccessTokenResponse
    • QuotaDetailResponse
    • FeatureGroupSummary
    • QuotaDetailData
    • ValidateData
    • ParserRequest
    • ReviewFileRole
    • VoidResponse
    • SubFeatureRateOutput
    • ValidateError
    • ParserResponse
    • ParseJobStatus
    • FeatureDetail
    • FileInfo
    • ParserJobResult
    • ReviewCallbackStatus
    • UserData
    • OfficeInfo
    • DocIdItem
    • RiskLevel
    • InitApiUserRequest
    • SpreadsheetInfo
    • ProcurementProfile
    • BizParseRequest
    • InitApiUserData
    • PresentationInfo
    • BizParseFileItem
    • InitApiUserResponse
    • PdfInfo
    • BizParseJobData
    • PageResult
    • RasterImageInfo
    • BizChecklistUpdateRequest
    • ApiUserListResponse
    • PlainInfo
    • BizChecklistUpdateData
    • UpdateFeatureRequest
    • ErrorResponse
    • BizReviewRequest
    • UpdateFeatureResponse
    • ConflictItem
    • BizReviewAcceptedData
    • GapItem
    • BizReviewResult
    • ReviewRequest
    • DocIdEntry
    • PackageInfo
    • ChecklistsWrapper
    • PackageChecklist
    • ReviewResponse
    • ReviewDomain
    • TraceResult
    • ChecklistItem
    • TraceResultDetail
    • SourceRef
    • DocumentSet
    • RiskItem
    • TraceSummary
    • DocumentMeta
    • TracePoint
    • PageMeta
    • RiskGroup
    • RiskChild
    • EvidenceRef
  1. 文档解析

查询解析结果

GET
/openapi/doc-parser/tasks/{task_id}

查询解析结果 — 返回字段说明#

接口:GET /openapi/doc-parser/tasks/{task_id}
只能查询当前调用方自己的任务。解析结果在成功时原样返回,并额外带上 status。

响应总览#

所有响应(成功 / 失败 / 处理中)统一包裹在顶层信封中:
{
    "code": 0,
    "msg": "success",
    "data": { ... }
}
字段类型说明
codeint0 表示成功或任务仍在处理;非 0 表示失败,应停止轮询。取值见下方「错误响应」
msgstring成功或处理中为 "success",失败时为错误说明
dataobject / null处理中或成功时为结果对象;失败时为空
三种形态:
场景codedata
处理中(排队 / 执行中)0{ "status": "pending", "message": "task pending" / "task running" },继续轮询
解析成功0status 为 completed,并包含 version / pages / blocks / md
失败非 0空。按 code 与 msg 处理,停止轮询
注意: 成功与失败响应的 HTTP 状态码恒为 200,调用方必须以信封中的 code 判断结果,不能依赖 HTTP 状态码。处理中也是 code = 0,用 data.status 区分是否还要轮询。
处理中示例:
{
    "code": 0,
    "msg": "success",
    "data": {
        "status": "pending",
        "message": "task running"
    }
}

错误响应(报错异常与错误码)#

失败时没有 data。code 为错误码,msg 为说明。
{
    "code": 40013,
    "msg": "The provided PDF file is encrypted."
}

错误码一览#

平台错误:
codemsg触发场景
3010数据不存在!任务不存在,或不属于当前调用方
6032无效的appid或者access-tokenappid 无效
6033无效的签名缺少 sign
6034无效的noncenonce 无效,长度必须为 16
6035签名已过期签名过期
6036验签失败签名不正确
6040未开通该功能权益,请联系管理员配置 / 使用额度不足!未开通 doc-parse,或额度不足(创建任务时)
6044权益已过期!权益已过期(创建任务时)
6061通用能力接口异常!下游无响应,或下游令牌校验失败。查询时若任务仍在处理,可稍后重试
解析失败(code 与 msg 透传下游):
codemsg触发场景
40002Failed to download file: <异常类型> 或响应文本file_url 下载失败(网络错误 / 超时),或 HTTP 状态非 200
40010The provided URL does not point to a PDF file下载的内容不是 PDF 文件
40013The provided PDF file is encrypted.PDF 已加密,无法解析
40011The provided document is invalidated.文档数据为空或 PDF 加载失败
41301The document exceeds the maximum number of pages allowed: <maxPages>文档页数超过 max_pages 限制
40200当前服务License已过期,请联系商务完成续期后恢复使用License 授权已过期
40201根目录下未找到授权文件,机器码: <machine_id>下游未找到授权文件且无法在线激活
40202非授权用户(机器码不匹配) / 授权检查失败:<原因> / 联网激活失败:<code>, <msg>机器码不匹配、授权文件损坏或在线激活失败
404task not found: <taskId>下游任务不存在或已失效
422Request validation failed下游参数校验失败
500异常文本下游未捕获的内部异常

data 字段结构(成功)#

code = 0 且 data.status = completed 时:
字段类型说明
statusstring固定为 "completed"
versionstring输出格式版本号,当前为 "v1.0"
pagesPage[]逐页解析结果,按阅读顺序排列
blocksMergedBlock[]跨页合并后的逻辑块,按阅读顺序排列
mdstring整个文档的 Markdown 文本(不含 header / footer / seal / header_image / footer_image 块)
处理中时 data 只有:
字段类型说明
statusstring固定为 "pending"
messagestringtask pending 或 task running,都表示未完成,继续轮询

Page 对象#

字段类型说明
pageIndexint页码,从 0 开始
imageUrlstring经过方向矫正后的页面图片 URL(或 Base64 PNG)
imageWidthint页面图片宽度(像素)
imageHeightint页面图片高度(像素)
blocksBlock[]当前页面上的所有原始块,按阅读顺序排列

Block 对象#

Block 表示页面上识别出的一个内容区域。不同块类型有公共字段和专有字段。

公共字段(所有 Block 类型均有)#

字段类型说明
idstring文档内唯一标识
blockTypestring块类型,取值见下表
bbox[float, float, float, float]边界框 [x1, y1, x2, y2],坐标为 float

blockType 枚举#

值说明额外字段
"title"标题text, lines
"text"正文段落text, lines
"header"页眉text, lines
"footer"页脚text, lines
"reference"参考文献text, lines
"catalog"目录text, lines
"table"表格title, cells
"image"图片caption, text, lines
"formula"公式latex, text, lines
"seal"印章无
"header_image"页眉图片无
"footer_image"页脚图片无

文本类块专有字段(title / text / header / footer / reference / catalog)#

字段类型说明
textstring块的所有文本拼接
linesLine[]构成文本的行数组

Table 块专有字段#

字段类型说明
titlestring表格标题(位于表格上方)
cellsCell[]表格单元格数组

Image 块专有字段#

字段类型说明
captionstring图片说明文字
textstring图片 OCR 识别文字
linesLine[]OCR 行数组

Formula 块专有字段#

字段类型说明
latexstring公式 LaTeX 表示
textstring公式纯文本表示
linesLine[]OCR 行数组

seal / header_image / footer_image#

仅有公共字段(id、blockType、bbox),无额外字段。

Line 对象#

字段类型说明
idstring行唯一标识
bbox[int, int, int, int]行边界框 [x1, y1, x2, y2],坐标强制为 int
scoreintOCR 置信度(0–100)
charsChar[]字符数组

Char 对象#

字段类型说明
cstring单个字符
b[int, int, int, int]字符边界框 [x1, y1, x2, y2],坐标为 int

Cell 对象(表格单元格)#

字段类型说明
idstring单元格唯一标识
bbox[float, float, float, float]单元格边界框 [x1, y1, x2, y2]
textstring单元格文本内容
linesLine[]单元格内的行数组

MergedBlock 对象(跨页合并后的逻辑块)#

data.blocks[] 中的每个元素是将同一逻辑块跨页拼接后的结果。例如,一个跨页表格在此处为一个 MergedBlock,而非两个。

公共字段(所有 MergedBlock 类型均有)#

字段类型说明
blockTypestring块类型,同 Block.blockType
pageRange[int, int][起始页码, 结束页码],页码从 0 开始
sourceBlockIdsstring[]合并前原始 Block 的 id 列表

文本类 MergedBlock(title / text / header / footer / reference / catalog)#

字段类型说明
textstring跨页合并后的完整文本
sourceLineIdsstring[]合并前原始 Line 的 id 列表

Formula MergedBlock#

字段类型说明
textstring公式文本
sourceLineIdsstring[]合并前原始 Line 的 id 列表

Table MergedBlock#

字段类型说明
titlestring表格标题
nRowsint逻辑总行数(合并后)
nColsint逻辑总列数(合并后)
cellsMergedCell[]逻辑单元格数组

Image MergedBlock#

字段类型说明
textstring合并后的图片 OCR 文字
captionstring合并后的图片说明
sourceLineIdsstring[]合并前原始 Line 的 id 列表

seal / header_image / footer_image MergedBlock#

仅有公共字段(blockType、pageRange、sourceBlockIds)。

MergedCell 对象(MergedBlock 中的单元格)#

字段类型说明
rowint网格行索引(从 0 开始)
colint网格列索引(从 0 开始)
rowspanint行跨度(>= 1)
colspanint列跨度(>= 1)
sourceCellIdsstring[]合并前原始 Cell 的 id 列表
注意: MergedCell 不包含 text 字段。如需获取单元格文本,需通过 sourceCellIds 回查对应 Page 中 Cell 的 text 内容。

完整示例#

{
    "code": 0,
    "msg": "success",
    "data": {
        "status": "completed",
        "version": "v1.0",
        "pages": [
            {
                "pageIndex": 0,
                "imageUrl": "https://s3.example.com/pages/page_0.png",
                "imageWidth": 1200,
                "imageHeight": 1600,
                "blocks": [
                    {
                        "id": "block_001",
                        "blockType": "title",
                        "bbox": [100.0, 50.0, 700.0, 90.0],
                        "text": "第一章 概述",
                        "lines": [
                            {
                                "id": "line_001",
                                "bbox": [100, 50, 700, 90],
                                "score": 99,
                                "chars": [
                                    {"c": "第", "b": [100, 50, 120, 90]},
                                    {"c": "一", "b": [120, 50, 140, 90]}
                                ]
                            }
                        ]
                    },
                    {
                        "id": "block_002",
                        "blockType": "text",
                        "bbox": [80.0, 120.0, 720.0, 200.0],
                        "text": "这是正文内容示例。",
                        "lines": [
                            {
                                "id": "line_002",
                                "bbox": [80, 120, 720, 160],
                                "score": 98,
                                "chars": [
                                    {"c": "这", "b": [80, 120, 100, 160]}
                                ]
                            }
                        ]
                    },
                    {
                        "id": "block_003",
                        "blockType": "table",
                        "bbox": [80.0, 220.0, 720.0, 500.0],
                        "title": "表1 示例数据",
                        "cells": [
                            {
                                "id": "cell_001",
                                "bbox": [80.0, 220.0, 200.0, 260.0],
                                "text": "姓名",
                                "lines": []
                            },
                            {
                                "id": "cell_002",
                                "bbox": [200.0, 220.0, 400.0, 260.0],
                                "text": "年龄",
                                "lines": []
                            }
                        ]
                    },
                    {
                        "id": "block_004",
                        "blockType": "image",
                        "bbox": [200.0, 520.0, 600.0, 800.0],
                        "caption": "图1 架构图",
                        "text": "",
                        "lines": []
                    },
                    {
                        "id": "block_005",
                        "blockType": "formula",
                        "bbox": [100.0, 820.0, 700.0, 880.0],
                        "latex": "E = mc^2",
                        "text": "E = mc^2",
                        "lines": []
                    }
                ]
            }
        ],
        "blocks": [
            {
                "blockType": "title",
                "pageRange": [0, 0],
                "sourceBlockIds": ["block_001"],
                "text": "第一章 概述",
                "sourceLineIds": ["line_001"]
            },
            {
                "blockType": "text",
                "pageRange": [0, 0],
                "sourceBlockIds": ["block_002"],
                "text": "这是正文内容示例。",
                "sourceLineIds": ["line_002"]
            },
            {
                "blockType": "table",
                "pageRange": [0, 0],
                "sourceBlockIds": ["block_003"],
                "title": "表1 示例数据",
                "nRows": 2,
                "nCols": 2,
                "cells": [
                    {
                        "row": 0,
                        "col": 0,
                        "rowspan": 1,
                        "colspan": 1,
                        "sourceCellIds": ["cell_001"]
                    },
                    {
                        "row": 0,
                        "col": 1,
                        "rowspan": 1,
                        "colspan": 1,
                        "sourceCellIds": ["cell_002"]
                    }
                ]
            },
            {
                "blockType": "image",
                "pageRange": [0, 0],
                "sourceBlockIds": ["block_004"],
                "text": "",
                "caption": "图1 架构图",
                "sourceLineIds": []
            },
            {
                "blockType": "formula",
                "pageRange": [0, 0],
                "sourceBlockIds": ["block_005"],
                "text": "E = mc^2",
                "sourceLineIds": []
            }
        ],
        "md": "## 第一章 概述\n\n这是正文内容示例。\n\n<table>\n  <caption>表1 示例数据</caption>\n  <tr><td>姓名</td><td>年龄</td></tr>\n</table>\n\n![图1 架构图]()\n\n$$\nE = mc^2\n$$\n"
    }
}

关键注意事项#

1.
pages vs blocks 两个层级: pages[].blocks[] 是逐页的原始块(保留字符级别细节)。顶层 blocks[] 是跨页合并后的逻辑块(通过 sourceBlockIds / sourceLineIds / sourceCellIds 回链到原始数据)。
2.
MergedCell 不含 text: 跨页合并后的单元格不直接包含文字内容。如果需要单元格文本,通过 sourceCellIds 去 pages[].blocks[].cells[] 中查找对应 Cell 的 text 字段。
3.
Line.bbox 为 int: Line 和 Char 的边界框坐标强制转为 int,Block 和 Cell 的 bbox 保留 float。
4.
md 内容过滤: Markdown 输出会自动过滤掉 header、footer、seal、header_image、footer_image 类块,且不包含字符级别的细节信息。
5.
用 status 判断是否轮询: code = 0 且 data.status = pending 时继续轮询;status = completed 时取结果;code 非 0 时停止。

请求参数

Path 参数

Header 参数

请求示例代码

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
请求示例请求示例
Shell
JavaScript
Java
Swift
curl --location 'https://app-test.fagougou.com/openapi/doc-parser/tasks/' \
--header 'access-token;'

返回响应

🟢200
application/json
HTTP 恒为 200,以 body.code 与 data.status 判断
Bodyapplication/json

示例
{
    "code": 0,
    "msg": "success",
    "data": {
        "status": "pending",
        "message": "task running"
    }
}
修改于 2026-10-16 09:37:22
上一页
创建解析任务
下一页
创建纠错任务
Built with