Create a contact
POST/v1/audiences/{id}/contacts
Adds one person to an audience. Properties must be created first with the contact properties endpoints. An audience holds up to 50,000 contacts.
Required scope: contacts:manage
Parameters
| Name | In | Description |
|---|---|---|
idrequired | path | The audience id. |
Request body
| Field | Type |
|---|---|
emailrequired | string |
first_nameoptional | string |
last_nameoptional | string |
unsubscribedoptional | boolean |
propertiesoptional | object |
Unknown fields are rejected, so a typo never silently does nothing.
Example
curl -X POST 'https://api.sendsend.email/v1/audiences/ID/contacts' \
-H "Authorization: Bearer $SENDSEND_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"email": "maria@example.com",
"first_name": "Maria",
"properties": {
"plan": "pro"
}
}'Response 201
{
"id": "con_Hk3v…",
"object": "contact",
"audience_id": "aud_7Qe2…",
"email": "maria@example.com",
"first_name": "Maria",
"last_name": null,
"unsubscribed": false,
"properties": {
"plan": "pro"
},
"created_at": "2026-10-06T15:00:00.000Z",
"updated_at": "2026-10-06T15:00:00.000Z"
}Errors
| Status | Code | When |
|---|---|---|
| 400 | validation_error | The request body or parameters are invalid. The message says which field. |
| 404 | not_found | No such resource in this project. |
| 409 | validation_error | That email is already in the audience. |
| 401 | unauthorized | The API key is missing, invalid or revoked. |
| 403 | forbidden | The key does not have the scope this endpoint needs. |
Every error has the same shape. See Errors.