Skip to content

List blocklist entries

The risk.blocklist.list operation: GET /api/v1/risk/blocklist in the REST API and the risk_blocklist_list tool in the MCP server.

GET/api/v1/risk/blocklist

Lists the brand's blocklist in the mode of the request, newest first: emails, card fingerprints (the processor's), IP ranges and countries whose payments the risk rules refuse. Filter by kind, and by value with it (an email in any case, a bare IP address for its /24). Paginate with limit (1–100, default 10) and starting_after. Entries a rejected risk review added say so (source: review, evaluationId).

At a glance

  • REST: GET /api/v1/risk/blocklist
  • MCP tool: risk_blocklist_list
  • Operation ID: risk.blocklist.list
  • Scope: Brand
  • Permission: customers:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Pagination: limit (at most 100) and starting_after
  • Authentication: API key with the customers:read scope
  • Since: M9

Request

Query parameters

FieldTypeRequiredDescription
kindone of email, card_fingerprint, ip_range, countryNoEntries of one kind.
valuestringNoThe entry for one value (with kind; written as you like).
limitinteger (1 to 100)No
starting_afterrbl_… IDNoThe next_cursor of the previous page.

Response

200 OK with a JSON object, a page of the list (newest first):

FieldTypeDescription
object"list"
dataarray of object
data[].idrbl_… ID
data[].object"risk_blocklist_entry"
data[].livemodeboolean
data[].brandIdbrd_… ID
data[].kindone of email, card_fingerprint, ip_range, country
data[].valuestring
data[].reasonstring or null
data[].sourceone of operator, review
data[].evaluationIdrsk_… ID or null
data[].createdBystring
data[].createdAtdate-time
has_moreboolean
next_cursorrbl_… ID or null

Examples

The blocked emails

HTTP
GET /api/v1/risk/blocklist?kind=email
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "object": "list",
  "data": [
    {
      "id": "rbl_01m4ttwd3veh9apbewxheq5xr2",
      "object": "risk_blocklist_entry",
      "livemode": true,
      "brandId": "brd_01m4ttwd3veh9apbewxheq5xh5",
      "kind": "email",
      "value": "card.tester@example.com",
      "reason": "Tried six cards in ten minutes",
      "source": "operator",
      "evaluationId": null,
      "createdBy": "usr_01m4ttwd3veh9apbewxheq5xh6",
      "createdAt": "2026-10-20T09:00:00.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Is this card blocked?

HTTP
GET /api/v1/risk/blocklist?kind=card_fingerprint&value=Xo1abC9dEf2GhI3j
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "object": "list",
  "data": [
    {
      "id": "rbl_01m4ttwd3veh9apbewxheq5xr3",
      "object": "risk_blocklist_entry",
      "livemode": true,
      "brandId": "brd_01m4ttwd3veh9apbewxheq5xh5",
      "kind": "card_fingerprint",
      "value": "Xo1abC9dEf2GhI3j",
      "reason": "Risk review rsk_01m4ttwd3veh9apbewxheq5xr1 rejected: The cardholder doesn't know the customer.",
      "source": "review",
      "evaluationId": "rsk_01m4ttwd3veh9apbewxheq5xr1",
      "createdBy": "usr_01m4ttwd3veh9apbewxheq5xh6",
      "createdAt": "2026-10-20T09:00:00.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Errors

CodeHTTP statusWhenWhat to do
validation_failed400A filter or pagination value is invalid.Fix the fields listed in details.issues and send the request again.
permission_denied403You can't see this brand's customers.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: api_version_unsupported, authentication_required, api_key_invalid, scope_required, resource_not_found, dry_run_not_supported, rate_limited, internal_error.