{
  "openapi": "3.0.1",
  "info": {
    "title": "Company Enrichment API - Search, Firmographics, Tech Stack",
    "description": "Search companies by country, state, city, industry, employee size, founded year, funding and revenue, or enrich a list of domains, company names and profile URLs. Returns name, domain, industry, employee count, company type, founded year, address and social profiles. Bring your own API key.",
    "version": "0.1",
    "x-build-id": "HtNEoh0DaJ5RlPUr7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~company-enrichment-firmographics-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-company-enrichment-firmographics-api",
        "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/nabeelbaghoor~company-enrichment-firmographics-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-company-enrichment-firmographics-api",
        "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/nabeelbaghoor~company-enrichment-firmographics-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-company-enrichment-firmographics-api",
        "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": {
          "mode": {
            "title": "What to do",
            "enum": [
              "search",
              "enrich"
            ],
            "type": "string",
            "description": "Search builds a new list from the provider's own company filters. Enrich takes a list you already have and fills in the firmographics for each entry. The filters below apply to search, the lists apply to enrich.",
            "default": "search"
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Country to search in, for example germany or united states. The provider requires a country on every search, so this is the one filter search mode cannot run without. Ignored in enrich mode."
          },
          "state": {
            "title": "State or region",
            "type": "string",
            "description": "State or region to narrow the search to, for example california or hamburg. Leave empty to search the whole country."
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City to narrow the search to, for example berlin. Leave empty to search the whole country or region."
          },
          "industry": {
            "title": "Industry",
            "type": "string",
            "description": "Industry to filter on, for example software development or hospital and health care. The provider matches this against its own industry list, so a term from that list returns more than a freeform description."
          },
          "companyNameContains": {
            "title": "Company name contains",
            "type": "string",
            "description": "Return only companies whose name contains this text. Useful for pulling every entity in a group that shares a naming pattern rather than searching for one company."
          },
          "employeeSize": {
            "title": "Employee band",
            "enum": [
              "0-1",
              "1 employee",
              "2-10",
              "11-50",
              "51-200",
              "201-500",
              "501-1000",
              "1,001-5,000",
              "5,001-10,000",
              "10,001+"
            ],
            "type": "string",
            "description": "Headcount band to filter on. These are the exact bands the provider indexes, so a band here filters server side rather than being applied after the fact."
          },
          "foundedAfterYear": {
            "title": "Founded after year",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Return only companies founded after this year. Pair it with the field below to search a founding window, which is the usual way to isolate a startup cohort."
          },
          "foundedBeforeYear": {
            "title": "Founded before year",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Return only companies founded before this year."
          },
          "annualRevenueMin": {
            "title": "Minimum annual revenue (millions USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound on annual revenue, expressed in millions of US dollars, so 5 means five million."
          },
          "annualRevenueMax": {
            "title": "Maximum annual revenue (millions USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on annual revenue, expressed in millions of US dollars."
          },
          "fundingAmountMin": {
            "title": "Minimum funding raised (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound on total funding raised, in US dollars. Use it to keep the list to companies that have actually raised."
          },
          "fundingAmountMax": {
            "title": "Maximum funding raised (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on total funding raised, in US dollars."
          },
          "followersCountMin": {
            "title": "Minimum social followers",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound on the company's social follower count. A rough but effective proxy for how established a company is when headcount is missing."
          },
          "followersCountMax": {
            "title": "Maximum social followers",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on the company's social follower count."
          },
          "productsServices": {
            "title": "Products or services",
            "type": "array",
            "description": "Products or services the company should offer, one per line. Use this when the industry label is too broad to isolate the companies you actually want.",
            "items": {
              "type": "string"
            }
          },
          "isSchool": {
            "title": "Only educational institutions",
            "type": "boolean",
            "description": "Return only educational institutions. Off by default, which searches everything.",
            "default": false
          },
          "excludeSchools": {
            "title": "Exclude educational institutions",
            "type": "boolean",
            "description": "Leave educational institutions out of the results. Only has an effect when the option above is off.",
            "default": false
          },
          "companyDomains": {
            "title": "Company domains to enrich",
            "type": "array",
            "description": "Company domains to enrich, one per line. A pasted URL is reduced to the bare hostname before the request, so a whole browser URL works too. Used in enrich mode.",
            "items": {
              "type": "string"
            }
          },
          "companyNames": {
            "title": "Company names to enrich",
            "type": "array",
            "description": "Company names to enrich, one per line. Use this when you have a name but no domain. A domain resolves more reliably, so prefer the field above where you have one.",
            "items": {
              "type": "string"
            }
          },
          "linkedinUrls": {
            "title": "Company profile URLs to enrich",
            "type": "array",
            "description": "Company profile URLs to enrich, one per line. The URL is reduced to the profile path before the request, so tracking parameters and trailing slashes are fine.",
            "items": {
              "type": "string"
            }
          },
          "addOns": {
            "title": "Extra data to fetch per company",
            "type": "array",
            "description": "Extra endpoints to call for each company on top of the firmographics. Each one costs an additional request and additional provider credits per company, which is why none are on by default. Tech stack returns the technologies in use, revenue returns the revenue estimate, fundraising returns the funding history and locations returns the company's offices.",
            "items": {
              "type": "string",
              "enum": [
                "techStack",
                "revenue",
                "fundraising",
                "locations"
              ],
              "enumTitles": [
                "Tech stack (technologies in use)",
                "Revenue estimate",
                "Fundraising history",
                "Company locations"
              ]
            },
            "default": []
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Pace the run under the provider's documented per-key ceiling of 100 requests per minute. Lower it if you are sharing the key with other jobs, so this actor does not use the whole window on its own.",
            "default": 100
          },
          "skipNotFound": {
            "title": "Skip inputs with no company match",
            "type": "boolean",
            "description": "Leave inputs that resolved to no company out of the dataset. Off by default, because keeping the misses is what lets you see which entries resolved and why. Unmatched rows are never charged for either way.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Stop after this many rows. This is the cap on both spend and run time.",
            "default": 100
          },
          "apiKey": {
            "title": "API key",
            "type": "string",
            "description": "Your own API key for the company data API, sent in the request header rather than a URL parameter, so it never appears in a log line or a redirect. Required for every lookup. Stored as a secret."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}