Skip to main content
The People Contact Lookup API answers the question “who does this email/phone/name belong to?” Hand it an identifier, get back a people_search_id and the matched person’s profile — without having to run a search first.

When to use Contact Lookup

Use Contact Lookup when you have an identifier and want to find the person:
  • An email landed in your inbox — who sent it, what company, what title?
  • A phone number rang on your sales line — match it to a known contact
  • A CSV of leads with names and companies but no Pubrio IDs — resolve them all to people_search_ids
  • Form submission with email + name — enrich into a full contact record
If instead you have a people_search_id (or LinkedIn URL) and want the email + phone for that person, use People Redeem — it’s the forward direction.

Two flavors

Both endpoints return the same match metadata per record (see Match metadata below).

Quick start

Response:

Lookup modes

You can match a person in two ways:

Exact match — by email or phone

The default. Pass email or phone; Pubrio matches on the normalized contact value. This always returns match.confidence: "exact" when it hits.

Similarity match — by name + domain or company

If you don’t have an email or phone, pass first_name, last_name, plus either domain or company. No switch is needed: a row with no email or phone is always searched by name.
Pubrio ranks candidates by name proximity within the company domain (or, if domain is omitted, the company match). domain can also be a website such as https://www.pubrio.com/. Returned matches carry match.confidence: "similarity_domain" or "similarity_company" so you can filter by certainty. You can combine both: pass an email and a name + domain. The exact email match wins. To also search by name when the email or phone finds nobody, set is_enable_similarity_search: true; without it, a row with an email or phone is matched on that alone.

Match metadata

Every returned record includes a match object describing how the hit was made: Use match.confidence to gate downstream actions: e.g., auto-enroll only exact matches into a sequence; route similarity_* matches to manual review.

Batch lookup

Submit up to your subscription’s bulk size limit in one request. Each entry takes the same identifiers as the single-lookup body.
The batch is synchronous — the response contains all resolved records in the same order as the input. Unmatched inputs are dropped from the response (they don’t appear at all and aren’t charged). A request where no entry has an email, phone, or name + domain/company is refused with 400.

Credit cost

1 credit per billable match. Specifically:
  • A successful match (exact or similarity) → 1 credit
  • No match → 0 credits
  • Duplicate input within a batch → 0 credits (resolved once, charged once)
This makes Contact Lookup an order of magnitude cheaper than Redeem — you’re paying to identify a person, not to unlock their contacts. If after looking up you also need their email/phone, redeem the returned people_search_id.

Common patterns

Inbound email enrichment

On every inbound email, look up the sender. Surface their company, title, and people_search_id in your CRM or helpdesk view.

CSV-to-CRM resolution

Resolve a CSV of name + company rows to canonical people_search_ids. Ones that don’t match exact get a similarity attempt automatically.

Form submission enrichment

Hand off { email } from your marketing form. Get back the company, title, and a Pubrio ID you can route through scoring rules.

Lookup → redeem pipeline

Two-step flow: cheap lookup (1 credit) to identify the person, then full redeem (5–10 credits) only for matches above a confidence threshold.

FAQ

No — Contact Lookup returns the person’s profile (people_search_id, name, company, domain, title, etc.) plus match metadata. To get the verified contacts themselves, pass the returned people_search_id to Redeem.
similarity_domain means we anchored the name match to a known company domain — strongest of the similarity tiers. similarity_company means we anchored to a company name with no canonical domain — slightly less reliable, since multiple unrelated companies can share a name.
No. Unmatched inputs are silently dropped from the response and not billed.
The duplicate is detected server-side, the lookup runs once, and you’re charged once. The duplicate entry is flagged with match.is_duplicate_input: true in the response.
The cap is set on your subscription as people_contact_enrichment_bulk_size. Most plans allow 100+ per call; reach out if you need a higher ceiling.
Not on Contact Lookup. Use Redeem with linkedin_url if you have a LinkedIn profile and want both the resolution and the contacts in one call.
Phone is matched on a normalized form. International (E.164) is the most reliable input. Domestic-format numbers may match if the country can be inferred, but E.164 (+15551234567) avoids ambiguity.

People Redeem

Forward direction: spend credits to unlock email + phone for a known people_search_id or LinkedIn URL.

People Search

Find people who match a job/company/location filter.

People Lookup

Resolve a single person’s full profile from a known identifier.

Pricing

Credit costs across all endpoints, by plan tier.
Last modified on October 2, 2026