{"openapi":"3.1.0","info":{"title":"Tomba Agent Commerce API","version":"1.0.0","description":"B2B contact intelligence for AI agents. Every endpoint under \"Contact intelligence\" answers 402 until paid via MPP, settled through InFlow, in USDC or USDT. Payment replaces authentication: there is no API key and no identity gate. Pay with: inflow mpp pay <url>","contact":{"name":"Tomba","url":"https://tomba.io","email":"info@tomba.io"}},"servers":[{"url":"https://agents.tomba.io","description":"Production"}],"tags":[{"name":"Contact intelligence","description":"Paid endpoints. 402 until paid."},{"name":"Discovery","description":"Free. Describes what this service sells and how to pay."},{"name":"Enrollment","description":"Free and optional. AEP agent identity; unlocks nothing."}],"paths":{"/domain-search":{"get":{"tags":["Contact intelligence"],"summary":"Find all email addresses associated with a company domain.","operationId":"domain-search","security":[{"mpp":[]}],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string"}},{"name":"company","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"string"}},{"name":"department","in":"query","required":false,"schema":{"type":"string"}},{"name":"country","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/email-finder":{"get":{"tags":["Contact intelligence"],"summary":"Find a person's email address from their name and company domain.","operationId":"email-finder","security":[{"mpp":[]}],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string"}},{"name":"company","in":"query","required":false,"schema":{"type":"string"}},{"name":"full_name","in":"query","required":false,"schema":{"type":"string"}},{"name":"first_name","in":"query","required":false,"schema":{"type":"string"}},{"name":"last_name","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/email-verifier":{"get":{"tags":["Contact intelligence"],"summary":"Verify if an email address is valid and deliverable.","operationId":"email-verifier","security":[{"mpp":[]}],"parameters":[{"name":"email","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/email-count":{"get":{"tags":["Contact intelligence"],"summary":"Count the number of email addresses available for a domain.","operationId":"email-count","security":[{"mpp":[]}],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/email-sources":{"get":{"tags":["Contact intelligence"],"summary":"Find sources where an email address has been found.","operationId":"email-sources","security":[{"mpp":[]}],"parameters":[{"name":"email","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/email-format":{"get":{"tags":["Contact intelligence"],"summary":"Get the email format used by a domain.","operationId":"email-format","security":[{"mpp":[]}],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/author-finder":{"get":{"tags":["Contact intelligence"],"summary":"Find the email address of the author of an article.","operationId":"author-finder","security":[{"mpp":[]}],"parameters":[{"name":"url","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/enrich":{"get":{"tags":["Contact intelligence"],"summary":"Enrich an email address with contact and company data.","operationId":"enrich","security":[{"mpp":[]}],"parameters":[{"name":"email","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/linkedin":{"get":{"tags":["Contact intelligence"],"summary":"Find a person's email from their LinkedIn profile URL.","operationId":"linkedin","security":[{"mpp":[]}],"parameters":[{"name":"url","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/phone-finder":{"get":{"tags":["Contact intelligence"],"summary":"Find phone numbers from an email, domain, or LinkedIn.","operationId":"phone-finder","security":[{"mpp":[]}],"parameters":[{"name":"email","in":"query","required":false,"schema":{"type":"string"}},{"name":"domain","in":"query","required":false,"schema":{"type":"string"}},{"name":"linkedin","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/phone-validator":{"get":{"tags":["Contact intelligence"],"summary":"Validate a phone number and get carrier details.","operationId":"phone-validator","security":[{"mpp":[]}],"parameters":[{"name":"phone","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/similar":{"get":{"tags":["Contact intelligence"],"summary":"Find domains similar to a given domain.","operationId":"similar","security":[{"mpp":[]}],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/location":{"get":{"tags":["Contact intelligence"],"summary":"Get location data for a domain.","operationId":"location","security":[{"mpp":[]}],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/people/find":{"get":{"tags":["Contact intelligence"],"summary":"People enrichment — find person data by domain.","operationId":"people_find","security":[{"mpp":[]}],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/companies/find":{"get":{"tags":["Contact intelligence"],"summary":"Company enrichment — get company data by domain.","operationId":"companies_find","security":[{"mpp":[]}],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/domain-status":{"get":{"tags":["Contact intelligence"],"summary":"Check whether a domain is webmail or disposable.","operationId":"domain-status","security":[{"mpp":[]}],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/domain-suggestions":{"get":{"tags":["Contact intelligence"],"summary":"Find domain suggestions for a company or domain name.","operationId":"domain-suggestions","security":[{"mpp":[]}],"parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/technology":{"get":{"tags":["Contact intelligence"],"summary":"Retrieve the technologies used by a domain.","operationId":"technology","security":[{"mpp":[]}],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/combined/find":{"get":{"tags":["Contact intelligence"],"summary":"Combined person and company enrichment.","operationId":"combined_find","security":[{"mpp":[]}],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid and fulfilled. Settlement happens only once Tomba returns a usable answer.","headers":{"Payment-Receipt":{"schema":{"type":"string"},"description":"Serialized MPP receipt for the settled payment."},"X-Payment-Charged":{"schema":{"type":"string","enum":["true","false"]},"description":"'true' when this response was billed."},"ratelimit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"ratelimit-policy":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-second-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-rate-limit":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-request-left":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-minute-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"x-daily-reset-seconds":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"},"retry-after":{"schema":{"type":"string"},"description":"Forwarded from api.tomba.io"}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment required. Carries one WWW-Authenticate: Payment challenge per accepted currency.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"One challenge per currency (USDC, USDT). The buyer picks one."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"422":{"description":"Tomba rejected the request (e.g. missing parameters). Not billed — X-Payment-Charged is false and the credential stays spendable.","headers":{"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Upstream rate limit reached. Not billed.","headers":{"Retry-After":{"schema":{"type":"string"}},"X-Payment-Charged":{"schema":{"type":"string","enum":["false"]}}},"content":{"application/json":{"schema":{"type":"object"}}}},"502":{"description":"The payment provider could not be reached, or the credential could not be validated. Never answered with a 402, which would tell a caller holding a valid credential to pay again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Payment gate unavailable — the service refuses to serve paid data unverified.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/health":{"get":{"tags":["Discovery"],"summary":"Health check","description":"Service and payment-gate state. ?deep=1 mints a challenge to prove the gate can take money, and answers 503 when it cannot.","operationId":"discovery_health","security":[],"responses":{"200":{"description":"Health check","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/mpp.json":{"get":{"tags":["Discovery"],"summary":"MPP configuration","description":"Pricing, accepted currencies, CLI commands and billing rules.","operationId":"discovery__well_known_mpp_json","security":[],"responses":{"200":{"description":"MPP configuration","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/odp":{"get":{"tags":["Discovery"],"summary":"ODP service document","description":"Catalog metadata and the operations this service advertises.","operationId":"discovery__well_known_odp","security":[],"responses":{"200":{"description":"ODP service document","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/aep":{"get":{"tags":["Discovery"],"summary":"AEP inspect document","description":"Supported enrollment commands, identity methods and signing algorithms.","operationId":"discovery__well_known_aep","security":[],"responses":{"200":{"description":"AEP inspect document","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/agent-card.json":{"get":{"tags":["Discovery"],"summary":"Agent card","description":"A2A-style card describing skills and protocol extensions.","operationId":"discovery__well_known_agent_card_json","security":[],"responses":{"200":{"description":"Agent card","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/openapi.json":{"get":{"tags":["Discovery"],"summary":"This document","description":"OpenAPI 3.1 description of every route.","operationId":"discovery_openapi_json","security":[],"responses":{"200":{"description":"This document","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/llms.txt":{"get":{"tags":["Discovery"],"summary":"LLM-friendly documentation","description":"Plain-text quickstart for agents.","operationId":"discovery_llms_txt","security":[],"responses":{"200":{"description":"LLM-friendly documentation","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/skill.md":{"get":{"tags":["Discovery"],"summary":"Skill file","description":"Markdown skill definition for agent runtimes.","operationId":"discovery_skill_md","security":[],"responses":{"200":{"description":"Skill file","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/schemas/offering-attributes.json":{"get":{"tags":["Discovery"],"summary":"Offering attribute schema","description":"JSON Schema for the attributes on each ODP Offering.","operationId":"discovery_schemas_offering_attributes_json","security":[],"responses":{"200":{"description":"Offering attribute schema","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/odp/offerings":{"get":{"tags":["Discovery"],"summary":"List Offerings","description":"ODP list-offerings. One Offering per paid endpoint.","operationId":"odp_list_offerings","security":[],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Offerings","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/odp/offerings/{id}":{"get":{"tags":["Discovery"],"summary":"Get an Offering","description":"ODP get-offering. Includes the invoke Action and its attribute schema.","operationId":"odp_get_offering","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The Offering","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"No such Offering"}}}},"/aep/enroll":{"post":{"tags":["Enrollment"],"summary":"AEP enroll","description":"Register a did:web agent identity. Optional — enrolling unlocks nothing, and every paid endpoint stays payment-gated.","operationId":"aep_enroll","security":[{"aep":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Makes the command safe to retry."}],"responses":{"200":{"description":"Command result","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or unverifiable client assertion.","content":{"application/aep+json":{"schema":{"type":"object"}}}}}}},"/aep/status":{"post":{"tags":["Enrollment"],"summary":"AEP status","description":"Report the calling agent's enrollment state.","operationId":"aep_status","security":[{"aep":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Makes the command safe to retry."}],"responses":{"200":{"description":"Command result","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or unverifiable client assertion.","content":{"application/aep+json":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"server_error"},"message":{"type":"string"}}}}},"PaymentRequired":{"type":"object","description":"The 402 body. Merges the RFC 9457 problem details the MPP SDK produces with prose aimed at LLM agents.","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"payment_required"},"message":{"type":"string"}}},"payment":{"type":"object","properties":{"amount":{"type":"string","example":"0.0098"},"currency":{"type":"string","example":"USDC"},"accepted_currencies":{"type":"array","items":{"type":"string"},"example":["USDC","USDT"]},"display":{"type":"string","example":"$9.80 per 1,000 requests"},"supported_rails":{"type":"array","items":{"type":"string"},"example":["mpp"]}}},"agent_instructions":{"type":"string","description":"A JSON string: { action, steps[], user_message }."},"agent_memory":{"type":"object","description":"Durable hints an agent can persist so future 402s resolve without re-discovery."},"how_to_pay":{"type":"object","properties":{"inflow":{"type":"string","example":"inflow mpp pay https://agents.tomba.io/domain-search?domain=stripe.com"},"inspect":{"type":"string","example":"inflow mpp inspect https://agents.tomba.io/domain-search?domain=stripe.com"}}}}}},"securitySchemes":{"mpp":{"type":"http","scheme":"Payment","description":"MPP payment credential via 'Authorization: Payment <credential>'. Obtained by paying a WWW-Authenticate challenge; bound to a single endpoint."},"aep":{"type":"http","scheme":"AEP","description":"AEP client assertion via 'Authorization: AEP <jwt>', signed by the agent's did:web key."}}}}