Reference

Docs

Recordwire turns the official business registries of seven U.S. states into one normalized API: every company on file, plus an append-only feed of the formations, name changes, status changes, moves, agent changes, and officer changes those states publish. These docs cover the record model, the six event payloads, every REST parameter, and how to connect the MCP server. Base URL https://api.recordwirehq.com.

The model

One normalized record shape for every state. The ID combines the jurisdiction and the state’s own ID, for example US-VA:11406679.

legalName              the registered business name
entityType             llc | corporation | lp | gp | business_trust | public_service_authority | other
status                 active | inactive | pending_inactive
statusReason           the state's own wording
formationDate          YYYY-MM-DD
formationJurisdiction  e.g. US-DE for a Delaware company registered here
principalAddress       { street1, street2, city, state, postalCode }
mailingAddress         { street1, street2, city, state, postalCode }
registeredAgent        { name, address }
officers               [{ name, title }] (titles verbatim per state)
industryCode           the state's own code, where published (CT has NAICS)

Every business also includes first_seen_at, changed_at, absent_since, source, and verified_at (the date of the last file that confirmed it). Fields depend on what each state publishes.

Six event payloads

Events are append-only. effective_at is when the state says it happened; observed_at is the date of the file we saw it in. Events include id, type, entity_id, both dates, and payload.

business.created
  { legalName, entityType, status, formationDate, formationJurisdiction }
  effective_at = formation date (or file date when unknown)
business.name_changed
  { from, to } or a source-published change
business.status_changed
  { from: { status, statusReason }, to: { status, statusReason } }
business.address_changed
  { field: "principalAddress" | "mailingAddress", from, to }
business.agent_changed
  { from, to } (registered agent objects)
business.officers_changed
  { added: [{ name, title }], removed: [{ name, title }] }

REST

Base URL: https://api.recordwirehq.com. Send Authorization: Bearer rk_live_.... JSON in and out; dates are YYYY-MM-DD. Lists return { data, next_cursor }; pass cursor back to page. Single-business responses use { data, next_cursor: null }.

GET /v1/businesses?jurisdiction=US-VA&formed_after=2026-09-01&status=active&entity_type=llc&q=acme&limit=50
GET /v1/businesses/US-VA:11406679
GET /v1/businesses/US-VA:11406679/events
GET /v1/events?type=business.created&jurisdiction=US-FL&since=2026-09-01&limit=100
GET /v1/events?observed_since=2026-09-07
GET /v1/sources

/v1/sources returns each state’s last file date, last completed run, run count, and entity count. Keys may be restricted to states; asking for another returns 403.

Query parameters
ParameterApplies toMeaning
jurisdictionBusinesses, eventsState code, for example US-VA
formed_after / formed_beforeBusinessesInclusive formation-date bounds
statusBusinessesactive, inactive, or pending_inactive
entity_typeBusinessesNormalized entity type, for example llc
qBusinessesCase-insensitive legal-name prefix
typeEventsOne of the six event types
since / untilEventsInclusive effective-date bounds
observed_sinceEventsInclusive file-date bound; sorts by observed_at instead of effective_at
limitBusinesses, events, business eventsPositive integer; default 50, maximum 500
cursorBusinesses, events, business eventsOpaque next_cursor from the previous page; keep filters unchanged

Business lists sort by formation date descending, unknown dates last. Events sort by effective date descending unless observed_since is set. Invalid dates, limits, and cursors return 400; invalid keys return 401; missing businesses return 404. Rate limits return 429 with Retry-After: 60.

REST
curl -H "Authorization: Bearer $KEY" \
  "https://api.recordwirehq.com/v1/businesses?jurisdiction=US-VA&formed_after=2026-09-01&limit=3"

MCP

The same five operations, using the same key.

MCP
claude mcp add registry --transport http https://api.recordwirehq.com/mcp \
  --header "Authorization: Bearer $KEY"
  • search_businesses
  • get_business
  • get_business_events
  • search_events
  • list_sources