For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
GuidesAPI ReferenceChangelogModel Versioning
GuidesAPI ReferenceChangelogModel Versioning
    • Getting Started
    • Authentication
    • API Versioning
    • SDKs
    • Deployments
    • Error Codes
    • Async Processing
  • Endpoints
  • Webhook Events
  • Migration Guides
      • Splitters Endpoints
LogoLogo
On this page
  • What You Get
  • Quick Start: Common Patterns
  • Creating a Splitter
  • Retrieving a Splitter (New!)
  • Listing Splitters
  • Publishing a Version
  • Endpoint Changes Summary
  • Request Changes
  • Response Changes
  • SDK Method Reference
  • Splitter Schema
  • SplitterSummary Schema (List Response)
  • SplitterVersion Schema
  • SplitConfig Schema
  • Need Help?
  • Migration Guides
Migration Guides2026-02-09

Splitters Migration

Was this page helpful?
Previous

Changelog

Next
Built with

What You Get

  • Dedicated /splitters endpoints — No more type: "SPLITTER" filters
  • New GET /splitters/{id} endpoint — Retrieve a single splitter (not available in old API)
  • Typed SDK responses — splitter objects are typed, no casting needed
  • Simpler config — No more type field required

The old /processors endpoint is still supported in this API version for backward compatibility. You can migrate incrementally.


Quick Start: Common Patterns

Creating a Splitter

TypeScript
Python
Java
Before (2025-04-21)
1const processor = await client.processor.create({
2 name: "Invoice Packet Splitter",
3 type: "SPLITTER",
4 config: { type: "SPLITTER", splitClassifications: [...] }
5});
After (2026-02-09)
1const splitter = await client.splitters.create({
2 name: "Invoice Packet Splitter",
3 config: { splitClassifications: [...] }
4});

Retrieving a Splitter (New!)

TypeScript
Python
Java
1const splitter = await client.splitters.retrieve("spl_abc123");
2console.log(splitter.draftVersion.config);

Listing Splitters

TypeScript
Python
Java
Before
1const processors = await client.processor.list({ type: "SPLITTER" });
After
1const splitters = await client.splitters.list();

Publishing a Version

TypeScript
Python
Java
Before
1const version = await client.processorVersion.create("dp_abc123", { releaseType: "minor" });
After
1const version = await client.splitterVersions.create("spl_abc123", { releaseType: "minor" });

Endpoint Changes Summary

Old EndpointNew Endpoint
POST /processors (type: SPLITTER)POST /splitters
GET /processors?type=SPLITTERGET /splitters
(not available)GET /splitters/{id} (new!)
POST /processors/{id}POST /splitters/{id}
POST /processors/{id}/publishPOST /splitters/{splitterId}/versions
GET /processors/{id}/versionsGET /splitters/{splitterId}/versions
GET /processors/{id}/versions/{versionId}GET /splitters/{splitterId}/versions/{versionId}

Request Changes

OldNewNotes
type: "SPLITTER"(removed)Implicit from endpoint
cloneProcessorIdcloneSplitterIdRenamed
config.type: "SPLITTER"(removed)Implicit
config.parserconfig.parseConfigRenamed
config.baseProcessorconfig.baseProcessorNo change (optional)

cloneSplitterId and config are mutually exclusive. You can either clone an existing splitter or provide a config, but not both. The API will return a validation error if both are provided.


Response Changes

Response shape changes: Single object responses are now returned directly (no wrapper key), and list responses use { "object": "list", "data": [...] } format. See Simplified Response Shapes for details.

OldNew
success: true(removed)
{ "splitter": {...} }{...} (object returned directly)
processorssplitters
processorVersionsplitterVersion
versionssplitterVersions
draftVersion.processorIddraftVersion.splitterId
List includes versions[](removed) — Use versions endpoint

SDK Method Reference

Old MethodNew Method
client.processor.create()client.splitters.create()
client.processor.list()client.splitters.list()
client.processor.update()client.splitters.update()
—client.splitters.retrieve() (new!)
client.processorVersion.create()client.splitterVersions.create()
client.processorVersion.list()client.splitterVersions.list()
client.processorVersion.get()client.splitterVersions.retrieve()

Detailed Schema Changes

Splitter Schema

PropertyOld (Processor)New (Splitter)Change
object"document_processor""splitter"Value changed
idRequired stringRequired stringNo change
nameRequiredRequiredNo change
typeRequired "SPLITTER"—Removed
draftVersionProcessorVersionSplitterVersionNo change
createdAtRequiredRequiredNo change
updatedAtRequiredRequiredNo change

SplitterSummary Schema (List Response)

PropertyOldNewChange
object"document_processor""splitter"Value changed
typeRequired—Removed
versionsRequired array—Removed

SplitterVersion Schema

PropertyOld (ProcessorVersion)New (SplitterVersion)Change
object"document_processor_version""splitter_version"Value changed
idRequired stringRequired stringNo change
processorIdRequired—Renamed to splitterId
splitterId—RequiredNew
processorNameOptional—Removed
processorTypeRequired—Removed
versionRequiredRequiredNo change
descriptionOptionalOptionalNo change
configSplitterConfigSplitConfigNo change
createdAtRequiredRequiredNo change
updatedAtRequired—Removed

SplitConfig Schema

PropertyOld (SplitterConfig)New (SplitConfig)Change
typeRequired "SPLITTER"—Removed
baseProcessorOptionalOptionalNo change
splitClassificationsRequiredRequiredNo change
parserOptional—Renamed
parseConfig—OptionalNew (replaces parser)

Need Help?

If you encounter any issues while migrating, please contact our support team at support@extend.app.


Migration Guides

GuideMigrating FromMigrating To
Overview—What’s new and how to upgrade
Extract Runs/processor_runs/extract_runs + /extract
Classify Runs/processor_runs/classify_runs + /classify
Split Runs/processor_runs/split_runs + /split
Parse Runs/parse, /parse/async/parse_runs + /parse
Edit Runs/edit, /edit/async/edit_runs + /edit
Extractors/processors/extractors
Classifiers/processors/classifiers
Splitters/processors/splitters
Files/files/files (breaking changes)
Evaluation Setsevaluation endpointsUpdated evaluation endpoints
Workflow Runs/workflow_runs/workflow_runs (breaking changes)
Webhooksprocessor_run.* eventsextract_run.*, classify_run.*, etc.