On-Domain Event Fields
On-Domain Event Fields
Complete reference for every field returned by the On-Domain Events API. Resolved events return up to 132 fields across contact, company, demographic, and behavioral categories.
Field Availability
When a visitor is resolved (identified), events are enriched with contact and company data from our identity graph. When a visitor is unresolved, only the core event fields are present.
| Event State | Fields Available | Description |
|---|---|---|
| Unresolved | ~13 fields | Raw event data: timestamp, cookie, IP, user agent, page URL |
| Resolved (basic) | ~30 fields | Event data + email, hashes, email classification |
| Resolved (enriched) | up to 132 fields | Full profile: name, job title, company, demographics, phone numbers |
Use has_valuable_data=true to filter to only enriched events with actionable contact or company data.
Core Event Fields
Present on every event, resolved or not.
| Field | Type | Description |
|---|---|---|
event_id | string | Unique event identifier (UUID) |
pixel_id | string | Pixel that captured the event |
project_id | string | Project the pixel belongs to |
event_type | string | page_view, click, form_submission, scroll_depth, etc. |
timestamp | string | ISO 8601 with microseconds (e.g., 2026-02-19T16:30:36.763024Z) |
ts_millis | integer | Epoch milliseconds |
cookie_id | integer | Browser cookie identifier |
resolved | boolean | true if the visitor was identified |
Network and Page Fields
Raw request data captured with every event.
| Field | Type | Description |
|---|---|---|
ip | string | Visitor's IP address (from X-Forwarded-For) |
client_ip | string | IP after load balancer |
user_agent | string | Browser user agent string |
referrer_url | string | Page referrer URL |
event_data | JSON string | Page-level payload: URL, title, viewport, screen dimensions |
headers | JSON string | Full HTTP request headers |
event_data Example
{
"url": "https://www.yoursite.com/pricing",
"title": "Pricing - Your Company",
"timestamp": "2026-02-19T16:30:36.687Z",
"referrer": "https://www.yoursite.com/",
"screen": { "height": 800, "width": 1280 },
"viewport": { "height": 592, "width": 1280 }
}Identity Fields
Email hashes used for identity matching. Available on all resolved events.
| Field | Type | Description |
|---|---|---|
hem | string | Primary hashed email (SHA256, lowercase) |
hems | string[] | All hashed emails linked to this identity |
email | string | Resolved email address |
domain_lc | string | Email domain (e.g., acmecorp.com) |
is_email_business | string | "true" or "false" |
is_email_personal | string | "true" or "false" |
is_international | string | "true" if visitor is non-US |
Email Hashes
Multiple hash algorithms and case variants are available for matching against your own data:
| Field | Algorithm | Input |
|---|---|---|
md5_lc_hem | MD5 | Lowercase email |
md5_uc_hem | MD5 | Original-case email |
sha1_lc_hem | SHA1 | Lowercase email |
sha1_uc_hem | SHA1 | Original-case email |
sha256_lc_hem | SHA256 | Lowercase email |
sha256_uc_hem | SHA256 | Original-case email |
Additional Elixir-sourced hashes (from the identity graph) are available with the emails_ prefix: emails_md5_lc_hem, emails_sha1_lc_hem, emails_sha256_lc_hem, and their _uc_ variants.
Person Fields
Contact-level data from the identity graph. Only populated on resolved events.
Name
| Field | Type | Description | Example |
|---|---|---|---|
first_name | string | First name | jane |
middle_name | string | Middle name | marie |
last_name | string | Last name | smith |
Email
| Field | Type | Description |
|---|---|---|
email | string | Primary resolved email |
emails | string | All known emails (comma-separated) |
personal_email | string | Primary personal email |
personal_emails | string | All personal emails (comma-separated) |
current_business_email | string | Current work email |
business_emails | string | All business emails |
primary_contact_emails | string | Primary contact emails |
valid_emails | string | Validated emails |
invalid_emails | string | Known-invalid emails |
Email Validation
| Field | Type | Values |
|---|---|---|
email_validation_status | string | catchall, invalid, unknown, valid |
personal_email_validation_status | string | unknown, valid |
current_business_email_validation_status | string | catchall, unknown, valid |
email_last_seen | date | Last date email was verified active |
current_business_email_validation_date | date | Business email validation date |
Phone Numbers
All phone fields use E.164 format (e.g., +15551234567). Multiple numbers are comma-separated. Each phone field has a matching DNC (Do Not Call) field with positionally-aligned y/n values.
| Field | Description | DNC Field |
|---|---|---|
phones | All phone numbers | phones_dnc |
direct_numbers | Direct/work numbers | direct_numbers_dnc |
mobile_phones | Mobile numbers | mobile_phones_dnc |
personal_phones | Personal numbers | personal_phones_dnc |
DNC alignment example:
phones: "+15551234567, +15559876543"
phones_dnc: "n, y"
The first number is not on the DNC list; the second is.
| Field | Description |
|---|---|
mobile_phones_validation_status | Comma-separated, positionally aligned with mobile_phones: unknown, valid |
mobile_phones_validation_date | Validation date |
Professional Profile
| Field | Type | Description | Example |
|---|---|---|---|
job_title | string | Current job title | product analyst |
job_title_normalized | string | Standardized job title | product analyst |
job_title_history | string | Previous titles | associate analyst |
headline | string | LinkedIn headline | Product Analyst at Acme Corp |
seniority_level | string | Normalized seniority | staff, manager, director, vp, cxo |
seniority_level_2 | string | Secondary seniority | More granular classification |
seniority_level_raw | string | Raw from source | entry, senior, c_suite |
department | string | Primary department | engineering, sales |
department_2 | string | Secondary department | More granular classification |
department_raw | string | Raw from source | |
subdepartments | string | Sub-department | |
job_functions | string | Function categories | |
inferred_years_experience | string | Estimated experience | |
education_history | JSON string | Education records | See example below |
education_history Example
{
"name": "Stanford University",
"url": "https://www.linkedin.com/school/stanford-university",
"extraction_order": 0,
"extraction_date": "2025-05-04T16:41:23Z"
}Social Profiles
| Field | Type | Description |
|---|---|---|
linkedin_url | string | LinkedIn profile URL |
twitter_url | string | Twitter/X profile URL |
github_url | string | GitHub profile URL |
facebook_url | string | Facebook profile URL |
photo_url | string | Profile photo URL |
social_connections | string | Connection range: 1-9, 10-99, 100-249, 250-499, 500+ |
Personal Address
| Field | Type | Example |
|---|---|---|
personal_address | string | 123 Main St |
personal_address_2 | string | Apt 4B |
personal_city | string | new york |
personal_state | string | new york |
personal_state_code | string | ny |
personal_zip | string | 10001 |
personal_zip4 | string | 1234 |
personal_country | string | united states |
personal_country_alpha2 | string | us |
personal_country_alpha3 | string | usa |
personal_country_numeric | number | 840 |
personal_timezone | integer | UTC offset |
address_id | string | Encoded address identifier |
dpv_code | string | USPS Delivery Point Validation: d, n, s, y |
Demographics
| Field | Type | Values |
|---|---|---|
gender | string | f, m, u |
inferred_gender | string | f, m (algorithmically inferred) |
inferred_gender_unisex | string | y if name is unisex, n otherwise |
age_range | string | 18-24, 25-34, 35-44, 45-54, 55-64, 65 and older |
has_children | string | y or n |
is_married | string | y or n |
is_homeowner | string | y or n |
income_range_lc | string | less than $20,000 through $250,000+ (9 ranges, all lowercase) |
net_worth | string | -$20,000 to -$2,500 through $1,000,000 or more (13 ranges) |
is_profile_b2b | string | y or n |
is_profile_b2c | string | y or n |
Company Fields
Firmographic data from the identity graph. Only populated on resolved events.
| Field | Type | Description | Example |
|---|---|---|---|
company_name | string | Company name | acme corp |
company_name_history | string | Previous names | |
company_domain | string | Website domain | acmecorp.com |
company_related_domains | string | Associated domains (comma-separated) | acme.co, acme.io |
company_description | string | Company description | |
company_industry | string | Primary industry | computer software |
company_naics | string | NAICS code | 5112 |
company_sic | string | SIC code | 7372 |
company_employee_count | string | Exact employee count | 250 |
company_employee_count_range | string | Employee bracket | 251 to 500 |
company_total_revenue | number | Annual revenue | 15000000 |
company_revenue_range | string | Revenue bracket | 10 million to 25 million |
company_address | string | Street address | 100 main st |
company_address2 | string | Address line 2 | |
company_city | string | City | san francisco |
company_state | string | State | california |
company_zip_code | string | ZIP code | 94105 |
company_country | string | Country | united states |
company_phones | string | Phone numbers | +14155551234 |
company_phones_dnc | string | DNC status | n |
company_linkedin_url | string | LinkedIn URL | linkedin.com/company/acme |
company_id | string | Internal company identifier | |
company_id_right | string | Matched company ID from enrichment join |
All Selectable Fields
Use these with the select parameter to return only the fields you need. Pass as a comma-separated list:
GET /api/v1/events?...&select=first_name,last_name,email,company_name,job_title
Full field list (132 fields)
event_id, pixel_id, organization_id, event_type, timestamp, ts_millis, cookie_id, hem,
hems, user_agent, client_ip, ip, event_data, headers, referrer_url, extra_json, resolved,
address_id, age_range, business_emails, company_address, company_address2, company_city,
company_country, company_description, company_domain, company_employee_count,
company_employee_count_range, company_id, company_id_right, company_industry,
company_linkedin_url, company_naics, company_name, company_name_history, company_phones,
company_phones_dnc, company_related_domains, company_revenue_range, company_sic,
company_state, company_total_revenue, company_zip_code, current_business_email,
current_business_email_validation_date, current_business_email_validation_status,
department, department_2, department_raw, direct_numbers, direct_numbers_dnc, domain_lc,
dpv_code, education_history, email, email_last_seen, email_validation_status, emails,
emails_md5_lc_hem, emails_md5_uc_hem, emails_sha1_lc_hem, emails_sha1_uc_hem,
emails_sha256_lc_hem, emails_sha256_uc_hem, first_name, first_uuid_norm, flattened_uuids,
gender, has_children, headline, income_range_lc, inferred_gender, inferred_gender_unisex,
inferred_years_experience, invalid_emails, is_email_business, is_email_personal,
is_homeowner, is_international, is_married, is_profile_b2b, is_profile_b2c, job_functions,
job_title, job_title_history, job_title_normalized, last_name, last_updated, linkedin_url,
md5_lc_hem, md5_uc_hem, middle_name, mobile_phones, mobile_phones_dnc,
mobile_phones_validation_date, mobile_phones_validation_status, net_worth,
personal_address, personal_address_2, personal_city, personal_country,
personal_country_alpha2, personal_country_alpha3, personal_country_numeric,
personal_email, personal_email_validation_status, personal_emails, personal_phones,
personal_phones_dnc, personal_state, personal_state_code, personal_timezone, personal_zip,
personal_zip4, phones, phones_dnc, photo_url, primary_contact_emails, profile_pid_all,
seniority_level, seniority_level_2, seniority_level_raw, sha1_lc_hem, sha1_uc_hem,
sha256_lc_hem, sha256_uc_hem, social_connections, subdepartments, valid_emails, twitter_url,
github_url, facebook_url, job_title_normalizedData Formatting Notes
- Text fields are lowercase. Names and most string values are stored in lowercase.
- Geographic fields are title-cased by the API.
personal_city,personal_state,personal_country, and similar address fields are stored lowercase but returned title-cased (e.g.,New York,United States). When filtering, the API matches case-insensitively. - Boolean-like values are strings. Fields like
has_children,is_homeowner, andis_marriedreturn"y"/"n"(nottrue/false).is_email_businessandis_email_personalreturn"true"/"false". - JSON fields are stringified.
event_data,headers, andeducation_historyare JSON encoded as strings. Parse them in your application. - Null fields are omitted. If a field has no value for a given event, it is not included in the response object. Your code should handle missing keys.
- Dates use ISO 8601. Timestamps include microseconds:
2026-02-19T16:30:36.763024Z. Date-only fields useYYYY-MM-DD.
Common Select Recipes
Lead List (Contact + Company Basics)
select=first_name,last_name,email,current_business_email,job_title,seniority_level,company_name,company_domain,company_industry,linkedin_url
Account Identification (Company Only)
select=company_name,company_domain,company_industry,company_employee_count_range,company_revenue_range,company_city,company_state
Full Contact Export
select=first_name,last_name,email,personal_email,current_business_email,job_title,job_title_normalized,department,seniority_level,company_name,company_domain,company_industry,company_employee_count_range,phones,direct_numbers,mobile_phones,linkedin_url,personal_city,personal_state,personal_country
Privacy-Safe (Hashed Only)
select=hem,md5_lc_hem,sha256_lc_hem,company_name,company_domain,company_industry,seniority_level,department
Related
- On-Domain Events API -- Query events, filter, paginate, and deduplicate
- Field Catalog API -- Audience builder field metadata with picklist values
- Export Events to CSV -- Paginate and export to CSV
- Building Audience Filters -- Use fields in audience filter rules
Updated 16 minutes ago