# Bulk Collect: Base Company API

## Overview

Discover the Bulk Collect (Bulk API) capabilities and explore potential uses for efficiently retrieving company data in batches. Find all Bulk Collect related information in the following topic:

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>General information about Bulk Collect</td><td><a href="broken-reference">Broken link</a></td></tr></tbody></table>

## Bulk collect endpoints

Bulk Collect is an extension of Base Company API and includes **three POST** and **two GET** endpoints.

Collect company data in bulk using an ID list, search filters, or Elasticsearch DSL schema that is already used in the Base Company API.

| Request type | Endpoint                                                    |
| ------------ | ----------------------------------------------------------- |
| POST         | */v2/data\_requests/company\_base/id\_file*                 |
| POST         | */v2/data\_requests/company\_base/filter*                   |
| POST         | */v2/data\_requests/company\_base/es\_dsl*                  |
| GET          | */v2/data\_requests/{data\_request\_id}/files*              |
| GET          | */v2/data\_requests/{data\_request\_id}/files/{file\_name}* |

### Limiting the returned record count

Include the parameter `"limit": int` to control the number of records returned by your queries in `/v2/data_requests/company_base/filter` and `/v2/data_requests/company_base/es_dsl` endpoints.

**Request example to retrieve five records**

{% tabs %}
{% tab title="Search filters example" %}
{% code title="Search filters example" %}

```json
curl -X 'POST' \
  'https://api.coresignal.com/cdapi/v2/data_requests/company_base/filter' \
  -H 'accept: application/json' \
  -H 'apikey: {API Key}' \
  -H 'Content-Type: application/json' \
  -d '{
   "webhook_url": {optional_webhook_url}",
   "limit": 5,
   "filters": {
      "industry": "Information technology",
      "created_at_gte": "2018-01-01 00:00:01",
      "last_updated_gte": "2022-05-26 00:00:01"
   }
}'
```

{% endcode %}
{% endtab %}

{% tab title="Elasticsearch DSL example" %}
{% code title="Elasticsearch DSL example" %}

```json
curl -X 'POST' \
  'https: //api.coresignal.com/cdapi/v2/data_requests/company_base/es_dsl' \
  -H 'accept: application/json' \
  -H 'apikey: {API Key}' \
  -H 'Content-Type: application/json' \
  -d '{
  "webhook_url": "{optional_webhook_url}",
  "limit": 5,
   "es_dsl_query": {
      "query": {
         "bool": {
            "must": [
               {
                  "query_string": {
                     "query": "(3D printing) OR (3D printing service) OR (Lead generation)",
                     "default_field": "description",
                     "default_operator": "and"
                  }
               }
            ]
         }
      }
   }
}'
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Credits

Your credits for Base Company API will also apply to Bulk Collect data collection requests.

Learn about the credits in Bulk Collect usage in the [general Bulk Collect](https://docs.coresignal.com/company-api/base-company-api/..#credits) topic.

## Rate limits

Bulk Collect endpoints have limited requests allowed per second. Learn about rate limits in Bulk Collect usage in the main [Base Company API](https://docs.coresignal.com/company-api/base-company-api/..#rate-limits) topic.

## Webhooks

POST endpoints allow you to add webhooks and get notified when your data request is ready.

{% hint style="info" %}
Keep in mind that the `webhook_url` parameter is optional
{% endhint %}

{% tabs %}
{% tab title="ID file cURL template" %}
{% code title="ID file cURL template" %}

```json
curl -X 'POST' \
  'https://api.coresignal.com/cdapi/v2/data_requests/company_base/id_file' \
  -H 'accept: application/json' \
  -H 'apikey: {API Key}' \
  -H 'Content-Type: multipart/form-data' \
  -F 'ids_file=@id_list_example.csv;type=text/csv' \
  -F 'webhook_url={optional_webhook_url}'
```

{% endcode %}
{% endtab %}

{% tab title="Search Filter template" %}
{% code title="Search Filter template" %}

```json
{
  "webhook_url": "{optional_webhook_url}",
  "filters": {}
}
```

{% endcode %}
{% endtab %}

{% tab title="Elasticsearch DSL template" %}
{% code title="Elasticsearch DSL template" %}

```json
{
  "webhook_url": "{optional_webhook_url}",
  "es_dsl_query": {}
}
```

{% endcode %}
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.coresignal.com/company-api/base-company-api/endpoints/bulk-collect.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
