Quickstart
Use search to find companies and people using filters. Searching for companies & people is often called "prospecting", "list building" or "sourcing".
The search catalog lists all available datasets.
Making requests
This request fetches a list of people using the people:profiles:crustdata@1 dataset.
const result = await fetch("https://api.pipe0.com/v1/search/run", {
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
search: {
search_id: "people:profiles:crustdata@1",
config: {
limit: 100,
filters: {
current_job_titles: ["Software Engineer", "Developer"]
}
}
},
})
});You can find the list of available filters per dataset in the search catalog.
Getting the task result
The request to POST https://api.pipe0.com/v1/search/run will create a search task.
To get the result of the task, poll the GET https://api.pipe0.com/v1/search/check/{task_id} endpoint until the task status is
completed.
const result = await fetch("https://api.pipe0.com/v1/search/check/${taskId}", {
method: "GET",
headers: {
"Authorization": `Bearer ${API_KEY}`
}
});The result will look something like this:
{
"id": "jyg5w5p7unhcufkp8f7z5za8",
"status": "completed",
"search_id": "people:profiles:crustdata@1",
"organization_id": "v417gjrw51ft55f85ueeqgpt",
"errors": [],
"total_pages": 2764,
"pagination_type": "cursor",
"next_page": {
"config": {
"filters": {
"current_job_titles": ["Software Engineer", "Developer"]
},
"pagination": {
"limit": 100,
"cursor": "H4sIAMaPrWkC..."
},
"output_fields": {
"name": { "alias": "", "enabled": true },
"job_title": { "alias": "", "enabled": true }
}
},
"search_id": "people:profiles:crustdata@1"
},
"results": [
{
"name": {
"ui": {},
"type": "string",
"value": "Gayle Pouros",
"format": "text",
"status": "completed"
},
"job_title": {
"ui": {},
"type": "string",
"value": "Product Intranet Manager",
"format": "text",
"status": "completed"
}
}
]
}The results 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/search/run use the endpoint POST https://api.pipe0.com/v1/search/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.