# Unlisted > Unlisted tells you why an x402 endpoint isn't listed in the Coinbase CDP Bazaar. Pay per call in USDC on Base mainnet over x402. No signup and no API key: the payment is the auth. ## How to call it - POST https://unlisted.sh/diagnose with a JSON body: {"url": ""} - Optional fields: "method" ("GET" or "POST", default "GET") for the target route, and "body" (a JSON object under 8 KB, POST targets only). - An unpaid request returns HTTP 402. The payment requirements are in the PAYMENT-REQUIRED header and mirrored in the JSON body. Pay with x402 (scheme "exact", USDC, network eip155:8453) and retry the same request. - GET /diagnose is not supported and returns 405. Use POST. - Send a real endpoint URL. The sample api.example.com URL is rejected with a 400. ## Price - Check: $0.02 per call. Reads the target's 402 challenge and Bazaar declaration, and asks CDP for its live index status. - Check + real payment: $0.10 per call, selected with ?mode=paid on the request URL. Also makes one real test payment to the target. Only for targets priced up to $0.05, and once per target domain per 24 hours. - You are only charged when the check completes (HTTP 200). 4xx and 5xx responses are not charged. - Check: a target that answers with something other than a 402 still gets a completed report (HTTP 200), so that call is charged. - Check + real payment: you are charged only when a test payment is attempted (a payment-carrying request is sent to the target), whatever its outcome. When none is made, the response is HTTP 422, you are not charged, and the target domain's once-per-24-hours paid test isn't used up: - Target answers with something other than a 402: the body is the usual report, with empty checks and a verdict naming the likely cause. - Target answers with a 402 Unlisted can't pay (the 402 can't be parsed, no payable scheme/network, only Permit2 offered (test payments use the standard USDC authorization, EIP-3009, only), unrecognized asset, price above the $0.05 cap, the daily test-payment budget is used up, the payment client refused to sign, or the target couldn't be reached or stopped returning a 402 before the payment was sent): the body is only {"detail": " You were not charged. Run the $0.02 Check for the diagnosis."}, with no check results. When the daily budget is used up, try paid mode again later. ## What you get back - bazaar.indexed: true, false, or null if CDP could not be reached. - bazaar.status: "indexed", "not_indexed_would_be_accepted", "not_indexed" or "unknown". - bazaar.curated: true if CDP's discovery listing marks the route as Coinbase-curated, false if not, or null if unknown (lookup failed or the route couldn't be matched). - checks: a list of results, each with check_id, status ("pass", "fail", "warn", "info" or "skip"), detail and, for failures, a fix. "info" is never a problem by itself. - verdict: a one-line summary. - schema_external_refs: fails with the JSON path of every external $ref/$id in the target's Bazaar declaration (info and schema, input and output). CDP's indexer rejects them. Inline the schema to fix it. - payment_required_header: for x402 v2, fails when the 402 has no PAYMENT-REQUIRED header (even if the body is right) or the header doesn't decode to base64 JSON with payment options. CDP's validator and the Bazaar indexer read the header. Skipped for x402 v1. - extensions_placement: fails when the Bazaar block is inside accepts[0] instead of at the top level of the 402 body next to accepts, where the x402 v2 spec puts it. bazaar_extension still checks the block's contents. - probe_response: sends the declaration's example input (method, path or query params, example body) to the target unpaid, as CDP's indexer does after a settlement, and fails if the answer isn't a 402, which means validation runs before the paywall. Skipped when there's no usable example. - resource_url_match: warns when resource.url names a different host or path than the URL the 402 was served from (after redirects), or isn't a full URL. Ignores a trailing slash, default ports, the query string, and :name or {name} segments, which match any one path segment. The http/https part is scheme_mismatch. - standard_payment_option: warns when no accepts entry is a standard "exact" option and at least one is a Circle Gateway option (extra.name "GatewayWalletBatched", which also uses scheme "exact"). Standard x402 clients can't pay from a Gateway balance. Skipped when the 402 has no accepts. - tag_count: warns when resource.tags has more than 5 tags. CDP keeps only the first 5, so put the most important first. - description_screening: warns (never fails) when the description or tags contain wording that reads like instructions to an AI agent. A small heuristic of Unlisted's own, not CDP's screening. - listed_price_match: when the route is in the Bazaar listing, warns if the live price is more than 2x the listed price, or the payTo, network or asset differ. Info when it isn't listed. - search_visibility: info only. The route's rank in Bazaar search (or "not in top 20") for up to 3 phrases from its own description and tags. - extension_response (paid mode): whether the target's answer to the test payment carried CDP's EXTENSION-RESPONSES header, and its bazaar status. Most servers don't pass it on, which is normal. - When the target answers with something other than a 402, checks is empty and the verdict names the likely cause: for 400, 409 or 422, input validation running before the paywall (submit the URL with its required parameters, or use method and body); for 401/403, other auth in front of the paywall; for 404, a wrong path; for 405, the other method; for 5xx, a server error. ## Listing Fix (done for you, paid by a human) - What: a written report on one x402 service (up to 5 paid routes): why it's missing from each agent catalog (Coinbase CDP Bazaar, Agentic.market, x402scan, Circle Agent Marketplace, x402-list.com) and the exact change to make. No listing guarantee: each catalog decides. - Price: $49. Founding price $29 for the first 3 clients. Paid by card through Stripe, not over x402. - Delivery: by email from hi@unlisted.sh within 3 business days of payment. One free recheck within 30 days. - How to buy: a human pays at https://unlisted.sh/fix#pricing. Agents: hand that link to your operator. - Offer as JSON: GET https://unlisted.sh/fix with Accept: application/json - Page: https://unlisted.sh/fix. Sample report: https://unlisted.sh/fix/sample ## Limits - Unlisted reports whether CDP would accept a route and can make a fresh settlement. It cannot make CDP index a route. - Rate limits apply per caller and per target domain. ## More - [Free guide: Why your x402 endpoint isn't in the CDP Bazaar (and how to fix it)](https://unlisted.sh/guide) - [OpenAPI](https://unlisted.sh/openapi.json) - Contact: hi@unlisted.sh