1. Get an API key
Keys are created in the FIL portal under API Keys. Each key has a tier, up to your plan’s, so you can keep a Verify key for quick checks beside an Assess key for full analysis; each call costs its key’s tier’s credits. The tier is applied server-side, so the key is all you send. While you build, create a key with Mode: Test: it scores the published test subjects with fixed answers, free. Keys look likefilk_… and are shown once at creation. Store it in a secret manager.
2. Score a number
Subjects are E.164:+, country code, subscriber number — no national trunk zero. Send +443444930787, not +44 (0)344…. A trunk zero won’t error; it will quietly resolve to no numbering range and score as unattested.
+447700900123 is one of the published test subjects: it plays a number from an unallocated range (an impossible caller-ID) whose range risk is elevated, and a test key always returns the answer below. When you’re ready to score real numbers, switch to a live key. What comes back depends on your tier:
- Verify
- Assess
subject block, but not the evidence behind them. The number sits in an unallocated range (allocated: false), so it scores high / step_up_auth. suppressed lists what Assess adds.3. Read the three answers
Every response answers in three layers:
A clean number reads differently:
band: "minimal", recommended_action: "allow", every component clean or unmatched — and, from Assess, coverage tells you how much reporting stood behind that answer. A low score with thin coverage means unwatched, not clean.
4. Retrieve the evidence later
Every score is retained for 13 months and retrievable by itsscore_id, with the key that scored it:
Next
- How scoring works — bands, tiers, coverage, degradation.
- Errors and limits — rate limits, credits, idempotency, retries.
- API reference — the full contract. It’s served by the API itself at
/v1/openapi.yaml, so it can never drift from deployed behaviour; point any OpenAPI tool at it to generate a client.