x402 Facilitator

Search x402 resources

Changed on

Searches for active x402 resources using a text query and optional filters. Supports both text-based and vector-based search depending on availability. Results are sorted by relevance and quality score. Legacy network names (e.g., base, base-sepolia, solana) are automatically normalized to their CAIP-2 equivalents. The response is limited to 20 items per request. If more results exist, partialResults will be true.

get/v2/x402/discovery/search

Request

  • Base URL: https://api.cdp.coinbase.com/platform
  • URL: https://api.cdp.coinbase.com/platform/v2/x402/discovery/search
  • Auth: HTTP none

Query parameters

querystring
Example:weather forecast

Full-text or semantic search query to find matching resources.

networkstring
Example:eip155:8453

Filter results by network in CAIP-2 format (e.g., eip155:8453) or legacy name (e.g., base, base-sepolia, solana). Legacy names are normalized to their CAIP-2 equivalents before filtering.

assetstring
Example:0x036CbD53842c5426634e7929541eC2318f3dCF7e

Filter results by asset address. For EVM networks, provide a 0x-prefixed EVM address. For Solana networks, provide a base58-encoded address. Matching is case-insensitive.

schemestring
Example:exact

Filter results by payment scheme (e.g., exact).

payTostring

A blockchain address. Format varies by network (e.g., 0x-prefixed for EVM, base58 for Solana).

Example:0x742d35Cc6634C0532925a3b844Bc454e4438f44e

Filter results by the merchant's payment address. For EVM networks, provide a 0x-prefixed EVM address. For Solana networks, provide a base58-encoded address.

urlSubstringstring
Example:api.example.com

Filter results to resources whose URL contains this value (case-insensitive substring match against the resource URL). Useful for narrowing results to a specific domain, subdomain, or path segment. Combine with query to perform semantic search restricted to a URL subset. Tip: include enough of the URL to disambiguate (e.g. api.example.com rather than example) — a short substring may also match resources whose path contains the same string.

maxUsdPricestring
Example:1.00

Filter results to resources with a USD price at or below this value.

extensionsstring[]

Filter results to resources that support the specified protocol extensions. Can be specified multiple times to filter by multiple extensions.

[
  "bazaar"
]
tagsstring[]

Filter results to resources published with any of the specified provider tags (case-sensitive exact match). Can be specified multiple times to filter by multiple tags; a resource matches if it carries at least one of the supplied tags (OR).

[
  "weather",
  "data"
]
bundleSlugsstring[]

Filter results to resources that belong to any of the specified curated bundles (by bundle slug). Can be specified multiple times to filter by multiple bundles; a resource matches if it belongs to at least one of the supplied bundles (OR).

[
  "defi-trading",
  "onchain-data"
]
curatedOnlyboolean
Example:true

When true, restrict results to Coinbase-curated resources (those with curated: true). When false or omitted, both curated and non-curated resources are returned.

limitinteger

Maximum number of resources to return. Must be a positive integer no greater than 20. Defaults to 20.

Response

Successfully retrieved matching x402 resources.

partialResultsboolean required

Indicates whether the result set was truncated because there were more results than the requested limit.

searchMethod'text' | 'vector' | 'hybrid'

The search method used to retrieve the results (e.g., "text", "vector", "hybrid").

x402Version1 | 2 required

The version of the x402 protocol.

Example response

{
  "resources": [
    {
      "resource": "https://api.example.com/weather/forecast",
      "description": "Real-time weather forecast data.",
      "type": "http",
      "x402Version": 2,
      "lastUpdated": "2024-01-15T10:30:00Z",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "1000000",
          "payTo": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
          "asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
          "maxTimeoutSeconds": 60
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "GET"
            }
          },
          "schema": {}
        }
      },
      "quality": {
        "l30DaysTotalCalls": 42,
        "l30DaysUniquePayers": 15,
        "lastCalledAt": "2024-01-15T10:30:00Z"
      },
      "serviceName": "Weather API",
      "tags": [
        "weather",
        "data"
      ],
      "iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/...",
      "curated": true,
      "skillUrl": "https://skills.cdp.coinbase.com/weather-api/SKILL.md"
    }
  ],
  "searchMethod": "text",
  "x402Version": 2
}

Changes

    • warning

      added the new incompatible_event_types enum value to the response property for the response status

    • warning

      added the new incompatible_event_types enum value to the response property for the response status

    • warning

      added the new incompatible_event_types enum value to the response property for the response status

    • warning

      added the new incompatible_event_types enum value to the response property for the response status

    • warning

      added the new invalid_webhook_headers enum value to the response property for the response status

    • warning

      added the new invalid_webhook_headers enum value to the response property for the response status

    • warning

      added the new invalid_webhook_headers enum value to the response property for the response status

    • warning

      added the new invalid_webhook_headers enum value to the response property for the response status

    • warning

      added the new invalid_webhook_url enum value to the response property for the response status

    • warning

      added the new invalid_webhook_url enum value to the response property for the response status

    • warning

      added the new invalid_webhook_url enum value to the response property for the response status

    • warning

      added the new invalid_webhook_url enum value to the response property for the response status

    • warning

      added the new mandate_action_pending enum value to the response property for the response status

    • warning

      added the new mandate_action_pending enum value to the response property for the response status

    • warning

      added the new mandate_action_pending enum value to the response property for the response status

    • warning

      added the new mandate_action_pending enum value to the response property for the response status

    • warning

      added the new mandate_canceled enum value to the response property for the response status

    • warning

      added the new mandate_canceled enum value to the response property for the response status

    • warning

      added the new mandate_canceled enum value to the response property for the response status

    • warning

      added the new mandate_canceled enum value to the response property for the response status

    • warning

      added the new mandate_expired enum value to the response property for the response status

    • warning

      added the new mandate_expired enum value to the response property for the response status

    • warning

      added the new mandate_expired enum value to the response property for the response status

    • warning

      added the new mandate_expired enum value to the response property for the response status

    • warning

      added the new mandate_invalid_status enum value to the response property for the response status

    • warning

      added the new mandate_invalid_status enum value to the response property for the response status

    • warning

      added the new mandate_invalid_status enum value to the response property for the response status

    • warning

      added the new mandate_invalid_status enum value to the response property for the response status

    • warning

      added the new mandate_policy_violation enum value to the response property for the response status

    • warning

      added the new mandate_policy_violation enum value to the response property for the response status

    • warning

      added the new mandate_policy_violation enum value to the response property for the response status

    • warning

      added the new mandate_policy_violation enum value to the response property for the response status

    • warning

      added the new mandate_revoked enum value to the response property for the response status

    • warning

      added the new mandate_revoked enum value to the response property for the response status

    • warning

      added the new mandate_revoked enum value to the response property for the response status

    • warning

      added the new mandate_revoked enum value to the response property for the response status

    • warning

      added the new subscription_limit_exceeded enum value to the response property for the response status

    • warning

      added the new subscription_limit_exceeded enum value to the response property for the response status

    • warning

      added the new subscription_limit_exceeded enum value to the response property for the response status

    • warning

      added the new subscription_limit_exceeded enum value to the response property for the response status

    • warning

      added the new mfa_challenge_not_found enum value to the response property for the response status

    • warning

      added the new mfa_challenge_not_found enum value to the response property for the response status

    • warning

      added the new mfa_challenge_not_found enum value to the response property for the response status

    • warning

      added the new mfa_challenge_not_found enum value to the response property for the response status

    • warning

      added the new operation_in_progress enum value to the response property for the response status

    • warning

      added the new operation_in_progress enum value to the response property for the response status

    • warning

      added the new operation_in_progress enum value to the response property for the response status

    • warning

      added the new operation_in_progress enum value to the response property for the response status