GET /v1/firms/resolve
| Call | GET /v1/firms/resolve |
| Price | free |
| Scope | index:read |
| Operation id | resolveFirm |
What it does
Section titled “What it does”Turn a domain, name (with country), LEI, CIK, CRD or Companies House number into Verdict’s firm id and identifier crosswalk. Give exactly one reference parameter. Call it to dedupe companies or to get a firm_id before other calls; qualify_firm resolves on its own, so you do not need it first. Free. Unresolved references return a provisional firm (matched_on: provisional). Scope: index:read.
Example request
Section titled “Example request”Copy it as curl. Set VERDICT_API_KEY first; uuidgen makes a fresh Idempotency-Key.
curl -X GET 'https://api.askverdict.io/v1/firms/resolve?domain=northfieldcapital.com&country=US&lei=549300ABCDEF12345678&cik=1601234&crd=298765&companies_house=09876543' \ -H "Authorization: Bearer $VERDICT_API_KEY"Example response
Section titled “Example response”200: The resolved firm.
{ "firm": { "id": "frm_01JC3Z4Y8R9K2M5N7P1Q3S5T7V", "name": "Northfield Capital Advisors LLC", "domain": "northfieldcapital.com", "identifiers": { "crd": "298765", "lei": "549300ABCDEF12345678" }, "type": "investment_adviser", "size_band": "small", "hq": { "country": "US", "region": "MA", "city": "Boston" }, "status": "active", "provisional": false, "crosswalk": [ { "kind": "crd", "value": "298765", "source": "sec_edgar", "observed_at": "2026-10-28" }, { "kind": "lei", "value": "549300ABCDEF12345678", "source": "gleif", "observed_at": "2026-11-02" }, { "kind": "domain", "value": "northfieldcapital.com", "source": "sec_edgar", "observed_at": "2026-10-28" }, { "kind": "name_variant", "value": "Northfield Capital", "source": "wikidata", "observed_at": "2026-10-30" } ], "created_at": "2026-09-14T08:12:00Z", "updated_at": "2026-11-02T06:40:00Z" }, "matched_on": "domain"}Parameters
Section titled “Parameters”| Name | In | Type | Required | Description |
|---|---|---|---|---|
domain |
query | string | no | Resolve by web domain. |
name |
query | string | no | Resolve by name; add country to disambiguate. |
country |
query | string | no | Country hint for name. |
lei |
query | string | no | Resolve by LEI. |
cik |
query | string | no | Resolve by SEC CIK. |
crd |
query | string | no | Resolve by CRD number. |
companies_house |
query | string | no | Resolve by Companies House number. |
x-verdict-version |
header | string | no | API version to use, a date. Defaults to the version current when the key was created. The current version is 2026-11-01. |
Response fields (200)
Section titled “Response fields (200)”Schema ResolveFirmResponse.
| Field | Type | Required | Description |
|---|---|---|---|
firm |
Firm | yes | A canonical firm with its public facts and identifier crosswalk. |
firm.id |
string | yes | The firm id. |
firm.name |
string | yes | Canonical firm name. |
firm.domain |
string or null | yes | Primary web domain, if known. |
firm.identifiers |
object | yes | Registry identifiers, by kind. |
firm.identifiers.lei |
string | no | Legal Entity Identifier. |
firm.identifiers.cik |
string | no | SEC Central Index Key. |
firm.identifiers.crd |
string | no | CRD number. |
firm.identifiers.companies_house |
string | no | UK Companies House number. |
firm.identifiers.wikidata |
string | no | Wikidata item id. |
firm.type |
enum: “operating_company”, “investment_adviser”, “broker_dealer”, “investment_fund”, “nonprofit”, “public_body”, “other”, “unknown” | yes | Coarse firm type. |
firm.size_band |
enum: “micro”, “small”, “medium”, “large”, “enterprise”, “unknown” | yes | Employee-count size band. |
firm.hq |
object | yes | Headquarters location. |
firm.hq.country |
string or null | yes | ISO 3166-1 alpha-2 country. |
firm.hq.region |
string or null | yes | State, county or region, as the registry gives it. |
firm.hq.city |
string or null | yes | City. |
firm.status |
enum: “active”, “inactive”, “dissolved”, “unknown”, “merged” | yes | Registry status. |
firm.provisional |
boolean | yes | True when the firm was created from an unresolved reference and awaits nightly reconciliation. |
firm.crosswalk |
array of object | yes | Every known identifier, including name variants and secondary domains, with its source. |
firm.crosswalk[].kind |
enum: “domain”, “lei”, “cik”, “crd”, “companies_house”, “wikidata”, “name_variant” | yes | Identifier kind. |
firm.crosswalk[].value |
string | yes | Identifier value. |
firm.crosswalk[].source |
enum: “sec_edgar”, “gleif”, “companies_house”, “wikidata”, “request” | yes | Source that reported the identifier: an index source, or request when it came from a caller’s reference (provisional firms). |
firm.crosswalk[].observed_at |
string (date) | yes | Date the source last reported the identifier. |
firm.created_at |
string (date-time) | yes | When the firm entered the index. |
firm.updated_at |
string (date-time) | yes | When the firm’s record last changed. |
matched_on |
enum: “identifier”, “domain”, “name_and_country”, “match_decision”, “provisional” | yes | How the reference was matched. |
Errors
Section titled “Errors”Errors are RFC 9457 problem details and are never billed. Branch on type. See Errors.
| Status | Meaning |
|---|---|
400 |
Invalid request: malformed JSON, an unknown field, a failed constraint or a size limit (invalid_request). |
401 |
Missing, malformed, revoked or expired API key, or a bad webhook signature (unauthorized). |
403 |
The key lacks the scope this operation needs (forbidden_scope). |
429 |
Rate limited (rate_limited). Wait Retry-After seconds. |
500 |
Unexpected server error (internal). Not billed; retry with the same Idempotency-Key. |
Try it
Section titled “Try it”Open the interactive reference to send this request from the browser. The full document is at /openapi.json.