Update a contact's topics

PATCH
/v1/contacts/{id}/topics

Records the contact's choices for the topics given; the others keep theirs.

Authorization

bearerAuth
headerAuthorizationBearer <token>

A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.

Path Parameters

id*string

The contact's id, or its address (URL-encoded).

Header Parameters

Coss-Version?"2026-10-10"

The API version (a date) to use for this request. Defaults to your organization's version, pinned to the latest one when it first used the API and upgraded from the dashboard. The SDK always sends the version it was built for.

Value in"2026-10-10"

Request Body

application/json
  1. body
topics*array<>
Items1 <= items <= 100

Response Body

The topics.

application/json
  1. response
object*"contact_topics"
Value in"contact_topics"
contact_id*string
topics*array<>
import { Coss } from "coss";const coss = new Coss({  apiKey: process.env.COSS_API_KEY,  baseUrl: "https://api.coss.com",});const { data, error } = await coss.email.contacts.updateTopics("contact_01k7c8m4q2f3e9v6t5r1n0p8yz", {  topics: [    {      topic: "product",      status: "opted_out",    },  ],});
{  "object": "contact_topics",  "contact_id": "contact_01k7c8m4q2f3e9v6t5r1n0p8yz",  "topics": [    {      "topic": "newsletter",      "name": "Newsletter",      "subscribed": true,      "choice": null    },    {      "topic": "product",      "name": "Product updates",      "subscribed": false,      "choice": "opted_out"    }  ]}