logo-darkPipe0
Search

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.

On this page