{
  "openapi": "3.0.1",
  "info": {
    "title": "Contact Details Scraper: Website Emails, Phones and Socials",
    "description": "Turn a list of company websites into leads: business emails, formatted phone numbers, social profiles and contact page URLs. Scans the homepage plus contact, imprint and about pages, ranks the shared inbox first. Pay only for websites where contacts were found, the rest are free.",
    "version": "1.0",
    "x-build-id": "mE6cpQmadQj0PnhDx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/joesimo~contact-details-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-joesimo-contact-details-finder",
        "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/joesimo~contact-details-finder/runs": {
      "post": {
        "operationId": "runs-sync-joesimo-contact-details-finder",
        "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/joesimo~contact-details-finder/run-sync": {
      "post": {
        "operationId": "run-sync-joesimo-contact-details-finder",
        "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": {
          "websites": {
            "title": "Websites",
            "type": "array",
            "description": "Company domains or URLs to scan, for example stripe.com or https://www.example.co.uk. The Actor loads the homepage (with www and HTTP fallbacks), then up to a few contact, imprint, about and location pages linked from it. If you start a run with no websites, no bulk paste and no dataset (for example an API call with <code>{}</code>), it scans allbirds.com, katzsdelicatessen.com and flourandwater.com as a demo (about $0.009).",
            "items": {
              "type": "string"
            }
          },
          "websitesText": {
            "title": "Bulk paste",
            "type": "string",
            "description": "Paste many domains or URLs at once, one per line or separated by commas, spaces or semicolons. Combined with the list above."
          },
          "datasetId": {
            "title": "Dataset ID (optional)",
            "type": "string",
            "description": "Read websites from an existing Apify dataset, for example the output of Google Maps or another lead list Actor. Use together with the field name below."
          },
          "datasetField": {
            "title": "Dataset field",
            "type": "string",
            "description": "Field in each dataset item that holds the website or domain. Dot paths such as company.website are supported. Default: website.",
            "default": "website"
          },
          "maxPagesPerSite": {
            "title": "Max pages per website",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Homepage plus the best contact-type pages linked from it (contact, imprint, about, locations, support). 4 finds most published contacts. More pages take longer but the price per website stays the same.",
            "default": 4
          },
          "includePhones": {
            "title": "Find phone numbers",
            "type": "boolean",
            "description": "Collect phone numbers from tel: links, schema.org data and labelled numbers on the page (Phone:, Tel, Call us). Numbers are validated and formatted in international format.",
            "default": true
          },
          "defaultCountry": {
            "title": "Default country for phone numbers",
            "type": "string",
            "description": "Two-letter country code used to read local numbers written without a country code, when the site's domain ending or page language does not reveal the country. Example: US, GB, DE.",
            "default": "US"
          },
          "sameDomainEmailsOnly": {
            "title": "Only emails on the website's own domain",
            "type": "boolean",
            "description": "Keep only addresses like info@company.com for company.com. Drops Gmail, Outlook and agency addresses.",
            "default": false
          },
          "roleEmailsOnly": {
            "title": "Only shared mailboxes",
            "type": "boolean",
            "description": "Keep only generic business addresses such as info@, sales@, hello@, support@. Drops addresses that look personal.",
            "default": false
          },
          "respectRobotsTxt": {
            "title": "Respect robots.txt",
            "type": "boolean",
            "description": "Skip pages that the site's robots.txt disallows for this bot. A site whose homepage is disallowed is saved with status robots_disallowed and is not charged.",
            "default": true
          },
          "dedupe": {
            "title": "Remove duplicates",
            "type": "boolean",
            "description": "Scan each website only once, even if it appears several times in the input.",
            "default": true
          },
          "maxItems": {
            "title": "Max websites",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many websites. 0 means no limit.",
            "default": 0
          },
          "maxConcurrency": {
            "title": "Parallel websites",
            "minimum": 1,
            "maximum": 40,
            "type": "integer",
            "description": "How many websites are scanned at the same time (each loads its pages 2 at a time). Leave empty for automatic: 10 at 512 MB memory (the default), 16 at 1024 MB or more, 6 at 256 MB."
          },
          "timeoutSecs": {
            "title": "Timeout per page (seconds)",
            "minimum": 5,
            "maximum": 60,
            "type": "integer",
            "description": "Maximum time for loading one page, including redirects. A whole website gets at most 4 times this.",
            "default": 20
          },
          "userAgent": {
            "title": "Custom User-Agent",
            "type": "string",
            "description": "Optional. By default the Actor identifies itself honestly as ContactDetailsFinder with a link to this page."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}