Validate x402 endpoint
Changed onValidates an x402 endpoint's bazaar-discovery configuration by probing the seller's URL live. Returns a uniform array of preflight check results (reachable, returns402, hasBazaarExtension, parse) and a simulated facilitator accept/reject decision so sellers and agents can confirm their endpoint is ready to be discovered before going live. This operation is read-only: it performs no payment and does not index the resource.
Request
- Base URL: https://api.cdp.coinbase.com/platform
- URL: https://api.cdp.coinbase.com/platform/v2/x402/validate
- Auth: HTTP none
Request body
Example request
{
"resource": "https://api.example.com/weather/forecast",
"method": "GET"
}Response
Successfully validated the x402 endpoint.
Example response
{
"valid": true,
"statusCode": 402,
"x402Version": 2,
"preflight": [
{
"check": "reachable",
"passed": true,
"detail": "Endpoint responded within the timeout.",
"severity": "required"
},
{
"check": "returns_402",
"passed": true,
"detail": "Endpoint responded with HTTP 402 Payment Required.",
"expected": "402",
"actual": "402",
"severity": "required"
},
{
"check": "has_bazaar_extension",
"passed": true,
"detail": "Payment requirements include the bazaar discovery extension.",
"severity": "required"
},
{
"check": "parse",
"passed": true,
"detail": "Payment requirements parsed successfully.",
"severity": "required"
}
],
"paymentRequirements": {
"scheme": "exact",
"network": "base",
"maxAmountRequired": "100000",
"resource": "https://api.example.com/weather/forecast",
"description": "Real-time weather forecast data.",
"mimeType": "application/json",
"payTo": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"maxTimeoutSeconds": 60
},
"bazaarExtension": {
"info": {
"input": {
"type": "http",
"method": "GET"
}
},
"schema": {}
},
"simulation": {
"outcome": "accepted"
},
"index": {
"active": true,
"lastCrawledAt": "2026-06-01T12:00:00Z",
"quality": {
"l30DaysTotalCalls": 42,
"l30DaysUniquePayers": 15,
"lastCalledAt": "2026-06-01T12:00:00Z"
}
}
}Changes
- warning
added the new
incompatible_event_typesenum value to theresponse property for the response status - warning
added the new
incompatible_event_typesenum value to theresponse property for the response status - warning
added the new
incompatible_event_typesenum value to theresponse property for the response status - warning
added the new
incompatible_event_typesenum value to theresponse property for the response status - warning
added the new
invalid_webhook_headersenum value to theresponse property for the response status - warning
added the new
invalid_webhook_headersenum value to theresponse property for the response status - warning
added the new
invalid_webhook_headersenum value to theresponse property for the response status - warning
added the new
invalid_webhook_headersenum value to theresponse property for the response status - warning
added the new
invalid_webhook_urlenum value to theresponse property for the response status - warning
added the new
invalid_webhook_urlenum value to theresponse property for the response status - warning
added the new
invalid_webhook_urlenum value to theresponse property for the response status - warning
added the new
invalid_webhook_urlenum value to theresponse property for the response status - warning
added the new
mandate_action_pendingenum value to theresponse property for the response status - warning
added the new
mandate_action_pendingenum value to theresponse property for the response status - warning
added the new
mandate_action_pendingenum value to theresponse property for the response status - warning
added the new
mandate_action_pendingenum value to theresponse property for the response status - warning
added the new
mandate_canceledenum value to theresponse property for the response status - warning
added the new
mandate_canceledenum value to theresponse property for the response status - warning
added the new
mandate_canceledenum value to theresponse property for the response status - warning
added the new
mandate_canceledenum value to theresponse property for the response status - warning
added the new
mandate_expiredenum value to theresponse property for the response status - warning
added the new
mandate_expiredenum value to theresponse property for the response status - warning
added the new
mandate_expiredenum value to theresponse property for the response status - warning
added the new
mandate_expiredenum value to theresponse property for the response status - warning
added the new
mandate_invalid_statusenum value to theresponse property for the response status - warning
added the new
mandate_invalid_statusenum value to theresponse property for the response status - warning
added the new
mandate_invalid_statusenum value to theresponse property for the response status - warning
added the new
mandate_invalid_statusenum value to theresponse property for the response status - warning
added the new
mandate_policy_violationenum value to theresponse property for the response status - warning
added the new
mandate_policy_violationenum value to theresponse property for the response status - warning
added the new
mandate_policy_violationenum value to theresponse property for the response status - warning
added the new
mandate_policy_violationenum value to theresponse property for the response status - warning
added the new
mandate_revokedenum value to theresponse property for the response status - warning
added the new
mandate_revokedenum value to theresponse property for the response status - warning
added the new
mandate_revokedenum value to theresponse property for the response status - warning
added the new
mandate_revokedenum value to theresponse property for the response status - warning
added the new
subscription_limit_exceededenum value to theresponse property for the response status - warning
added the new
subscription_limit_exceededenum value to theresponse property for the response status - warning
added the new
subscription_limit_exceededenum value to theresponse property for the response status - warning
added the new
subscription_limit_exceededenum value to theresponse property for the response status
- warning
- warning
added the new
mfa_challenge_not_foundenum value to theresponse property for the response status - warning
added the new
mfa_challenge_not_foundenum value to theresponse property for the response status - warning
added the new
mfa_challenge_not_foundenum value to theresponse property for the response status - warning
added the new
mfa_challenge_not_foundenum value to theresponse property for the response status - warning
added the new
operation_in_progressenum value to theresponse property for the response status - warning
added the new
operation_in_progressenum value to theresponse property for the response status - warning
added the new
operation_in_progressenum value to theresponse property for the response status - warning
added the new
operation_in_progressenum value to theresponse property for the response status
- warning