This guide covers best practices for using the Parse API, including performance optimization and accuracy improvements.
The Parse API uses asynchronous processing via POST /parse_runs. This returns a parse run ID that you can use to check status with GET /parse_runs/{id}.
Two ways to get results:
Polling - Periodically call GET /parse_runs/{id} until status is PROCESSED or FAILED. Simple to implement but less efficient.
Webhooks - Configure a webhook endpoint to receive notifications when parsing completes. More efficient for production workloads.
For large documents with long processing times, consider using webhooks to avoid unnecessary polling requests. See Webhooks for setup instructions.
For fastest processing:
blockOptions.text.agentic.enabled to false (most significant speedup—avoids AI-based OCR corrections)blockOptions.figures.enabled to false (avoids AI-based figure analysis)pageRotationEnabled to false if all pages are correctly orientedchunkingStrategy: "document" (fastest) or "page" instead of "section" (section chunking adds CPU overhead during parsing to generate semantic sections)For highest accuracy:
target: "markdown" with chunkingStrategy: "section"blockOptions.text.agentic.enabled to true for handwritten/degraded documentstableHeaderContinuationEnabled to true for multi-page tablessignatureDetectionEnabled to true for legal documentsblockOptions.text.agentic.enabled to true for handwritten/degraded documentspageRotationEnabled to true for rotated pagestarget: "spatial" for very messy or skewed documentsminCharacters and maxCharacters in chunkingStrategy.options if you are using type: "section" with target: "markdown".page vs section vs document)pageRanges to process fewer pages per requesttableHeaderContinuationEnabled to true for multi-page tablestargetFormat: "html" for better table structureblockOptions.tables.agentic.enabled to true