---
title: "Find a company's id by domain or name"
method: GET
path: "/v1/companies/resolve"
---

# Find a company's id by domain or name

`GET /v1/companies/resolve`

## Request

- Base URL: `https://api.reqbeat.com`
- URL: `https://api.reqbeat.com/v1/companies/resolve`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Turn a website or a company name into the `company_id` every
company-scoped endpoint takes.

Pass exactly one of `domain` or `name`; both or neither is a 422 naming
that rule. A domain returns the companies registered at it; a name returns
up to five candidates, each with a `match_confidence` -- 1.0 for an exact
name, 0.8 for a match once legal suffixes are dropped.

Each company carries its `country_code` and `coverage_status`, and no
hiring signal -- ask `/v1/companies/{company_id}/is-hiring` for that.
Nothing matching is an empty array, never a 404. Not billable.

Requires the `read` scope.

## Query parameters

- `domain` string, nullable: The company's website: a bare host ('stripe.com') or a full URL ('https://www.stripe.com/jobs'). Matched exactly once the scheme, path and 'www.' are dropped. Pass this or `name`, not both.
- `name` string, nullable: The company's name, matched case-insensitively and then with legal suffixes dropped. Pass this or `domain`, not both.

## Response `200`

Successful Response

- CompanyMatchResponse[]
  - `company_id` integer, required
  - `company_name` string, nullable, required
  - `company_domain` string, nullable, required
  - `country_code` string, nullable, required: The posting country's ISO-3166-1 alpha-2 code, uppercase (`DE`, `US`), derived from `country` and never stored. `null` when `country` is absent or is not a country this corpus names — never a guess. Note this is an output only: the `geo`/`country` filter still takes the name, because a bare two-letter code is ambiguous on input (`CA` is Canada to ISO and California to this column).
  - `coverage_status` 'ats_direct_hit' | 'board_hit' | 'no_ats_signal' | 'unsupported_ats', required
  - `match_confidence` number, required

## Other responses

- `401`: No API key was sent.
- `403`: The presented key is invalid or revoked, or (see `x-required-scope` on this operation) it does not carry the scope this operation requires.
- `422`: Validation Error
- `429`: Too many calls in the current 60-second window. The limit is per API key, set by the key's plan, and shared by every metered REST route and MCP tool; the shared demo key is limited per IP address instead. Wait `Retry-After` seconds and retry. The `RateLimit-*` headers are absent when `reason` is `key_throttled`.

---

[API](https://skmtc.dev/reqbeat/apis/reqbeat-api.md) · [All operations](https://skmtc.dev/reqbeat/apis/reqbeat-api/llms.txt) · [OpenAPI document](https://skmtc.dev/reqbeat/apis/reqbeat-api/revisions/4758e5957e8c?raw)
