{
  "openapi": "3.0.1",
  "info": {
    "title": "Website Contacts & Decision Makers Scraper",
    "description": "Turn company websites into contact rows: emails, validated phone numbers, social profiles, address, VAT ID and the owners and managers named on the site. Only what the company publishes, no guessed emails. Works on any country's websites and on Google Maps Scraper output.",
    "version": "0.1",
    "x-build-id": "XxGXcEnBJdwaVbTmh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tribloc~website-contacts-decision-makers/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tribloc-website-contacts-decision-makers",
        "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/tribloc~website-contacts-decision-makers/runs": {
      "post": {
        "operationId": "runs-sync-tribloc-website-contacts-decision-makers",
        "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/tribloc~website-contacts-decision-makers/run-sync": {
      "post": {
        "operationId": "run-sync-tribloc-website-contacts-decision-makers",
        "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 websites, one per line. A bare domain (acme.com) works too. Each website is scanned once, even if it appears several times.",
            "items": {
              "type": "string"
            }
          },
          "datasetId": {
            "title": "Import websites from a dataset (optional)",
            "type": "string",
            "description": "ID of a dataset whose items contain a website field, for example the default dataset of a Google Maps Scraper or Google Search run. Fields like title, placeId, address and countryCode are copied into `source_item`, so you can join the rows back. Pick the dataset (or paste its ID); the Actor is given read access to that one dataset only."
          },
          "datasetUrlField": {
            "title": "Website field in the dataset",
            "type": "string",
            "description": "Name of the field that holds the website URL. Leave empty to try the usual names: website, url, websiteUrl, domain, companyWebsite, homepage."
          },
          "findDecisionMakers": {
            "title": "Find decision makers",
            "type": "boolean",
            "description": "Recognise owners, founders, managing directors, executives, board members and department heads named on the website (team, about, imprint and contact pages), with their role and, when published, their email.",
            "default": true
          },
          "maxDecisionMakersPerWebsite": {
            "title": "Max decision makers per website",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "The most senior people first (owner, then executive, board, managing director, department head). Each returned decision maker is a charged event, so this caps the cost per website.",
            "default": 3
          },
          "includeOtherPeople": {
            "title": "Include other named people",
            "type": "boolean",
            "description": "Also list other people named on the website with a role (staff, contact persons). Free of charge.",
            "default": true
          },
          "defaultCountry": {
            "title": "Default country for phone numbers",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string",
            "description": "Two-letter country code (US, GB, DE, ...) used to read local phone numbers written without a country prefix. Leave empty to use the dataset item's countryCode or the website's country domain (.de, .co.uk, ...); without either, only numbers written with an international prefix are returned."
          },
          "maxPagesPerWebsite": {
            "title": "Max pages per website",
            "minimum": 1,
            "maximum": 25,
            "type": "integer",
            "description": "Requests per website, homepage included. The crawler picks the pages most likely to hold contact details first (contact, imprint/legal notice, team, about). 6 to 10 covers almost every small and mid-size business website.",
            "default": 8
          },
          "maxConcurrency": {
            "title": "Websites in parallel",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many websites are scanned at the same time. Each single website is always requested politely, one page at a time.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Most company websites answer direct requests; use a proxy only if many of your websites return blocked or HTTP errors.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}