{
  "openapi": "3.1.0",
  "x-zeroclick-navigation": {
    "fullSpec": "https://agents.inboxtrue.com/openapi.json",
    "services": "https://agents.inboxtrue.com/services",
    "serviceSpecTemplate": "https://agents.inboxtrue.com/services/{slug}/openapi.json",
    "searchTemplate": "https://agents.inboxtrue.com/openapi.json?q={text}",
    "operationTemplate": "https://agents.inboxtrue.com/openapi.json?path={path}&method={method}",
    "firstPage": "https://agents.inboxtrue.com/openapi.json?page=1",
    "instructions": [
      "Use this spec if it contains the operation and details you need. Otherwise, search or open a relevant service spec using the links below.",
      "Find service slugs in x-zeroclick-services or x-payment-info.rates[].service; use them in serviceSpecTemplate, never as request values.",
      "URL-encode template values. Search is ranked; service, path, and method filters are exact. Filters combine.",
      "Pages contain up to 10 operations; follow info.x-next or the Link header if you need more results. Shared operations retain all selector values."
    ]
  },
  "info": {
    "title": "InboxTrue",
    "version": "1.0.0",
    "description": "This storefront is not accepting orders yet. InboxTrue is still completing setup. Do not attempt payment and do not retry paid calls here; orders and paid requests are refused. Check back later. InboxTrue is the email verification service built by MixRank. It checks one email address at a time and returns an address-level verdict (valid, invalid, ambiguous, maybe_valid, greylisted, malformed, temp_error or perm_error) with supporting signals: the normalized address, whether the domain is catch-all, whether the provider is disposable or consumer, whether the mail server greylists checks and when a retry is worth it, and the domain's MX records. Addresses on catch-all domains get a verdict for the address itself, not only for the domain. No message is sent to the recipient. A valid verdict is not a delivery guarantee, and inconclusive results are reported as such. Each call is one validation. This server is a transparent proxy in front of InboxTrue's own API that sells access on plans (credit or subscription) rather than per call: it handles identity, payment, and proxying. Agents can purchase autonomously or with their human's approval. The complete verified paid surface is listed at /openapi.json, the source of truth for available operations. Each operation here carries its pricing in x-payment-info. Use the operations and details here when they meet your needs. Filtered specs contain only matching operations; if you cannot find what you need here, use search or the service catalog. The live catalog at /manifest.json is authoritative for prices and any free included units (prices[].includedUnits) - some meters include free usage per account before any charge, reserved for agents claimed by a human with a verified email.",
    "contact": {
      "email": "support@inboxtrue.com"
    },
    "x-guidance": "Start with the free seller advisor: POST https://agents.inboxtrue.com/zeroclick/agent/quote with your goal and known budget or requirements. This operation costs $0 and requires only an x402 or MPP wallet proof; it returns a guide and never executes a purchase. Without a wallet, GET https://agents.inboxtrue.com/zeroclick/agent/guide?goal=URL_ENCODED_TASK or POST to that guide. Other operations below are the direct API reference; their own prices and access requirements still apply. Call the operations listed in this document at https://agents.inboxtrue.com. Each service's full price matrix, plans, and how to buy are at https://agents.inboxtrue.com/services/{slug}; each operation's x-payment-info names the service it bills by slug (rates[].service). Slugs identify services in prices and usage reports and are never request values: when one operation serves several services, its request body schema lists the accepted values of the field that selects the service, so send one of those exactly as written. Calls here are sold on plans, not per call: an unidentified call returns 401 bearer_required with a registration recipe, never a per-call 402. Reuse your existing agent identity; register only if new (anonymous registration is one free API call; the recipe is at https://agents.inboxtrue.com/auth.md), buy a plan at POST https://agents.inboxtrue.com/plans/{planId}/purchase (its priced 402 settles with a supported payment method - x402 (Base USDC) or MPP (Tempo USDC) today - or by card), then retry with Authorization: Bearer <token>. No upstream API key is needed. Read GET https://agents.inboxtrue.com/manifest.json for the live services, meters, plans, and prices, and https://agents.inboxtrue.com/llms-full.txt for the full agent guide."
  },
  "x-service-info": {
    "docs": {
      "homepage": "https://inboxtrue.com",
      "apiReference": "https://agents.inboxtrue.com/openapi.json",
      "llms": "https://agents.inboxtrue.com/llms.txt"
    }
  },
  "externalDocs": {
    "url": "https://agents.inboxtrue.com/llms-full.txt",
    "description": "How to authenticate, pay, and call this API; links the upstream API reference."
  },
  "servers": [
    {
      "url": "https://agents.inboxtrue.com",
      "description": "Plan-based access to InboxTrue's API"
    }
  ],
  "security": [
    {
      "planAccess": []
    }
  ],
  "components": {
    "securitySchemes": {
      "planAccess": {
        "type": "http",
        "scheme": "bearer",
        "description": "Plan access. Calls are sold on plans (credit or subscription), not per call: an unidentified call returns 401 bearer_required with a registration recipe, and an identified call with no covering plan returns 403 plan_required listing the plans that cover it. Reuse your existing agent identity; register only if new (anonymous registration is one free API call; the recipe is at https://agents.inboxtrue.com/auth.md), buy a plan at POST https://agents.inboxtrue.com/plans/{planId}/purchase (its priced 402 settles with a supported payment method - x402 or MPP today - or by card), then retry with the access token as Authorization: Bearer <token>. No upstream API key is needed."
      },
      "sellerAgentX402": {
        "type": "apiKey",
        "in": "header",
        "name": "Payment-Signature",
        "description": "Signed $0 x402 proof from the 402 challenge"
      },
      "sellerAgentMpp": {
        "type": "http",
        "scheme": "Payment",
        "description": "Signed $0 MPP proof from the 402 challenge"
      }
    }
  },
  "paths": {
    "/v1/email/validate": {
      "get": {
        "summary": "Validate an email address",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "email": "alex@northwind.example",
                    "validity": "valid",
                    "mx_records": [
                      "mx.northwind.example"
                    ],
                    "normalized": "alex@northwind.example",
                    "is_consumer": false,
                    "retry_after": null,
                    "validated_at": "2026-10-04T10:30:00+00:00",
                    "is_disposable": false,
                    "uses_greylist": false,
                    "is_domain_catchall": true
                  },
                  "properties": {
                    "email": {
                      "type": "string",
                      "description": "The submitted address."
                    },
                    "validity": {
                      "enum": [
                        "valid",
                        "invalid",
                        "ambiguous",
                        "maybe_valid",
                        "greylisted",
                        "malformed",
                        "temp_error",
                        "perm_error"
                      ],
                      "type": "string",
                      "description": "The address-level verdict. ambiguous and maybe_valid are inconclusive; greylisted means the mail server deferred the check, retry after retry_after; malformed, temp_error and perm_error describe the input or the check, not the address."
                    },
                    "mx_records": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Mail exchanger hostnames for the domain."
                    },
                    "normalized": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "nullable": true,
                      "description": "The normalized address, or null when the input is malformed."
                    },
                    "is_consumer": {
                      "type": "boolean",
                      "description": "Whether the domain belongs to a consumer email provider."
                    },
                    "retry_after": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "nullable": true,
                      "description": "For a greylisted check, the earliest time a retry is worth it, ISO 8601. Null otherwise and on cached results."
                    },
                    "validated_at": {
                      "type": "string",
                      "description": "When the result was produced, ISO 8601 in UTC with an explicit offset."
                    },
                    "is_disposable": {
                      "type": "boolean",
                      "description": "Whether the address uses a disposable or temporary provider."
                    },
                    "uses_greylist": {
                      "type": [
                        "boolean",
                        "null"
                      ],
                      "nullable": true,
                      "description": "Whether the domain greylists the check."
                    },
                    "is_domain_catchall": {
                      "type": [
                        "boolean",
                        "null"
                      ],
                      "nullable": true,
                      "description": "Whether the domain accepts every recipient. Null means unknown. A domain attribute, separate from validity."
                    }
                  }
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "description": "Agent identity credential required: register once, then retry with Authorization: Bearer <token>."
          },
          "403": {
            "description": "No active plan covers this call; the body lists the plans that do. Buy one with your bearer, then retry."
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "email",
            "schema": {
              "type": "string"
            },
            "example": "support@mixrank.com",
            "required": true,
            "description": "The email address to verify, URL-encoded."
          },
          {
            "in": "query",
            "name": "timeout",
            "schema": {
              "type": "integer",
              "default": 60,
              "maximum": 90,
              "minimum": 1
            },
            "description": "Maximum time in seconds to wait for the mail server, 1 to 90. Default 60."
          },
          {
            "in": "query",
            "name": "smtp_only",
            "schema": {
              "type": "boolean"
            },
            "required": false,
            "description": "Restrict validation to the SMTP probe against the recipient’s mail servers, for 0.25 credit instead of 1."
          }
        ],
        "description": "Realtime email validation to check if an address is valid, including catch-all domain detection.",
        "operationId": "validateEmail",
        "x-zeroclick-document-sources": [
          {
            "gaps": [
              "Missing explicit schema for response body",
              "Missing authentication method details"
            ],
            "pages": [
              1
            ],
            "sourceId": "sds_CI5_6cxKtKt8yvqwW_jCx",
            "authority": "supplemental",
            "conflicts": [
              "/responses/200/description"
            ],
            "revisionId": "sdrn_MuwRFUnShNB_OxIyMmi38"
          },
          {
            "gaps": [
              "Missing explicit authentication scheme details in documentation",
              "Missing response schema definition"
            ],
            "pages": [
              1
            ],
            "sourceId": "sds_dRWhgZouDRAXcyMsAEKm0",
            "authority": "supplemental",
            "conflicts": [
              "/summary",
              "/responses/200/description",
              "/description"
            ],
            "revisionId": "sdrn_fWHXny2TbAdP58mN_EPI3"
          },
          {
            "gaps": [],
            "pages": [
              4
            ],
            "sourceId": "sds_n8snV4_bnTjIIZwbLhyux",
            "authority": "supplemental",
            "conflicts": [
              "/summary",
              "/responses/200/content/application/json/schema/properties/normalized/type",
              "/responses/200/content/application/json/schema/properties/retry_after/type",
              "/responses/200/content/application/json/schema/properties/uses_greylist/type",
              "/responses/200/content/application/json/schema/properties/is_domain_catchall/type",
              "/responses/200/description",
              "/parameters/query/email/description",
              "/parameters/query/timeout/required",
              "/parameters/query/timeout/description",
              "/description"
            ],
            "revisionId": "sdrn_nBXj5tEk31U7dBAuR269J"
          },
          {
            "gaps": [
              "Missing explicit documentation of query parameters other than email",
              "Missing explicit response schema definition in the provided text"
            ],
            "pages": [
              1
            ],
            "sourceId": "sds_wMjj9lG-N_LWGnkKfWY14",
            "authority": "supplemental",
            "conflicts": [
              "/summary",
              "/responses/200/content/application/json/schema/properties/validity/description",
              "/responses/200/content/application/json/schema/properties/is_disposable/description",
              "/responses/200/content/application/json/schema/properties/is_domain_catchall/type",
              "/responses/200/content/application/json/schema/properties/is_domain_catchall/description",
              "/responses/200/description",
              "/description"
            ],
            "revisionId": "sdrn_zzUSY3w-OxE8lRBVrW6fd"
          }
        ],
        "x-zeroclick-services": [
          "email-validation"
        ],
        "x-payment-info": {
          "access": "plan",
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003400"
          },
          "rates": [
            {
              "service": "email-validation",
              "meter": "validations",
              "unit": "validation",
              "unitSize": 1,
              "priceUsd": "0.003400",
              "includedUnits": 0
            }
          ]
        },
        "security": [
          {
            "planAccess": []
          }
        ]
      }
    },
    "/zeroclick/agent/quote": {
      "post": {
        "operationId": "sellerAgentQuote",
        "summary": "Get a free seller API quote and purchase guide",
        "description": "Describe your task to get the matching API contract, prices, prerequisites and next steps. This is a $0 wallet-proof lookup, not the seller's paid service. No purchase is executed. Without a wallet, use /zeroclick/agent/guide.",
        "servers": [
          {
            "url": "https://agents.inboxtrue.com"
          }
        ],
        "security": [
          {
            "sellerAgentX402": []
          },
          {
            "sellerAgentMpp": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "goal": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000,
                    "description": "Describe the task and known inputs. Do not include credentials."
                  },
                  "quantity": {
                    "description": "Number of API calls, not returned items. Omit when unknown; describe desired output in goal.",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000000
                  },
                  "budgetUsd": {
                    "description": "Total cash budget in USD. A quote does not authorize spending.",
                    "type": "string",
                    "pattern": "^(0|[1-9]\\d{0,8})(\\.\\d{1,6})?$"
                  },
                  "budgetExclusive": {
                    "type": "boolean"
                  },
                  "reviewAfterCalls": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000000
                  },
                  "requirements": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "humanAvailable": {
                    "description": "Whether a human is in the loop; omit when unknown. Executing a human's request without further interruptions does not by itself mean false.",
                    "type": "boolean"
                  },
                  "payment": {
                    "description": "Known payment method for the eventual purchase, independent of this free lookup's wallet proof.",
                    "type": "string",
                    "enum": [
                      "x402",
                      "mpp",
                      "card"
                    ]
                  }
                },
                "required": [
                  "goal"
                ],
                "additionalProperties": false
              },
              "example": {
                "goal": "Find the available services, prices and purchase steps"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Task guidance; inspect status before executing anything",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "quoted",
                        "catalog",
                        "ready",
                        "needs_input",
                        "blocked",
                        "unknown",
                        "unsupported",
                        "unavailable"
                      ]
                    },
                    "priceUsd": {
                      "type": "string",
                      "const": "0"
                    },
                    "guide": {
                      "type": "string",
                      "description": "Markdown guidance containing the task result, exact contract, pricing and next steps when available. No purchase is executed."
                    },
                    "guideUrl": {
                      "type": "string",
                      "format": "uri",
                      "description": "Wallet-free advisor endpoint for further planning or recovery."
                    }
                  },
                  "required": [
                    "status",
                    "priceUsd",
                    "guide",
                    "guideUrl"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "402": {
            "description": "$0 x402 or MPP wallet proof required; sign and retry the same request. No funds are transferred."
          },
          "503": {
            "description": "Advisor unavailable; use the wallet-free guide or direct storefront references"
          }
        },
        "x-payment-info": {
          "access": "payg",
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0"
          },
          "protocols": [
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "currency": "USDC"
              }
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "USD"
              }
            }
          ],
          "offers": [
            {
              "amount": "0",
              "currency": "0x20C000000000000000000000b9537d11c60E8b50",
              "method": "tempo",
              "intent": "charge",
              "description": "Free seller advisor lookup"
            }
          ]
        }
      }
    }
  },
  "x-zeroclick-navigation-footer": {
    "instructions": [
      "Use this spec if it contains the operation and details you need. Otherwise, search or open a relevant service spec using the links below.",
      "Find service slugs in x-zeroclick-services or x-payment-info.rates[].service; use them in serviceSpecTemplate, never as request values.",
      "URL-encode template values. Search is ranked; service, path, and method filters are exact. Filters combine.",
      "Pages contain up to 10 operations; follow info.x-next or the Link header if you need more results. Shared operations retain all selector values."
    ],
    "fullSpec": "https://agents.inboxtrue.com/openapi.json",
    "services": "https://agents.inboxtrue.com/services",
    "serviceSpecTemplate": "https://agents.inboxtrue.com/services/{slug}/openapi.json",
    "searchTemplate": "https://agents.inboxtrue.com/openapi.json?q={text}",
    "operationTemplate": "https://agents.inboxtrue.com/openapi.json?path={path}&method={method}",
    "firstPage": "https://agents.inboxtrue.com/openapi.json?page=1"
  }
}
