Skip to main content
POST

Authorizations

x-api-key
string
header
required

Body

application/json

Provide EITHER a { text } natural-language search (the usual case) OR a { savedFilterId } saved-filter replay. These are two distinct shapes — never combine text and savedFilterId. For generic sourcing, the body has no identityId property. identityId is only legal in the separate identity-scoped LinkedIn shape, where provider must be exactly LINKEDIN.

text
string
required

Natural-language description of the contacts or companies to find. Be specific — include titles, seniority, geography, industries, company size, tech stack, funding, or any other qualifier the AI should use. Example: "VP of Finance at Series B SaaS companies in California with 50-500 employees". 1–2000 characters. This is the natural-language search shape — it has no savedFilterId.

Required string length: 1 - 2000
provider
enum<string>

Which AI Finder provider to use. Omit (or pass AUTO) to let the system route to the best provider for a text query. Pass an explicit value to force one.

Each value encodes the entity type — do NOT pass a separate entity field.

For CRM_CONTACTS / CRM_COMPANIES the specific CRM is auto-detected from the client's configured integrations (preference order: HubSpot → Salesforce → Dynamics → Zoho → Attio → TribeCRM). If the client has no CRM configured, the request returns 422.

Available options:
AUTO,
LINKEDIN,
CRM_CONTACTS,
CRM_COMPANIES,
STORELEADS,
CRUNCHBASE_COMPANIES,
CRUNCHBASE_CONTACTS,
CRUNCHBASE_INVESTORS,
THEIRSTACK_TECHNOLOGY,
THEIRSTACK_JOBS,
GOOGLE_MAPS

Response

Preview generated

status
enum<string>
required
Available options:
success
message
string
required
data
object
required