Parse Runs Migration
What You Get
- Single production endpoint — Use
/parse_runs(async) for all production workloads createAndPoll()helper — Easy polling withclient.parseRuns.createAndPoll()- Cleaner response structure — Chunks moved to
output.chunks, predictable nullable fields - Better file info —
fileobject instead of justfileId - Metadata support — Pass custom metadata to track and identify parse runs
- Simplified response shapes — Single object responses returned directly, list responses use standardized
{ object: "list", data: [...] }format
This guide covers all breaking changes to the parse endpoints.
Summary of Changes
SDK Changes
The SDK group and method names have been updated for consistency:
TypeScript
Python
Java
ParseRun Schema (formerly ParserRun)
The ParserRun schema has been replaced with a unified ParseRun schema that handles both sync and async cases. Status-dependent fields are now required but nullable for a predictable response structure.
Response Example
The following shows the ParseRun object structure.
Note: All fields are always present in the response. Status-dependent fields use null when not applicable.
ParserRunStatus Schema - Removed
The ParserRunStatus schema from the old API (used for async responses) has been removed. The unified ParseRun schema now handles all states with the PROCESSING status.
When a parse run is still processing, the response will have status: "PROCESSING" and output will be null:
POST /parse_runs (formerly POST /parse and POST /parse/async)
Endpoint Path
Request Body Changes
The request body structure has been updated with renamed properties:
Request Body Property Changes
Query Parameter Changes
The responseType query parameter is no longer available on the create endpoint. Use it on the GET /parse_runs/{id} endpoint instead.
Key Request Changes
- File Input: File property names have been simplified:
- Sync Endpoint Updated: The sync endpoint (
POST /parse) is still available and uses the new request/response format (same as/parse_runs). It’s intended for testing and onboarding. For production, use/parse_runswith polling or webhooks:
Response Changes
The response structure has been updated:
GET /parse_runs/{id} (formerly GET /parser_runs/{id})
Endpoint Path
Query Parameter Changes
The responseType query parameter controls how output is delivered:
json(default) - Returns chunks inoutput.chunksurl- Returns a presigned URL inoutputUrlto download the output
Response Changes
Key differences:
- No
successfield - Response returned directly (no wrapper key)
fileId→file(full File object)chunks→output.chunks- New
outputUrlfield (forresponseType=url)
DELETE /parse_runs/{id} (formerly DELETE /parser_runs/{id})
Endpoint Path
Response Changes
The response has been significantly simplified:
Key differences:
- No
successfield parserRunId→idmessagefield removed
SDK Method Reference
Need Help?
If you encounter any issues while migrating, please contact our support team at support@extend.app.

