Skip to content

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..."
}
Every view in Tempo has an API call behind it. Copy it.

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.