Developer Platform
The Verinode API.
Email and file exports are how most operators feed Verinode. The API is the programmatic lane. It moves an operator's own data in and out: send documents for extraction, write jobs and clients directly, stream process-mining events, export everything, and receive webhooks when things change. Built on an OpenAPI 3.1 contract, with TypeScript and Python SDKs and a full sandbox.
Live at api.verinode.ai · Documentation at docs.verinode.ai
01
What the API Does
Ingest documents
POST a PDF, image, or spreadsheet and Verinode runs it through the same schema-validated extraction pipeline as the inbox and web upload. Poll the ingestion for a humanized receipt of exactly what was read, kept, and dropped.
Write structured records
Create jobs and clients directly through the same normalizer that guards every other write, so the data lands validated against the live schema. The operator scope is injected from your key and never trusted from the request body.
Stream process-mining events
Send case, activity, and timestamp events to light up the Processes view from a partner system's history. Canonical milestones dual-write onto the job so imported history feeds cycle-time analysis immediately.
Read your data back
Cursor-paginated, operator-scoped reads of jobs, vendors, and clients, with enum values humanized and money returned as exact decimal strings. No SELECT-star surprises.
Export everything
Kick off an async export and download one encrypted bundle of your operating data. It generalizes the data-subject-access read path, so an operator's full record is always portable.
Receive webhooks
Subscribe an HTTPS endpoint and get HMAC-signed events when a job or client is created or an export completes, with retry backoff and an SSRF-guarded delivery path. A polling fallback is there if you prefer to pull.
02
Built on a Real Contract
OpenAPI 3.1
A hand-authored specification is the single source of truth, and the interactive reference renders straight from it. What the docs describe is what the handlers do.
TypeScript and Python SDKs
Dependency-free clients for both ecosystems mirror the contract exactly, with typed methods, automatic idempotency keys on writes, and helpers that page through results for you.
A sandbox for every operator
Test keys hit a linked shadow operator, so there is no per-query test-mode branching and no way for evaluation traffic to touch real records. Anyone can mint a test key and start building.
Idempotent by design
Every write accepts an idempotency key so a retry after a dropped connection cannot create a duplicate. Rate-limit state is returned in response headers, not guessed at.
03
The Trust Line Holds Here Too
The API moves an operator's own data. It does not expose the network. Peer benchmarks, peer ratings, and the shared intelligence layer are never served through it, by construction, the same one-way boundary that governs the rest of the platform. Programmatic access reads and writes only the records that already belong to the operator holding the key.
Live API keys are available on every paid membership, and test keys against the sandbox are open to anyone with an account, so you can evaluate the whole surface before you commit. Keys are minted in the platform, in Settings under Developer, and the API lists them but never issues them, the way a payments platform does it.
Start in about five minutes.
The docs open with a quickstart: mint a test key, send your first document, and read the receipt back. The interactive reference lets you try every endpoint from the browser.
New to how data gets into Verinode? See how Verinode works with your stack.