Skip to main content
Searches let you access Clay’s company, people, and jobs data from natural language. When called through the Public API, Searches are two step:
  1. Create a search from a natural-language query.
  2. Use the returned search_id to fetch results.

Create and fetch a page

This example creates a people search and fetches the first page.
SEARCH_ID=$(curl --request POST \
  --url https://api.clay.com/public/v0/searches \
  --header "Content-Type: application/json" \
  --header "clay-api-key: $CLAY_API_KEY" \
  --data '{
    "query": "Find software engineers in New York City",
    "source_type": "people"
  }' | jq -r '.search_id')

curl --request POST \
  --url "https://api.clay.com/public/v0/searches/$SEARCH_ID/next" \
  --header "Content-Type: application/json" \
  --header "clay-api-key: $CLAY_API_KEY" \
  --data '{"limit": 20}'

Choose a source type

Set source_type based on the records you want back.
Source typeUse it for
peopleContacts, titles, locations, and profile data
companiesAccounts, domains, industries, and firmographics
jobsOpen roles, hiring signals, and job records

Response shape

The page endpoint returns records and has_more.
{
  "data": [
    {
      "full_name": "Jane Doe",
      "job_title": "Software Engineer",
      "location": "New York, New York, United States",
      "linkedin_url": "https://www.linkedin.com/in/janedoe"
    }
  ],
  "has_more": true
}
If has_more is true, call POST /searches/{search_id}/next again.

Public API quickstart

Set up your API key.

Generated API reference

See the create-search schema and try-it UI.

Run a search, then enrich with a function

Combine Searches with Clay-managed functions.