Skip to Content
DocumentationQuickstart

Searches quickstart

Use Searches to find companies and people using filters. Searching for companies & people is often called “prospecting”, “list building” or “sourcing”.

With searches, you combine datasets from multiple providers. The search catalog lists all available datasets.

Making requests

This request fetches a list of companies using the people:profiles:icypeas@1 dataset.

const result = await fetch("https://api.pipe0.com/v1/searches/run", { method: "POST", headers: { "Authorization": `Bearer ${API_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ config: { environment: "production", dedup: { strategy: "default" } }, searches: [ { search_id: "people:profiles:icypeas@1", config: { limit: 100, filters: { industry: { include: ["Software Development"] } } } }, ], }) });

You can find the list of available filters per dataset in the search catalog .

Append additional searches to the searches property to combine multiple searches in one request.

Getting the task result

The request to POST https://api.pipe0.com/v1/searches/run will create a search task. To get the result of the task, poll the GET https://api.pipe0.com/v1/searches/check/{task_id} endpoint until the task status is completed.

const result = await fetch("https://api.pipe0.com/v1/searches/check/${taskId}", { method: "POST", headers: { "Authorization": `Bearer ${API_KEY}` } });

The result will look something like this:

{ "results": [ { "name": { "value": "Gayle Pouros", "type": "string", "format": "text", "status": "completed" "ui": {}, }, "job_title": { "value": "Product Intranet Manager", "type": "string", "format": "text", "status": "completed", "ui": {}, }, ... }, ... ] }

The result of a search can be the input for a pipes request (enrichment). Under the hood, this uses input expansion.

Getting the result without polling

Instead of creating your task with the endpoint POST https://api.pipe0.com/v1/searches/run use the endpoint POST https://api.pipe0.com/v1/searches/run/sync. Use the same payload for both endpoints. The /sync endpoint will try to return the completed result in one round-trip.

Read more about the trade-offs between async vs sync requests here.

Last updated on