Skip to main content
Every search and enrich operation comes in two modes that share the same request and response shape — switch between them by swapping database ↔ realtime in the path:

Decision matrix

Start with database mode: it answers instantly and costs less. Switch the same request to realtime when you need data fresh as of today or filters database mode doesn’t support.

When to use which

Use database when:
  • you process volume and care about cost and speed (list building, scoring, backfills)
  • last-year freshness is acceptable for your workflow
  • you want free counts to size an audience before paying for results
Use real-time when:
  • the record must be current right now (job changes, new role verification)
  • you need advanced targeting: keywords, past_company_names, schools, groups, functions
  • you need live signals (changed_jobs, posted_on_linkedin, mentioned_in_news) or search_emails

Filters supported in database mode

Leads: job_titles, seniorities, locations, exclude_locations, company_locations, exclude_company_locations, company_industries, exclude_company_industries, company_headcounts, exclude_company_headcounts, company_types — plus targeting a single company via company_id, company_link, or company_name. Companies: industries, exclude_industries, headcounts, locations, exclude_locations, company_types. The sub_industries toggle is also accepted here and behaves the same as in real-time mode (it modifies industries rather than counting as a filter on its own). Anything outside this set is rejected with 400 and a message pointing to the realtime endpoint, so an unsupported filter is never silently ignored. At least one search filter is always required.
A supported filter given an unknown value is a different matter, and the behaviour is not uniform:
  • locations, company_headcounts and company_types reject an unknown value with 400, naming the field (the headcount error also lists the valid buckets).
  • company_industries / industries and seniorities do not validate. An unrecognised value simply matches nothing, so the request succeeds, returns 0 results and charges \$0.
So company_industries: ["Fintech"] — not a LinkedIn industry — looks exactly like a real empty audience. Industry and seniority values are matched exactly: use the names from ICP Search, and when a count comes back as zero, re-check the spelling before concluding the audience does not exist.

Billing

Both modes charge per returned result at their own rate — real-time costs more than database. If nothing is found, nothing is charged. Exact prices for your account are in your billing settings.