{
  "openapi": "3.0.1",
  "info": {
    "title": "Email Finder and Verifier API - Domain Search, Enrichment",
    "description": "Find business email addresses at any company domain, filtered by department, seniority, job title and decision maker, find a specific person's address by name, verify deliverability with SMTP and MX checks, and enrich a company or a person. Pay per result. Bring your own API key.",
    "version": "0.1",
    "x-build-id": "1nqWDXZ9NggvLW6vc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~email-finder-verifier-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-email-finder-verifier-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/nabeelbaghoor~email-finder-verifier-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-email-finder-verifier-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/nabeelbaghoor~email-finder-verifier-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-email-finder-verifier-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "What to do",
            "enum": [
              "domainSearch",
              "emailFinder",
              "emailVerifier",
              "companyEnrich",
              "personEnrich"
            ],
            "type": "string",
            "description": "Domain search returns every email the provider knows at a company domain. Email finder returns one specific person's address from their name and their company. Email verifier checks deliverability for addresses you already have. Company and person enrichment return the profile behind a domain or an address.",
            "default": "domainSearch"
          },
          "domains": {
            "title": "Company domains",
            "type": "array",
            "description": "Company domains, one per line. Used by domain search, email finder and company enrichment. A pasted URL is reduced to the bare hostname and an address is reduced to the part after the at sign, so a messy list still works.",
            "items": {
              "type": "string"
            }
          },
          "fullNames": {
            "title": "Full names",
            "type": "array",
            "description": "Full names to find addresses for, one per line. Used by the email finder, where each name is paired with each domain above: ten names and one domain is ten lookups.",
            "items": {
              "type": "string"
            }
          },
          "emails": {
            "title": "Email addresses",
            "type": "array",
            "description": "Email addresses, one per line. Used by the verifier and by person enrichment. An address pasted inside a longer string, such as a mail header, is extracted before the request.",
            "items": {
              "type": "string"
            }
          },
          "department": {
            "title": "Departments",
            "type": "array",
            "description": "Only return emails from these departments. This filters on the provider's side, so a search for the sales and marketing departments costs credits only for those people rather than for the whole company. Domain search only.",
            "items": {
              "type": "string",
              "enum": [
                "executive",
                "it",
                "finance",
                "management",
                "sales",
                "legal",
                "support",
                "hr",
                "marketing",
                "communication",
                "education",
                "design",
                "health",
                "operations"
              ],
              "enumTitles": [
                "Executive",
                "IT",
                "Finance",
                "Management",
                "Sales",
                "Legal",
                "Support",
                "HR",
                "Marketing",
                "Communication",
                "Education",
                "Design",
                "Health",
                "Operations"
              ]
            },
            "default": []
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Only return emails at these seniority levels. Domain search only.",
            "items": {
              "type": "string",
              "enum": [
                "junior",
                "senior",
                "executive"
              ],
              "enumTitles": [
                "Junior",
                "Senior",
                "Executive"
              ]
            },
            "default": []
          },
          "jobTitles": {
            "title": "Job titles",
            "type": "array",
            "description": "Only return emails whose job title matches one of these, one per line. Use it when the department and seniority filters are too coarse for the role you are actually after. Domain search only.",
            "items": {
              "type": "string"
            }
          },
          "decisionMakersOnly": {
            "title": "Decision makers only",
            "type": "boolean",
            "description": "Only return people the provider has flagged as decision makers for their department. Domain search only.",
            "default": false
          },
          "emailType": {
            "title": "Email type",
            "enum": [
              "both",
              "personal",
              "generic"
            ],
            "type": "string",
            "description": "Personal returns addresses belonging to a named person. Generic returns role addresses such as contact or support. Leave on both unless you have a reason not to: role addresses are usually the wrong target for outreach but the right one for support routing. Domain search only.",
            "default": "both"
          },
          "verificationStatus": {
            "title": "Verification status",
            "type": "array",
            "description": "Only return emails with these verification verdicts. Restricting to valid is the way to build a list you can send to without a separate verification pass. Domain search only.",
            "items": {
              "type": "string",
              "enum": [
                "valid",
                "accept_all",
                "unknown"
              ],
              "enumTitles": [
                "Valid",
                "Accept all (catch-all domain)",
                "Unknown"
              ]
            },
            "default": []
          },
          "requiredFields": {
            "title": "Required fields",
            "type": "array",
            "description": "Only return emails that carry all of these fields. Requiring a full name and a position is the quickest way to drop the role addresses and the half-known records from a list. Domain search only.",
            "items": {
              "type": "string",
              "enum": [
                "full_name",
                "position",
                "phone_number"
              ],
              "enumTitles": [
                "Full name",
                "Job title",
                "Phone number"
              ]
            },
            "default": []
          },
          "emailsPerDomain": {
            "title": "Emails per request",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many emails to ask for in one domain search request. The provider allows up to 100, which is the default. The actor pages through a domain until it runs out, so this changes the request count rather than the total returned.",
            "default": 100
          },
          "maxDurationSeconds": {
            "title": "Finder timeout (seconds)",
            "minimum": 3,
            "maximum": 20,
            "type": "integer",
            "description": "How long the email finder may spend on one lookup, between 3 and 20 seconds. Longer means it will keep looking for a harder address rather than giving up. Email finder only."
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Pace the run under the provider's documented ceilings, which are 500 per minute on search and enrichment and 300 per minute on verification. The default of 300 is safe on every route; raise it for a search-only run to finish sooner.",
            "default": 300
          },
          "skipNotFound": {
            "title": "Skip inputs with no result",
            "type": "boolean",
            "description": "Leave inputs the provider had nothing for out of the dataset. Off by default, because keeping the misses is what lets you see which domains resolved and which did not. Misses are never charged for either way.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Stop after this many rows. This is the cap on both spend and run time.",
            "default": 100
          },
          "apiKey": {
            "title": "API key",
            "type": "string",
            "description": "Your own API key for the email data API, sent in the request header rather than the documented URL parameter, so it never appears in a log line or a redirect. Required for every lookup. Stored as a secret."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}