No SOAP. No six-month KYC.
Public records through one clean API, with flat licensing.
Every answer
shows its work.
Responses carry where the data came from, what is missing and why. If a stage hasn't happened yet, you'll know it's not yet expected rather than absent.
curl https://api.multido.co/v1/records \
-H "Authorization: Bearer $MULTIDO_KEY" \
-G -d region=fulton-ga \
-d domain=judicial \
-d stage=SENTENCING
{
"data": [ ... ],
"provenance": { "connector": "fulton-odyssey", ... },
"missing_stages": [{ "stage": "DISPOSITION",
"reason": "NOT_YET_EXPECTED" }],
"caveats": [],
"next_cursor": "c_9f2e..."
}The whole surface.
Cursor pagination. Keys are scoped to your organization's coverage.
- GET /v1/regions/{id}/coverage
- What we have for a region. Start here.
- GET /v1/records
- Arrest, judicial and correctional, unified.
- GET /v1/records/{id}/history
- Field-level version history.
- GET /v1/persons
- Resolved people, with the signals behind each merge.
- GET /v1/cases
- Every stage of a case, linked.
- GET /v1/documents/{id}/pages
- OCR text with page and bounding box.
- GET /v1/search
- Names, identifiers and full text.
- GET /v1/changes
- Every change we detect, as a stream.
- CRUD /v1/alerts, /v1/webhooks
- Push notifications for changes, instead of polling.
On every response.
- provenance
- Source, connector, method and fetch time on every record.
- canonical_value + local_value
- Our mapping and the source's own words. We never discard the original.
- missing_stages
- Every absent stage, with a typed reason.
- caveats
- Always included, even when empty.
Multido data is not a consumer report and may not be used to make employment, tenancy, credit or insurance decisions, or for any purpose governed by the Fair Credit Reporting Act. API terms apply.