Parse
POST /v1/parse takes one document. It returns readable markdown plus a structured JSON representation with layout and page information. It needs no schema and no configuration. Use it when you want the document’s content, not specific fields.
How it works
- You send a file: a URL, or the id of a file you already have.
- CloudRaker fetches the bytes and reads the document. Born-digital PDFs are read directly, scans through OCR, office files through conversion, and audio through transcription.
- The call holds until parsing finishes, up to
?wait=seconds (60 by default, 120 max). If parsing finishes in time, you get200with download URLs. If not, you get202with a run id to poll. - The run and its files expire on their own (
ttl, 24 hours by default).
Extraction parses too, so you do not need to call this first. POST /v1/extract parses as part of the run.
Quickstart
The sample below uses a blank IRS Form W-9 as a public, stable test document. The call works with no local files.
The TypeScript and Python samples are plain HTTP, so they run with nothing installed. This endpoint is also a top-level method on both SDKs as of 0.3.0: client.parse(…). That page has a full worked example.
Example response
Key fields
output appears only after status is processed. The download URLs are short-lived. Fetch the content instead of storing the URL.
A recording produces no markdown. Its output.jsonUrl holds the transcript: a language and an ordered segments array with timings, text, and speaker labels.
Reuse the returned file id (files[0].id) in later calls. Pass {"file": {"id": "<file id>"}} to extract. The document is then not fetched or parsed again.
Configuration
processing on the file ref picks how the document is read:
Sync vs async
Identical to extract: synchronous by default, with ?wait= between 0 and 120 seconds. When the cap is reached, you get a 202 handle, not a timeout error.
Long audio and large scanned documents normally come back as 202. For those, pass ?wait=0, then poll or use a webhook.
Save as a config
Parsing has no configuration to save. There is no /v1/parse/configs library and nothing in GET /v1/actions/catalog. The saved-config path applies to extract, redact, and fill.