Migrating to API Version 2026-02-09
Migrating to API Version 2026-02-09
Welcome to the New API
The 2026-02-09 API version is a significant improvement designed to make your integration cleaner, more type-safe, and easier to maintain. We’ve listened to developer feedback and restructured the API around clearer resource types and better SDK support.
Why Migrate?
Here’s what you’ll get with the new API version:
Dedicated Endpoints with Typed Responses
The unified /processors and /processor_runs endpoints have been split into dedicated endpoints for each resource type:
This means fully typed SDK responses—no more checking type fields or casting outputs:
TypeScript
Python
Java
TypeScript bonus: Define schemas with Zod for fully typed output values:
Run Without Pre-Creating a Resource
Previously, you had to create and manage an extractor, classifier, or splitter resource before running. Now you can pass your config inline—perfect for managing schemas entirely in code.
TypeScript
Python
Java
Synchronous Endpoints
New synchronous endpoints let you process a file and get the result in a single request—no polling or webhooks needed. These are ideal for onboarding, testing, and low-volume use cases:
TypeScript SDK
Python SDK
REST API
Polling Helpers
The async *_runs endpoints are the recommended approach for production. The SDK provides createAndPoll / create_and_poll methods that handle polling with exponential backoff:
TypeScript
Python
Java
Available for all run types: extractRuns, classifyRuns, splitRuns, parseRuns, editRuns, workflowRuns.
Workflow runs can take a long time. Complex workflows may run for hours. For workflows, consider using webhooks instead of polling unless you know the workflow will complete quickly.
Batch Endpoints
For high-volume use cases, dedicated batch endpoints process many files in a single request. Each returns a batchId you can use to track progress and fetch individual run results.
To retrieve individual run results from a batch, use the corresponding list endpoint filtered by batchId (e.g., GET /extract_runs?batchId={id}).
GET /batch_runs/{id} does not apply to workflow batches. Workflow batches are tracked via the workflow run list endpoint and workflow_run.* webhook events, which include the batchId in their payload.
Simplified Response Shapes
API responses are now cleaner and more consistent:
Single object responses are unwrapped. Instead of { "extractRun": { ... }, "success": true }, the API now returns the object directly:
List responses use a standardized format. All list endpoints now return { "object": "list", "data": [...] }:
SDK users: These changes are handled automatically by the SDK. You’ll access results directly (e.g., result.output instead of result.extractRun.output).
SDK Webhook Helpers
For event-driven processing, the SDK includes utilities for verifying signatures and parsing events with type-safe payloads:
See the Webhooks Migration guide for full details and examples in all languages.
How to Upgrade
Step 1: Update to the New API Version
TypeScript
Python
Java (Maven)
REST API
The latest SDK automatically uses the 2026-02-09 API version.
Step 2: Migrate Endpoint by Endpoint
You don’t have to migrate everything at once. Start with the endpoints you use most and work through the detailed guides:
Processing Runs:
- Extract Runs Migration —
/processor_runs→/extract_runs(+ new sync/extract) - Classify Runs Migration —
/processor_runs→/classify_runs(+ new sync/classify) - Split Runs Migration —
/processor_runs→/split_runs(+ new sync/split) - Parse Runs Migration —
/parse_runs(+ sync/parse) - Edit Runs Migration —
/edit_runs(+ sync/edit)
Resource Management:
- Extractors Migration —
/processors→/extractors - Classifiers Migration —
/processors→/classifiers - Splitters Migration —
/processors→/splitters
Other Endpoints:
- Files Migration — Changes to
/filesendpoints - Evaluation Sets Migration — Changes to evaluation sets and evaluation set runs
- Workflow Runs Migration — Breaking changes to
/workflow_runsrequest/response shapes
Step 3: Migrate Webhooks
If you use webhooks, follow the Webhooks Migration guide to update your webhook handlers. This includes:
- New event type names (e.g.,
processor_run.processed→extract_run.processed) - New payload structures with typed responses
- New SDK helpers for signature verification
- Webhook endpoints can now be managed via API (
POST /webhook_endpoints,POST /webhook_subscriptions) in addition to the dashboard
Need Help?
- Questions? Contact our support team at support@extend.app
- Found a bug? Let us know and we’ll fix it ASAP
- Feedback on the new API? We’d love to hear it—reach out on Slack!
Migration Guides
Jump to the specific guide for the endpoints you use:

