Skip to content

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: null, 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.

FieldTypeWhat null means
observedAtstring, in ISO 8601Never 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.
venueVenueIdAbsent on a reading that belongs to no site, such as a company profile.
localestring, in BCP 47, such as en-USAbsent 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.

FieldTypeUnitWhat null means
usdnumberUSDNever null. In try mode it is 0: the read runs and nothing is billed.
maxUsdnumberUSDNever null: the most this call could have spent under its maxCost.
unitsnumberthe call’s unit: rows, terms, answers, addressesNever null: what was billed, or would have been in try mode.
missesnumberNone.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.

FieldTypeUnitWhat null means
amountnumbermajor units, 2500000 is $2.5MNever null inside a Money; a field that holds a Money is null when the amount was not disclosed.
currencystringISO 4217Never 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.

FieldTypeUnitWhat null means
(value)stringlowercase, 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.

FieldTypeUnitWhat null means
(value)stringa hub venue idNever 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: true the call refuses with filter-unsupported instead, at $0.

FieldTypeUnitWhat null means
industriesstring[]industry words, such as property managementAbsent: any industry.
headcount{ min?: number; max?: number }peopleAbsent: any size. A company with no known headcount is left out of a ranged filter, never counted as zero.
countriesstring[]ISO 3166-1 alpha-2Absent: your home Market.
regionsstring[]ISO 3166-2, such as US-WAAbsent: every region of countries.
technologiesstring[]product names as the market says themAbsent: any.
keywordsstring[]words on the company’s own siteAbsent: any.
revenue{ min?: number; max?: number }USD a yearAbsent: 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?: number; max?: number }yearAbsent: any.
hiringForstring[]open role titlesAbsent: 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.

FieldTypeWhat null means
titlesstring[]Absent: any title.
similarTitlesbooleanAbsent: true, so "property manager" also finds "portfolio manager". Pass false for exact titles.
seniority('owner' | 'c-level' | 'vp' | 'director' | 'manager' | 'individual')[]Absent: any.
departmentsstring[], in operations, finance, leasingAbsent: any.
keywordsstring[], in words in the person’s profileAbsent: any.
locationsstring[], in free text, such as Greater SeattleAbsent: anywhere in countries.
countriesstring[], in ISO 3166-1 alpha-2Absent: your home Market.
organizationsHostname[]Absent: people at any company.
organizationWhereOrganizationFilterAbsent: any company.
hasEmailbooleanAbsent: 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.

FieldTypeWhat null means
'deliverable'EmailResultThe mailbox exists and accepts mail.
'catch-all'EmailResultThe domain accepts every address, so this one cannot be confirmed. Free at the standard depth; depth: deep resolves many.
'invalid'EmailResultThe mailbox does not exist, often because the person left.
'disposable'EmailResultA throwaway mailbox service.
'unknown'EmailResultThe mail server never answered. Free; check again with depth: deep.

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.

FieldTypeWhat null means
afterstring | nullThe last page: there are no more rows.
totalnumber | null, in rowsThe source does not report a total. It is never a guess.

Filter coverage

FilterCalls that take itA route applies it
where.headcountOrganization.count, Organization.find100% of 463,483 calls
where.countriesOrganization.count, Organization.find100% of 463,483 calls
where.regionsOrganization.count, Organization.find95.2% of 463,483 calls
where.industriesOrganization.count, Organization.find94.7% of 463,483 calls
where.revenueOrganization.count, Organization.find65.8% of 463,483 calls
where.keywordsOrganization.count, Organization.find59.6% of 463,483 calls
where.technologiesOrganization.count, Organization.find42.5% of 463,483 calls
where.foundedYearOrganization.count, Organization.find14.5% of 463,483 calls
where.fundingStagesOrganization.count, Organization.find0.7% of 463,483 calls
where.hiringForOrganization.find99.9% of 5,524 calls
where.organizationsProspect.count, Prospect.find100% of 9,229,085 calls
where.titlesProspect.count, Prospect.find99.2% of 9,229,085 calls
where.organizationWhereProspect.count, Prospect.find94.1% of 9,229,085 calls
where.countriesProspect.count, Prospect.find94% of 9,229,085 calls
where.locationsProspect.count, Prospect.find92.7% of 9,229,085 calls
where.hasEmailProspect.count, Prospect.find81.3% of 9,229,085 calls
where.keywordsProspect.count, Prospect.find68.7% of 9,229,085 calls
where.seniorityProspect.count, Prospect.find25.8% of 9,229,085 calls
where.departmentsProspect.count, Prospect.find18.9% of 9,229,085 calls

Where no route applies a filter you sent, the response lists it in ignored; pass strict: true to be refused instead, at $0.

Contents