Choosing How to Collect: Collect, Enrich or Bulk Collect
Once matching records have been identified, whether through Search Filters, an Elasticsearch DSL query, or an ID, shorthand name, or URL obtained elsewhere, the next step is to retrieve the underlying data. Collect, Enrich, and Bulk Collect handle this.
All three retrieval methods perform the same core task: converting an identifier (an ID, a URL, or a query) into a complete data record. They differ in the input they require and in the number of records returned per request. Selecting the appropriate method reduces unnecessary credit consumption and simplifies integration. This guide explains each method, when to use it, and how to construct an initial query.
Overview
The key distinction to retain is this: Collect and Enrich each return a single record per request, whereas Bulk Collect returns multiple records. The remaining differences concern how the record or records are specified.
Collect
An ID or a shorthand name
One record
The exact record to retrieve is already known
Enrich
A website or social media URL
One record
A URL is available (e.g., from a CRM) but no IDs
Bulk Collect
A list of IDs, filters, or an Elasticsearch DSL query
Multiple records in a single request
Hundreds or thousands of records are required
Collect requests
A Collect request is the most direct API call: a single GET request that returns a specific record. Collect requests typically follow a Search Filter or an Elasticsearch DSL query because those queries return matching IDs, not full records. Collect step converts an ID into a complete profile, including all fields documented in the data dictionary.
When to use it:
A company, employee, or job ID is already available from a previous search or an existing database, or you have a shorthand name.
Only one record is necessary per request, such as when a user views individual profiles within an application.
Accurate control over the returned record is essential.
Collect using a shorthand name
Collect accepts more than just numeric IDs. Many endpoints also support a shorthand name, which is a readable slug that identifies a profile on its source platform, like "apple" for a company page. This is particularly helpful when you know the company's public page but not its numeric ID.
To differentiate between them: an ID is the numeric value that Coresignal assigns to a record (e.g., 1234567), whereas a shorthand name is a human-readable slug derived from the profile's URL (e.g., apple from .../company/apple). Both options refer to the same record, and you can use either depending on which is available.
Collect selected fields
The fields parameter allows you to specify only the necessary fields instead of the entire record, reducing response size and easing subsequent processing.
You can include unlimited fields= parameters where each one adds an additional field to the response.
Enrich requests
Enrich functions similarly to Collect but requires a website or social media profile URL instead of an ID. This approach is ideal when beginning with a web address rather than an ID, which is common with CRM records, spreadsheets, and lead lists.
When to use it:
Enriching existing CRM or lead list records when only a company website or a profile URL is available.
The Coresignal ID is unavailable, and a separate search is not preferred.
Building a workflow in which users submit a link and expect to receive data in return.
Enrich endpoints handle different URL formats, such as URLs with or without https://, www, trailing slashes, or subdomains, and correctly resolve them to the appropriate record.
Bulk Collect requests
Collect and Enrich work well for retrieving individual records but are not practical for processing hundreds or thousands of profiles, since that would require managing many individual requests. Bulk Collect overcomes this limitation by enabling a single request to retrieve multiple records using various inputs:
A list of IDs
Search Filters
An Elasticsearch DSL query
Because Bulk Collect requests may return many records and consume more credits, it's advisable to first test your search filter or Elasticsearch DSL query using the standard Search or Collect endpoints. This lets you see the number of matching records before executing the bulk request.
Bulk Collect is a broader topic on its own. Unlike Collect and Enrich, it involves multiple requests to obtain data (one to submit the query and others to retrieve the files), along with dedicated POST and GET endpoints, and file management. These aspects are explained in the dedicated Bulk Collect guide.
Typical workflow
Most users combine these methods rather than picking just one:
Search (Search Filters or Elasticsearch DSL) to find matching IDs.
Collect each ID for which you want the full record, or Enrich if you're starting from a URL instead of an ID.
Switch to Bulk Collect when your workflow needs hundreds or thousands of records at once, instead of looping through single requests.
Related reading
Identify matching IDs using simple filters
Identify matching IDs using advanced queries
Details on credit deduction for Collect, Enrich, and Bulk Collect
A full walkthrough of bulk endpoints, webhooks, and request limits
Last updated
Was this helpful?