x402 endpoint preflight
Probe a public endpoint without paying, grade its x402 v2 challenge, check exact-host x402-list presence and traction, and optionally rank licensed market matches with buyer-concentration caveats.
Endpoint
https://apiacre.com/v1/developer/x402-preflightSend the JSON body below. An unpaid request returns HTTP 402 with a PAYMENT-REQUIRED header; an x402-compatible buyer signs the requirement and retries with PAYMENT-SIGNATURE.
Pay $0.05 USDC and run in your browserOfficial Coinbase agent path
Coinbase Agentic Wallet can satisfy this x402 request in one command. Running it may pay automatically, so --max-amount is fixed to $0.05 USDC in atomic units. Copying the command does not install, authenticate, sign, or pay; review the request and use a separate low-value wallet before running it.
npx --yes awal@latest x402 pay https://apiacre.com/v1/developer/x402-preflight \
-X POST \
-d '{"url":"https://apiacre.com/v1/developer/openapi-audit","method":"POST","body":{"document":"{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\",\"version\":\"1\"},\"paths\":{}}","format":"json"},"market_query":"audit","market_limit":1}' \
--max-amount 50000 \
--jsonCoinbase pay-for-service documentation · Buyer setup and wallet safety
Alternative third-party AgentCash commands
Run check first without payment. Its fetch command may automatically pay up to the exact listed price.
npx --yes agentcash@latest check https://apiacre.com/v1/developer/x402-preflight
npx --yes agentcash@latest fetch https://apiacre.com/v1/developer/x402-preflight \
--method POST \
--header 'content-type: application/json' \
--body '{"url":"https://apiacre.com/v1/developer/openapi-audit","method":"POST","body":{"document":"{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\",\"version\":\"1\"},\"paths\":{}}","format":"json"},"market_query":"audit","market_limit":1}' \
--payment-protocol x402 \
--payment-network base \
--max-amount 0.050Input example
{
"url": "https://apiacre.com/v1/developer/openapi-audit",
"method": "POST",
"body": {
"document": "{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\",\"version\":\"1\"},\"paths\":{}}",
"format": "json"
},
"market_query": "audit",
"market_limit": 1
}Response shape
{
"request_id": "018f1f54-7f38-7ba2-8dc3-5f90272d9f1a",
"service": "developer.x402-preflight",
"version": "1",
"data": {
"url": "https://apiacre.com/v1/developer/openapi-audit",
"finalUrl": "https://apiacre.com/v1/developer/openapi-audit",
"method": "POST",
"statusCode": 402,
"elapsedMs": 128,
"compliant": true,
"grade": "A",
"score": 100,
"gradeVersion": "apiacre-x402-preflight/1",
"checks": [
{
"id": "http_402",
"passed": true,
"severity": "high",
"message": "Return HTTP 402 before payment."
},
{
"id": "header_decodes",
"passed": true,
"severity": "high",
"message": "PAYMENT-REQUIRED decodes to a JSON object."
},
{
"id": "x402_v2",
"passed": true,
"severity": "high",
"message": "Set x402Version to the integer 2."
},
{
"id": "caip2_network",
"passed": true,
"severity": "high",
"message": "Use a valid CAIP-2 network identifier."
},
{
"id": "resource_binding",
"passed": true,
"severity": "medium",
"message": "Bind resource.url to the endpoint that returned the payment requirement."
}
],
"payment": {
"version": 2,
"acceptsCount": 1,
"scheme": "exact",
"network": "eip155:8453",
"amount": "50000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0xa0BFa4f07281c9b248DC3AED2217836BcA24869B"
},
"directoryEvidence": {
"version": "apiacre-x402-directory-evidence/1",
"source": {
"name": "x402 List",
"url": "https://x402-list.com",
"apiUrl": "https://x402-list.com/api/v1/services",
"documentationUrl": "https://x402-list.com/api",
"license": "CC-BY-4.0",
"licenseUrl": "https://creativecommons.org/licenses/by/4.0/",
"attributionRequired": true,
"attribution": "Data: x402-list.com (CC BY 4.0)",
"access": "No-auth read with a 2,000-request daily free quota; API Acre never pays the upstream."
},
"target": {
"status": "matched",
"hostname": "apiacre.com",
"matchMethod": "exact_host",
"matchCount": 1,
"matches": [
{
"slug": "api-acre",
"name": "API Acre",
"description": "Pay-per-call x402 APIs for agents with machine-readable schemas and samples.",
"baseUrl": "https://apiacre.com",
"websiteUrl": "https://apiacre.com",
"category": "Data",
"status": "online",
"verified": false,
"paymentReady": true,
"endpointCount": 35,
"networks": [
"eip155:8453"
],
"priceUsd": {
"minimum": 0.001,
"maximum": 0.25
},
"compliance": {
"grade": "A",
"passed": 14,
"total": 14
},
"reliability": {
"uptime30dPct": 99.6,
"responseP95Ms": 223,
"priceStability": 0.0
},
"traction": {
"status": "measured",
"volumeUsdc30d": 2.124,
"settlements30d": 74,
"uniqueBuyers30d": 5,
"topBuyerShare30d": 0.943503,
"volumeOutsideTopBuyerUsdc30d": 0.12,
"sharedPayout": false,
"sharedWith": 0,
"proQuotaShare": 1.0,
"lastSettlementAt": "2026-08-14T14:29:25Z",
"caveat": "Conservative measured floor; operator validation can be present and is not identified by the directory."
},
"lastCheckedAt": "2026-08-15T04:23:09.951Z",
"assessmentUpdatedAt": "2026-08-15T01:43:05.729Z"
}
],
"retrievedAt": "2026-08-15T04:30:00+00:00",
"cached": false,
"reason": null
},
"market": {
"status": "ok",
"query": "audit",
"totalMatches": 31,
"returned": 1,
"sourcePageTruncated": false,
"results": [
{
"slug": "webbersites-x402-data-api",
"name": "WebberSites x402 Data API",
"description": "Pay-per-call data and utility API for AI agents with web, document, developer, and structured-data tools.",
"baseUrl": "https://api.webbersites.com",
"websiteUrl": "https://x402.webbersites.com",
"category": "Data",
"status": "online",
"verified": false,
"paymentReady": true,
"endpointCount": 37,
"networks": [
"eip155:8453"
],
"priceUsd": {
"minimum": 0.001,
"maximum": 0.05
},
"compliance": {
"grade": "A",
"passed": 14,
"total": 14
},
"reliability": {
"uptime30dPct": 100.0,
"responseP95Ms": 205,
"priceStability": 0.0
},
"traction": {
"status": "measured",
"volumeUsdc30d": 4.274,
"settlements30d": 443,
"uniqueBuyers30d": 70,
"topBuyerShare30d": 0.332007,
"volumeOutsideTopBuyerUsdc30d": 2.855,
"sharedPayout": false,
"sharedWith": 0,
"proQuotaShare": 1.0,
"lastSettlementAt": "2026-08-14T23:18:13Z",
"caveat": "Conservative measured floor; service-level activity is not endpoint attribution or a revenue forecast."
},
"lastCheckedAt": "2026-08-15T04:41:09.686Z",
"assessmentUpdatedAt": "2026-08-15T01:33:01.858Z"
}
],
"retrievedAt": "2026-08-15T04:30:00+00:00",
"cached": false,
"reason": null,
"rankingMethod": "Unique buyers, then volume outside the top buyer, settlements, and volume; missing measurements rank last."
},
"limitations": [
"Directory and traction observations are time-specific measured floors, not endorsements or forecasts.",
"Distinct buyers and settlements are service-level measurements and cannot be summed into ecosystem-unique totals.",
"Shared-payout fields and the source caveat must be inspected before comparing services.",
"The target hostname and optional market query are sent to x402-list.com without credentials or payment headers."
]
},
"remediation": [],
"checkedAt": "2026-08-09T00:00:00+00:00",
"limitations": "One unpaid target request only; no payment is signed and the target response is not retained. Licensed directory enrichment is time-specific and may be unavailable."
},
"meta": {
"duration_ms": 42,
"cached": false,
"sources": [],
"warnings": [],
"next_actions": []
}
}Try the payment challenge
curl -i -X POST 'https://apiacre.com/v1/developer/x402-preflight' \
-H 'content-type: application/json' \
--data '{"url":"https://apiacre.com/v1/developer/openapi-audit","method":"POST","body":{"document":"{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\",\"version\":\"1\"},\"paths\":{}}","format":"json"},"market_query":"audit","market_limit":1}'