{
  "info": {
    "name": "Mailchk Email Validation API",
    "description": "Official Postman collection for the Mailchk Email Validation API.\n\nValidate email addresses in real time with disposable detection, MX record verification, typo detection, and risk scoring.\n\n## Authentication\n\nAll requests require an API key passed via the `X-API-Key` header. Get your free API key at https://mailchk.io/dashboard\n\n## Base URL\n\n`https://api.mailchk.io`",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "mailchk"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "X-API-Key",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{api_key}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://api.mailchk.io",
      "type": "string"
    },
    {
      "key": "api_key",
      "value": "YOUR_API_KEY",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Email Validation",
      "description": "Core email validation endpoints",
      "item": [
        {
          "name": "Validate Email (GET)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/check?email=test@example.com",
              "host": ["{{base_url}}"],
              "path": ["v1", "check"],
              "query": [
                {
                  "key": "email",
                  "value": "test@example.com",
                  "description": "The email address to validate"
                }
              ]
            },
            "description": "Validate a single email address. Returns detailed information including validity, disposable status, MX records, risk score, and typo suggestions.\n\n**Response fields:**\n- `email` — Normalised email address\n- `domain` — Domain portion of the email\n- `valid` — Whether the email format is valid\n- `disposable` — Whether the domain is a known disposable/temporary email provider\n- `mx_exists` — Whether the domain has MX records configured\n- `mx_records` — Array of MX records with exchange and priority\n- `free_email` — Whether the domain is a free email provider (Gmail, Yahoo, etc.)\n- `did_you_mean` — Typo suggestion if a common misspelling is detected\n- `risk_score` — Overall risk level: `low`, `medium`, `high`, or `critical`\n- `risk_factors` — Array of detected risk factors\n- `reason` — Human-readable explanation"
          },
          "response": [
            {
              "name": "Valid Email",
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"john@gmail.com\",\n  \"domain\": \"gmail.com\",\n  \"valid\": true,\n  \"disposable\": false,\n  \"mx_exists\": true,\n  \"mx_records\": [\n    {\n      \"exchange\": \"gmail-smtp-in.l.google.com\",\n      \"priority\": 5\n    }\n  ],\n  \"free_email\": true,\n  \"did_you_mean\": \"\",\n  \"risk_score\": \"low\",\n  \"risk_factors\": [\"free_provider\"],\n  \"reason\": \"\"\n}"
            },
            {
              "name": "Disposable Email Detected",
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"test@tempmail.com\",\n  \"domain\": \"tempmail.com\",\n  \"valid\": false,\n  \"disposable\": true,\n  \"mx_exists\": true,\n  \"mx_records\": [\n    {\n      \"exchange\": \"mx.tempmail.com\",\n      \"priority\": 10\n    }\n  ],\n  \"free_email\": false,\n  \"did_you_mean\": \"\",\n  \"risk_score\": \"critical\",\n  \"risk_factors\": [\"disposable_domain\"],\n  \"reason\": \"Disposable email domain\"\n}"
            },
            {
              "name": "Typo Detected",
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"john@gmial.com\",\n  \"domain\": \"gmial.com\",\n  \"valid\": false,\n  \"disposable\": false,\n  \"mx_exists\": false,\n  \"free_email\": false,\n  \"did_you_mean\": \"john@gmail.com\",\n  \"risk_score\": \"critical\",\n  \"risk_factors\": [\"no_mx_records\", \"possible_typo\"],\n  \"reason\": \"No MX records found for domain\"\n}"
            },
            {
              "name": "Missing Email Parameter",
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"Missing email parameter\"\n}"
            },
            {
              "name": "Authentication Required",
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"Authentication required\",\n  \"message\": \"This endpoint requires a valid API key in the X-API-Key header.\",\n  \"code\": \"AUTH_REQUIRED\"\n}"
            },
            {
              "name": "Usage Limit Exceeded",
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"Usage limit exceeded\",\n  \"message\": \"You have used 200 of 200 API calls this month.\",\n  \"code\": \"USAGE_LIMIT_EXCEEDED\"\n}"
            }
          ]
        },
        {
          "name": "Validate Email (POST)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"test@example.com\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/v1/check",
              "host": ["{{base_url}}"],
              "path": ["v1", "check"]
            },
            "description": "Validate a single email address via POST request. Accepts JSON body with an `email` field. Returns the same response as the GET endpoint."
          },
          "response": [
            {
              "name": "Valid Email",
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"test@example.com\",\n  \"domain\": \"example.com\",\n  \"valid\": true,\n  \"disposable\": false,\n  \"mx_exists\": true,\n  \"mx_records\": [],\n  \"free_email\": false,\n  \"did_you_mean\": \"\",\n  \"risk_score\": \"low\",\n  \"risk_factors\": [],\n  \"reason\": \"\"\n}"
            }
          ]
        },
        {
          "name": "Bulk Validate Emails",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"emails\": [\n    \"john@gmail.com\",\n    \"test@tempmail.com\",\n    \"jane@gmial.com\"\n  ]\n}"
            },
            "url": {
              "raw": "{{base_url}}/v1/check/bulk",
              "host": ["{{base_url}}"],
              "path": ["v1", "check", "bulk"]
            },
            "description": "Validate up to 100 email addresses in a single request. Accepts a JSON body with an `emails` array.\n\nReturns a `results` array containing the validation result for each email in the same order.\n\n**Limits:** Maximum 100 emails per request."
          },
          "response": [
            {
              "name": "Bulk Results",
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"results\": [\n    {\n      \"email\": \"john@gmail.com\",\n      \"domain\": \"gmail.com\",\n      \"valid\": true,\n      \"disposable\": false,\n      \"mx_exists\": true,\n      \"free_email\": true,\n      \"did_you_mean\": \"\",\n      \"risk_score\": \"low\",\n      \"risk_factors\": [\"free_provider\"],\n      \"reason\": \"\"\n    },\n    {\n      \"email\": \"test@tempmail.com\",\n      \"domain\": \"tempmail.com\",\n      \"valid\": false,\n      \"disposable\": true,\n      \"mx_exists\": true,\n      \"free_email\": false,\n      \"did_you_mean\": \"\",\n      \"risk_score\": \"critical\",\n      \"risk_factors\": [\"disposable_domain\"],\n      \"reason\": \"Disposable email domain\"\n    },\n    {\n      \"email\": \"jane@gmial.com\",\n      \"domain\": \"gmial.com\",\n      \"valid\": false,\n      \"disposable\": false,\n      \"mx_exists\": false,\n      \"free_email\": false,\n      \"did_you_mean\": \"jane@gmail.com\",\n      \"risk_score\": \"critical\",\n      \"risk_factors\": [\"no_mx_records\", \"possible_typo\"],\n      \"reason\": \"No MX records found for domain\"\n    }\n  ]\n}"
            },
            {
              "name": "Too Many Emails",
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"Maximum 100 emails per bulk request\"\n}"
            }
          ]
        }
      ]
    }
  ]
}
