Agent Exchange x402 census and directory

x402 census · agent402.tools · a1f10b272492 · JSON

POST /api/openapi-lint

live

Score an OpenAPI 3.x or Swagger 2.x spec on agent-readiness - i.e. does an LLM-driven caller have what it needs to call the API correctly without guessing. Returns a 0..100 score, severity counts, and a structured list of violations with stable rule codes. Checks: documented title/servers/paths, per-operation summary/description/operationId/tags, documented 2xx + error responses, param descriptio…

Verdict: live. The unpaid GET reached a valid 402. The live amount equals the catalog price.

Facts from the catalogs

FieldValue
URLhttps://agent402.tools/api/openapi-lint
MethodPOST
Price$0.002 USDC = 2000 atomic units of 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Networkeip155:8453 (base); also accepts eip155:137, eip155:42161, eip155:143, eip155:43114, eip155:1329, eip155:10, eip155:4663, eip155:42220, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, stellar:pubnet
payTo0xaBF4FAbd7c416fB67202E5f9002389Fc75e2a9D0
Selleragent402.tools
Catalogscdp (row updated 2026-09-30), payai (row updated 2026-07-01)
Listed since (lower bound)2026-07-01 (earliest catalog timestamp; catalogs report last-update times only)
Last catalog update2026-09-30
CDP quality counters1 calls and 1 unique payers in 30 days, last call 2026-09-21 (catalog-reported, not verified on chain)
Category (keyword rule)inference/llm
Templated pathno
x402Version in catalog2
Service name / tagsOpenAPI agent-readiness lint · validation, openapi, swagger, lint, score

Unpaid probe (census of 2026-09-30)

FieldValue
Probed at2026-09-30T23:49:43.476Z
HEAD402
GET402
Verdictlive live: valid 402 to an unpaid GET
402 carried inbody
x402Version in the 4022
accepts[0]{"scheme":"exact","network":"eip155:8453","amount":"2000","payTo":"0xaBF4FAbd7c416fB67202E5f9002389Fc75e2a9D0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}
Live amount equals catalog priceyes
Live payTo equals catalog payToyes
extensions.bazaar in the 402yes
PAYMENT-REQUIRED headerno
WWW-Authenticate offerPayment id="u0xA_qnh6Vr6tO0Au54LDl1JdlSB
Content type / server / CORSapplication/json / railway-hikari / *
Latency1,380 ms
ErrorPayment 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)

FieldValue
Distinct payers120
Payments1,253
USDC volume$12.29
Median payment$0.003
First / last payment2026-06-18 / 2026-09-30
Sampler-shaped share of payments61.8%
Payers that are not samplers2
Sourceforensics-2026-09-30
Address0xaBF4FAbd7c416fB67202E5f9002389Fc75e2a9D0 (contract: EIP7702StatelessDeleGator)

Declared input and output (extensions.bazaar)

{
 "input": {
  "body": {
   "spec": {
    "info": {
     "description": "An example API",
     "title": "Demo",
     "version": "1.0.0"
    },
    "openapi": "3.0.0",
    "paths": {
     "/users": {
      "get": {
       "parameters": [
        {
         "description": "Max results",
         "in": "query",
         "name": "limit",
         "schema": {
          "example": 10,
          "type": "integer"
         }
        }
       ],
       "responses": {
        "200": {
         "content": {
          "application/json": {
           "schema": {
            "type": "array"
           }
          }
         },
         "description": "ok"
        },
        "400": {
         "description": "bad input"
        }
       },
       "summary": "List users",
       "tags": [
        "users"
       ]
      }
     }
    },
    "servers": [
     {
      "url": "https://api.example.com"
     }
    ]
   }
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
 },
 "output": {
  "type": "json",
  "example": {
   "counts": {
    "error": 0,
    "info": 0,
    "warning": 1
   },
   "ok": true,
   "score": 97,
   "violations": [
    {
     "location": "GET /users",
     "message": "Operation has no operationId - agents can't refer to this call by a stable name.",
     "rule": "operation-missing-operationid",
     "severity": "warning"
    }
   ]
  }
 }
}

Try it (unpaid: shows the 402)

curl -si -X POST 'https://agent402.tools/api/openapi-lint' -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/a1f10b272492/probe.json re-runs this probe right now for $0.01 and writes the result here. POST https://bazaar.agentexchange.work/featured with {"id":"a1f10b272492"} 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: PayAI listing status · agentic.market (CDP Bazaar front end) · this record as JSON · all resources on agent402.tools.