x402 census · agent402.tools · 1ad079634cc6 · JSON
POST /api/openapi-search
live
Search operations in an OpenAPI 3.x or Swagger 2.x spec against a free-text query. Tokenizes the query (lowercase, alphanumeric runs), scores each operation by which fields the tokens match - operationId +3, path +3, tags +2, summary +2, description +1 per matched token - and returns ranked results with a `matches` array naming the contributing fields. Sort: score descending, then path ascending …
Verdict: live. The unpaid GET reached a valid 402. The live amount equals the catalog price.
Facts from the catalogs
| Field | Value |
|---|---|
| URL | https://agent402.tools/api/openapi-search |
| Method | POST |
| Price | $0.001 USDC = 1000 atomic units of 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| Network | eip155:8453 (base); also accepts eip155:137, eip155:42161, eip155:143, eip155:43114, eip155:1329, eip155:10, eip155:4663, eip155:42220, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, stellar:pubnet |
| payTo | 0xaBF4FAbd7c416fB67202E5f9002389Fc75e2a9D0 |
| Seller | agent402.tools |
| Catalogs | cdp (row updated 2026-09-30) |
| Listed since (lower bound) | 2026-09-30 (earliest catalog timestamp; catalogs report last-update times only) |
| Last catalog update | 2026-09-30 |
| CDP quality counters | 1 calls and 1 unique payers in 30 days, last call 2026-09-21 (catalog-reported, not verified on chain) |
| Category (keyword rule) | research/reports |
| Templated path | no |
| x402Version in catalog | 2 |
| Service name / tags | OpenAPI operation search · conversion, openapi, swagger, search, ranking |
Unpaid probe (census of 2026-09-30)
| Field | Value |
|---|---|
| Probed at | 2026-09-30T23:43:50.343Z |
| HEAD | 402 |
| GET | 402 |
| Verdict | live live: valid 402 to an unpaid GET |
| 402 carried in | body |
| x402Version in the 402 | 2 |
| accepts[0] | {"scheme":"exact","network":"eip155:8453","amount":"1000","payTo":"0xaBF4FAbd7c416fB67202E5f9002389Fc75e2a9D0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}} |
| Live amount equals catalog price | yes |
| Live payTo equals catalog payTo | yes |
| extensions.bazaar in the 402 | yes |
| PAYMENT-REQUIRED header | no |
| WWW-Authenticate offer | Payment id="boJ1_Jl3F7WFF4HlTgdWsSeNpXmw |
| Content type / server / CORS | application/json / railway-hikari / * |
| Latency | 1,821 ms |
| Error | Payment required |
No hourly re-probe has reached this resource yet; the cron covers a rotating slice of 150 per hour.
On-chain facts for the payTo (public address)
| Field | Value |
|---|---|
| Distinct payers | 120 |
| Payments | 1,253 |
| USDC volume | $12.29 |
| Median payment | $0.003 |
| First / last payment | 2026-06-18 / 2026-09-30 |
| Sampler-shaped share of payments | 61.8% |
| Payers that are not samplers | 2 |
| Source | forensics-2026-09-30 |
| Address | 0xaBF4FAbd7c416fB67202E5f9002389Fc75e2a9D0 (contract: EIP7702StatelessDeleGator) |
Declared input and output (extensions.bazaar)
{
"input": {
"body": {
"query": "user avatar",
"spec": {
"paths": {
"/posts": {
"get": {
"operationId": "listPosts",
"responses": {
"200": {}
},
"summary": "List posts",
"tags": [
"posts"
]
}
},
"/users/{id}": {
"get": {
"operationId": "getUser",
"responses": {
"200": {}
},
"summary": "Get a user",
"tags": [
"users"
]
}
},
"/users/{id}/avatar": {
"put": {
"operationId": "uploadUserAvatar",
"responses": {
"200": {}
},
"summary": "Upload user avatar",
"tags": [
"users"
]
}
}
}
}
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"type": "json",
"example": {
"results": [
{
"matches": [
"operationId",
"path",
"summary",
"tags"
],
"method": "PUT",
"operationId": "uploadUserAvatar",
"path": "/users/{id}/avatar",
"score": 18,
"summary": "Upload user avatar",
"tags": [
"users"
]
},
{
"matches": [
"operationId",
"path",
"summary",
"tags"
],
"method": "GET",
"operationId": "getUser",
"path": "/users/{id}",
"score": 10,
"summary": "Get a user",
"tags": [
"users"
]
}
],
"total": 2
}
}
}
Try it (unpaid: shows the 402)
curl -si -X POST 'https://agent402.tools/api/openapi-search' -H 'accept: application/json' -H 'content-type: application/json' --data '{}'
The catalog declares POST. A 402 answer carries the payment requirements in the JSON body and, for x402 v2, base64 in the PAYMENT-REQUIRED header. This page never sends a payment.
Paid checks (x402, USDC on Base)
GET https://bazaar.agentexchange.work/r/1ad079634cc6/probe.json re-runs this probe right now for $0.01 and writes the result here. POST https://bazaar.agentexchange.work/featured with {"id":"1ad079634cc6"} places this resource at the top of the report and search pages for 30 days for $1.00, labelled. Unpaid requests answer 402 with the terms. Pricing.
Catalog references: agentic.market (CDP Bazaar front end) · this record as JSON · all resources on agent402.tools.