Skip to main content
Split finds which pages of a parsed document belong to each topic you name, such as the financial statements or the leadership section of an annual report. Use it when sections need different handling and move from one document to the next. If a section is always on the same pages, skip Split and send those pages as the next step’s page_range.

Split a parse

This request finds the pages of two topics in a completed parse and waits for the result. client comes from SDKs, and parse_id from a parse.
Each topic has a name, which the result returns exactly as you sent it, and an optional description of what belongs to it. Add a description when a name could mean more than one thing. You can send up to 200 topics. For a long parse, send async: true and poll the job instead: see Jobs and results. An expired or deleted parse is refused with a 410 (RESULT_EXPIRED).

The result

GET /split/{split_id}/result (client.split.get_result) returns each topic you sent, in your order, with its pages:
  • pages lists a topic’s pages in ascending order, numbered as in the parse’s result, not as printed in the document.
  • A page can belong to several topics.
  • A topic’s pages is empty when no page matches it.

Send each topic to the next step

A topic’s pages become the page_range of the next step on the same parse: Join a topic’s pages with commas to make the range, such as "5,6,7,8,9", and skip a topic whose pages is empty. Split, then extract runs a schema on each section of a 10-K this way.

Pages and effort

Split reads every page of the parse and takes no page_range, so to split part of a document, parse only that part. effort: "high" reads more carefully than the default, "low". Split costs 1 credit per page of the parse, or 6 credits per page with effort: "high" (Pricing).

Next steps

Split, then extract

Find each section’s pages, then run a schema on each.

Saved configs

Save a list of topics, then send its config_id.

Split API reference

Every option, field and limit.