> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fraudintelligencelimited.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Test keys

> Integrate without spending credits: published test subjects with fixed answers.

A test key scores a published set of test subjects against fixed synthetic data. Each one answers the same way every time, with the same response shape a live key gets at your tier, so you can build and check your integration before scoring real numbers.

* Test keys are never charged and never refused for credits. They are still rate limited.
* Create one in the [FIL portal](https://portal.fraudintelligencelimited.com) under **API Keys**, with **Mode: Test**.
* A test key scores only the subjects below. Anything else gets 422 `E_TEST_SUBJECT_UNKNOWN`: score real numbers with a live key.

Every number comes from a block reserved for fiction (Ofcom's drama ranges, US 555-01xx, Australia's fictional mobile numbers), and every IP from a documentation block, so none belongs to anyone.

## Test subjects

Each cell shows band / recommended action, the reason code, and the score. Bureau keys get the Assess answer.

| Subject | Scenario | Verify | Assess |
| - | - | - | - |
| `+447700900100` | Allocated UK mobile, nothing adverse; strong coverage | `minimal` / `allow`, `NO_ADVERSE_SIGNAL`, 7 | `minimal` / `allow`, `NO_ADVERSE_SIGNAL`, 7 |
| `+447700900123` | Unallocated range (impossible caller-ID) whose range risk is elevated (P90): the quickstart example | `high` / `step_up_auth`, `CLI_IMPOSSIBLE`, 75 | `critical` / `challenge`, `CLI_IMPOSSIBLE`, 88 |
| `+447700900200` | Allocated mobile in a range with elevated risk (P90), nothing else adverse | `minimal` / `allow`, `NO_ADVERSE_SIGNAL`, 7 | `low` / `watch`, `NDC_RANGE_ELEVATED`, 37 |
| `+447700900400` | Unallocated range (impossible caller-ID), range not scored | `high` / `step_up_auth`, `CLI_IMPOSSIBLE`, 75 | `high` / `step_up_auth`, `CLI_IMPOSSIBLE`, 75 |
| `+449098790500` | Premium-rate number | `minimal` / `allow`, `NO_ADVERSE_SIGNAL`, 7 | `low` / `watch`, `PREMIUM_TARIFF`, 27 |
| `+442079460123` | Close to a number the consortium reported (same block of 100) | `medium` / `investigate`, `PROXIMITY_100`, 55 | `medium` / `investigate`, `PROXIMITY_100`, 55 |
| `+442079460500` | Number the consortium reported (exact match): the only path to block | `critical` / `block`, `LEDGER_EXACT`, 95 | `critical` / `block`, `LEDGER_EXACT`, 95 |
| `+12025550142` | US number with thin coverage: a low score here means unwatched, not clean | `minimal` / `allow`, `NO_ADVERSE_SIGNAL`, 7 | `minimal` / `allow`, `NO_ADVERSE_SIGNAL`, 7 |
| `+61491570156` | Australian mobile with partial coverage | `minimal` / `allow`, `NO_ADVERSE_SIGNAL`, 7 | `minimal` / `allow`, `NO_ADVERSE_SIGNAL`, 7 |
| `192.0.2.10` | IP address nobody reported | `minimal` / `allow`, `NO_ADVERSE_SIGNAL`, 7 | `minimal` / `allow`, `NO_ADVERSE_SIGNAL`, 7 |
| `203.0.113.66` | IP address the consortium reported | `minimal` / `allow`, `NO_ADVERSE_SIGNAL`, 7 | `low` / `watch`, `LEDGER_IP_EXACT`, 27 |

At Assess, the UK numbers report `coverage: "strong"`, `+12025550142` reports `"thin"` and `+61491570156` reports `"partial"`. The two IP subjects list `origin_geography` and `origin_network` in `degraded_sources` at Assess, as live keys do while those components [aren't available](https://docs.fraudintelligencelimited.com/how-scoring-works.md#the-evidence).

## Try one

```bash theme={null}
curl -X POST https://api.fraudintelligencelimited.com/v1/score \
  -H "Authorization: Bearer $FIL_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{"subject": {"phone_number": "+447700900123"}}'
```

This is the [quickstart](https://docs.fraudintelligencelimited.com/quickstart.md) example: with a test key you get exactly the response shown there for your tier.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.