Types
The nine types every data call reads and returns, what null means in each, and how often a route applies each filter you send.
Null means unknown, never zero
A blank is null, and the page says "unknown". A 0 means the source measured zero. Long-tail search terms often have no volume reading, and that reads searches:, not a term nobody searches. Every type below lists what null means for each field, so an agent never has to guess.
The filter coverage at the foot of the page is the useful version of strict. It shows, per filter, the share of measured calls answered by a route that takes it. A filter under 1% comes back in ignored almost every time, so filter on headcount and country first and judge the rest from the rows.
The Observed type
Where a reading came from. Every row a data call returns carries it, and so does the Event the call emits, so a number is never separated from when and how it was read.
| Field | Type | What null means |
|---|---|---|
observedAt | string, in ISO 8601 | Never null: when the market was read, not when the row was written. A stored reading keeps its first time. |
method | 'sampled' | 'estimated' | 'reported' | Never null. sampled was read live from the site, estimated is modeled from a panel or an index, and reported came from your own connected account. |
venue | VenueId | Absent on a reading that belongs to no site, such as a company profile. |
locale | string, in BCP 47, such as en-US | Absent on a reading that has no market, such as an email check. |
The Cost type
What one call spent, on every priced response. A data call bills units returned, never units asked for, and a miss is free wherever a route allows it.
| Field | Type | Unit | What null means |
|---|---|---|---|
usd | number | USD | Never null. In try mode it is 0: the read runs and nothing is billed. |
maxUsd | number | USD | Never null: the most this call could have spent under its maxCost. |
units | number | the call’s unit: rows, terms, answers, addresses | Never null: what was billed, or would have been in try mode. |
misses | number | None. | Never null: lookups that found nothing and cost nothing. |
The Money type
An amount someone else spent or raised, such as a funding round or a forecast’s spend. What a call costs you is Cost, never Money.
| Field | Type | Unit | What null means |
|---|---|---|---|
amount | number | major units, 2500000 is $2.5M | Never null inside a Money; a field that holds a Money is null when the amount was not disclosed. |
currency | string | ISO 4217 | Never null. |
The Hostname type
A domain with no scheme and no path: harborview-pm.com. Every company is keyed by one, which is why an Organization is found, enriched and resolved by its domain.
| Field | Type | Unit | What null means |
|---|---|---|---|
(value) | string | lowercase, no www. | A field typed Hostname | null is null when no domain is known, such as a person with no current employer. |
The VenueId type
A site as its hub id: google-search, bing, chatgpt, perplexity, reddit, linkedin. Each one is a page under sites. A call that does not read a site refuses it with venue-unsupported.
| Field | Type | Unit | What null means |
|---|---|---|---|
(value) | string | a hub venue id | Never null when present: a reading names the site it was read on. |
The OrganizationFilter type
The filters every Organization call takes, so a count and a find over the same where describe the same companies. A filter no route applies comes back in ignored; with strict: the call refuses with filter-unsupported instead, at $0.
| Field | Type | Unit | What null means |
|---|---|---|---|
industries | string[] | industry words, such as property management | Absent: any industry. |
headcount | { min? | people | Absent: any size. A company with no known headcount is left out of a ranged filter, never counted as zero. |
countries | string[] | ISO 3166-1 alpha-2 | Absent: your home Market. |
regions | string[] | ISO 3166-2, such as US-WA | Absent: every region of countries. |
technologies | string[] | product names as the market says them | Absent: any. |
keywords | string[] | words on the company’s own site | Absent: any. |
revenue | { min? | USD a year | Absent: any. Most private companies report none, so a revenue range drops them. |
fundingStages | ('pre-seed' | 'seed' | 'series-a' | 'series-b' | 'later')[] | None. | Absent: funded or not. |
foundedYear | { min? | year | Absent: any. |
hiringFor | string[] | open role titles | Absent: hiring or not. It runs on the open-roles read, which applies it on every call it answers. |
The ProspectFilter type
The filters every Prospect call takes. organizationWhere holds an OrganizationFilter, so "directors at property managers with 20 to 200 staff" is one filter set.
| Field | Type | What null means |
|---|---|---|
titles | string[] | Absent: any title. |
similarTitles | boolean | Absent: true, so "property manager" also finds "portfolio manager". Pass false for exact titles. |
seniority | ('owner' | 'c-level' | 'vp' | 'director' | 'manager' | 'individual')[] | Absent: any. |
departments | string[], in operations, finance, leasing | Absent: any. |
keywords | string[], in words in the person’s profile | Absent: any. |
locations | string[], in free text, such as Greater Seattle | Absent: anywhere in countries. |
countries | string[], in ISO 3166-1 alpha-2 | Absent: your home Market. |
organizations | Hostname[] | Absent: people at any company. |
organizationWhere | OrganizationFilter | Absent: any company. |
hasEmail | boolean | Absent: false, so people with no work email on file are listed too. |
The EmailResult type
What a mailbox check concluded about one address. The send rule reads it: send deliverable, cap catch-all, re-check unknown, never send invalid or disposable.
| Field | Type | What null means |
|---|---|---|
'deliverable' | EmailResult | The mailbox exists and accepts mail. |
'catch-all' | EmailResult | The domain accepts every address, so this one cannot be confirmed. Free at the standard depth; depth: resolves many. |
'invalid' | EmailResult | The mailbox does not exist, often because the person left. |
'disposable' | EmailResult | A throwaway mailbox service. |
'unknown' | EmailResult | The mail server never answered. Free; check again with depth:. |
The Cursor type
The after value that pages a list. A cursor keeps the page size it was issued with, so limit is ignored when after is sent and the next page never comes back empty because the size changed.
| Field | Type | What null means |
|---|---|---|
after | string | null | The last page: there are no more rows. |
total | number | null, in rows | The source does not report a total. It is never a guess. |
Filter coverage
| Filter | Calls that take it | A route applies it |
|---|---|---|
where.headcount | Organization.count, Organization.find | 100% of 463,483 calls |
where.countries | Organization.count, Organization.find | 100% of 463,483 calls |
where.regions | Organization.count, Organization.find | 95.2% of 463,483 calls |
where.industries | Organization.count, Organization.find | 94.7% of 463,483 calls |
where.revenue | Organization.count, Organization.find | 65.8% of 463,483 calls |
where.keywords | Organization.count, Organization.find | 59.6% of 463,483 calls |
where.technologies | Organization.count, Organization.find | 42.5% of 463,483 calls |
where.foundedYear | Organization.count, Organization.find | 14.5% of 463,483 calls |
where.fundingStages | Organization.count, Organization.find | 0.7% of 463,483 calls |
where.hiringFor | Organization.find | 99.9% of 5,524 calls |
where.organizations | Prospect.count, Prospect.find | 100% of 9,229,085 calls |
where.titles | Prospect.count, Prospect.find | 99.2% of 9,229,085 calls |
where.organizationWhere | Prospect.count, Prospect.find | 94.1% of 9,229,085 calls |
where.countries | Prospect.count, Prospect.find | 94% of 9,229,085 calls |
where.locations | Prospect.count, Prospect.find | 92.7% of 9,229,085 calls |
where.hasEmail | Prospect.count, Prospect.find | 81.3% of 9,229,085 calls |
where.keywords | Prospect.count, Prospect.find | 68.7% of 9,229,085 calls |
where.seniority | Prospect.count, Prospect.find | 25.8% of 9,229,085 calls |
where.departments | Prospect.count, Prospect.find | 18.9% of 9,229,085 calls |
Where no route applies a filter you sent, the response lists it in ignored; pass strict: to be refused instead, at $0.