{ "info": { "_postman_id": "5f98f83c-b186-5b4e-8c4b-d358b5891f20", "name": "Enrich Email Verification API", "description": { "content": "Validate email addresses for deliverability, single or in batches of up to 500,000 emails.\n\nAssembled verbatim from the per-endpoint OpenAPI fragments Enrich publishes on each page of https://doc.enrich.so \u2014 every documentation page embeds its own OpenAPI fragment, and this document is the union of the fragments carrying these tags, with only the components they reference.", "type": "text/plain" }, "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "item": [ { "id": "2e6d9c98-2119-5df0-b79e-2ef5242ffd00", "name": "Email Validation", "description": { "content": "", "type": "text/plain" }, "item": [ { "id": "57668791-e300-5cb4-9471-1e24bab44e0d", "name": "Validate a single email", "request": { "name": "Validate a single email", "description": { "content": "Checks whether an email address is deliverable. The response tells you the\nresult (`valid`, `invalid`, or `risky`), the confidence level, the mail\nprovider, and whether the domain is a catch-all.\n\n**Cost:** 1 credit. You are **not** charged if the result is `risky`.", "type": "text/plain" }, "url": { "raw": "https://dev.enrich.so/api/v3/email-validation", "host": [ "{{baseUrl}}" ], "path": [ "email-validation" ], "query": [], "variable": [] }, "header": [ { "key": "Content-Type", "value": "application/json" }, { "key": "Accept", "value": "application/json" }, { "key": "x-api-key", "value": "{{apiKey}}", "description": { "content": "Added as a part of security scheme: apikey", "type": "text/plain" } } ], "method": "POST", "auth": null, "body": { "mode": "raw", "raw": "{\n \"email\": \"sarah.chen@stripe.com\"\n}", "options": { "raw": { "language": "json" } } } }, "response": [ { "id": "63e01379-c6ba-5f64-a194-b9edc1c20c0b", "name": "Validation result returned successfully", "status": "200", "code": 200, "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": "{\n \"success\": true,\n \"data\": {\n \"email\": \"sarah.chen@stripe.com\",\n \"result\": \"valid\",\n \"message\": \"The mailbox exists and is accepting mail\",\n \"isCatchAll\": false,\n \"isFederated\": false,\n \"hasSEG\": true,\n \"segProvider\": \"Proofpoint\",\n \"provider\": \"GOOGLE\",\n \"confidence\": \"high\"\n },\n \"meta\": {\n \"requestId\": \"664f2b3c9a1e4d0012abcdef\",\n \"creditsUsed\": 1,\n \"creditsRemaining\": 24999,\n \"processingTimeMs\": 387\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "88bf6117-22b8-5e5b-a8ba-4ebce769fd58", "name": "Something is wrong with the request \u2014 check the `detail` field for specifics", "status": "400", "code": 400, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/validation-error\",\n \"title\": \"Validation Error\",\n \"status\": 400,\n \"detail\": \"body/email Invalid email\",\n \"instance\": \"/requests/3fa85f64-5717-4562-b3fc-2c963f66afa6\"\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "6261ca37-b576-5b92-848b-49582767ac5c", "name": "Your API key is missing or invalid", "status": "401", "code": 401, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/unauthorized\",\n \"title\": \"Unauthorized\",\n \"status\": 401,\n \"detail\": \"The API key provided is invalid or has been revoked\"\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "f2e78640-1e74-5c4e-84be-12c1086c1fec", "name": "You don't have enough credits for this request", "status": "402", "code": 402, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/insufficient-credits\",\n \"title\": \"Insufficient Credits\",\n \"status\": 402,\n \"detail\": \"Not enough credits. Required: 10, available: 3\"\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "af0e9235-9a40-5b2e-8544-f7543a6a419e", "name": "You've sent too many requests \u2014 wait and try again", "status": "429", "code": 429, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/rate-limit-exceeded\",\n \"title\": \"Too Many Requests\",\n \"status\": 429,\n \"detail\": \"Rate limit exceeded. Please retry after 30 seconds.\"\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "91f311fd-62b7-5a2c-9ec9-8d0e21461eb9", "name": "Something went wrong on our end \u2014 try again in a moment", "status": "500", "code": 500, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/internal-error\",\n \"title\": \"Internal Server Error\",\n \"status\": 500,\n \"detail\": \"An unexpected error occurred. Please try again later.\"\n}", "cookie": [], "_postman_previewlanguage": "json" } ] }, { "id": "b2742d8e-e8b0-547b-8754-a1b52e114a9b", "name": "Validate emails in batch", "request": { "name": "Validate emails in batch", "description": { "content": "Submit up to **500 000 emails** in a single request. We automatically\nremove duplicates (case-insensitive) before processing, so you only pay\nfor unique addresses.\n\n**Cost:** 1 credit per unique email, reserved when you submit. Any unused\ncredits are refunded automatically when you fetch results.\n\n### Webhook callbacks\n\nIf you include a `webhookUrl`, your server will receive:\n\n1. **A per-result callback** every time an individual email finishes\n validation. See [emailValidationResult](#tag/Webhooks/operation/webhookEmailValidationResult)\n for the exact payload.\n\n2. **A completion callback** once every email in the batch has been\n processed. See [emailValidationCompletion](#tag/Webhooks/operation/webhookEmailValidationCompletion)\n for the exact payload.", "type": "text/plain" }, "url": { "raw": "https://dev.enrich.so/api/v3/email-validation/batch", "host": [ "{{baseUrl}}" ], "path": [ "email-validation", "batch" ], "query": [], "variable": [] }, "header": [ { "key": "Content-Type", "value": "application/json" }, { "key": "Accept", "value": "application/json" }, { "key": "x-api-key", "value": "{{apiKey}}", "description": { "content": "Added as a part of security scheme: apikey", "type": "text/plain" } } ], "method": "POST", "auth": null, "body": { "mode": "raw", "raw": "{\n \"emails\": [\n \"sarah.chen@stripe.com\",\n \"james.rodriguez@hubspot.com\",\n \"priya.patel@notion.so\",\n \"marco.silva@datadog.com\"\n ],\n \"webhookUrl\": \"https://api.yourapp.com/webhooks/enrich\"\n}", "options": { "raw": { "language": "json" } } } }, "response": [ { "id": "ffe76902-f53a-53a4-8437-9411966ad073", "name": "Batch submitted \u2014 credits have been reserved", "status": "200", "code": 200, "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": "{\n \"success\": true,\n \"data\": {\n \"batchId\": \"665a1f4e2c3b7800129dce01\",\n \"status\": \"queued\",\n \"itemCount\": 4,\n \"originalCount\": 4,\n \"duplicatesRemoved\": 0\n },\n \"meta\": {\n \"requestId\": \"665a1f4e2c3b7800129dce00\",\n \"creditsReserved\": 4,\n \"creditsPerItem\": 1,\n \"estimatedCredits\": 4\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "2ca09c30-395e-5555-b450-9d1ec9823d6e", "name": "Something is wrong with the request \u2014 check the `detail` field for specifics", "status": "400", "code": 400, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/validation-error\",\n \"title\": \"Validation Error\",\n \"status\": 400,\n \"detail\": \"body/email Invalid email\",\n \"instance\": \"/requests/3fa85f64-5717-4562-b3fc-2c963f66afa6\"\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "37274c80-ef29-5669-bd6c-9246ce5f2492", "name": "Your API key is missing or invalid", "status": "401", "code": 401, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/unauthorized\",\n \"title\": \"Unauthorized\",\n \"status\": 401,\n \"detail\": \"The API key provided is invalid or has been revoked\"\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "cf24316a-10e6-555f-ad3d-45cea82cfb6e", "name": "You don't have enough credits for this request", "status": "402", "code": 402, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/insufficient-credits\",\n \"title\": \"Insufficient Credits\",\n \"status\": 402,\n \"detail\": \"Not enough credits. Required: 10, available: 3\"\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "105b9583-4b9a-5d78-82d2-72b6f010f2b9", "name": "You've sent too many requests \u2014 wait and try again", "status": "429", "code": 429, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/rate-limit-exceeded\",\n \"title\": \"Too Many Requests\",\n \"status\": 429,\n \"detail\": \"Rate limit exceeded. Please retry after 30 seconds.\"\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "865889a0-14f7-53b7-82a3-f2ada2bcc881", "name": "Something went wrong on our end \u2014 try again in a moment", "status": "500", "code": 500, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/internal-error\",\n \"title\": \"Internal Server Error\",\n \"status\": 500,\n \"detail\": \"An unexpected error occurred. Please try again later.\"\n}", "cookie": [], "_postman_previewlanguage": "json" } ] }, { "id": "7d04afe6-e75f-5626-9135-a7c67265e03a", "name": "Check batch validation progress", "request": { "name": "Check batch validation progress", "description": { "content": "Poll this endpoint to see how your batch is doing. The `progress` field\ngives you a percentage, and `status` will be one of `queued`, `processing`,\n`completed`, or `failed`.\n\n**Cost:** Free \u2014 polling never costs credits.", "type": "text/plain" }, "url": { "raw": "https://dev.enrich.so/api/v3/email-validation/batch/{batchId}", "host": [ "{{baseUrl}}" ], "path": [ "email-validation", "batch", ":batchId" ], "query": [], "variable": [ { "key": "batchId", "value": "", "description": "The batch identifier returned when you submitted the job" } ] }, "header": [ { "key": "Accept", "value": "application/json" }, { "key": "x-api-key", "value": "{{apiKey}}", "description": { "content": "Added as a part of security scheme: apikey", "type": "text/plain" } } ], "method": "GET", "auth": null }, "response": [ { "id": "9f0725f3-345a-55a6-b784-8ef3e8c0e7f0", "name": "Current batch status", "status": "200", "code": 200, "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": "{\n \"success\": true,\n \"data\": {\n \"batchId\": \"665a1f4e2c3b7800129dce01\",\n \"status\": \"processing\",\n \"totalItems\": 4,\n \"processedItems\": 3,\n \"progress\": 75\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "d067c363-4a7f-5d3b-8e2f-cca374b323f0", "name": "Your API key is missing or invalid", "status": "401", "code": 401, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/unauthorized\",\n \"title\": \"Unauthorized\",\n \"status\": 401,\n \"detail\": \"The API key provided is invalid or has been revoked\"\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "13621104-ca4a-5312-a24f-c94f5ff5c76a", "name": "The resource you requested doesn't exist or doesn't belong to your organization", "status": "404", "code": 404, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/not-found\",\n \"title\": \"Not Found\",\n \"status\": 404,\n \"detail\": \"No batch found with that ID\"\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "996ff33e-f973-53df-9e28-893ba211c2f4", "name": "You've sent too many requests \u2014 wait and try again", "status": "429", "code": 429, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/rate-limit-exceeded\",\n \"title\": \"Too Many Requests\",\n \"status\": 429,\n \"detail\": \"Rate limit exceeded. Please retry after 30 seconds.\"\n}", "cookie": [], "_postman_previewlanguage": "json" } ] }, { "id": "9abd5f32-a242-5b27-bc28-7afc65b76352", "name": "Get batch validation results", "request": { "name": "Get batch validation results", "description": { "content": "Fetch the results once your batch has finished. Results are paginated \u2014 use\n`page` and `limit` to walk through them.\n\n**Credit settlement:** The first time you call this after the batch reaches\n`completed` or `failed`, we calculate the final cost and refund any excess\ncredits. Subsequent calls return the cached settlement.", "type": "text/plain" }, "url": { "raw": "https://dev.enrich.so/api/v3/email-validation/batch/{batchId}/results", "host": [ "{{baseUrl}}" ], "path": [ "email-validation", "batch", ":batchId", "results" ], "query": [ { "key": "page", "value": "1", "description": "Page number (default: 1)", "disabled": true }, { "key": "limit", "value": "100", "description": "Results per page (default: 100, max: 1 000)", "disabled": true } ], "variable": [ { "key": "batchId", "value": "", "description": "The batch identifier returned when you submitted the job" } ] }, "header": [ { "key": "Accept", "value": "application/json" }, { "key": "x-api-key", "value": "{{apiKey}}", "description": { "content": "Added as a part of security scheme: apikey", "type": "text/plain" } } ], "method": "GET", "auth": null }, "response": [ { "id": "d1171e80-8c81-5cec-9eb4-ab476fd233cd", "name": "Paginated validation results", "status": "200", "code": 200, "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": "{\n \"success\": true,\n \"data\": {\n \"batchId\": \"665a1f4e2c3b7800129dce01\",\n \"status\": \"completed\",\n \"totalItems\": 4,\n \"processedCount\": 4,\n \"results\": [\n {\n \"email\": \"sarah.chen@stripe.com\",\n \"result\": \"valid\",\n \"message\": \"The mailbox exists and is accepting mail\",\n \"isCatchAll\": false,\n \"provider\": \"GOOGLE\",\n \"confidence\": \"high\"\n },\n {\n \"email\": \"james.rodriguez@hubspot.com\",\n \"result\": \"valid\",\n \"message\": \"The mailbox exists and is accepting mail\",\n \"isCatchAll\": false,\n \"provider\": \"MICROSOFT\",\n \"confidence\": \"definitive\"\n },\n {\n \"email\": \"priya.patel@notion.so\",\n \"result\": \"invalid\",\n \"message\": \"The mailbox does not exist on this server\",\n \"isCatchAll\": false,\n \"provider\": \"GOOGLE\",\n \"confidence\": \"definitive\"\n },\n {\n \"email\": \"marco.silva@datadog.com\",\n \"result\": \"risky\",\n \"message\": \"The domain accepts all addresses (catch-all) so delivery cannot be guaranteed\",\n \"isCatchAll\": true,\n \"provider\": \"SMTP\",\n \"confidence\": \"low\"\n }\n ]\n },\n \"meta\": {\n \"requestId\": \"665a23bc2c3b7800129dce10\",\n \"creditsUsed\": 2,\n \"creditsRefunded\": 2,\n \"creditsRemaining\": 24997,\n \"totalItems\": 4,\n \"processedItems\": 4\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "fae63a8f-0963-5848-845d-38687e0d5e58", "name": "Your API key is missing or invalid", "status": "401", "code": 401, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/unauthorized\",\n \"title\": \"Unauthorized\",\n \"status\": 401,\n \"detail\": \"The API key provided is invalid or has been revoked\"\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "4d5292fd-8d32-582b-b4d1-407a4e6c9fcc", "name": "The resource you requested doesn't exist or doesn't belong to your organization", "status": "404", "code": 404, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/not-found\",\n \"title\": \"Not Found\",\n \"status\": 404,\n \"detail\": \"No batch found with that ID\"\n}", "cookie": [], "_postman_previewlanguage": "json" }, { "id": "ba70cfd2-dbbf-552e-85ff-cbacce72c229", "name": "You've sent too many requests \u2014 wait and try again", "status": "429", "code": 429, "header": [ { "key": "Content-Type", "value": "application/problem+json" } ], "body": "{\n \"type\": \"https://dev.enrich.so/errors/rate-limit-exceeded\",\n \"title\": \"Too Many Requests\",\n \"status\": 429,\n \"detail\": \"Rate limit exceeded. Please retry after 30 seconds.\"\n}", "cookie": [], "_postman_previewlanguage": "json" } ] } ] } ], "variable": [ { "key": "baseUrl", "value": "https://dev.enrich.so/api/v3" }, { "key": "apiKey", "value": "" } ], "auth": { "type": "apikey", "apikey": [ { "key": "key", "value": "x-api-key" }, { "key": "value", "value": "{{apiKey}}" }, { "key": "in", "value": "header" } ] } }