ZevCampaign Docs
Sign up

API Reference

Topics

Reading the topics people can consent to.

Topics are what somebody consents to receive. See core concepts for why they exist and why they are not lists.

List topics

GET /v1/topics

curl https://api.zevcampaign.com/v1/topics \
  -H "Authorization: Bearer sk_live_your_key_here"
{
  "data": [
    {
      "id": "tp_7xk2m9qv4w",
      "name": "Weekly newsletter",
      "description": "A Friday round-up of what we shipped.",
      "brand_id": "br_3nf8q1",
      "requires_confirmation": true,
      "subscriber_count": 1842,
      "created_at": "2026-01-08T11:02:00.000Z"
    }
  ],
  "meta": { "limit": 20, "has_more": false, "next_cursor": null }
}

If your key is scoped to a brand, you see only that brand’s topics.

requires_confirmation tells you whether a signup goes through double opt-in. When it is true, /v1/subscribe answers confirmation_sent; when false, subscribed.

subscriber_count counts confirmed subscribers only. Pending confirmations are not included, because somebody who has not clicked the link is not a subscriber.

Creating topics

Topics are created in the dashboard, not over the API.

A topic is a promise to a recipient about what they will receive, and its name appears on the unsubscribe page. Creating them from a script tends to produce a catalogue of list-1, list-2, test-topic, which is exactly what a person reading their preferences page should never see.

Using a topic id

Pass it as topic_id when subscribing, or in topic_ids when creating a contact. Both validate the format and refuse an id that does not belong to your workspace, or to your key’s brand if it is scoped.

Updated at, Saturday, October 10, 2026