{
  "openapi": "3.0.1",
  "info": {
    "title": "Contact Details Scraper: Emails, Phones & Socials",
    "description": "Email extractor and contact details scraper for leads: give company websites, get emails, phone numbers (E.164) and social media links (LinkedIn, X, Facebook, Instagram, YouTube, TikTok) from contact, about and legal pages, with source pages. Pay only for websites with contacts.",
    "version": "0.1",
    "x-build-id": "sYGBIZEUHWyKB2edU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zaiq~contact-details-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zaiq-contact-details-extractor",
        "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/zaiq~contact-details-extractor/runs": {
      "post": {
        "operationId": "runs-sync-zaiq-contact-details-extractor",
        "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/zaiq~contact-details-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-zaiq-contact-details-extractor",
        "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": {
          "startUrls": {
            "title": "Websites",
            "type": "array",
            "description": "Company website URLs (https://www.example.com). Paste a list, upload a text or CSV file, or link a Google Sheet. For bare domains (example.com), use the Domains field below. Duplicates of the same site are read once.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "domains": {
            "title": "Domains",
            "type": "array",
            "description": "Bare domains, one per line (example.com, www.example.co.uk). Use this or Websites above, or both.",
            "items": {
              "type": "string"
            }
          },
          "maxPagesPerSite": {
            "title": "Pages per website",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "The home page plus the most likely contact pages, up to this many. More pages can find more addresses but take longer. The price per website is the same.",
            "default": 8
          },
          "pageTypes": {
            "title": "Kinds of pages to follow",
            "type": "array",
            "description": "Which linked pages to read after the home page, found by link text and address in about 25 languages (Contact, Kontakt, Contacto, お問い合わせ ...). The best page of each kind is read first.",
            "items": {
              "type": "string",
              "enum": [
                "contact",
                "impressum",
                "about",
                "team",
                "support",
                "locations",
                "legal",
                "privacy",
                "careers"
              ],
              "enumTitles": [
                "Contact",
                "Legal notice (Impressum, Imprint, Mentions légales)",
                "About",
                "Team and leadership",
                "Support and help",
                "Locations and offices",
                "Terms and legal",
                "Privacy policy",
                "Careers and jobs"
              ]
            },
            "default": [
              "contact",
              "impressum",
              "about",
              "team",
              "support",
              "locations",
              "legal",
              "privacy",
              "careers"
            ]
          },
          "renderMode": {
            "title": "JavaScript rendering",
            "enum": [
              "auto",
              "never",
              "always"
            ],
            "type": "string",
            "description": "Automatic loads a page in a real browser only when its HTML is built by JavaScript, its menu is drawn by a script, or its email addresses are written in by a script, and once more as a last try for a website where nothing was found. At most two pages per website are rendered this way, at no extra cost.",
            "default": "auto"
          },
          "includeSocials": {
            "title": "Social media profiles",
            "type": "boolean",
            "description": "Return LinkedIn, X (Twitter), Facebook, Instagram, YouTube, TikTok, GitHub, Pinterest, WhatsApp and Telegram profiles linked from the website. Share buttons and links to single posts are left out.",
            "default": true
          },
          "includePeopleProfiles": {
            "title": "Include staff LinkedIn profiles",
            "type": "boolean",
            "description": "Off by default. Staff profiles linked from team pages are personal data (GDPR, POPIA, CCPA): turn this on only if you have a lawful basis to process them.",
            "default": false
          },
          "defaultCountry": {
            "title": "Country for phone numbers",
            "type": "string",
            "description": "Two-letter country code used to read phone numbers written without a country code (for example 020 7946 0958). Leave empty to work it out for each website from its domain ending, its address, its language and its own numbers."
          },
          "onlyGenericEmails": {
            "title": "Only generic addresses",
            "type": "boolean",
            "description": "Keep only role mailboxes such as info@, sales@, support@ and kontakt@, and leave out addresses that look like one person's (jane.smith@). Useful when you must avoid personal data.",
            "default": false
          },
          "sameDomainEmailsOnly": {
            "title": "Only addresses on the website's own domain",
            "type": "boolean",
            "description": "Leave out addresses at other domains, such as a web agency's address in the footer or a Gmail address. Sister domains of the same name (acme.com for acme.de) count as the website's own.",
            "default": false
          },
          "keepNoReplyEmails": {
            "title": "Keep no-reply addresses",
            "type": "boolean",
            "description": "Keep addresses like noreply@ and donotreply@ (flagged noReply). They are left out by default because they do not reach anyone.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify's automatic (datacenter) proxy is the default and works for most company websites. Choose residential proxies (and a country if you like) for websites that block datacenter addresses; websites read through residential proxies are charged at the residential price.",
            "default": {
              "useApifyProxy": true
            }
          },
          "respectRobotsTxt": {
            "title": "Respect robots.txt",
            "type": "boolean",
            "description": "Skip pages that the website's robots.txt does not allow. A website whose home page is not allowed comes back as robots-disallowed, free.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Websites at once",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many websites are read at the same time. Each website's pages are read a few at a time.",
            "default": 10
          },
          "maxTriesPerPage": {
            "title": "Tries per page",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "When a page is blocked (403, 429, a bot wall) or the connection fails, it is tried again from a new proxy address, up to this many times. Retries are free.",
            "default": 3
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}