GET /apiv2/screening/providers
Providers available to your account, with prices, the networks each one covers and the scale its score is measured on.
This is the version 2 contract. It replaces GET /apiv2/aml/providers, which keeps working.
Endpoint URL
GET https://netts.io/apiv2/screening/providersRequest Headers
| Header | Required | Description |
|---|---|---|
| X-API-KEY | Yes | Your API key from the Netts dashboard |
Example Request
curl https://netts.io/apiv2/screening/providers \
-H "X-API-KEY: your_api_key"Response
{
"schema_version": 2,
"providers": [
{
"provider": "elliptic",
"price_usdt": "0.98",
"price_trx": "2.884881",
"available": true,
"networks": ["ada", "algo", "apt", "arb", "atom", "avax", "base", "bch",
"bnb", "bsc", "btc", "celo", "cro", "doge", "dot", "dydx",
"etc", "eth", "fil", "flr", "ftm", "gnosis", "hbar", "hype",
"icp", "inj", "linea", "ltc", "matic", "mob", "near", "okb",
"op", "sei", "sol", "strk", "sui", "tao", "ton", "trx",
"xdc", "xlm", "xrp", "xtz", "zec", "zen", "zil", "zksync"],
"score_scale": { "min": 0, "max": 10 }
}
],
"trx_rate_usd": "0.339702",
"supported_languages": ["en"]
}| Field | Type | Description |
|---|---|---|
| providers[].provider | string | Provider name, as sent in the body of a check |
| providers[].price_usdt | string | List price of one check, in USDT |
| providers[].price_trx | string | null | The same price converted at the current rate. null when the rate is unavailable |
| providers[].available | boolean | Whether checks can be ordered right now |
| providers[].reason | string | Present only when available is false. Currently quota_exhausted |
| providers[].networks | array | Network tickers this provider covers |
| providers[].score_scale | object | min and max of the provider's own score scale |
| trx_rate_usd | string | null | Rate used for the conversion |
| supported_languages | array | Report languages. Currently en only |
Prices are decimal strings for the same reason the numbers in a screening result are — see Numbers are strings. score_scale is ours rather than a provider's figure, so it stays a JSON number.
What this endpoint is for
It is the list of providers. The provider field of a check is a free-form string in the schema rather than an enumeration, precisely so that a new provider does not break anyone validating responses. The consequence is that the current list lives in data, not in the schema: read it here.
It is also the list of networks. The pairing matters — a provider does not necessarily cover every network. Ordering a check for a pair that is not covered returns 4004 before anything is charged.
And it is where the scale comes from. A score of 7 from one provider and 0.7 from another are not the same reading, and nothing in the number itself says which scale it belongs to. The scale also arrives inside every screening result, in risk.scale, so an integration that only reads results does not need this endpoint at all.
A provider your account cannot use is not listed. BitOK is restricted: it is granted per account rather than to everyone. An account without access does not see it here, does not see it in GET /apiv2/pricing, is refused at GET /apiv2/screening/price and at POST /apiv2/screening, both with 4002.
All four answers agree on purpose: what the list shows is what you can order. To ask for BitOK access, contact support. Elliptic is available to every account and is never affected by this.
What changed from version 1
Version 1 also returns supported_formats. That field belongs to the version 1 request model, where the format was fixed when the order was created; in version 2 there is no such field in the request, because the representation is chosen when reading the result, so the list is gone.
Until 13 September 2026 that list named four formats — rate, full, md and pdf — of which two were ever produced. Asking for pdf returned ordinary full, silently. Both endpoints now name only what they actually return, and version 1 refuses md and pdf in a request instead of quietly substituting something else.
Sub-user markup is included in price_trx, exactly as it is included in the amount charged.
Errors
RFC 9457, application/problem+json.
| Code | HTTP | When |
|---|---|---|
4010 / 4011 | 401 | No API key, or a key or IP that is not accepted |
Rate Limits
Shared with every other AML path: 5 requests per second, 150 per minute.