{
  "openapi": "3.0.1",
  "info": {
    "title": "Company Enrichment by Domain (Official Registers)",
    "description": "Turn domains into company profiles verified in official registers: legal name, company number, status, founding year, industry, headcount band, revenue, officers, VAT check, LEI and parent company, plus email provider, DMARC and tech stack. Every fact carries its source.",
    "version": "0.1",
    "x-build-id": "zFIRkEiQ776Y3FQPR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/truswen~company-enrichment-by-domain/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-truswen-company-enrichment-by-domain",
        "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/truswen~company-enrichment-by-domain/runs": {
      "post": {
        "operationId": "runs-sync-truswen-company-enrichment-by-domain",
        "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/truswen~company-enrichment-by-domain/run-sync": {
      "post": {
        "operationId": "run-sync-truswen-company-enrichment-by-domain",
        "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": "Domains or websites",
            "type": "array",
            "description": "One per line. A bare domain (acme.com) works. Each domain is processed and charged once, even if it appears several times.",
            "items": {
              "type": "string"
            }
          },
          "datasetId": {
            "title": "Import domains from a dataset (optional)",
            "type": "string",
            "description": "ID of a dataset whose items contain a website or domain field, for example a CRM export or a Google Maps Scraper run. Fields like title, company_name, country and id are copied into `source_item` so you can join the rows back; a company name or country in the item also helps the register match. 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 or domain. Leave empty to try the usual names: website, url, websiteUrl, domain, companyWebsite, homepage."
          },
          "registryLookup": {
            "title": "Look the company up in official registers",
            "type": "boolean",
            "description": "Identify the company in the national register on the evidence its own website gives (company number, VAT number, legal name and address in the legal notice). Covered: France, United Kingdom, Czech Republic, Finland, Poland, Switzerland, Norway (when reachable). A match is a separately charged event.",
            "default": true
          },
          "includeLei": {
            "title": "Add LEI and parent companies (GLEIF)",
            "type": "boolean",
            "description": "Find the company's Legal Entity Identifier and its direct and ultimate parent in the open GLEIF index. This also covers companies in countries without a free register API, such as Germany, when the website shows the commercial register number.",
            "default": true
          },
          "validateVat": {
            "title": "Validate the EU VAT number (VIES)",
            "type": "boolean",
            "description": "Check the VAT number in the European Commission's VIES service and compare the registered name with the website.",
            "default": true
          },
          "checkDns": {
            "title": "Email provider and DMARC from DNS",
            "type": "boolean",
            "description": "Read the domain's public MX, SPF and DMARC records: email provider, security gateway, DMARC policy and email services the domain authorises.",
            "default": true
          },
          "detectTechnologies": {
            "title": "Detect the website's technologies",
            "type": "boolean",
            "description": "CMS, ecommerce platform, analytics, marketing and chat tools, hosting and frameworks, from the pages fetched anyway.",
            "default": true
          },
          "includeContacts": {
            "title": "Include contacts from the website",
            "type": "boolean",
            "description": "Published emails, phone numbers, social profiles and the decision makers named on the website.",
            "default": true
          },
          "companiesHouseApiKey": {
            "title": "Companies House API key (optional)",
            "type": "string",
            "description": "Without a key, UK companies are read from the public Companies House service pages. With your own free REST API key (developer.company-information.service.gov.uk) the official API is used instead."
          },
          "defaultCountry": {
            "title": "Default country",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string",
            "description": "Two-letter code (FR, GB, DE, ...) used when neither the dataset item, the website's identifiers nor its country domain tell the country. Also used to read local phone numbers."
          },
          "maxPagesPerWebsite": {
            "title": "Max pages per website",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "Homepage included. The crawler reads the legal notice first, then contact, about and team pages. 5 is enough for most companies.",
            "default": 5
          },
          "maxConcurrency": {
            "title": "Domains in parallel",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "How many domains are processed at the same time. Each website and each register is always requested at its own polite rate.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy for websites",
            "type": "object",
            "description": "Optional, for the company websites only (registers are always read directly). Use it only if many 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}