{
  "openapi": "3.0.1",
  "info": {
    "title": "Email & Phone Verifier",
    "description": "Check e-mail addresses and phone numbers in bulk. E-mails: syntax, live MX lookup, throwaway and role-account flags, mail host, typo suggestions. Phones: numbering-plan validation, type, US state and time zone. Feed it a list or the dataset of another Actor.",
    "version": "0.1",
    "x-build-id": "hXEr3uiQ0BDvzUFzV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lergassy~email-phone-verifier/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lergassy-email-phone-verifier",
        "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/lergassy~email-phone-verifier/runs": {
      "post": {
        "operationId": "runs-sync-lergassy-email-phone-verifier",
        "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/lergassy~email-phone-verifier/run-sync": {
      "post": {
        "operationId": "run-sync-lergassy-email-phone-verifier",
        "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": {
          "emails": {
            "title": "📧 E-mail addresses",
            "type": "array",
            "description": "Addresses to check, one per line. Each one is checked for syntax, then the domain is looked up to see whether it can receive mail at all.",
            "items": {
              "type": "string"
            }
          },
          "phones": {
            "title": "📱 Phone numbers",
            "type": "array",
            "description": "Numbers to check, one per line. Any format works: <code>+1 206 235 0243</code>, <code>(206) 235-0243</code>, <code>2062350243</code>.",
            "items": {
              "type": "string"
            }
          },
          "contacts": {
            "title": "👥 Contacts (e-mail and phone together)",
            "type": "array",
            "description": "Use this when one person has both. Each entry is an object such as <code>{\"email\": \"jane@acme.com\", \"phone\": \"+1 206 235 0243\", \"name\": \"Jane\"}</code>. Any extra fields you add are copied to the output row, so your own ids survive the run."
          },
          "inputDatasetId": {
            "title": "🔗 Check a dataset from another Actor",
            "type": "string",
            "description": "Dataset of a previous run — the lead list you just scraped, for example. The Actor reads the contacts out of it, so you never move data by hand. Pick it from the list, or pass its id through the API."
          },
          "emailField": {
            "title": "E-mail field in that dataset",
            "type": "string",
            "description": "Which field holds the address. Several names can be listed, separated by commas — the first one present wins.",
            "default": "email"
          },
          "phoneField": {
            "title": "Phone field in that dataset",
            "type": "string",
            "description": "Which field holds the number. Several names can be listed, separated by commas.",
            "default": "phone"
          },
          "keep": {
            "title": "🎯 Keep only",
            "enum": [
              "all",
              "usable",
              "deliverable_email",
              "person_email",
              "business_email",
              "valid_phone"
            ],
            "type": "string",
            "description": "Filter the output by what the checks found, instead of filtering rows yourself afterwards.",
            "default": "all"
          },
          "findWebsite": {
            "title": "🔎 Find the company website and e-mail ($)",
            "type": "boolean",
            "description": "For every contact that carries a company name, guess the company's domain, verify it by finding the company name on the page, then read any address published on the home, contact or about page. Costs one or two extra requests per company and is billed only when something is found.",
            "default": false
          },
          "companyField": {
            "title": "Company field in the dataset",
            "type": "string",
            "description": "Which field holds the company name when reading another Actor's dataset. Several names can be listed, separated by commas.",
            "default": "company"
          },
          "defaultCountry": {
            "title": "🌍 Country for numbers without a + prefix",
            "enum": [
              "US",
              "CA",
              "OTHER"
            ],
            "type": "string",
            "description": "Bare numbers are read as North American by default. Numbers written with a country code (<code>+44…</code>) are always treated as international.",
            "default": "US"
          },
          "dnsCheck": {
            "title": "Look up mail servers",
            "type": "boolean",
            "description": "Ask the domain's name servers whether it accepts mail. Turning this off leaves syntax and list checks only, and makes the run instant.",
            "default": true
          },
          "maxContacts": {
            "title": "Maximum contacts per run",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "Safety cap on how many contacts one run will check.",
            "default": 10000
          },
          "concurrency": {
            "title": "Parallel lookups",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many domains to look up at once. Twenty is fast and gentle; raise it for very large lists.",
            "default": 20
          },
          "dnsTimeoutMs": {
            "title": "Lookup timeout, milliseconds",
            "minimum": 500,
            "maximum": 15000,
            "type": "integer",
            "description": "How long to wait for a name server before the address is returned as unknown rather than bad. A timeout is retried once with double the budget.",
            "default": 5000
          },
          "httpTimeoutMs": {
            "title": "Page timeout, milliseconds",
            "minimum": 2000,
            "maximum": 30000,
            "type": "integer",
            "description": "How long to wait for a company page before giving up on it.",
            "default": 8000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}