{
  "openapi": "3.0.1",
  "info": {
    "title": "Company Website Research",
    "description": "Turn company websites into structured profiles with public emails, phone numbers, social links, business summaries and product or service information. Start with a website or company name; research one company or a batch.",
    "version": "0.0",
    "x-build-id": "a6gw3XAAwKAfREqMZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mstech~company-website-research/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mstech-company-website-research",
        "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/mstech~company-website-research/runs": {
      "post": {
        "operationId": "runs-sync-mstech-company-website-research",
        "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/mstech~company-website-research/run-sync": {
      "post": {
        "operationId": "run-sync-mstech-company-website-research",
        "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": {
          "website_url": {
            "title": "Company website",
            "pattern": "^https?://.+",
            "type": "string",
            "description": "An example website is prefilled. Replace it with your company website, or clear it and enter a company name below. Only one is needed."
          },
          "company_name": {
            "title": "Company name",
            "type": "string",
            "description": "Enter a company name to find its website, or optionally use it as a name hint when a website is supplied. For ambiguous names, add the company country under Website lookup."
          },
          "companies": {
            "title": "Company list",
            "type": "array",
            "description": "Optional array of 1–100 company objects with company_name, website_url or domain, and optional country/social_link. Shared crawl options apply to every company. Batch identifiers override top-level company identifiers.",
            "items": {
              "type": "object",
              "properties": {
                "company_name": {
                  "type": "string",
                  "title": "company name",
                  "description": "Per-company company name.",
                  "editor": "textfield"
                },
                "website_url": {
                  "type": "string",
                  "title": "website url",
                  "description": "Per-company website url.",
                  "editor": "textfield"
                },
                "domain": {
                  "type": "string",
                  "title": "domain",
                  "description": "Per-company domain.",
                  "editor": "textfield"
                },
                "country": {
                  "type": "string",
                  "title": "country",
                  "description": "Per-company country.",
                  "editor": "textfield"
                },
                "social_link": {
                  "type": "string",
                  "title": "social link",
                  "description": "Per-company social link.",
                  "editor": "textfield"
                }
              }
            }
          },
          "max_concurrency": {
            "title": "Concurrent companies",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Batch workers. Requests to the same resolved host are serialized. For large batches allow a longer Actor timeout; each company has its own max_duration_secs. Concurrency is also limited by Actor RAM (approximately one worker per 768 MB).",
            "default": 2
          },
          "country": {
            "title": "Company country",
            "enum": [
              "Afghanistan",
              "Albania",
              "Algeria",
              "Andorra",
              "Angola",
              "Antigua and Barbuda",
              "Argentina",
              "Armenia",
              "Australia",
              "Austria",
              "Azerbaijan",
              "Bahamas",
              "Bahrain",
              "Bangladesh",
              "Barbados",
              "Belarus",
              "Belgium",
              "Belize",
              "Benin",
              "Bhutan",
              "Bolivia",
              "Bosnia and Herzegovina",
              "Botswana",
              "Brazil",
              "Brunei",
              "Bulgaria",
              "Burkina Faso",
              "Burundi",
              "Cambodia",
              "Cameroon",
              "Canada",
              "Cape Verde",
              "Central African Republic",
              "Chad",
              "Chile",
              "China",
              "Colombia",
              "Comoros",
              "Congo",
              "Costa Rica",
              "Croatia",
              "Cuba",
              "Cyprus",
              "Czech Republic",
              "Denmark",
              "Djibouti",
              "Dominica",
              "Dominican Republic",
              "Ecuador",
              "Egypt",
              "El Salvador",
              "Equatorial Guinea",
              "Eritrea",
              "Estonia",
              "Eswatini",
              "Ethiopia",
              "Fiji",
              "Finland",
              "France",
              "Gabon",
              "Gambia",
              "Georgia",
              "Germany",
              "Ghana",
              "Greece",
              "Grenada",
              "Guatemala",
              "Guinea",
              "Guinea-Bissau",
              "Guyana",
              "Haiti",
              "Honduras",
              "Hungary",
              "Iceland",
              "India",
              "Indonesia",
              "Iran",
              "Iraq",
              "Ireland",
              "Israel",
              "Italy",
              "Jamaica",
              "Japan",
              "Jordan",
              "Kazakhstan",
              "Kenya",
              "Kiribati",
              "Kuwait",
              "Kyrgyzstan",
              "Laos",
              "Latvia",
              "Lebanon",
              "Lesotho",
              "Liberia",
              "Libya",
              "Liechtenstein",
              "Lithuania",
              "Luxembourg",
              "Madagascar",
              "Malawi",
              "Malaysia",
              "Maldives",
              "Mali",
              "Malta",
              "Marshall Islands",
              "Mauritania",
              "Mauritius",
              "Mexico",
              "Micronesia",
              "Moldova",
              "Monaco",
              "Mongolia",
              "Montenegro",
              "Morocco",
              "Mozambique",
              "Myanmar",
              "Namibia",
              "Nauru",
              "Nepal",
              "Netherlands",
              "New Zealand",
              "Nicaragua",
              "Niger",
              "Nigeria",
              "North Korea",
              "North Macedonia",
              "Norway",
              "Oman",
              "Pakistan",
              "Palau",
              "Panama",
              "Papua New Guinea",
              "Paraguay",
              "Peru",
              "Philippines",
              "Poland",
              "Portugal",
              "Qatar",
              "Romania",
              "Russia",
              "Rwanda",
              "Saint Kitts and Nevis",
              "Saint Lucia",
              "Saint Vincent and the Grenadines",
              "Samoa",
              "San Marino",
              "Sao Tome and Principe",
              "Saudi Arabia",
              "Senegal",
              "Serbia",
              "Seychelles",
              "Sierra Leone",
              "Singapore",
              "Slovakia",
              "Slovenia",
              "Solomon Islands",
              "Somalia",
              "South Africa",
              "South Korea",
              "South Sudan",
              "Spain",
              "Sri Lanka",
              "Sudan",
              "Suriname",
              "Sweden",
              "Switzerland",
              "Syria",
              "Taiwan",
              "Tajikistan",
              "Tanzania",
              "Thailand",
              "Timor-Leste",
              "Togo",
              "Tonga",
              "Trinidad and Tobago",
              "Tunisia",
              "Turkey",
              "Turkmenistan",
              "Tuvalu",
              "Uganda",
              "Ukraine",
              "United Arab Emirates",
              "United Kingdom",
              "United States",
              "Uruguay",
              "Uzbekistan",
              "Vanuatu",
              "Vatican City",
              "Venezuela",
              "Vietnam",
              "Yemen",
              "Zambia",
              "Zimbabwe"
            ],
            "type": "string",
            "description": "Optional country hint. Recommended when using company_name only."
          },
          "domain": {
            "title": "Domain",
            "type": "string",
            "description": "Company domain without protocol. The Actor will normalize it to an HTTPS website URL."
          },
          "social_link": {
            "title": "Known social link",
            "pattern": "^https?://.+",
            "type": "string",
            "description": "Known company social link, typically LinkedIn."
          },
          "discover_if_missing": {
            "title": "Discover if missing",
            "type": "boolean",
            "description": "Whether the Actor should attempt website discovery when no website URL or domain is provided.",
            "default": true
          },
          "max_discovery_charge_usd": {
            "title": "Website lookup charge limit (USD)",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Pay-per-event charge limit for the single nested Google Search run. Google Search currently requires a limit of at least $0.50; this is a ceiling, not a fixed fee. Set 0 to use only internal search fallbacks. Platform usage is separate.",
            "default": 0.5
          },
          "mode": {
            "title": "Research depth",
            "enum": [
              "fast",
              "deep"
            ],
            "type": "string",
            "description": "Use fast mode for lower latency or deep mode for fuller page coverage.",
            "default": "deep"
          },
          "allow_unblocker_proxy": {
            "title": "Automatically handle blocked websites (extra proxy costs)",
            "type": "boolean",
            "description": "Enabled by default. After a confirmed access block, the Actor automatically tries Apify Unblocker before local browser recovery. Successful managed requests incur separate Apify usage. Disable this option to prevent managed fallback; explicit UNBLOCKER proxy groups still select that service.",
            "default": true
          },
          "max_pages": {
            "title": "Maximum pages per company",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of pages to crawl on the company website.",
            "default": 3
          },
          "max_text_chars": {
            "title": "Maximum retained text characters",
            "minimum": 500,
            "maximum": 200000,
            "type": "integer",
            "description": "Maximum total number of extracted text characters across all pages.",
            "default": 14000
          },
          "max_duration_secs": {
            "title": "Time limit per company (seconds)",
            "minimum": 30,
            "maximum": 3600,
            "type": "integer",
            "description": "Shared limit for website lookup and crawling. The Actor also stops before its platform timeout to save available evidence. The standard Actor timeout is 360 seconds; longer batches need a longer run timeout.",
            "default": 300
          },
          "extract_contacts": {
            "title": "Extract contacts",
            "type": "boolean",
            "description": "Whether the Actor should extract public emails, phone numbers, and an address candidate.",
            "default": true
          },
          "follow_subpages": {
            "title": "Follow subpages",
            "type": "boolean",
            "description": "Whether the Actor should follow relevant internal links beyond the homepage.",
            "default": true
          },
          "use_sitemap": {
            "title": "Discover sitemap pages",
            "type": "boolean",
            "description": "Look for relevant pages through robots.txt and at most three same-site sitemaps, within eight seconds.",
            "default": true
          },
          "include_documents": {
            "title": "Extract PDF documents",
            "type": "boolean",
            "description": "Read linked public PDFs when enabled: at most 8 MB and 20 pages per document. No OCR or gated downloads.",
            "default": false
          },
          "include_path_hints": {
            "title": "Path hints",
            "type": "array",
            "description": "Preferred path fragments used to prioritize high-value company pages.",
            "items": {
              "type": "string"
            },
            "default": [
              "kontakt",
              "contacto",
              "contactez",
              "contatti",
              "contato",
              "impressum",
              "uber-uns",
              "ueber-uns",
              "a-propos",
              "nosotros",
              "chi-siamo",
              "sobre",
              "produkte",
              "productos",
              "produits",
              "prodotti",
              "produtos",
              "leistungen",
              "联系我们",
              "关于我们",
              "产品",
              "会社概要",
              "お問い合わせ",
              "製品",
              "연락처",
              "회사소개",
              "about",
              "company",
              "about-us",
              "aboutus",
              "who-we-are",
              "our-story",
              "products",
              "product",
              "services",
              "service",
              "solutions",
              "contact",
              "contact-us",
              "team",
              "leadership",
              "careers",
              "career",
              "gioi-thieu",
              "ve-chung-toi",
              "thong-tin",
              "linh-vuc",
              "san-pham",
              "dich-vu",
              "giai-phap",
              "lien-he",
              "doi-ngu",
              "lanh-dao",
              "tuyen-dung"
            ]
          },
          "anti_block_mode": {
            "title": "Anti-block mode",
            "enum": [
              "off",
              "basic",
              "aggressive"
            ],
            "type": "string",
            "description": "Controls browser-side hardening and blocker handling for difficult websites.",
            "default": "basic"
          },
          "use_proxy": {
            "title": "Force proxy from the start",
            "type": "boolean",
            "description": "Leave disabled for automatic routing. Enable only to force the chosen proxy groups for every HTTP and browser request.",
            "default": false
          },
          "proxy_groups": {
            "title": "Custom proxy groups",
            "type": "array",
            "description": "Optional Apify Proxy groups such as RESIDENTIAL or UNBLOCKER. UNBLOCKER handles fetching/rendering as a managed service and charges successful requests separately. Leave empty to use your default proxy pool.",
            "items": {
              "type": "string"
            }
          },
          "allow_residential_proxy": {
            "title": "Allow residential recovery (extra proxy costs)",
            "type": "boolean",
            "description": "Allow automatic escalation to residential proxy after blocking. Residential traffic has additional platform costs. Explicit RESIDENTIAL proxy_groups with use_proxy=true also enables residential traffic.",
            "default": false
          },
          "salvage_if_blocked": {
            "title": "Try alternative pages when the homepage is unavailable",
            "type": "boolean",
            "description": "If the homepage is blocked or unavailable, try likely subpages before giving up.",
            "default": true
          },
          "locale": {
            "title": "Preferred website language",
            "type": "string",
            "description": "Language tag used consistently for HTTP requests and browser fingerprints, for example vi-VN or de-DE.",
            "default": "en-US"
          },
          "proxy_country_code": {
            "title": "Proxy country override",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string",
            "description": "Optional two-letter Apify Proxy country code. Keep it consistent with the requested regional website and locale."
          },
          "cache_ttl_hours": {
            "title": "Shared cache TTL (hours)",
            "minimum": 0,
            "maximum": 168,
            "type": "integer",
            "description": "0 disables cross-run caching. Optional cache retains up to 100 discovery/HTTP records; cached HTML is revalidated using ETag or Last-Modified.",
            "default": 0
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}