{
  "openapi": "3.0.1",
  "info": {
    "title": "Lead Finder: Email + Name Extraction",
    "description": "Lead Finder: Email + Name Extraction is a fast, lightweight Apify actor that extracts emails and related names from websites. It supports single URLs or domain crawling, handles obfuscated and protected emails, and offers flexible controls for deduplication, validation, and crawl behaviour.",
    "version": "1.0",
    "x-build-id": "jZNkDkE3Xp59Cycht"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datavault~lead-finder-email-name-extraction/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datavault-lead-finder-email-name-extraction",
        "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/datavault~lead-finder-email-name-extraction/runs": {
      "post": {
        "operationId": "runs-sync-datavault-lead-finder-email-name-extraction",
        "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/datavault~lead-finder-email-name-extraction/run-sync": {
      "post": {
        "operationId": "run-sync-datavault-lead-finder-email-name-extraction",
        "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",
        "required": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "List of URLs to start crawling from.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "crawlDomain": {
            "title": "Crawl Domain",
            "type": "boolean",
            "description": "If checked, the crawler will follow internal links on the same domain. If unchecked, only the Start URLs will be scraped.",
            "default": false
          },
          "maxPagesPerCrawl": {
            "title": "Max pages per crawl",
            "type": "integer",
            "description": "Maximum number of pages that the crawler will open. The crawl will stop when this limit is reached.",
            "default": 20
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "How many pages to process in parallel. Higher values are faster but risk blocking.",
            "default": 5
          },
          "maxRetries": {
            "title": "Max Retries",
            "minimum": 0,
            "type": "integer",
            "description": "Number of times to retry a failed page fetch.",
            "default": 3
          },
          "minRequestDelay": {
            "title": "Minimum Request Delay (ms)",
            "minimum": 0,
            "type": "integer",
            "description": "Wait at least this many milliseconds between requests.",
            "default": 1000
          },
          "enableSkipping": {
            "title": "Enable Pattern Skipping",
            "type": "boolean",
            "description": "If checked, pages matching the 'Skip Patterns' will be ignored.",
            "default": true
          },
          "skipPatterns": {
            "title": "Skip Patterns",
            "type": "array",
            "description": "List of strings or regex patterns to exclude from crawling (checks URL and Page Title).",
            "items": {
              "type": "string"
            }
          },
          "allowSubdomains": {
            "title": "Allow Subdomains",
            "type": "boolean",
            "description": "If checked, the crawler will follow links to subdomains of the start URLs.",
            "default": false
          },
          "followExternalLinks": {
            "title": "Follow External Links",
            "type": "boolean",
            "description": "If checked, the crawler will follow external homepage links (e.g., Website/Hemsida).",
            "default": false
          },
          "followHomepageOnly": {
            "title": "Homepage Only",
            "type": "boolean",
            "description": "If checked, only follow external links labeled as homepage/website.",
            "default": true
          },
          "maxExternalLinksPerPage": {
            "title": "Max external links per page",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of external homepage links to follow per page.",
            "default": 1
          },
          "dedupeByEmail": {
            "title": "Dedupe by Email",
            "type": "boolean",
            "description": "If checked, only one lead per email is stored for the entire run.",
            "default": false
          },
          "dedupeByDomain": {
            "title": "Dedupe by Domain",
            "type": "boolean",
            "description": "If checked, only one lead per email domain is stored for the entire run.",
            "default": false
          },
          "validateEmails": {
            "title": "Validate Emails",
            "type": "boolean",
            "description": "If checked, applies stricter email validation rules.",
            "default": true
          },
          "fetchNextDataApi": {
            "title": "Fetch Next.js Data API",
            "type": "boolean",
            "description": "If checked, tries to fetch the Next.js data endpoint for the current page.",
            "default": true
          },
          "nextDataDeepMode": {
            "title": "Next.js Deep Mode",
            "type": "boolean",
            "description": "If checked, tries additional Next.js data routes derived from the URL path.",
            "default": false
          },
          "maxNextDataCandidates": {
            "title": "Max Next.js Candidates",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of Next.js data URL candidates to try per page.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Use Apify Proxy (recommended for blocked sites)."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}