Skip to main content
POST
/
v2
/
people
/
{id}
/
opt-in
curl --location --request POST 'https://api.audienceful.com/v2/people/jQKdwqp3YRRtTrwqUJEp7d/opt-in' \
--header 'X-Api-Key: <your-api-key>'
import requests

url = "https://api.audienceful.com/v2/people/jQKdwqp3YRRtTrwqUJEp7d/opt-in"
headers = {
    "X-Api-Key": "<your-api-key>",
}

response = requests.post(url, headers=headers)
print(response.json())
const response = await fetch("https://api.audienceful.com/v2/people/jQKdwqp3YRRtTrwqUJEp7d/opt-in", {
  method: "POST",
  headers: {
    "X-Api-Key": "<your-api-key>",
  },
});
const data = await response.json();
console.log(data);
{
  "id": "jQKdwqp3YRRtTrwqUJEp7d",
  "email": "[email protected]",
  "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.

Path parameters

id
string
required
The id or email address of the contact to confirm.

Response

Returns the updated contact.
id
string
The contact's opaque, unique identifier. Use this value to address the contact in the URL of the retrieve, update, and delete endpoints. The sequential integer primary key is never exposed.
email
string
The contact's email address.
tags
array[string]
The names of the tags applied to this contact — a flat list of strings.
notes
string
Notes associated with this contact. HTML string or plain string.
extra_data
object
All custom field values for the contact, keyed by each field's data_name (never the internal field id).
created_at
string
The datetime (UTC) at which the contact was created.
updated_at
string
The datetime (UTC) at which the contact was last updated.
last_activity
string 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.
country
string or null
The contact's two-letter country code, if known.
status
string
The single subscription/deliverability indicator for the contact.
source
string
How the contact entered your audience (e.g. api, import, form).
open_rate
number
The contact's historical email open rate, from 0 to 1.
click_rate
number
The contact's historical email click rate, from 0 to 1.
curl --location --request POST 'https://api.audienceful.com/v2/people/jQKdwqp3YRRtTrwqUJEp7d/opt-in' \
--header 'X-Api-Key: <your-api-key>'
import requests

url = "https://api.audienceful.com/v2/people/jQKdwqp3YRRtTrwqUJEp7d/opt-in"
headers = {
    "X-Api-Key": "<your-api-key>",
}

response = requests.post(url, headers=headers)
print(response.json())
const response = await fetch("https://api.audienceful.com/v2/people/jQKdwqp3YRRtTrwqUJEp7d/opt-in", {
  method: "POST",
  headers: {
    "X-Api-Key": "<your-api-key>",
  },
});
const data = await response.json();
console.log(data);
{
  "id": "jQKdwqp3YRRtTrwqUJEp7d",
  "email": "[email protected]",
  "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
}