# ZoomInfo Companies API Documentation

<p><strong>ZoomInfo Companies API</strong> lists companies from the public ZoomInfo company directory. Filter by <code>industry</code>, by <code>country</code>, or by both. Each page has 20 companies. Each company has its name, website domain, ZoomInfo profile link, location (country, state, city), industries, employee count and revenue.</p><p>Read the valid industry slugs from the Industries API and the country slugs from the Locations API (<code>listing_slug</code>). The United States is <code>usa</code>.</p><p>Page through the results with <code>page</code> (1 to 500, so up to 10,000 companies per filter combination). Page N always holds the companies of page N. Combine <code>industry</code> and <code>country</code> to go deeper than 10,000. Filters are always honoured: a response never holds a company outside the requested industry or country.</p><p><code>revenue_usd</code> is in US dollars. <code>employees</code> and <code>revenue_usd</code> are <code>null</code> when ZoomInfo shows no value.</p><p><strong>Coverage:</strong> this API reads the public directory lists only. ZoomInfo company profiles, executives, people and search are not covered. <code>profile_url</code> is a link for reference and is not fetched.</p><p>Each page is one lookup and one credit. Failed requests are never billed.</p>

- **Documentation:** [https://scrappa.co/docs/zoominfo-api/zoominfo_companies](https://scrappa.co/docs/zoominfo-api/zoominfo_companies)
- **API group:** ZoomInfo API
- **Endpoint:** `GET https://scrappa.co/api/zoominfo/companies`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `industry` | string | No | Industry slug, for example software or health-services. Required if country is empty. Example: software. |
| `country` | string | No | Country slug from the Locations API, for example germany, united-kingdom or usa. Required if industry is empty. Example: germany. |
| `page` | integer | No | One-based page number, 1 to 500 (default 1). Example: 2. |

## Example response

```json
{
    "data": {
        "count": 1,
        "filters": {
            "country": "germany",
            "industry": "finance"
        },
        "companies": [
            {
                "name": "Haspa",
                "domain": "www.haspa.de",
                "location": {
                    "city": "Hamburg",
                    "state": "Hamburg",
                    "country": "Germany"
                },
                "employees": 4400,
                "company_id": "429860526",
                "industries": [
                    {
                        "code": "finance.banking?70",
                        "name": "Banking",
                        "slug": null,
                        "score": 70,
                        "primary": true
                    },
                    {
                        "code": "finance?70",
                        "name": "Finance",
                        "slug": null,
                        "score": 70,
                        "primary": true
                    }
                ],
                "profile_url": "https://www.zoominfo.com/c/hamburger-sparkasse-ag/429860526",
                "revenue_raw": "66471936",
                "revenue_usd": 66471936000,
                "employees_raw": "4400"
            }
        ],
        "pagination": {
            "page": 2,
            "has_next": true,
            "max_page": 500,
            "per_page": 20,
            "total_results": 55812
        }
    },
    "meta": {
        "billable": true,
        "endpoint_family": "companies"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Invalid Page | The result page does not exist. Use a lower page number. This response is not billable. |
| 422 | Invalid Filter | ZoomInfo does not know the industry or country. Read the valid values from the industries and locations endpoints. This response is not billable. |
| 422 | Validation Error | A parameter is missing or has an invalid value. This response is not billable. |
| 503 | Upstream Unavailable | ZoomInfo could not be reached or returned a page that does not match the request. This response is not billable and is retryable. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
