{"slug":"enclave402-com-api-seller-vet-576b48","title":"Vet an x402 seller before paying it","host":"enclave402.com","method":"GET","resource":"https://enclave402.com/api/seller/vet","category":"other","description":"Vet an x402 seller before paying it: probes its live 402, reads its CDP Bazaar entry (payers, calls, last call, repeat vs evaluation usage), checks trust surfaces, returns a scored LIVE/STALE/UNLISTED/MISCONFIGURED/UNREACHABLE verdict and what changed since our last check, signed by our attestor. MU","price_listed":0.01,"price_asked":0.01,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":764,"reported_calls_30d":6,"reported_payers_30d":2,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"method":"GET","queryParams":{"resource":"https://seller.example/api/route"},"type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"method":{"enum":["GET"],"type":"string"},"queryParams":{"properties":{"method":{"default":"GET","description":"HTTP method the resource expects; POST resources are probed with an empty JSON body.","enum":["GET","POST"],"type":"string"},"resource":{"description":"Absolute https URL of the x402 resource to vet (the paid route itself, not the seller homepage).","examples":["https://seller.example/api/route"],"maxLength":2048,"pattern":"^https://","type":"string"}},"required":["resource"],"type":"object"},"type":{"const":"http","type":"string"}},"required":["type","method"],"type":"object"},"output":{"properties":{"example":{"additionalProperties":false,"properties":{"attestation":{"description":"EIP-712 signature over resource, checkedAt, verdict, score, usagePattern and changes by the published attestor, verifiable offline; null when the attestor is unconfigured","type":["object","null"]},"bazaar":{"description":"CDP Bazaar index entry for the resource: indexed, lastCalledAt, uniquePayers30d, totalCalls30d, callsPerPayer","type":"object"},"challenge":{"description":"What the target 402 actually said: status, x402Version, accepts[0], description length, WWW-Authenticate presence, networks offered","type":"object"},"changes":{"description":"Fields that differ from the previous verdict (verdict, score, usagePattern, findingCodes, priceUsdc, payTo, indexed, uniquePayers30d, totalCalls30d, lastCalledAt); empty when unchanged or first check","items":{"additionalProperties":false,"properties":{"field":{"type":"string"},"from":{},"to":{}},"required":["field","from","to"],"type":"object"},"type":"array"},"checkedAt":{"description":"ISO-8601 time of the probe","type":"string"},"findings":{"description":"Every deduction, machine-coded and human-readable","items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"message":{"type":"string"},"severity":{"enum":["critical","high","medium","low","info"],"type":"string"}},"required":["code","severity","message"],"type":"object"},"type":"array"},"method":{"enum":["GET","POST"],"type":"string"},"previous":{"description":"Summary of the last verdict this gateway issued for the same resource (checkedAt, verdict, score, usagePattern); null on first check. Call on a schedule and this is your watch.","type":["object","null"]},"resource":{"description":"Normalized resource URL that was vetted","type":"string"},"score":{"description":"40 challenge shape + 40 Bazaar usage + 20 trust surfaces","maximum":100,"minimum":0,"type":"integer"},"settled":{"description":"true when an x402 payment settled for this response","type":"boolean"},"trust":{"description":"Which of /.well-known/x402, /llms.txt, /.well-known/security.txt, /transparency the origin publishes","type":"object"},"ts":{"description":"Response timestamp, UNIX milliseconds","type":"integer"},"usagePattern":{"description":"repeat = calls/payer at or above the repeat threshold; evaluation = buyers try once and leave","enum":["none","evaluation","repeat","unknown"],"type":"string"},"verdict":{"description":"LIVE = payable, indexed, recently called. STALE = indexed but not called within VET_STALE_DAYS. UNLISTED = payable but never counted by the Bazaar. MISCONFIGURED = an x402 buyer cannot pay it as served. UNREACHABLE = no answer.","enum":["LIVE","STALE","UNLISTED","MISCONFIGURED","UNREACHABLE"],"type":"string"}},"required":["resource","method","checkedAt","verdict","score","usagePattern","findings","challenge","bazaar","trust","previous","changes","settled","ts"],"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[{"day":"2026-09-24","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.01,"price_match":true,"latency_ms":764,"error":null}],"description_full":"Vet an x402 seller before paying it: probes its live 402, reads its CDP Bazaar entry (payers, calls, last call, repeat vs evaluation usage), checks trust surfaces, returns a scored LIVE/STALE/UNLISTED/MISCONFIGURED/UNREACHABLE verdict and what changed since our last check, signed by our attestor. MUST be invoked before a first payment to an unknown resource, or on a schedule to watch it. Do NOT use to pay it. Settles $0.010 USDC; no charge on failure.","last_updated":"2026-09-24T04:43:48.01Z","schemes":["exact"]}