{
  "openapi": "3.0.1",
  "info": {
    "title": "Email Finder & Verifier – B2B Emails by Name & Company",
    "description": "Find a person's work e-mail from name and company (the company's address pattern, learned live and checked against its mail server), list a domain's reachable addresses, or verify an address list in bulk. Every row says what was confirmed. No database resale, no login. Dataset-only, MCP-ready.",
    "version": "0.1",
    "x-build-id": "VwNDLQzzzbfZhYoN0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/inovaflow~email-finder-verifier/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-inovaflow-email-finder-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/inovaflow~email-finder-verifier/runs": {
      "post": {
        "operationId": "runs-sync-inovaflow-email-finder-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/inovaflow~email-finder-verifier/run-sync": {
      "post": {
        "operationId": "run-sync-inovaflow-email-finder-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": {
          "people": {
            "title": "People to find e-mails for",
            "type": "array",
            "description": "One per line: `Jane Doe, acme.com` · `Jane Doe – Acme Inc` · `Jane Doe at acme.com`. Also accepted: objects {name or firstName + lastName, company, domain} — e.g. the rows of a people finder — and the aliases `contacts`, `names`.",
            "items": {
              "type": "string"
            }
          },
          "domains": {
            "title": "Domains to list addresses for",
            "type": "array",
            "description": "Websites or domains, one per line. Every reachable address on the domain is returned (personal and role addresses found on the site, plus the learned pattern applied to the people named on it). Company names are resolved to their website when possible. Also accepted as `companies` or `websites`.",
            "items": {
              "type": "string"
            }
          },
          "emails": {
            "title": "E-mails to verify",
            "type": "array",
            "description": "Addresses to verify, one per line (`jane@acme.com` or `Jane Doe <jane@acme.com>`). Also accepted as `addresses` or objects {email}.",
            "items": {
              "type": "string"
            }
          },
          "verifyEmails": {
            "title": "Verify e-mails",
            "type": "boolean",
            "description": "Check every address against the domain's mail server; addresses on domains without a mail server are dropped (people) or marked invalid (verify list).",
            "default": true
          },
          "smtpVerification": {
            "title": "SMTP mailbox check",
            "type": "boolean",
            "description": "Also ask the mail server whether the mailbox exists and detect catch-all domains (falls back to the mail-server check when SMTP is unreachable).",
            "default": true
          },
          "crawlWebsite": {
            "title": "Read the company website",
            "type": "boolean",
            "description": "Crawl the home page and the contact / about / team / imprint pages for addresses (hidden ones decoded) and named people — the source of the domain's address pattern and of addresses seen directly.",
            "default": true
          },
          "searchWeb": {
            "title": "Search the web for addresses",
            "type": "boolean",
            "description": "Also run one web search per domain for addresses on it (mostly role addresses). Off by default — uses Apify's Google search proxy (a few cents per domain).",
            "default": false
          },
          "maxPagesPerSite": {
            "title": "Pages per website",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "Home page plus contact-type pages crawled per domain.",
            "default": 6
          },
          "maxCandidates": {
            "title": "Candidates per person",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "How many address patterns are tried and reported per person (the learned pattern first).",
            "default": 4
          },
          "includeRoleEmails": {
            "title": "Include role addresses (domain lists)",
            "type": "boolean",
            "description": "In domain lists, also return info@, sales@, support@ and similar role addresses (marked `type: role`).",
            "default": true
          },
          "maxAddressesPerDomain": {
            "title": "Max addresses per domain",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Cap on rows per domain in domain lists.",
            "default": 25
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Upper bound on people + domains + addresses processed in one run.",
            "default": 2000
          },
          "maxConcurrency": {
            "title": "Parallel items",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many people / domains / addresses are processed at once.",
            "default": 8
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}