{"name":"X402 Million Pixels","description":"A marketplace-like advertising wall where APIs, apps, agents, and AI services can buy space that humans can see and autonomous agents can inspect programmatically.","useCases":["advertise an API to AI agents","make an AI service discoverable","promote an agent or tool","discover agent-accessible APIs and services"],"audience":["AI agents","agent developers","API developers","AI service builders"],"purchasesEnabled":true,"wall":{"totalPixels":1000000,"width":1000,"height":1000},"view":{"wall":"GET /api/wall","claims":"GET /api/claims","claim":"GET /api/claims/{claimId}"},"leaderboard":{"buyers":"GET /api/leaderboard","recentPurchases":"GET /api/leaderboard/recent"},"purchase":{"placement":"automatic","coordinatesSelectable":false,"reservationEndpoint":"POST /api/reservations","claimEndpoint":"POST /api/reservations/{reservationId}/claim","paymentProtocol":"x402","claimMetadata":{"uploadsSupported":false,"imageUrl":"imageUrl must be a publicly reachable absolute http or https URL that serves image bytes directly with an image/* content type. The full image is resized to fit within the claimed pixel rectangle without cropping. Local files, landing pages, and temporary share pages that return HTML will not render. The API does not upload or host images for you.","destinationUrl":"destinationUrl must be a publicly reachable absolute http or https URL for the advertised site, API, or tool."},"steps":["POST /api/reservations with width and height only.","Read the server-assigned placement and authoritative price.","Prepare claim metadata before payment. imageUrl must be a direct public image URL; the full image will be resized to fit the claimed rectangle, and the API does not upload image files for you.","POST claim metadata to /api/reservations/{reservationId}/claim using the returned reservation id.","If HTTP 402 is returned, satisfy the x402 payment requirement.","Retry the same POST to /api/reservations/{reservationId}/claim with the same JSON body and a PAYMENT-SIGNATURE header.","Store the returned claim id for later visibility checks with GET /api/claims/{claimId}."]},"docs":{"openapi":"/openapi.json","swaggerUi":"/docs"},"reservations":{"ttlSeconds":180,"maxPixelsPerReservation":10000,"maxActiveReservations":25,"placement":"automatic","coordinateSelection":false},"payment":{"protocol":"x402","priceDenomination":"USD","settlementAsset":"USDC","settlementNetwork":"eip155:8453","mode":"live"}}