{
  "name": "email-validation.org email validation",
  "description": "Validates email addresses for AI agents with your API key: status, reason and recommended action for each address, the same results, credits and limits as the REST API. Unknown results are free.",
  "supportedInterfaces": [
    {
      "url": "https://api.email-validation.org/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    },
    {
      "url": "https://api.email-validation.org/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "0.3"
    }
  ],
  "url": "https://api.email-validation.org/a2a",
  "protocolVersion": "0.3.0",
  "preferredTransport": "JSONRPC",
  "provider": {
    "organization": "email-validation.org",
    "url": "https://email-validation.org/"
  },
  "version": "1.0.0",
  "documentationUrl": "https://email-validation.org/docs/ai-agents/",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "securitySchemes": {
    "apiKey": {
      "httpAuthSecurityScheme": {
        "scheme": "Bearer",
        "description": "Your email-validation.org API key (ev_live_…), created in the dashboard. Instructions: https://email-validation.org/auth.md"
      },
      "type": "http",
      "scheme": "Bearer"
    }
  },
  "securityRequirements": [
    {
      "schemes": {
        "apiKey": {
          "list": []
        }
      }
    }
  ],
  "security": [
    {
      "apiKey": []
    }
  ],
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "validate_email",
      "name": "Validate an email address",
      "description": "Checks one email address and returns the result as a data part: status (deliverable, undeliverable, risky or unknown), reason, recommended action (send, send_with_caution, remove or retry_later) and details such as catch-all, disposable and role flags, plus a one-line text summary. Send one address per message, in a text part or in a data part {\"email\": \"…\", \"ip_address\": \"…\", \"timeout\": 5-15}. Uses 1 credit; unknown results are free, and so are errors. Test addresses <reason>@sandbox.email-validation.org are free.",
      "tags": [
        "email",
        "email validation",
        "email verification",
        "deliverability",
        "bounce"
      ],
      "examples": [
        "Is jane@example.com a valid email address?",
        "{\"email\": \"accepted@sandbox.email-validation.org\"}",
        "{\"email\": \"catch_all@sandbox.email-validation.org\", \"timeout\": 5}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "get_credits",
      "name": "Get the credit balance",
      "description": "Returns the credit balance of the account that owns the API key, any debt, credits still being applied and the credit lots with their expiry dates, as a data part plus a text summary. Free. Ask in a text part (for example \"How many credits do I have left?\") or send metadata {\"skill\": \"get_credits\"}.",
      "tags": [
        "credits",
        "balance",
        "account"
      ],
      "examples": [
        "How many credits do I have left?",
        "{\"skill\": \"get_credits\"}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    }
  ],
  "iconUrl": "https://email-validation.org/icon-512.png"
}
