Formats
CSV, JSON, JSONL, or Avro. CSV, JSON, and JSONL files can also be gzip-compressed. Avro is already compressed.
You do not need every field, and you do not need a perfect file. Send what you have permission to use. Each additional signal that agrees with the graph adds confidence.
Real-time requests and file uploads accept the same fields.
| What you send | Best possible result |
|---|---|
| An Infinite Audience Graph Person ID you received earlier | Recognized directly and refreshed, with no rematching |
| First name + last name + street address + zip | I · Individual |
| First name + last name + email or phone | I · Individual |
| First name + last name + zip + date of birth (no street needed) | I · Individual |
| First name + date of birth + street address + zip (works even after a last-name change) | I · Individual |
| First name + last name + an address the text match cannot place | S · Spatial |
| Email or phone alone | D · Digital |
| Last name + street address + zip | H · Household |
| Street address + zip alone | A · Address |
See what each match level means →
| Field | What to send |
|---|---|
row_id |
Your own record ID. It is returned unchanged so you can join results back. |
first_name |
First name. Nicknames are fine: Bill can match William. |
middle_name |
Middle name or initial. Optional. Used to distinguish otherwise identical people. |
last_name |
Last name. Hyphenated and two-part last names are supported. |
name_suffix |
Generational suffix such as Jr, Sr, or III. |
full_name |
A single name field. If you don’t send separate name fields, it is split into first, middle, last, and suffix for you. |
address_1 |
Street address, such as 123 Main St. If your source has a single address line that includes the unit (e.g. 123 Main St Apt 4B), it can go here. |
address_2 |
Apartment, unit, or suite, such as Apt 4B. |
city |
City. |
state |
Two-letter state code, such as CA. |
zip |
5-digit ZIP code. |
email |
Email address. Capitalization and extra spaces are cleaned up automatically. |
phone |
US phone number. Punctuation and a leading 1 are removed automatically. |
dob |
Date of birth as YYYY-MM-DD, MM/DD/YYYY, MM-DD-YYYY, or a birth year YYYY. |
email_sha256 |
A pre-hashed email (see below). |
phone_sha256 |
A pre-hashed phone (see below). |
iag_person_id |
An Infinite Audience Graph Person ID issued to your organization by an earlier match or audience delivery. |
emails, phones, addresses |
Lists of additional values (see below). |
emails_sha256, phones_sha256 |
Lists of additional pre-hashed values. |
File exports preserve other source columns. Real-time API responses return match and enrichment results keyed by row_id; join them back to your original records to retain your source fields.
Most matching services expect one email, one phone, and one address per row. If a customer has a work email, a personal email, two phone numbers, and a previous address, you would have to pick one or split the person into duplicate rows.
With Infinite Audience, you send every value you know on the same record. Each email, phone, and address is tried as its own match point in a single pass, so the one value the graph recognizes is enough.
{ "row_id": "cust-1042", "first_name": "Jane", "last_name": "Doe", "phones": ["3125550192", "3125550144"], "address_1": "88 Lake Shore Dr", "city": "Chicago", "state": "IL", "zip": "60611", "addresses": [ { "address_1": "410 Elm St", "address_2": "Unit 2", "city": "Evanston", "state": "IL", "zip": "60201" } ]}Lists work in real-time requests and in JSON, JSONL, and Avro files. CSV files use the single-value fields. Inside addresses, use the keys address_1, address_2, city, state, and zip.
If your systems never expose raw emails or phone numbers, send SHA-256 hashes instead.
email_sha256 / phone_sha256 (or the list versions).email or phone field. It would be hashed again and could not match.CSV, JSON, JSONL, or Avro. CSV, JSON, and JSONL files can also be gzip-compressed. Avro is already compressed.
Split one list into 2 to 50 files that share the same columns. Export straight from your warehouse or data lake and upload the shards in parallel. Matching starts once every shard arrives.
Your columns don’t need our exact names. They are recognized automatically, and you can review and correct the mapping before matching begins.
If you include row_id, every value must be unique across all shards. If you leave it out, stable IDs (row_0, row_1, …) are assigned for you.