Base URL and headers
Every request goes tohttps://api.runpulse.com and carries two headers:
This request sends both headers:
Endpoints
Parse
POST
/parseBatch
POST
/parse/batchExtract
POST
/extractSplit
POST
/splitTables
POST
/tablesCharts
POST
/chartsClassify
POST
/classifyPipeline
POST
/pipelineUsage
GET
/usageWebhook
POST
/webhookSettings
GET
/settings/orgRoutes of an endpoint
Every endpoint that starts a job has the same four routes, and Batch has them too:
A
POST waits for its job to end, unless you send "async": true to get a 202 with the job’s id at once. A pipeline and a batch always run async.
Each endpoint except Batch also has /{endpoint}/configs routes, which save a config to reuse by its config_id. See Saved configs.
Ids
Every id names the endpoint that made it, such asparse-<uuid>, extract-<uuid> or batch-<uuid>. Each route takes only its own endpoint’s ids: another endpoint’s id gets a 404. A config you save gets an id of the form <endpoint>-config-<uuid>.
Each route returns its own id, such as classify_id or pipeline_id. Extract, Split, Tables and Charts read a parse by its parse_id:
Conventions
- Bodies. A request body is JSON, or multipart form data when it uploads a file. A request that starts a job takes exactly one of
configand a savedconfig_id. One that takes a single document takes exactly one offileandfile_url. - Unknown fields. A request with a field the route doesn’t take is refused with a
400that names the field. - Paging. The batch manifest pages with
limit. While more entries remain, theLinkheader gives the next page’s URL. - Times. Times are ISO 8601 in UTC and end in
Z, such as2026-10-16T09:30:00Z.
Errors and retries
What each status means, and how to retry safely.
Pricing
What each endpoint costs, in credits.