### Payload for email_finder.instant.completed Source: https://docs.clearout.io/developers/webhooks/webhook-events-and-payloads Example JSON payload returned when an instant email finding operation finishes. ```json { "event_id": "68994705edd8dab364becfe6", "event_type": "email_finder.instant.completed", "event_mode": "live", "event_on": "2025-08-11T01:27:33.597Z", "payload": { "status": "success", "data": { "emails": [ { "email_address": "sinha@clearout.io", "role": "no", "business": "yes" } ], "first_name": "sinha", "last_name": "", "full_name": "sinha", "domain": "clearout.io", "confidence_score": 99, "_depreciated": { "confidence_score": 92 }, "total": 1, "company": { "name": "clearout" }, "found_on": "2025-08-11T01:27:33.564Z", "credits_charged": 4 } } } ``` -------------------------------- ### Get Available Credits Source: https://docs.clearout.io/developers/api/email-verify Retrieve the current available credits for your Clearout account. ```APIDOC ## GET /v2/email_verify/getcredits ### Description Instantly get to know the available credits. ### Method GET ### Endpoint https://api.clearout.io/v2/email_verify/getcredits ### Parameters ### Request Body ### Request Example ### Response #### Success Response (200) - **status** (string) - Response Object status - **data** (object) - Contains credit information - **available_credits** (integer) - The total number of credits available. - **credits** (object) - Detailed breakdown of credits. - **available** (integer) - Number of credits currently available. - **subs** (string) - Subscription-related credit information. - **available_daily_verify_limit** (string) - The daily limit for email verifications. - **reset_daily_verify_limit_date** (string) - The date when the daily verification limit resets. - **total** (integer) - The total number of credits allocated. - **low_credit_balance_min_threshold** (integer) - The minimum threshold for low credit balance notifications. #### Response Example { "status": "success", "data": { "available_credits": 1000, "credits": { "available": 1000, "subs": "N/A", "available_daily_verify_limit": "10000", "reset_daily_verify_limit_date": "2024-12-31", "total": 1000 }, "low_credit_balance_min_threshold": 100 } } #### Error Response (401) - **status** (string) - Response Object Status for 401 - **error** (object) - Error details - **code** (integer) - Error code. - **message** (string) - Error message. #### Error Response (503) Service Unavailable ``` -------------------------------- ### Retrieve Rate Limit Headers Source: https://docs.clearout.io/developers/api/overview Example of the HTTP response headers returned by the Clearout API to indicate current rate limit status. ```http x-ratelimit-limit: 100 x-ratelimit-remaining: 42 x-ratelimit-reset: 18 ``` -------------------------------- ### Payload for email_verifier.instant.completed Source: https://docs.clearout.io/developers/webhooks/webhook-events-and-payloads Example JSON payload returned when an instant email verification operation finishes. ```json { "event_id": "68b52198f204df746f72c3ec", "event_type": "email_verifier.instant.completed", "event_mode": "live", "event_created_on": "2025-09-01T04:31:20.445Z", "payload": { "status": "success", "data": { "email_address": "sanjay@socialfrontier.com", "status": "valid", "sub_status": { "code": 200, "desc": "Success" }, "safe_to_send": "yes", "ai_verdict": "Given email address is from Gsuite provider, sending message will be delivered without a bounce", "suggested_email_address": "", "verified_on": "2025-09-01T04:31:20.042Z", "time_taken": 380, "disposable": "no", "free": "no", "role": "no", "gibberish": "no", "bounce_type": "", "detail_info": { "account": "sanjay", "domain": "socialfrontier.com", "mx_record": "aspmx.l.google.com", "smtp_provider": "gsuite" }, "profile": null } } } ``` -------------------------------- ### GET /public/companies/autocomplete Source: https://docs.clearout.io/developers/api/autocomplete Retrieves website domains, corporate logos, and confidence scores for a given company name or URL. ```APIDOC ## GET /public/companies/autocomplete ### Description Clearout's Autocomplete API is a free API that effectively identifies the corresponding website domains for a given company name, accompanied with the corporate logo and a confidence score. ### Method GET ### Endpoint /public/companies/autocomplete ### Parameters #### Query Parameters - **query** (string) - Required - A company name or domain or even the website URL ### Response #### Success Response (200) - **OK** - Successful retrieval of company domain information. #### Error Responses - **400** - Bad Request - **429** - Too Many Requests - **503** - Service Unavailable - **524** - Timeout Occurred ``` -------------------------------- ### Test Payload Structure Source: https://docs.clearout.io/developers/webhooks/test-webhooks Example JSON payload for the email_finder.instant.completed event. The event_mode field distinguishes between test and live events. ```json { "event_id": "68994705edd8dab364becfe6", "event_type": "email_finder.instant.completed", "event_mode": "test", "event_on": "2025-08-11T01:27:33.597Z", "payload": { "status": "success", "data": { "emails": [ { "email_address": "sinha@clearout.io", "role": "no", "business": "yes" } ], "first_name": "sinha", "last_name": "", "full_name": "sinha", "domain": "clearout.io", "confidence_score": 99, "_depreciated": { "confidence_score": 92 }, "total": 1, "company": { "name": "clearout" }, "found_on": "2025-08-11T01:27:33.564Z", "credits_charged": 4 } } } ``` -------------------------------- ### Configure Clearout Widget Options Source: https://docs.clearout.io/developers/sdks/javascript-widget Initialize the Clearout widget with advanced options to control verification behavior and feedback. Replace 'YOUR_CLIENT_APP_TOKEN' with your actual public token. ```javascript var clearout = window.clearout = window.clearout || []; var opts = { app_token: YOUR_CLIENT_APP_TOKEN, /** *Replace 'YOUR_CLIENT_APP_TOKEN' with your public token */ safe_to_send_only: false, /** *The option to block the emails that Clearout verification returns safe_to_send as false - *default is 'false' *This option Supersedes every other block settings */ optional_email: false, /** *Setting this option to 'true' allows form submission with empty email field value, *however any non-empty value will undergo validation - default is 'false' */ block_role_account: true, /** *The option to accept or reject the Role based accounts (true/false) - default is 'false' */ block_free_account: true, /** *The option to block Free accounts (true/false) - default is 'false' */ block_disposable_account: true, /** *The option to block Disposable accounts (true/false) - default is 'true' */ block_unknown_status: false, /** *The option to block the emails that Clearout verification gives Unknown result (true/false) - *default is 'false' */ block_catchall_status: false, /** *The option to block the emails that Clearout verification gives Catchall result (true/false) - *default is 'false' */ block_gibberish_account: false, /** *The option to block the emails that Clearout verification classifies as gibberish - *default is 'false' */ block_form_submission_on_timeout: false, /** *The option to block the emails that timedout during the verification process - *default is 'false' */ block_form_submission_on_limit_crossed: false, /** *The option to block the emails that are not validated by clearout after the usage limit has crossed - *default is 'false' */ timeout: 10, /** *The option to define the maximum time that can be used for verifying the status of the given email address (Number in Seconds) */ feedback: true, /** *The option to show feedback message for invalid emails (true/false)—the default is 'true' */ feedback_invalid_classname: "error-msg", /** * The option to specify the class name to refer invalid CSS (String)—the default is 'error-msg' */ feedback_invalid_message: "Invalid email address,", /** * The option to specify the HTML String to be displayed when invalid email is entered - default is "Invalid email address." */ feedback_free_account_message: "Invalid - Free account not allowed", /** *The option to specify the HTML String to be displayed when free account email is entered—the default is "Invalid Free account not allowed." */ feedback_role_account_message: "Invalid - Role account not allowed", /** *The option to specify the HTML String to be displayed when role based email is entered - default is "Invalid—Role account not allowed." */ feedback_disposable_account_message: "Invalid - Disposable account not allowed", /** *The option to specify the HTML String to be displayed when Disposable email is entered - default is "Invalid—Disposable account not allowed" */ feedback_unknown_message: "Unable to verify the email address, try after sometime", /** *The option to specify the HTML String to be displayed when Clearout gives Unknown status post verification default is "Unable to verify the email address, try after sometime" */ feedback_catchall_message: "Catch All email not acceptable, please enter a different email address", /** * The option to specify the HTML String to be displayed when Clearout gives Catchall status post verification—the default is "Catch All email not acceptable, please enter a different email address" */ feedback_safe_to_send_only_message: "Please enter different email, entered email is not safe", /** ``` -------------------------------- ### Install ngrok for Local Development Source: https://docs.clearout.io/developers/webhooks/test-webhooks Install ngrok globally using npm. This tool is essential for exposing your local server to receive webhooks during development. ```bash npm install -g ngrok ``` -------------------------------- ### Configure Form Discovery Options Source: https://docs.clearout.io/form-guard/developer Set the duration and interval for dynamic form discovery by modifying the window.clearout.options object. ```javascript window.clearout.options.form_discovery_duration = 15000; // Max allowed time in millseconds to discover forms on page, set to -1 for infinite window.clearout.options.form_discovery_interval = 500; // Interval time in milliseconds between form discovery attempts ``` -------------------------------- ### Initialize Clearout Widget Source: https://docs.clearout.io/developers/sdks/javascript-widget Basic initialization of the Clearout JavaScript widget. Ensure you replace 'REPLACE_WITH_YOUR_CLIENT_APP_TOKEN' with your actual application token. ```javascript var clearout = window.clearout = window.clearout || []; var opts = { app_token: "REPLACE_WITH_YOUR_CLIENT_APP_TOKEN", api_url: "https://api.clearout.io", suggested_email_message_template: "Did you mean __SUGGESTED_EMAIL_ADDRESS__ ?", suppress_form_builtin_error_message_selector: '.error-msg', submit_button_cursor_style: 'pointer' }; clearout.push(["initialize", opts]); (function () { var t = document, e = t.createElement("script"), a = t.getElementsByTagName("script")[0]; e.type = "text/javascript", e.async = !0, e.src = "https://clearout.io/wp-content/co-js-widget/clearout_js_widget.js", a.parentNode.insertBefore(e, a) }()); ``` -------------------------------- ### POST /email_finder/bulk Source: https://docs.clearout.io/developers/api/email-finder Initiates a bulk email discovery process by uploading a contact list file. ```APIDOC ## POST /email_finder/bulk ### Description Use bulk finder API to discover the email address of the person in contact list of any size. Email discovery process will occur in background and once complete it will be notified through email. Use Bulk Email Finder Progress Status API to know the overall completion status of the list in percentage ### Method POST ### Endpoint /email_finder/bulk ### Parameters #### Request Body - **file** (string/base64) - Required - The contact list file to be processed. - **ignore_duplicate_file** (string) - Optional - Whether to allow file with the same name and size that match with your recent upload (default: false). ### Request Example { "file": "base64_encoded_file_content", "ignore_duplicate_file": "false" } ### Response #### Success Response (200) - **status** (string) - The status of the request. - **data** (object) - Contains the list_id for the submitted job. #### Response Example { "status": "success", "data": { "list_id": "example_list_id_123" } } ``` -------------------------------- ### Payload for email_verifier.bulk.completed Source: https://docs.clearout.io/developers/webhooks/webhook-events-and-payloads Example JSON payload returned when a bulk email verification operation finishes. ```json { "event_id": "68b18464a73994ef5ae36608", "event_type": "email_verifier.bulk.completed", "event_mode": "live", "event_created_on": "2025-08-29T10:43:48.077Z", "payload": { "status": "success", "data": { "list_id": "68b1821500b0b980de170e2d", "list_name": "clearout_email_verifier_sample_list.csv" } } } ``` -------------------------------- ### Webhook Events Overview Source: https://docs.clearout.io/developers/webhooks/webhook-events-and-payloads Overview of available webhook events and when they are triggered. ```APIDOC ## Webhook Events Overview This section provides a list of available webhook event types and the conditions under which they are triggered. ### Event Types - **email_verifier.instant.completed**: Triggered after an instant email verification completes. - **email_verifier.bulk.completed**: Triggered after a bulk email verification completes. - **email_finder.instant.completed**: Triggered after an instant email finder operation completes. - **email_finder.bulk.completed**: Triggered after a bulk email finding operation completes. - **form_guard.email_validation.completed**: Triggered after email validation in forms is completed. *Note: Some events may be chargeable. Refer to the [Pricing Guide](https://clearout.io/pricing-guide/#billable-service-action) for details.* ``` -------------------------------- ### POST /email_finder/instant Source: https://docs.clearout.io/developers/api/email-finder This endpoint allows you to instantly discover a person's business email address by providing their name and company domain or name. ```APIDOC ## POST /email_finder/instant ### Description Instantly discover the email address of any person by providing their name and domain or company name. ### Method POST ### Endpoint /email_finder/instant ### Parameters #### Request Body - **name** (string) - Required - Name of the person (eg:- Mr. Tony Stark or Robert Downey Jr.) - **domain** (string) - Required - Domain or Company name (eg:- marvel.com or Marvel Entertainment Company) - **timeout** (integer) - Optional - Request wait time (in milliseconds), max 180000, default 30000 - **queue** (boolean) - Optional - Flag to indicate whether email discovery can be performed in background, default true ### Request Example { "name": "Robert Downey Jr.", "domain": "marvel.com" } ### Response #### Success Response (200) - **status** (string) - The status of the request - **data** (object) - The result object containing emails, names, and confidence scores #### Response Example { "status": "success", "data": { "emails": [{"email_address": "robert@marvel.com", "role": "professional", "business": "marvel.com"}], "first_name": "Robert", "last_name": "Downey Jr.", "confidence_score": 95 } } ``` -------------------------------- ### GET /email_verify/bulk/progress_status Source: https://docs.clearout.io/developers/api/email-verify Retrieves the current progress status and completion percentage of a bulk email verification request. ```APIDOC ## GET /email_verify/bulk/progress_status ### Description To know the overall progress status of bulk verify request. ### Method GET ### Endpoint /email_verify/bulk/progress_status ### Parameters #### Query Parameters - **list_id** (string) - Required - Pass the value of bulk verify list_id property from response object ### Response #### Success Response (200) - **status** (string) - The status of the request - **data** (object) - Contains progress details - **progress_status** (string) - Current status of the progress - **percentile** (integer) - Completion percentage #### Response Example { "status": "success", "data": { "progress_status": "completed", "percentile": 100 } } ``` -------------------------------- ### Enable Debug and Inspect Modes Source: https://docs.clearout.io/form-guard/developer Use this script to enable detailed console logging for field detection, API requests, and performance metrics. Only use in development environments to avoid performance impacts and data exposure. ```html ``` -------------------------------- ### POST /email_verify/bulk Source: https://docs.clearout.io/developers/api/email-verify Uploads a contact list for bulk email verification. The request is queued, and the response provides a list_id to track progress. ```APIDOC ## POST /email_verify/bulk ### Description Use bulk verify to upload your contact lists, request will be put on queue and at any point you can check the status of your request using Bulk Verify Progress Status API. ### Method POST ### Endpoint /email_verify/bulk ### Request Body - **file** (string/base64) - Required - The contact list file to be verified. - **optimize** (string) - Optional - Can be either 'highest_accuracy' or 'fastest_turnaround'. Default: 'highest_accuracy'. - **ignore_duplicate_file** (string) - Optional - Whether to allow file with the same name and size that match with your recent upload. Default: false. ### Response #### Success Response (200) - **status** (string) - The status of the request. - **data** (object) - Contains the list_id for tracking. #### Response Example { "status": "success", "data": { "list_id": "example_id_123" } } ``` -------------------------------- ### Parse Signature Header Example Source: https://docs.clearout.io/developers/webhooks/validate-deliveries Extract the timestamp and signature from the `x-co-webhook-signature` header. The header follows the format `t=,v1=`. ```text Header format: t=,v1= Example: t=1691234567,v1=abc123def456... ``` -------------------------------- ### POST /email/verify/catchall Source: https://docs.clearout.io/developers/api/email-verify Verifies an email address for Catch-All domains. Certain servers accept all emails for a domain and do not bounce them, flagging these as catch-all emails. ```APIDOC ## POST /email/verify/catchall ### Description Verify email address for Catch-All, since certain servers accept all the emails for that domain and never bounces it back to the sender, those email addresses are flagged as catch-all emails. ### Method POST ### Endpoint https://api.clearout.io/v2/email/verify/catchall ### Parameters #### Request Body - **email** (string) - Required - The email address to verify. - **timeout** (integer) - Optional - The timeout in seconds for the verification process. ### Request Example ```json { "email": "test@example.com", "timeout": 10 } ``` ### Response #### Success Response (200) - **status** (string) - The status of the verification. - **data** (object) - Contains verification details. - **email_address** (string) - The verified email address. - **catchall** (string) - Indicates if the email is a catch-all. - **verified_on** (string) - The timestamp when the email was verified. - **time_taken** (integer) - The time taken for the verification in milliseconds. #### Failure Response (200) - **status** (string) - The status of the verification. - **error** (object) - Contains error details. - **code** (integer) - The error code. - **message** (string) - The error message. #### Bad Request Response (400) - **status** (string) - The status of the request. - **error** (object) - Contains error details. - **message** (string) - The error message. - **reasons** (array) - An array of reasons for the bad request. #### Unauthorized Response (401) - **status** (string) - The status of the request. - **error** (object) - Contains error details. - **code** (integer) - The error code. - **message** (string) - The error message. #### Payment Required Response (402) - **status** (string) - The status of the request. - **error** (object) - Contains error details. - **code** (integer) - The error code. - **message** (string) - The error message. #### Service Unavailable Response (503) - **status** (string) - The status of the request. #### Timeout Occurred Response (524) - **status** (string) - The status of the request. - **error** (object) - Contains error details. - **message** (string) - The error message. - **additional_info** (object) - Additional information about the timeout. - **resource_name** (string) - The name of the resource that timed out. - **resource_value** (string) - The value of the resource that timed out. ### Response Example (Success) ```json { "status": "success", "data": { "email_address": "test@example.com", "catchall": "yes", "verified_on": "2023-10-27T10:00:00Z", "time_taken": 500 } } ``` ### Response Example (Failure) ```json { "status": "failed", "error": { "code": 101, "message": "Invalid email address" } } ``` ``` -------------------------------- ### GET /email_finder/instant/queue_status Source: https://docs.clearout.io/developers/api/email-finder Retrieves the status of an instant email finder request from the queue. This endpoint is used to check the progress or result of a previously submitted email finding task. ```APIDOC ## GET /email_finder/instant/queue_status ### Description To know the email finder request status in queue. ### Method GET ### Endpoint https://api.clearout.io/v2/email_finder/instant/queue_status ### Parameters #### Query Parameters - **qid** (string) - Required - Queue ID received as part of the instant email finder response object ### Responses #### Success Response (200) - **status** (string) - Indicates the status of the request (e.g., 'success', 'failed'). - **data** (object) - Contains the email finding results if successful. - **emails** (array) - List of found email addresses. - **email_address** (string) - The found email address. - **role** (string) - The role associated with the email address. - **business** (string) - The business name associated with the email address. - **first_name** (string) - The first name of the contact. - **last_name** (string) - The last name of the contact. - **full_name** (string) - The full name of the contact. - **domain** (string) - The domain of the contact's email. - **confidence_score** (integer) - A score indicating the confidence in the found data. - **total** (integer) - The total number of emails found. - **company** (object) - Information about the company. - **name** (string) - The name of the company. - **found_on** (string) - The date when the email was found. - **status** (string) - Indicates the status of the request (e.g., 'failed'). - **error** (object) - Contains error details if the request failed. - **code** (integer) - The error code. - **message** (string) - A description of the error. #### Bad Request Response (400) - **status** (string) - Indicates the status of the request (e.g., 'failed'). - **error** (object) - Contains error details for a bad request. - **message** (string) - A description of the error. - **reasons** (array) - A list of reasons for the bad request. - **field** (array) - The field(s) that caused the error. - **location** (string) - The location of the error (e.g., 'query', 'body'). - **messages** (array) - Specific error messages. - **types** (array) - Types of errors. #### Unauthorized Response (401) - **status** (string) - Indicates the status of the request (e.g., 'failed'). - **error** (object) - Contains error details for an unauthorized request. - **code** (integer) - The error code. - **message** (string) - A description of the error. #### Service Unavailable Response (503) Indicates that the service is temporarily unavailable. ``` -------------------------------- ### Expose Local Server with ngrok Source: https://docs.clearout.io/developers/webhooks/test-webhooks Start your local webhook server and then use ngrok to expose it to the internet. Use the provided HTTPS URL in your Clearout webhook configuration. ```bash ngrok http 3000 ``` -------------------------------- ### Initialize Clearout JavaScript Widget Source: https://docs.clearout.io/developers/sdks/javascript-widget Insert this script before the closing body tag to initialize the Clearout widget with your app token. Basic settings include enabling AJAX mode and blocking role-based accounts. ```javascript ``` -------------------------------- ### Get Remaining Credits via cURL Source: https://docs.clearout.io/developers/api/overview Use this cURL command to retrieve the number of remaining credits in your Clearout account. Ensure your API token is correctly formatted in the Authorization header. ```bash curl -X GET 'https://api.clearout.io/v2/email_verify/getcredits' \ -H 'Authorization: 3ec7egp34f992762fb5cf6a3479e7e34:d43d2e605e94a8c4s9b72be13b37c19c74b41610c3560484e5c422ccb4fb4074' ``` -------------------------------- ### POST /email_verify/instant Source: https://docs.clearout.io/developers/api/email-verify Verifies an email address in real-time. This endpoint is designed for seamless integration into signup or onboarding workflows. ```APIDOC ## POST /email_verify/instant ### Description Instant verification API can be seamlessly integrated into your signup or onboarding process with just a single request. Use this API to verify Email Address without going through queue. ### Method POST ### Endpoint https://api.clearout.io/v2/email_verify/instant ### Request Body - **email** (string) - Required - The email address to verify. - **timeout** (integer) - Optional - Request wait time (in milliseconds), default 130000, max 180000. ### Request Example { "email": "example@domain.com", "timeout": 130000 } ### Response #### Success Response (200) - **status** (string) - Response Object status - **data** (object) - Verification details including email_address, safe_to_send, status, and more. #### Response Example { "status": "success", "data": { "email_address": "example@domain.com", "safe_to_send": "yes", "status": "valid" } } ```