Enrich records in real time
Use POST /v1/match when the answer belongs in the moment: a lead enters a form, a contact reaches a workflow, or an application needs a richer profile now.
- Add 1–100 records with the identity signals you already have.
- Choose the enrichment fields you want returned.
- Send the request and join each result back to your source with
row_id. - Save returned tier-01
iag_person_idvalues for future supported refreshes.
curl -X POST https://api.infiniteaudience.ai/v1/match \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: lead-enrichment-2026-08-31-001" \ -d '{ "records": [ {"row_id":"lead-42","email":"[email protected]","first_name":"Jane","last_name":"Doe"} ], "field_list": ["estimated_household_income","birth_generation"] }'Each record may include email, phone, hashed contact details, name, postal address, date of birth, or an iag_person_id. Use GET /v1/catalog/fields to see available enrichment fields and POST /v1/quote to preview the request.
Read the result
Section titled “Read the result”The response includes match totals, the amount charged, and a records array. Results may not follow input order, so join them by row_id.
const byRowId = new Map(response.records.map((record) => [record.row_id, record]));const lead = byRowId.get('lead-42');Tier 01 person IDs represent resolved identities and can be supplied on later requests. Other tiers keep unmatched inputs identifiable but do not represent a reusable graph identity. Check match_level and match_confidence when deciding how a result should be used.
Learn how organization-safe person IDs and derived IDs work →
For larger datasets, use file enrichment.
