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 a deterministic identifier, you can fall back to similarity matching. Pass first_name, last_name, plus either domain or company, and set is_enable_similarity_search: true.
Pubrio first tries to find an exact email/phone hit; if none exists and similarity is enabled, it ranks candidates by name proximity within the company domain (or, if domain is omitted, the company match). 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; the name fields become a fallback only if the email doesn’t resolve.

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).

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.