A partial update. Send only the fields you want to change; everything else is left untouched.
PATCH /v1/contacts/{id}
Path parameters
The contact id to update.
Body
Send any subset of the following.
New given name. Pass null to clear it.
New family name. Pass null to clear it.
Replace the contact’s metadata object.
Flip subscription with the dedicated endpoints. To opt a contact in or out, prefer unsubscribe and resubscribe — they also stamp and clear unsubscribedAt for you.
Request
curl -X PATCH https://api.drin.run/v1/contacts/ct_7Yh2Lp \
-H "Authorization: Bearer $DRIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "lastName": "King", "metadata": { "plan": "scale" } }'
Response
Returns 200 OK with the updated contact. An unknown id returns 404 not_found.
{
"id": "ct_7Yh2Lp",
"email": "ada@example.com",
"firstName": "Ada",
"lastName": "King",
"subscribed": true,
"unsubscribedAt": null,
"metadata": { "plan": "scale" },
"createdAt": "2026-06-02T17:30:00.000Z",
"updatedAt": "2026-06-02T18:05:11.000Z"
}