# Bulk Collect: Multi-source 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="../../api-introduction/requests/bulk-collect">bulk-collect</a></td></tr></tbody></table>

## Endpoints

| Request type | Endpoint                                                    |
| ------------ | ----------------------------------------------------------- |
| POST         | */v2/data\_requests/company\_multi\_source/ids*             |
| POST         | */v2/data\_requests/company\_multi\_source/es\_dsl*         |
| GET          | */v2/data\_requests/{data\_request\_id}/files*              |
| GET          | */v2/data\_requests/{data\_request\_id}/files/{file\_name}* |

### Limiting returned record count

Include the parameter `"limit": int` to control the number of records returned by your queries in `/v2/data_requests/company_multi_source/es_dsl` endpoint.

**Request example to retrieve five records**

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

```json
curl -X 'POST' \
'https://api.coresignal.com/cdapi/v2/data_requests/company_multi_source/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 %}

## Credits

Your credits for Multi-source 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/api-introduction/requests/bulk-collect) topic.

## Rate limits

Bulk Collect endpoints have limited requests allowed per second. Learn about rate limits in Bulk Collect usage in the main [Multi-source Company API](https://docs.coresignal.com/company-api/multi-source-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 `webhook_url` is **optional.**
{% endhint %}

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

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

{% endcode %}
{% endtab %}

{% tab title="IDs cURL template" %}

```json
curl -X 'POST' \
  'https://api.coresignal.com/cdapi/v2/data_requests/company_multi_source/ids' \
  -H 'accept: application/json' \
  -H 'apikey: {API Key}' \
  -H 'Content-Type: multipart/form-data' \
  -F 'webhook_url={optional_webhook_url}'\
  -F 'ids={list of ids}'
```

{% endtab %}
{% endtabs %}
