---
title: "Match CRM rows to records (entity resolution)"
method: POST
path: "/api/v1/match"
---

# Match CRM rows to records (entity resolution)

`POST /api/v1/match`

## Request

- Base URL: `https://api.datagalactica.com`
- URL: `https://api.datagalactica.com/api/v1/match`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`
  - API key in header `Ocp-Apim-Subscription-Key`
  - OAuth 2 (authorization code, authorization URL `https://datagalactica.com/oauth/authorize`, token URL `https://datagalactica.com/oauth/token`, scopes: `api`)

Up to 25 rows a call. Organisations by name + country/city/website; people (type person) by name + employer/title/city/country. Each row gets a verdict, a confidence and the matched record (brief).

## Request body

- object
  - `records` object[], required
    - `type` 'company' | 'person'
    - `name` string
    - `country` string
    - `city` string
    - `website` string
    - `employer` string
    - `title` string

## Response `200`

ok

- object
  - `ok` unknown, required
  - `data` object, required
    - `rows` integer
    - `matched` integer
    - `results` object[]
      - `row` integer
      - `verdict` string
      - `confidence` number
      - `match` object, nullable
  - `meta` Meta
    - `api` string
    - `standard` string
    - `docs` string
    - `note` string

## Other responses

- `400`: Bad request
- `401`: api_key_required, invalid_key, key_revoked or account_required: send an account key
- `402`: insufficient_balance: the wallet cannot pay for the call (top up: POST /api/v1/account/topup)
- `404`: Not found (not billed)
- `429`: Rate limited; see the retry-after header

---

[API](https://skmtc.dev/datagalactica/apis/data-galactica-api.md) · [All operations](https://skmtc.dev/datagalactica/apis/data-galactica-api/llms.txt) · [OpenAPI document](https://skmtc.dev/datagalactica/apis/data-galactica-api/revisions/0d024b0a280b?raw)
