Process API
The /process API is a one-call ingestion pipeline. You send files and an optional list of actions in a single multipart request; CloudRaker parses each file, runs the actions, holds the results for a TTL you choose, and then auto-purges everything. You get back a processing id to poll — and, if you want, signed webhooks as each event happens.
It’s the fastest way to turn documents into structured data from your own backend, with no spaces or manual file management to wire up.
Authorization is org-level: the caller must be an org API key or an org admin.
The flow
Start a pipeline
POST /process takes multipart/form-data: one part named options (JSON) plus one part per file you declare.
The options part
files[]— one entry per file.fieldmust match the name of a multipart part carrying that file’s bytes.processingKindis optional.actions[]— the installed actions to run against the ingested files. Each entry is an installed action’s id or its per-organization slug — the two are interchangeable everywhere the API takes an installed action. Optional; defaults to none.callbackUrl— a receiver for signed webhook events. Optional.durationSeconds— how long results live before auto-purge. Default 24h, max 7 days.
processingKind is one of:
Request
Response — 201
Pipeline order: each file is ingested and parsed → any declared actions are dispatched → results are collected → webhooks are emitted → everything is held until the TTL, then auto-purged.
The request body is capped by the platform (on the order of 100 MB). For large files, register them into a space with the presigned upload flow instead, which streams straight to object storage.
Possible errors: 400 (malformed multipart or manifest), 403 (caller is neither an org admin nor an org API key).
Poll for status and results
Query parameters
include— comma-separated list ofcontent,results,evidence. These heavier payloads are inlined only when you ask for them.format—json(default) ormarkdown.
ProcessStatus response
content (per file), results (per action), and evidence appear only when requested via include.
Audio files have no markdown byproduct. include=content&format=markdown returns null for audio content — use format=json.
Poll responses
Purge early
Immediately cancels in-flight work and deletes files, runs, and stored results. Returns 204.
TTL and lifecycle
A pipeline lives until expiresAt (durationSeconds from creation; default 24h, max 7 days). At expiry, CloudRaker cancels runs, purges outputs, deletes the files, emits a processing.expired webhook, and then serves the id as 410 for a short grace window (~24h) before hard-wiping it to 404. Fetch everything you need before expiresAt, or extend the TTL at creation.