Confirm Double Opt-in
Marks a contact's double opt-in as complete.
POSThttps://api.audienceful.com/v2/people/opt-in
curl --location --request POST 'https://api.audienceful.com/v2/people/opt-in' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <your-api-key>' \
--data-raw '{
"email": "person@example.com"
}'{
"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:write scope. Use this to confirm a contact's double opt-in from your own flow — for example after they click a confirmation link you host. It sets the contact's double opt-in status to complete.
Address the contact in the request body, with either their id or their email. A confirmation flow usually only knows the address the person typed, which is exactly the case the body form is for — no percent-encoding, whatever the address contains.
Body
idstring
The contact's opaque id. Takes precedence over
email when both are supplied.emailstring
The contact's email address (case-insensitive). Use this when you don't hold their id.
One of id or email is required; supplying neither returns a 400.
Also available: POST /v2/people/{id}/opt-in
The path form still works and is not deprecated:
Bash
curl --location --request POST 'https://api.audienceful.com/v2/people/jQKdwqp3YRRtTrwqUJEp7d/opt-in' \
--header 'X-Api-Key: <your-api-key>'
Response
Returns the updated contact.
idstring
The contact's opaque, unique identifier. Send it as
id in the body of the update, delete, opt-in, unsubscribe and publications endpoints to address this contact, or use it in the path of the resource-shaped routes. The sequential integer primary key is never exposed.emailstring
The contact's email address.
tagsarray[string]
The names of the tags applied to this contact — a flat list of strings.
notesstring
Notes associated with this contact. HTML string or plain string.
extra_dataobject
All custom field values for the contact, keyed by each field's
data_name (never the internal field id).
created_atstring
The datetime (UTC) at which the contact was created.
updated_atstring
The datetime (UTC) at which the contact was last updated.
last_activitystring or null
The datetime (UTC) of this contact's last activity. Example activities that update this field are: creation, opening an email, clicking an email, and unsubscribing.
countrystring or null
The contact's two-letter country code, if known.
statusstring
The single subscription/deliverability indicator for the contact.
sourcestring
How the contact entered your audience (e.g.
api, import, form).open_ratenumber
The contact's historical email open rate, from
0 to 1.click_ratenumber
The contact's historical email click rate, from
0 to 1.Last updated: July 31, 2026