Services

List all x402 services

Returns a paginated list of registered x402 services with computed fields like uptime, pricing, and endpoint count. Supports filtering by network, status, category, verification state, signability of the 402 envelope, and full-text search.

get/services

Request

  • Base URL: https://x402-list.com/api/v1
  • URL: https://x402-list.com/api/v1/services
  • Auth: none declared

Query parameters

networkstring

Filter by single network abbreviation (e.g. BSE, SOL, POL; the full list is served by /networks). An unrecognized abbreviation returns 400 Bad Request.

status'online' | 'degraded' | 'offline' | 'unknown'

Filter by service status. An unrecognized value returns 400 Bad Request; omit the parameter to include every status.

category'AI' | 'Blockchain' | 'Compute' | 'Content' | 'Data' | 'Finance' | 'Other' | 'Verification'

Filter by category, one of the closed category set (case-insensitive). A value outside the set returns 400 Bad Request; omit to include every category.

verified'true' | 'false'

Filter by the FORTE verification tier: a paid delivery-probe settled on-chain and delivered AND the badge was not since revoked on payTo/schema drift (no time decay). true = delivery-verified only, false = everything else. Omit to include both. SEMANTIC CHANGE (treno D3): this filter previously meant "answered a valid x402 challenge and is alive" - that broad signal is now the payment_ready parameter. This tier starts empty and grows only with real payments, so verified=true can legitimately return 0 rows. Applied server-side, so meta.total counts the filtered set. Any other value returns 400 Bad Request.

payment_ready'true' | 'false'

Filter by the BASE payment-ready tier: the endpoint answered a valid x402 402 challenge and is alive within the decay window (a probe success within the last 7 days, or it is api-key exempt). true = payment-ready only, false = everything else. Omit to include both. This is the broad discovery signal the verified parameter used to carry before treno D3. Applied server-side, so meta.total counts the filtered set. Any other value returns 400 Bad Request.

source'submitted' | 'imported' | 'imported:bazaar' | 'imported:x402scan' | 'all'

Filter by provenance (how the listing entered the directory, matching the source field on each item): submitted, imported (any imported:* origin), imported:bazaar, imported:x402scan, or all for no filter. An unrecognized value returns 400 Bad Request.

signable'true' | 'false'

Filter on the SIGNABILITY of the last observed 402 envelope: true = no EVM route of the service was observed missing the EIP-712 domain parameters (extra.name and extra.version) that a standard x402 client requires in order to sign a payment; false = at least one such route was observed. This describes the payment envelope on the wire, not the merit or reliability of the service. Derived from the eip712_domain_extra check of the latest assessment (the same id that appears in assessment.compliance_failed_checks). A service whose latest assessment has not measured that check yet (never assessed, assessed before the check existed, or assessed with no 402 payload captured at all) matches NEITHER value: omit the parameter to include it. Applied server-side, so meta.total counts the filtered set. Any other value returns 400 Bad Request.

sort'newest' | 'uptime' | 'cheapest' | 'endpoints'

Sort order. A value outside the enum returns 400 Bad Request.

qstring

Case-insensitive substring search across name, description, category, and base URL. The search and query parameters are accepted as aliases; q takes precedence when more than one is sent.

pageinteger

Page number

per_pageinteger

Results per page

Response

Paginated list of services. Shared-cacheable for up to 5 minutes (Cache-Control: public, max-age=300, s-maxage=300, stale-while-revalidate=60); carries no per-IP X-Meter-* or X-RateLimit-* headers.

Example response

{
  "data": [
    {
      "slug": "weather-x402",
      "name": "Weather x402",
      "category": "Data",
      "source": "submitted"
    }
  ],
  "provenance": {
    "attribution": "Data: x402-list.com (CC BY 4.0)",
    "cite_as": "https://x402-list.com/services/acme-generate",
    "source": "https://x402-list.com"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.