Kit Subscribers, Tags & Broadcasts
For creators who run their newsletter on Kit: find and update subscribers, tag them by email, drop them into a form or sequence, and draft broadcasts. Then check open and click rates per broadcast and the account's email stats.
Connect this API to an AI agent Browse all specs
What you can do with Kit Subscribers, Tags & Broadcasts via MCP
Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.
| Method | Path | Operation | Description |
|---|---|---|---|
| GET | /v4/account |
getAccount | Get the Kit account and user the key belongs to |
| GET | /v4/account/email_stats |
getEmailStats | Get sent, open and click totals for the last 90 days |
| GET | /v4/subscribers |
listSubscribers | List subscribers, optionally by email, status or date |
| POST | /v4/subscribers |
createSubscriber | Add a subscriber, or update them if the email exists |
| POST | /v4/subscribers/filter |
filterSubscribers | Find subscribers by engagement, sign-up date, state or tags |
| GET | /v4/subscribers/{id} |
getSubscriber | Get one subscriber with their custom fields |
| PUT | /v4/subscribers/{id} |
updateSubscriber | Change a subscriber's name, email or custom fields |
| GET | /v4/tags |
listTags | List all tags |
| POST | /v4/tags/{tag_id}/subscribers |
tagSubscriberByEmail | Tag a subscriber by email address |
| DELETE | /v4/tags/{tag_id}/subscribers |
untagSubscriberByEmail | Remove a tag from a subscriber by email address |
| GET | /v4/forms |
listForms | List forms and landing pages |
| POST | /v4/forms/{form_id}/subscribers |
addSubscriberToForm | Add a subscriber to a form by email address |
| GET | /v4/sequences |
listSequences | List email sequences |
| POST | /v4/sequences/{sequence_id}/subscribers |
addSubscriberToSequence | Add a subscriber to a sequence by email address |
| GET | /v4/broadcasts |
listBroadcasts | List broadcasts (sent, scheduled and drafts) |
| POST | /v4/broadcasts |
createBroadcast | Create a broadcast draft, or schedule it with send_at |
| GET | /v4/broadcasts/{id} |
getBroadcast | Get one broadcast with its content and send time |
| PUT | /v4/broadcasts/{id} |
updateBroadcast | Edit a draft or scheduled broadcast |
| GET | /v4/broadcasts/{broadcast_id}/stats |
getBroadcastStats | Get opens, clicks and unsubscribes for a broadcast |
| GET | /v4/broadcasts/{broadcast_id}/clicks |
getBroadcastClicks | Get clicks per link in a broadcast |
Authentication
kitApiKey
API key — sent as the X-Kit-Api-Key header
How to get a credential
- Sign in to Kit and open Settings → Developer (app.kit.com/account_settings/developer_settings).
- Create a new V4 API key and give it a name.
- Copy the key right away; Kit shows it only once.
Permissions used
A v4 API key has full access to the account; there are no per-key scopes.
| Area | Operations |
|---|---|
| Account | getAccount, getEmailStats |
| Subscribers | listSubscribers, getSubscriber, createSubscriber, updateSubscriber, filterSubscribers |
| Tags | listTags, tagSubscriberByEmail, untagSubscriberByEmail |
| Forms & sequences | listForms, addSubscriberToForm, listSequences, addSubscriberToSequence |
| Broadcasts | listBroadcasts, getBroadcast, createBroadcast, updateBroadcast, getBroadcastStats, getBroadcastClicks |
Common errors
- 401 Unauthorized: missing or revoked key, or a v3 API secret was used; create a v4 key.
- 403 Forbidden: the account's plan is not eligible for API use, or the feature is not on your plan.
- 404 Not Found: wrong
id(subscriber, tag, form, sequence or broadcast). - 422 Unprocessable Entity: invalid email address or missing required field; read
errorsin the response. - 429 Too Many Requests: API keys allow 120 requests per rolling 60 seconds; wait and retry.
Store the key as a VX Agents API key credential; it is sent in the X-Kit-Api-Key header.
Usage guide
Setup
- Credential: a Kit V4 API key (Settings → Developer), sent as
X-Kit-Api-Key. - Worth pinning: the
tag_id,form_idorsequence_idyou use most (get them once fromlistTags,listForms,listSequences).
Grow and segment the list
listSubscriberswithemail_addressto check whether someone is already on the list (addstatus=allto include unsubscribed and bounced).createSubscriberwithemail_address,first_nameandfieldsto add them. If the email exists, Kit updates that subscriber instead.tagSubscriberByEmailto tag them, oraddSubscriberToForm/addSubscriberToSequenceso form or sequence automations start.untagSubscriberByEmail(withemail_address) removes one tag; the subscriber and their other tags stay.filterSubscribersfinds people by engagement (opens, clicks), sign-up date, state or tags.
Draft a broadcast and read results
createBroadcastwithsubject,content(HTML) andpreview_text. Leave outsend_atto keep it a draft;subscriber_filterlimits who gets it.updateBroadcastto edit it while it is a draft or scheduled.- After sending:
getBroadcastStats(opens, clicks, unsubscribes),getBroadcastClicks(per link), andgetEmailStatsfor the account's last 90 days.
Before createSubscriber, updateSubscriber, any tag, form or sequence change, or a broadcast with send_at or public: true, show the change to the user and get a yes: a scheduled broadcast emails real subscribers, and sequences start sending right away.
Good to know
- Lists use cursor paging: pass
afterfrompagination.end_cursor;per_pageis up to 1000. - Times are ISO 8601 in UTC (
2026-10-20T09:00:00Z). - API keys allow 120 requests per rolling 60 seconds.
- Ids are integers; subscriber emails are matched exactly.
Source: Kit API v4 reference (https://developers.kit.com/api-reference/overview), checked 2026-10-19.
How to use this spec
- Create a free VX Agents account (sandbox tools included).
- Open the marketplace and connect “Kit Subscribers, Tags & Broadcasts” to an agent.
- Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.