Retrieve a Contact
Retrieves a single contact by their id.
curl --location --request GET 'https://api.audienceful.com/v2/people/jQKdwqp3YRRtTrwqUJEp7d' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <your-api-key>'{
"id": "jQKdwqp3YRRtTrwqUJEp7d",
"email": "person@example.com",
"tags": ["vip"],
"notes": "",
"extra_data": {
"plan": "pro"
},
"created_at": "2026-07-04T12:00:00Z",
"updated_at": "2026-07-04T12:00:00Z",
"last_activity": "2026-07-04T12:00:00Z",
"country": "US",
"status": "active",
"source": "api",
"open_rate": 0.42,
"click_rate": 0.11
}Requires the people:read scope.
The {id} path segment accepts either the contact's id or their email address (case-insensitive). For example, GET /v2/people/person@example.com works just like GET /v2/people/jQKdwqp3YRRtTrwqUJEp7d.
Path parameters
Looking a contact up by email
If you hold the contact's address rather than their id, filter the list instead of building a path:
curl --get 'https://api.audienceful.com/v2/people' \
--data-urlencode 'email=alex+news@example.com' \
--header 'X-Api-Key: <your-api-key>'
The filter is exact but case-insensitive, and it returns a normal paginated page — one entry when the address is on file, an empty data array when it isn't, rather than a 404. See List Contacts.
Prefer this over putting the address in the path. A query string is escaped for you by every HTTP client; a path segment is the one part of a request that isn't, so an address containing /, ?, # or % has to be percent-encoded by hand — and a half-escaped address returns a 404 that reads like a missing contact.
Response
data_name (never the internal field id).
api, import, form).0 to 1.0 to 1.