Skip to main content
POST
Search companies
Run a query across company names and status and return matching companies. Each hit includes the full company entity plus a match block telling you which field drove the result. Each request is billed at a flat rate. Fetching the next page counts as a separate request.

Query syntax

The q field uses a Google-style query language. It runs against the current legal name, plus alternative names (DBAs, trade names, aliases) and previous legal names — both matched by default and reported in the entity’s names list. Set match_alternative_names or match_previous_names to false to narrow the search to the legal name.

Terms

  • Wordacme matches the word acme in any searched field.
  • Quoted phrase"acme holdings" matches the two words adjacent and in order. Wildcards inside quoted phrases are rejected.
  • Prefix wildcardacme* matches any word starting with acme. The * must be the last character of the word; embedded or leading wildcards are rejected.

Operators

  • ANDacme AND holdings (also implicit: acme holdings is the same).
  • ORacme OR ajax.
  • Parentheses(acme OR ajax) AND holdings to override precedence. AND binds tighter than OR.
Operators are case-sensitive: lowercase and / or are treated as plain words.

Examples

Limits

  • Syntax errors return 400 Bad Request with a positional message in the detail field.

Pagination

Page sizes are capped at 100. Walk pages by following summary.next_page until it returns null:

Authorizations

X-API-Key
string
header
required

Body

application/json
q
string
required

Search query. Supports Google-style syntax: AND/OR, parentheses, quoted phrases, and prefix wildcards.

Example:

"acme"

match_alternative_names
boolean
default:true

Also match against DBAs, trade names, and other alternative names.

match_previous_names
boolean
default:true

Also match against historical legal names.

jurisdictions
string
default:all

Either 'all' or a comma-separated list of jurisdiction codes (e.g. 'us_de,us_ca').

status
enum<string>
default:any

Filter by registry status. 'unknown' matches records with no published status; 'any' disables the filter.

Available options:
active,
inactive,
unknown,
any
limit
integer
default:100

Results per page, 1 to 100.

Required range: 1 <= x <= 100
page
integer
default:1

1-based page number.

Required range: x >= 1

Response

Successful search response.

page
integer
required

1-based page number of this response.

request
object
required

Echo of the request as resolved by the server.

summary
object
required

Aggregate match counts and pagination cursor.

results
object[]
required

Matching companies, ordered by jurisdiction code then company number. Empty when nothing matched.