{"components":{"schemas":{"Error":{"additionalProperties":true,"properties":{"error":{"description":"a short stable code: invalid_request, invalid_payment, body_too_large, payment_in_progress, rate_limited, unavailable, upstream_failed, not_fetched, settlement_failed, expired, internal_error, not_found, method_not_allowed","type":"string"},"message":{"description":"a human sentence","type":"string"}},"required":["error","message"],"type":"object"}}},"info":{"contact":{"email":"agdata@shveik.dev"},"description":"Email inboxes for AI agents, by the hour: pay in stablecoins, get an address, wait for a message with one call and read the code or the link out of it. Endpoints: inbox-1h, inbox-1h-renew, inbox-4h, inbox-4h-renew, inbox-24h, inbox-24h-renew. An order returns an inbox id and a secret once the payment is accepted; the inbox takes mail when the payment has settled. GET /v1/inbox/{id}/wait and /otp (Authorization: Bearer secret) block until a message arrives. A renew call extends an inbox. Payment is in stablecoins: x402 on Base, Polygon and Solana or MPP on Base. x402 uses the exact scheme; no API keys, accounts or subscriptions. A call that cannot be served is never charged. Feedback is free: POST /feedback (or the MCP tool feedback) sends a note to the people who run the service.","title":"agmail","version":"1.0.0","x-guidance":"POST a small JSON body (see each operation's requestBody) with no payment to get a 402 carrying a PAYMENT-REQUIRED header (x402) and a WWW-Authenticate: Payment challenge (MPP). Sign either and retry the same request with a PAYMENT-SIGNATURE header (x402) or Authorization: Payment (MPP) to receive the JSON dataset. The 402 quotes the price for your requested limit: a fixed per-call fee plus a per-result price for each result; endpoints without a limit field return one result. If fewer results come back than you asked for, the per-result price of the missing ones is refunded on-chain to the paying address (refunds too small to be worth a transfer are not sent); a scrape with no results keeps only the fixed fee and refunds every result; a failed scrape is not settled. Response headers X-Agdata-Results-Requested, X-Agdata-Results-Delivered and X-Agdata-Refund (USDC base units) report it."},"openapi":"3.1.0","paths":{"/mpp/inbox-1h":{"post":{"description":"Get an email address for your agent for one hour: name@agmail.shveik.dev, a name of your choice or a random one. Pay in stablecoins with x402 or MPP, no account and no card. Wait for the verification mail with one call and get the code or the link back. Receive only. Extend it by paying again. Send the JSON body with no payment to get a 402 with an MPP challenge (WWW-Authenticate) and an x402 challenge (PAYMENT-REQUIRED); sign the MPP one (evm/authorization) and retry with an Authorization header. Both paths take either protocol: /x402/\u003cname\u003e and /mpp/\u003cname\u003e are the same endpoint.","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"the local part of the address; omit it for a random name","maxLength":32,"minLength":3,"pattern":"^[a-zA-Z0-9]([a-zA-Z0-9._-]{1,30})[a-zA-Z0-9]$","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array"}}},"description":"The dataset, after the payment settled.","headers":{"PAYMENT-RESPONSE":{"description":"Base64 x402 settlement response (x402 payments).","schema":{"type":"string"}},"Payment-Receipt":{"description":"MPP receipt (MPP payments).","schema":{"type":"string"}},"X-Agdata-Refund":{"description":"USDC base units refunded to the paying address for results not delivered (only when a refund is due).","schema":{"type":"string"}},"X-Agdata-Results-Delivered":{"description":"Number of results delivered.","schema":{"type":"string"}},"X-Agdata-Results-Requested":{"description":"Number of results the quote was for.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request: a request body that is invalid (a payment was attached; without a payment an invalid body gets the 402 below), or a payment header that cannot be read (error invalid_payment). Nothing is charged."},"402":{"content":{"application/json":{"schema":{"description":"The x402 PaymentRequired object (the same as the PAYMENT-REQUIRED header).","type":"object"}}},"description":"Payment required: the quote, with both challenges (also the answer when a payment was not accepted: read error). An unpaid request with an invalid body also gets this 402, quoted for 1 result, with X-Agdata-Invalid-Request: 1 and the reason in error; do not sign that one.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 payment-required JSON.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"MPP Payment challenge (RFC 9110 auth-params): id, realm, method=evm, intent=charge, request.","schema":{"type":"string"}},"X-Agdata-Invalid-Request":{"description":"1 when the request body is invalid and the quote is for 1 result only.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The same payment is already being worked on: wait and retry with the same payment."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The stored copy of this payment's result has expired (error expired): nothing is charged or run; sign a new payment to ask again."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request body is over 65536 bytes."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many calls for this host or route are in flight (Retry-After: 5): no payment was taken.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"string"}}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal error: no payment was settled for it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream scrape failed (error upstream_failed), or the payment could not be settled (settlement_failed). Nothing is delivered; an upstream failure is not charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Temporarily unavailable (the endpoint, a payment network or the upstream is switched off or over its failure budget): no payment was taken. Try again later."}},"summary":"Inbox for one hour","x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"mpp":{"currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","intent":"charge","method":"evm"}}]}}},"/mpp/inbox-1h-renew":{"post":{"description":"Extend an inbox by one hour. Send the inbox id and the inbox secret in the JSON body. Pay in stablecoins with x402 or MPP. The address and its mail stay. An inbox that is not extended stops at its expiry and its mail is deleted shortly after. Send the JSON body with no payment to get a 402 with an MPP challenge (WWW-Authenticate) and an x402 challenge (PAYMENT-REQUIRED); sign the MPP one (evm/authorization) and retry with an Authorization header. Both paths take either protocol: /x402/\u003cname\u003e and /mpp/\u003cname\u003e are the same endpoint.","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"inbox_id":{"description":"the inbox id returned by the order","pattern":"^ib_[0-9a-f]{12}$","type":"string"},"secret":{"description":"the inbox secret returned by the order","type":"string"}},"required":["inbox_id","secret"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array"}}},"description":"The dataset, after the payment settled.","headers":{"PAYMENT-RESPONSE":{"description":"Base64 x402 settlement response (x402 payments).","schema":{"type":"string"}},"Payment-Receipt":{"description":"MPP receipt (MPP payments).","schema":{"type":"string"}},"X-Agdata-Refund":{"description":"USDC base units refunded to the paying address for results not delivered (only when a refund is due).","schema":{"type":"string"}},"X-Agdata-Results-Delivered":{"description":"Number of results delivered.","schema":{"type":"string"}},"X-Agdata-Results-Requested":{"description":"Number of results the quote was for.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request: a request body that is invalid (a payment was attached; without a payment an invalid body gets the 402 below), or a payment header that cannot be read (error invalid_payment). Nothing is charged."},"402":{"content":{"application/json":{"schema":{"description":"The x402 PaymentRequired object (the same as the PAYMENT-REQUIRED header).","type":"object"}}},"description":"Payment required: the quote, with both challenges (also the answer when a payment was not accepted: read error). An unpaid request with an invalid body also gets this 402, quoted for 1 result, with X-Agdata-Invalid-Request: 1 and the reason in error; do not sign that one.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 payment-required JSON.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"MPP Payment challenge (RFC 9110 auth-params): id, realm, method=evm, intent=charge, request.","schema":{"type":"string"}},"X-Agdata-Invalid-Request":{"description":"1 when the request body is invalid and the quote is for 1 result only.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The same payment is already being worked on: wait and retry with the same payment."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The stored copy of this payment's result has expired (error expired): nothing is charged or run; sign a new payment to ask again."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request body is over 65536 bytes."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many calls for this host or route are in flight (Retry-After: 5): no payment was taken.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"string"}}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal error: no payment was settled for it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream scrape failed (error upstream_failed), or the payment could not be settled (settlement_failed). Nothing is delivered; an upstream failure is not charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Temporarily unavailable (the endpoint, a payment network or the upstream is switched off or over its failure budget): no payment was taken. Try again later."}},"summary":"Extend by one hour","x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"mpp":{"currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","intent":"charge","method":"evm"}}]}}},"/mpp/inbox-24h":{"post":{"description":"Get an email address for your agent for 24 hours: name@agmail.shveik.dev, a name of your choice or a random one. Pay in stablecoins with x402 or MPP, no account and no card. Wait for the verification mail with one call and get the code or the link back. Receive only. Extend it by paying again. Send the JSON body with no payment to get a 402 with an MPP challenge (WWW-Authenticate) and an x402 challenge (PAYMENT-REQUIRED); sign the MPP one (evm/authorization) and retry with an Authorization header. Both paths take either protocol: /x402/\u003cname\u003e and /mpp/\u003cname\u003e are the same endpoint.","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"the local part of the address; omit it for a random name","maxLength":32,"minLength":3,"pattern":"^[a-zA-Z0-9]([a-zA-Z0-9._-]{1,30})[a-zA-Z0-9]$","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array"}}},"description":"The dataset, after the payment settled.","headers":{"PAYMENT-RESPONSE":{"description":"Base64 x402 settlement response (x402 payments).","schema":{"type":"string"}},"Payment-Receipt":{"description":"MPP receipt (MPP payments).","schema":{"type":"string"}},"X-Agdata-Refund":{"description":"USDC base units refunded to the paying address for results not delivered (only when a refund is due).","schema":{"type":"string"}},"X-Agdata-Results-Delivered":{"description":"Number of results delivered.","schema":{"type":"string"}},"X-Agdata-Results-Requested":{"description":"Number of results the quote was for.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request: a request body that is invalid (a payment was attached; without a payment an invalid body gets the 402 below), or a payment header that cannot be read (error invalid_payment). Nothing is charged."},"402":{"content":{"application/json":{"schema":{"description":"The x402 PaymentRequired object (the same as the PAYMENT-REQUIRED header).","type":"object"}}},"description":"Payment required: the quote, with both challenges (also the answer when a payment was not accepted: read error). An unpaid request with an invalid body also gets this 402, quoted for 1 result, with X-Agdata-Invalid-Request: 1 and the reason in error; do not sign that one.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 payment-required JSON.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"MPP Payment challenge (RFC 9110 auth-params): id, realm, method=evm, intent=charge, request.","schema":{"type":"string"}},"X-Agdata-Invalid-Request":{"description":"1 when the request body is invalid and the quote is for 1 result only.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The same payment is already being worked on: wait and retry with the same payment."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The stored copy of this payment's result has expired (error expired): nothing is charged or run; sign a new payment to ask again."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request body is over 65536 bytes."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many calls for this host or route are in flight (Retry-After: 5): no payment was taken.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"string"}}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal error: no payment was settled for it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream scrape failed (error upstream_failed), or the payment could not be settled (settlement_failed). Nothing is delivered; an upstream failure is not charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Temporarily unavailable (the endpoint, a payment network or the upstream is switched off or over its failure budget): no payment was taken. Try again later."}},"summary":"Inbox for a day","x-payment-info":{"price":{"amount":"0.10","currency":"USD","mode":"fixed"},"protocols":[{"mpp":{"currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","intent":"charge","method":"evm"}}]}}},"/mpp/inbox-24h-renew":{"post":{"description":"Extend an inbox by 24 hours. Send the inbox id and the inbox secret in the JSON body. Pay in stablecoins with x402 or MPP. The address and its mail stay. An inbox that is not extended stops at its expiry and its mail is deleted shortly after. Send the JSON body with no payment to get a 402 with an MPP challenge (WWW-Authenticate) and an x402 challenge (PAYMENT-REQUIRED); sign the MPP one (evm/authorization) and retry with an Authorization header. Both paths take either protocol: /x402/\u003cname\u003e and /mpp/\u003cname\u003e are the same endpoint.","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"inbox_id":{"description":"the inbox id returned by the order","pattern":"^ib_[0-9a-f]{12}$","type":"string"},"secret":{"description":"the inbox secret returned by the order","type":"string"}},"required":["inbox_id","secret"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array"}}},"description":"The dataset, after the payment settled.","headers":{"PAYMENT-RESPONSE":{"description":"Base64 x402 settlement response (x402 payments).","schema":{"type":"string"}},"Payment-Receipt":{"description":"MPP receipt (MPP payments).","schema":{"type":"string"}},"X-Agdata-Refund":{"description":"USDC base units refunded to the paying address for results not delivered (only when a refund is due).","schema":{"type":"string"}},"X-Agdata-Results-Delivered":{"description":"Number of results delivered.","schema":{"type":"string"}},"X-Agdata-Results-Requested":{"description":"Number of results the quote was for.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request: a request body that is invalid (a payment was attached; without a payment an invalid body gets the 402 below), or a payment header that cannot be read (error invalid_payment). Nothing is charged."},"402":{"content":{"application/json":{"schema":{"description":"The x402 PaymentRequired object (the same as the PAYMENT-REQUIRED header).","type":"object"}}},"description":"Payment required: the quote, with both challenges (also the answer when a payment was not accepted: read error). An unpaid request with an invalid body also gets this 402, quoted for 1 result, with X-Agdata-Invalid-Request: 1 and the reason in error; do not sign that one.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 payment-required JSON.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"MPP Payment challenge (RFC 9110 auth-params): id, realm, method=evm, intent=charge, request.","schema":{"type":"string"}},"X-Agdata-Invalid-Request":{"description":"1 when the request body is invalid and the quote is for 1 result only.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The same payment is already being worked on: wait and retry with the same payment."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The stored copy of this payment's result has expired (error expired): nothing is charged or run; sign a new payment to ask again."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request body is over 65536 bytes."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many calls for this host or route are in flight (Retry-After: 5): no payment was taken.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"string"}}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal error: no payment was settled for it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream scrape failed (error upstream_failed), or the payment could not be settled (settlement_failed). Nothing is delivered; an upstream failure is not charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Temporarily unavailable (the endpoint, a payment network or the upstream is switched off or over its failure budget): no payment was taken. Try again later."}},"summary":"Extend by 24 hours","x-payment-info":{"price":{"amount":"0.10","currency":"USD","mode":"fixed"},"protocols":[{"mpp":{"currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","intent":"charge","method":"evm"}}]}}},"/mpp/inbox-4h":{"post":{"description":"Get an email address for your agent for four hours: name@agmail.shveik.dev, a name of your choice or a random one. Pay in stablecoins with x402 or MPP, no account and no card. Wait for the verification mail with one call and get the code or the link back. Receive only. Extend it by paying again. Send the JSON body with no payment to get a 402 with an MPP challenge (WWW-Authenticate) and an x402 challenge (PAYMENT-REQUIRED); sign the MPP one (evm/authorization) and retry with an Authorization header. Both paths take either protocol: /x402/\u003cname\u003e and /mpp/\u003cname\u003e are the same endpoint.","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"the local part of the address; omit it for a random name","maxLength":32,"minLength":3,"pattern":"^[a-zA-Z0-9]([a-zA-Z0-9._-]{1,30})[a-zA-Z0-9]$","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array"}}},"description":"The dataset, after the payment settled.","headers":{"PAYMENT-RESPONSE":{"description":"Base64 x402 settlement response (x402 payments).","schema":{"type":"string"}},"Payment-Receipt":{"description":"MPP receipt (MPP payments).","schema":{"type":"string"}},"X-Agdata-Refund":{"description":"USDC base units refunded to the paying address for results not delivered (only when a refund is due).","schema":{"type":"string"}},"X-Agdata-Results-Delivered":{"description":"Number of results delivered.","schema":{"type":"string"}},"X-Agdata-Results-Requested":{"description":"Number of results the quote was for.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request: a request body that is invalid (a payment was attached; without a payment an invalid body gets the 402 below), or a payment header that cannot be read (error invalid_payment). Nothing is charged."},"402":{"content":{"application/json":{"schema":{"description":"The x402 PaymentRequired object (the same as the PAYMENT-REQUIRED header).","type":"object"}}},"description":"Payment required: the quote, with both challenges (also the answer when a payment was not accepted: read error). An unpaid request with an invalid body also gets this 402, quoted for 1 result, with X-Agdata-Invalid-Request: 1 and the reason in error; do not sign that one.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 payment-required JSON.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"MPP Payment challenge (RFC 9110 auth-params): id, realm, method=evm, intent=charge, request.","schema":{"type":"string"}},"X-Agdata-Invalid-Request":{"description":"1 when the request body is invalid and the quote is for 1 result only.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The same payment is already being worked on: wait and retry with the same payment."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The stored copy of this payment's result has expired (error expired): nothing is charged or run; sign a new payment to ask again."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request body is over 65536 bytes."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many calls for this host or route are in flight (Retry-After: 5): no payment was taken.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"string"}}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal error: no payment was settled for it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream scrape failed (error upstream_failed), or the payment could not be settled (settlement_failed). Nothing is delivered; an upstream failure is not charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Temporarily unavailable (the endpoint, a payment network or the upstream is switched off or over its failure budget): no payment was taken. Try again later."}},"summary":"Inbox for four hours","x-payment-info":{"price":{"amount":"0.05","currency":"USD","mode":"fixed"},"protocols":[{"mpp":{"currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","intent":"charge","method":"evm"}}]}}},"/mpp/inbox-4h-renew":{"post":{"description":"Extend an inbox by four hours. Send the inbox id and the inbox secret in the JSON body. Pay in stablecoins with x402 or MPP. The address and its mail stay. An inbox that is not extended stops at its expiry and its mail is deleted shortly after. Send the JSON body with no payment to get a 402 with an MPP challenge (WWW-Authenticate) and an x402 challenge (PAYMENT-REQUIRED); sign the MPP one (evm/authorization) and retry with an Authorization header. Both paths take either protocol: /x402/\u003cname\u003e and /mpp/\u003cname\u003e are the same endpoint.","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"inbox_id":{"description":"the inbox id returned by the order","pattern":"^ib_[0-9a-f]{12}$","type":"string"},"secret":{"description":"the inbox secret returned by the order","type":"string"}},"required":["inbox_id","secret"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array"}}},"description":"The dataset, after the payment settled.","headers":{"PAYMENT-RESPONSE":{"description":"Base64 x402 settlement response (x402 payments).","schema":{"type":"string"}},"Payment-Receipt":{"description":"MPP receipt (MPP payments).","schema":{"type":"string"}},"X-Agdata-Refund":{"description":"USDC base units refunded to the paying address for results not delivered (only when a refund is due).","schema":{"type":"string"}},"X-Agdata-Results-Delivered":{"description":"Number of results delivered.","schema":{"type":"string"}},"X-Agdata-Results-Requested":{"description":"Number of results the quote was for.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request: a request body that is invalid (a payment was attached; without a payment an invalid body gets the 402 below), or a payment header that cannot be read (error invalid_payment). Nothing is charged."},"402":{"content":{"application/json":{"schema":{"description":"The x402 PaymentRequired object (the same as the PAYMENT-REQUIRED header).","type":"object"}}},"description":"Payment required: the quote, with both challenges (also the answer when a payment was not accepted: read error). An unpaid request with an invalid body also gets this 402, quoted for 1 result, with X-Agdata-Invalid-Request: 1 and the reason in error; do not sign that one.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 payment-required JSON.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"MPP Payment challenge (RFC 9110 auth-params): id, realm, method=evm, intent=charge, request.","schema":{"type":"string"}},"X-Agdata-Invalid-Request":{"description":"1 when the request body is invalid and the quote is for 1 result only.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The same payment is already being worked on: wait and retry with the same payment."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The stored copy of this payment's result has expired (error expired): nothing is charged or run; sign a new payment to ask again."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request body is over 65536 bytes."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many calls for this host or route are in flight (Retry-After: 5): no payment was taken.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"string"}}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal error: no payment was settled for it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream scrape failed (error upstream_failed), or the payment could not be settled (settlement_failed). Nothing is delivered; an upstream failure is not charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Temporarily unavailable (the endpoint, a payment network or the upstream is switched off or over its failure budget): no payment was taken. Try again later."}},"summary":"Extend by four hours","x-payment-info":{"price":{"amount":"0.05","currency":"USD","mode":"fixed"},"protocols":[{"mpp":{"currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","intent":"charge","method":"evm"}}]}}},"/x402/inbox-1h":{"post":{"description":"Get an email address for your agent for one hour: name@agmail.shveik.dev, a name of your choice or a random one. Pay in stablecoins with x402 or MPP, no account and no card. Wait for the verification mail with one call and get the code or the link back. Receive only. Extend it by paying again. Send the JSON body with no payment to get a 402 with an x402 challenge (PAYMENT-REQUIRED) and an MPP challenge (WWW-Authenticate); sign the x402 one (exact scheme) and retry with a PAYMENT-SIGNATURE header. Both paths take either protocol: /x402/\u003cname\u003e and /mpp/\u003cname\u003e are the same endpoint.","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"the local part of the address; omit it for a random name","maxLength":32,"minLength":3,"pattern":"^[a-zA-Z0-9]([a-zA-Z0-9._-]{1,30})[a-zA-Z0-9]$","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array"}}},"description":"The dataset, after the payment settled.","headers":{"PAYMENT-RESPONSE":{"description":"Base64 x402 settlement response (x402 payments).","schema":{"type":"string"}},"Payment-Receipt":{"description":"MPP receipt (MPP payments).","schema":{"type":"string"}},"X-Agdata-Refund":{"description":"USDC base units refunded to the paying address for results not delivered (only when a refund is due).","schema":{"type":"string"}},"X-Agdata-Results-Delivered":{"description":"Number of results delivered.","schema":{"type":"string"}},"X-Agdata-Results-Requested":{"description":"Number of results the quote was for.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request: a request body that is invalid (a payment was attached; without a payment an invalid body gets the 402 below), or a payment header that cannot be read (error invalid_payment). Nothing is charged."},"402":{"content":{"application/json":{"schema":{"description":"The x402 PaymentRequired object (the same as the PAYMENT-REQUIRED header).","type":"object"}}},"description":"Payment required: the quote, with both challenges (also the answer when a payment was not accepted: read error). An unpaid request with an invalid body also gets this 402, quoted for 1 result, with X-Agdata-Invalid-Request: 1 and the reason in error; do not sign that one.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 payment-required JSON.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"MPP Payment challenge (RFC 9110 auth-params): id, realm, method=evm, intent=charge, request.","schema":{"type":"string"}},"X-Agdata-Invalid-Request":{"description":"1 when the request body is invalid and the quote is for 1 result only.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The same payment is already being worked on: wait and retry with the same payment."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The stored copy of this payment's result has expired (error expired): nothing is charged or run; sign a new payment to ask again."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request body is over 65536 bytes."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many calls for this host or route are in flight (Retry-After: 5): no payment was taken.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"string"}}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal error: no payment was settled for it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream scrape failed (error upstream_failed), or the payment could not be settled (settlement_failed). Nothing is delivered; an upstream failure is not charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Temporarily unavailable (the endpoint, a payment network or the upstream is switched off or over its failure budget): no payment was taken. Try again later."}},"summary":"Inbox for one hour","x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/x402/inbox-1h-renew":{"post":{"description":"Extend an inbox by one hour. Send the inbox id and the inbox secret in the JSON body. Pay in stablecoins with x402 or MPP. The address and its mail stay. An inbox that is not extended stops at its expiry and its mail is deleted shortly after. Send the JSON body with no payment to get a 402 with an x402 challenge (PAYMENT-REQUIRED) and an MPP challenge (WWW-Authenticate); sign the x402 one (exact scheme) and retry with a PAYMENT-SIGNATURE header. Both paths take either protocol: /x402/\u003cname\u003e and /mpp/\u003cname\u003e are the same endpoint.","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"inbox_id":{"description":"the inbox id returned by the order","pattern":"^ib_[0-9a-f]{12}$","type":"string"},"secret":{"description":"the inbox secret returned by the order","type":"string"}},"required":["inbox_id","secret"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array"}}},"description":"The dataset, after the payment settled.","headers":{"PAYMENT-RESPONSE":{"description":"Base64 x402 settlement response (x402 payments).","schema":{"type":"string"}},"Payment-Receipt":{"description":"MPP receipt (MPP payments).","schema":{"type":"string"}},"X-Agdata-Refund":{"description":"USDC base units refunded to the paying address for results not delivered (only when a refund is due).","schema":{"type":"string"}},"X-Agdata-Results-Delivered":{"description":"Number of results delivered.","schema":{"type":"string"}},"X-Agdata-Results-Requested":{"description":"Number of results the quote was for.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request: a request body that is invalid (a payment was attached; without a payment an invalid body gets the 402 below), or a payment header that cannot be read (error invalid_payment). Nothing is charged."},"402":{"content":{"application/json":{"schema":{"description":"The x402 PaymentRequired object (the same as the PAYMENT-REQUIRED header).","type":"object"}}},"description":"Payment required: the quote, with both challenges (also the answer when a payment was not accepted: read error). An unpaid request with an invalid body also gets this 402, quoted for 1 result, with X-Agdata-Invalid-Request: 1 and the reason in error; do not sign that one.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 payment-required JSON.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"MPP Payment challenge (RFC 9110 auth-params): id, realm, method=evm, intent=charge, request.","schema":{"type":"string"}},"X-Agdata-Invalid-Request":{"description":"1 when the request body is invalid and the quote is for 1 result only.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The same payment is already being worked on: wait and retry with the same payment."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The stored copy of this payment's result has expired (error expired): nothing is charged or run; sign a new payment to ask again."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request body is over 65536 bytes."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many calls for this host or route are in flight (Retry-After: 5): no payment was taken.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"string"}}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal error: no payment was settled for it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream scrape failed (error upstream_failed), or the payment could not be settled (settlement_failed). Nothing is delivered; an upstream failure is not charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Temporarily unavailable (the endpoint, a payment network or the upstream is switched off or over its failure budget): no payment was taken. Try again later."}},"summary":"Extend by one hour","x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/x402/inbox-24h":{"post":{"description":"Get an email address for your agent for 24 hours: name@agmail.shveik.dev, a name of your choice or a random one. Pay in stablecoins with x402 or MPP, no account and no card. Wait for the verification mail with one call and get the code or the link back. Receive only. Extend it by paying again. Send the JSON body with no payment to get a 402 with an x402 challenge (PAYMENT-REQUIRED) and an MPP challenge (WWW-Authenticate); sign the x402 one (exact scheme) and retry with a PAYMENT-SIGNATURE header. Both paths take either protocol: /x402/\u003cname\u003e and /mpp/\u003cname\u003e are the same endpoint.","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"the local part of the address; omit it for a random name","maxLength":32,"minLength":3,"pattern":"^[a-zA-Z0-9]([a-zA-Z0-9._-]{1,30})[a-zA-Z0-9]$","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array"}}},"description":"The dataset, after the payment settled.","headers":{"PAYMENT-RESPONSE":{"description":"Base64 x402 settlement response (x402 payments).","schema":{"type":"string"}},"Payment-Receipt":{"description":"MPP receipt (MPP payments).","schema":{"type":"string"}},"X-Agdata-Refund":{"description":"USDC base units refunded to the paying address for results not delivered (only when a refund is due).","schema":{"type":"string"}},"X-Agdata-Results-Delivered":{"description":"Number of results delivered.","schema":{"type":"string"}},"X-Agdata-Results-Requested":{"description":"Number of results the quote was for.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request: a request body that is invalid (a payment was attached; without a payment an invalid body gets the 402 below), or a payment header that cannot be read (error invalid_payment). Nothing is charged."},"402":{"content":{"application/json":{"schema":{"description":"The x402 PaymentRequired object (the same as the PAYMENT-REQUIRED header).","type":"object"}}},"description":"Payment required: the quote, with both challenges (also the answer when a payment was not accepted: read error). An unpaid request with an invalid body also gets this 402, quoted for 1 result, with X-Agdata-Invalid-Request: 1 and the reason in error; do not sign that one.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 payment-required JSON.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"MPP Payment challenge (RFC 9110 auth-params): id, realm, method=evm, intent=charge, request.","schema":{"type":"string"}},"X-Agdata-Invalid-Request":{"description":"1 when the request body is invalid and the quote is for 1 result only.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The same payment is already being worked on: wait and retry with the same payment."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The stored copy of this payment's result has expired (error expired): nothing is charged or run; sign a new payment to ask again."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request body is over 65536 bytes."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many calls for this host or route are in flight (Retry-After: 5): no payment was taken.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"string"}}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal error: no payment was settled for it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream scrape failed (error upstream_failed), or the payment could not be settled (settlement_failed). Nothing is delivered; an upstream failure is not charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Temporarily unavailable (the endpoint, a payment network or the upstream is switched off or over its failure budget): no payment was taken. Try again later."}},"summary":"Inbox for a day","x-payment-info":{"price":{"amount":"0.10","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/x402/inbox-24h-renew":{"post":{"description":"Extend an inbox by 24 hours. Send the inbox id and the inbox secret in the JSON body. Pay in stablecoins with x402 or MPP. The address and its mail stay. An inbox that is not extended stops at its expiry and its mail is deleted shortly after. Send the JSON body with no payment to get a 402 with an x402 challenge (PAYMENT-REQUIRED) and an MPP challenge (WWW-Authenticate); sign the x402 one (exact scheme) and retry with a PAYMENT-SIGNATURE header. Both paths take either protocol: /x402/\u003cname\u003e and /mpp/\u003cname\u003e are the same endpoint.","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"inbox_id":{"description":"the inbox id returned by the order","pattern":"^ib_[0-9a-f]{12}$","type":"string"},"secret":{"description":"the inbox secret returned by the order","type":"string"}},"required":["inbox_id","secret"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array"}}},"description":"The dataset, after the payment settled.","headers":{"PAYMENT-RESPONSE":{"description":"Base64 x402 settlement response (x402 payments).","schema":{"type":"string"}},"Payment-Receipt":{"description":"MPP receipt (MPP payments).","schema":{"type":"string"}},"X-Agdata-Refund":{"description":"USDC base units refunded to the paying address for results not delivered (only when a refund is due).","schema":{"type":"string"}},"X-Agdata-Results-Delivered":{"description":"Number of results delivered.","schema":{"type":"string"}},"X-Agdata-Results-Requested":{"description":"Number of results the quote was for.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request: a request body that is invalid (a payment was attached; without a payment an invalid body gets the 402 below), or a payment header that cannot be read (error invalid_payment). Nothing is charged."},"402":{"content":{"application/json":{"schema":{"description":"The x402 PaymentRequired object (the same as the PAYMENT-REQUIRED header).","type":"object"}}},"description":"Payment required: the quote, with both challenges (also the answer when a payment was not accepted: read error). An unpaid request with an invalid body also gets this 402, quoted for 1 result, with X-Agdata-Invalid-Request: 1 and the reason in error; do not sign that one.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 payment-required JSON.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"MPP Payment challenge (RFC 9110 auth-params): id, realm, method=evm, intent=charge, request.","schema":{"type":"string"}},"X-Agdata-Invalid-Request":{"description":"1 when the request body is invalid and the quote is for 1 result only.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The same payment is already being worked on: wait and retry with the same payment."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The stored copy of this payment's result has expired (error expired): nothing is charged or run; sign a new payment to ask again."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request body is over 65536 bytes."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many calls for this host or route are in flight (Retry-After: 5): no payment was taken.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"string"}}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal error: no payment was settled for it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream scrape failed (error upstream_failed), or the payment could not be settled (settlement_failed). Nothing is delivered; an upstream failure is not charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Temporarily unavailable (the endpoint, a payment network or the upstream is switched off or over its failure budget): no payment was taken. Try again later."}},"summary":"Extend by 24 hours","x-payment-info":{"price":{"amount":"0.10","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/x402/inbox-4h":{"post":{"description":"Get an email address for your agent for four hours: name@agmail.shveik.dev, a name of your choice or a random one. Pay in stablecoins with x402 or MPP, no account and no card. Wait for the verification mail with one call and get the code or the link back. Receive only. Extend it by paying again. Send the JSON body with no payment to get a 402 with an x402 challenge (PAYMENT-REQUIRED) and an MPP challenge (WWW-Authenticate); sign the x402 one (exact scheme) and retry with a PAYMENT-SIGNATURE header. Both paths take either protocol: /x402/\u003cname\u003e and /mpp/\u003cname\u003e are the same endpoint.","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"the local part of the address; omit it for a random name","maxLength":32,"minLength":3,"pattern":"^[a-zA-Z0-9]([a-zA-Z0-9._-]{1,30})[a-zA-Z0-9]$","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array"}}},"description":"The dataset, after the payment settled.","headers":{"PAYMENT-RESPONSE":{"description":"Base64 x402 settlement response (x402 payments).","schema":{"type":"string"}},"Payment-Receipt":{"description":"MPP receipt (MPP payments).","schema":{"type":"string"}},"X-Agdata-Refund":{"description":"USDC base units refunded to the paying address for results not delivered (only when a refund is due).","schema":{"type":"string"}},"X-Agdata-Results-Delivered":{"description":"Number of results delivered.","schema":{"type":"string"}},"X-Agdata-Results-Requested":{"description":"Number of results the quote was for.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request: a request body that is invalid (a payment was attached; without a payment an invalid body gets the 402 below), or a payment header that cannot be read (error invalid_payment). Nothing is charged."},"402":{"content":{"application/json":{"schema":{"description":"The x402 PaymentRequired object (the same as the PAYMENT-REQUIRED header).","type":"object"}}},"description":"Payment required: the quote, with both challenges (also the answer when a payment was not accepted: read error). An unpaid request with an invalid body also gets this 402, quoted for 1 result, with X-Agdata-Invalid-Request: 1 and the reason in error; do not sign that one.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 payment-required JSON.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"MPP Payment challenge (RFC 9110 auth-params): id, realm, method=evm, intent=charge, request.","schema":{"type":"string"}},"X-Agdata-Invalid-Request":{"description":"1 when the request body is invalid and the quote is for 1 result only.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The same payment is already being worked on: wait and retry with the same payment."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The stored copy of this payment's result has expired (error expired): nothing is charged or run; sign a new payment to ask again."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request body is over 65536 bytes."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many calls for this host or route are in flight (Retry-After: 5): no payment was taken.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"string"}}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal error: no payment was settled for it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream scrape failed (error upstream_failed), or the payment could not be settled (settlement_failed). Nothing is delivered; an upstream failure is not charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Temporarily unavailable (the endpoint, a payment network or the upstream is switched off or over its failure budget): no payment was taken. Try again later."}},"summary":"Inbox for four hours","x-payment-info":{"price":{"amount":"0.05","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/x402/inbox-4h-renew":{"post":{"description":"Extend an inbox by four hours. Send the inbox id and the inbox secret in the JSON body. Pay in stablecoins with x402 or MPP. The address and its mail stay. An inbox that is not extended stops at its expiry and its mail is deleted shortly after. Send the JSON body with no payment to get a 402 with an x402 challenge (PAYMENT-REQUIRED) and an MPP challenge (WWW-Authenticate); sign the x402 one (exact scheme) and retry with a PAYMENT-SIGNATURE header. Both paths take either protocol: /x402/\u003cname\u003e and /mpp/\u003cname\u003e are the same endpoint.","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"inbox_id":{"description":"the inbox id returned by the order","pattern":"^ib_[0-9a-f]{12}$","type":"string"},"secret":{"description":"the inbox secret returned by the order","type":"string"}},"required":["inbox_id","secret"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array"}}},"description":"The dataset, after the payment settled.","headers":{"PAYMENT-RESPONSE":{"description":"Base64 x402 settlement response (x402 payments).","schema":{"type":"string"}},"Payment-Receipt":{"description":"MPP receipt (MPP payments).","schema":{"type":"string"}},"X-Agdata-Refund":{"description":"USDC base units refunded to the paying address for results not delivered (only when a refund is due).","schema":{"type":"string"}},"X-Agdata-Results-Delivered":{"description":"Number of results delivered.","schema":{"type":"string"}},"X-Agdata-Results-Requested":{"description":"Number of results the quote was for.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request: a request body that is invalid (a payment was attached; without a payment an invalid body gets the 402 below), or a payment header that cannot be read (error invalid_payment). Nothing is charged."},"402":{"content":{"application/json":{"schema":{"description":"The x402 PaymentRequired object (the same as the PAYMENT-REQUIRED header).","type":"object"}}},"description":"Payment required: the quote, with both challenges (also the answer when a payment was not accepted: read error). An unpaid request with an invalid body also gets this 402, quoted for 1 result, with X-Agdata-Invalid-Request: 1 and the reason in error; do not sign that one.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 payment-required JSON.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"MPP Payment challenge (RFC 9110 auth-params): id, realm, method=evm, intent=charge, request.","schema":{"type":"string"}},"X-Agdata-Invalid-Request":{"description":"1 when the request body is invalid and the quote is for 1 result only.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The same payment is already being worked on: wait and retry with the same payment."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The stored copy of this payment's result has expired (error expired): nothing is charged or run; sign a new payment to ask again."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request body is over 65536 bytes."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many calls for this host or route are in flight (Retry-After: 5): no payment was taken.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"string"}}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal error: no payment was settled for it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream scrape failed (error upstream_failed), or the payment could not be settled (settlement_failed). Nothing is delivered; an upstream failure is not charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Temporarily unavailable (the endpoint, a payment network or the upstream is switched off or over its failure budget): no payment was taken. Try again later."}},"summary":"Extend by four hours","x-payment-info":{"price":{"amount":"0.05","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}}},"servers":[{"url":"https://agmail.shveik.dev"}],"x-service-info":{"categories":["web-scraping","data","ai"],"docs":{"homepage":"https://agmail.shveik.dev"}}}
