pub struct X402ValidateResponse {
pub bazaar_extension: Option<Map<String, Value>>,
pub index: Option<X402ValidateIndex>,
pub payment_requirements: Option<X402PaymentRequirements>,
pub preflight: Vec<X402ValidateCheck>,
pub simulation: X402ValidateSimulation,
pub status_code: Option<i64>,
pub valid: bool,
pub x402_version: Option<i64>,
}Expand description
Response from validating an x402 endpoint’s bazaar-discovery configuration.
JSON schema
{
"description": "Response from validating an x402 endpoint's bazaar-discovery configuration.",
"examples": [
{
"bazaarExtension": {
"info": {
"input": {
"method": "GET",
"type": "http"
}
},
"schema": {}
},
"index": {
"active": true,
"lastCrawledAt": "2026-06-01T12:00:00Z",
"quality": {
"l30DaysTotalCalls": 42,
"l30DaysUniquePayers": 15,
"lastCalledAt": "2026-06-01T12:00:00Z"
}
},
"paymentRequirements": {
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"description": "Real-time weather forecast data.",
"maxAmountRequired": "100000",
"maxTimeoutSeconds": 60,
"mimeType": "application/json",
"network": "base",
"payTo": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"resource": "https://api.example.com/weather/forecast",
"scheme": "exact"
},
"preflight": [
{
"check": "reachable",
"detail": "Endpoint responded within the timeout.",
"passed": true,
"severity": "required"
},
{
"actual": "402",
"check": "returns_402",
"detail": "Endpoint responded with HTTP 402 Payment Required.",
"expected": "402",
"passed": true,
"severity": "required"
},
{
"check": "has_bazaar_extension",
"detail": "Payment requirements include the bazaar discovery extension.",
"passed": true,
"severity": "required"
},
{
"check": "parse",
"detail": "Payment requirements parsed successfully.",
"passed": true,
"severity": "required"
}
],
"simulation": {
"outcome": "accepted"
},
"statusCode": 402,
"valid": true,
"x402Version": 2
}
],
"type": "object",
"required": [
"bazaarExtension",
"index",
"paymentRequirements",
"preflight",
"simulation",
"statusCode",
"valid",
"x402Version"
],
"properties": {
"bazaarExtension": {
"description": "The `extensions.bazaar` block from the endpoint's discovery metadata, or `null` if the bazaar extension was absent or the endpoint was not reachable. Lets sellers verify the discovery configuration their endpoint is advertising.",
"examples": [
{
"info": {
"input": {
"method": "GET",
"type": "http"
}
},
"schema": {}
}
],
"type": [
"object",
"null"
],
"additionalProperties": true
},
"index": {
"description": "Bazaar index status for the endpoint, or `null` if the endpoint is not yet indexed. Present on every response regardless of simulation outcome.",
"type": [
"object",
"null"
],
"allOf": [
{
"$ref": "#/components/schemas/x402ValidateIndex"
}
]
},
"paymentRequirements": {
"description": "The raw decoded payment requirements returned by the endpoint, or `null` if the endpoint was not reachable or did not return a parseable 402 payload. Lets sellers inspect exactly what their endpoint is advertising.",
"type": [
"object",
"null"
],
"allOf": [
{
"$ref": "#/components/schemas/x402PaymentRequirements"
}
]
},
"preflight": {
"description": "All check results in run order. Well-known check names are `reachable`, `returns_402`, `has_bazaar_extension`, and `parse`. Additional checks may be added in future versions.",
"type": "array",
"items": {
"$ref": "#/components/schemas/x402ValidateCheck"
}
},
"simulation": {
"$ref": "#/components/schemas/x402ValidateSimulation"
},
"statusCode": {
"description": "The HTTP status code returned by the endpoint, or `null` if the endpoint was not reachable.",
"examples": [
402
],
"type": [
"integer",
"null"
]
},
"valid": {
"description": "Whether the endpoint is valid: all preflight checks passed and the facilitator would index the resource.",
"examples": [
true
],
"type": "boolean"
},
"x402Version": {
"description": "The x402 protocol version advertised by the endpoint, or `null` if it could not be determined. Intentionally a bare integer rather than the `X402Version` enum so the validator can surface unsupported or malformed version values returned by non-conforming endpoints.",
"examples": [
2
],
"type": [
"integer",
"null"
]
}
}
}Fields§
§bazaar_extension: Option<Map<String, Value>>The extensions.bazaar block from the endpoint’s discovery metadata, or null if the bazaar extension was absent or the endpoint was not reachable. Lets sellers verify the discovery configuration their endpoint is advertising.
index: Option<X402ValidateIndex>Bazaar index status for the endpoint, or null if the endpoint is not yet indexed. Present on every response regardless of simulation outcome.
payment_requirements: Option<X402PaymentRequirements>The raw decoded payment requirements returned by the endpoint, or null if the endpoint was not reachable or did not return a parseable 402 payload. Lets sellers inspect exactly what their endpoint is advertising.
preflight: Vec<X402ValidateCheck>All check results in run order. Well-known check names are reachable, returns_402, has_bazaar_extension, and parse. Additional checks may be added in future versions.
simulation: X402ValidateSimulation§status_code: Option<i64>The HTTP status code returned by the endpoint, or null if the endpoint was not reachable.
valid: boolWhether the endpoint is valid: all preflight checks passed and the facilitator would index the resource.
x402_version: Option<i64>The x402 protocol version advertised by the endpoint, or null if it could not be determined. Intentionally a bare integer rather than the X402Version enum so the validator can surface unsupported or malformed version values returned by non-conforming endpoints.