Quickstart

Start·5 min·updated 2026-08-28

Three steps: create a key, send a string, key everything else on the ID that comes back. Everything else in the documentation is a parameter around those three.

Create a key

Sign up on the Developer plan — no card, 2,500 credits a month, hard stop rather than a bill. You get two keys. spk_test_ reads the full graph and is never billed; spk_live_ bills. Start with the resolve and read scopes and add more when you need them.

Worth knowing

Keys are secrets. Never put a spk_live_ key in client-side code, a mobile binary or a public repository. If one leaks, mail security@spotit.ai — we revoke it immediately and do not bill the calls it made.

Send a string

One field in. q takes whatever your source system holds — a legal name, a trade name, a name with an address glued to it, a name in the wrong case with the legal form abbreviated.

curlPOST /v1/resolve
$ export SPOTIT_KEY=spk_test_8f2c...

$ curl -s https://api.spotit.ai/v1/resolve \
    -H "Authorization: Bearer $SPOTIT_KEY" \
    -H "Content-Type: application/json" \
    -d '{"q":"nordwind logistik hamburg"}'
Response38 ms
{
  "match": {
    "entity_id": "ent_01JR8K3F5T2QW9",
    "confidence": 0.987,
    "decision": "auto_accept",
    "alternatives": 2
  },
  "entity": {
    "name": "Nordwind Logistik GmbH",
    "register": "HRB 148902",
    "authority": "Amtsgericht Hamburg",
    "status": "active",
    "lei": "529900NWLG7K2XQF4T81"
  }
}

Key on the ID, not the name

entity_id is the point of the call. Store it next to your own record and every later read is cheap, stable and free of matching: reads cost 0.2 credits, and lineage, history and relations cost nothing.

A name is not an identifier. Nordwind Logistik GmbH was Nordwind Spedition GmbH until April 2019, and the register kept the same HRB 148902 throughout. If you keyed on the name you now have two rows; if you keyed on the ID you have one row with a rename in its history.

Reading the record you just resolved21 ms
$ curl -s https://api.spotit.ai/v1/entities/ent_01JR8K3F5T2QW9 \
    -H "Authorization: Bearer $SPOTIT_KEY"

$ curl -s https://api.spotit.ai/v1/entities/ent_01JR8K3F5T2QW9/lineage \
    -H "Authorization: Bearer $SPOTIT_KEY"   # free, on every plan

Hints, and what each one buys

Every hint you can pass narrows the candidate set before scoring. They are optional and they are worth passing when you have them.

HintEffect on top-1When to pass it
country+4.1 ptAlways, if you know it
address or postcode+2.8 ptAny address fragment helps
register or VAT number+9.4 ptSkips scoring entirely on an exact hit
domain+3.2 ptStrongest signal for trade names
as_ofWhen the record is historical

Handle the three outcomes

decision is the field to branch on. It is calibrated per jurisdiction, so the same threshold means the same thing in Germany and in Poland.

  • auto_accept — take the ID. On SPOT-Bench v4 this band is right 99.4% of the time.
  • review — a human should look. alternatives carries up to 10 candidates with the field-level evidence for each.
  • no_match — nothing crossed the floor. You are not billed for a miss.

Thresholds, the four scorers behind the score, and how to pick a review band for your own cost of error are in the matching guide.

Next

Try it against your own data

The Developer plan is free forever and needs no card. 2,500 credits is enough to answer the only question that matters: does it resolve your records.