> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Kit

> Connect Kit to your Atako agents — 9 read and 7 write actions.

Let your agents manage subscribers, tags, form and sequence sign-ups in Kit (formerly ConvertKit), and read broadcasts and custom fields.

## Connection

* **Authentication**: API key (V4 API key).

<Note>
  Sign in at app.kit.com → Settings → Developer → Add a new key. Give it an internal name (e.g. "Atako"), then copy the V4 API key right away: Kit never shows it again. Use a V4 key, not a V3 API key or API secret. The key acts on your whole Kit account; API access depends on your Kit plan (see kit.com/pricing).

  See [Kit's documentation](https://app.kit.com/account_settings/developer_settings).
</Note>

## Read actions (9)

| Action | Description |
| - | - |
| `get_account` | Get the Kit account the key belongs to: account id, name, plan type, primary email, timezone and sending addresses with their verification status. |
| `get_broadcast` | Get one broadcast by id (broadcast\_id: integer, from list\_broadcasts): subject, HTML content, preview text, targeting, template, send\_at and web-publishing details (no stats). |
| `get_subscriber` | Get one subscriber by id (subscriber\_id: integer, from list\_subscribers): first name, email, state, creation date and custom field values. |
| `list_broadcasts` | List broadcasts with their content and targeting (no stats). status: draft, scheduled, sending, completed or aborted; sent\_after/sent\_before: dates yyyy-mm-dd; slim: true omits content, public\_url, email\_address, email\_template and subscriber\_filter. Cursor pagination: pass pagination.end\_cursor as after for the next page (before = start\_cursor for the previous one); per\_page 1 to 1000 (default 500). |
| `list_custom_fields` | List custom fields (id, label, key): the key is what upsert\_subscriber expects in fields. Cursor pagination: pass pagination.end\_cursor as after for the next page (before = start\_cursor for the previous one); per\_page 1 to 1000 (default 500). |
| `list_forms` | List forms and landing pages (only active ones by default; status: active, archived, trashed or all). type: "embed" for embedded forms, "hosted" for landing pages. include: "subscriber\_count" adds each form's subscriber count. Cursor pagination: pass pagination.end\_cursor as after for the next page (before = start\_cursor for the previous one); per\_page 1 to 1000 (default 500). |
| `list_sequences` | List sequences (automated email series) with their schedule and active/repeat/hold settings. include: "stats" adds deliverability counts and rates. Cursor pagination: pass pagination.end\_cursor as after for the next page (before = start\_cursor for the previous one); per\_page 1 to 1000 (default 500). |
| `list_subscribers` | List subscribers (only active ones by default; status: active, inactive, bounced, complained, cancelled or all). email\_address finds one subscriber by exact email (the way to get a subscriber id from an email). created\_after/created\_before/updated\_after/updated\_before: dates yyyy-mm-dd. sort\_field: id, created\_at, updated\_at, cancelled\_at (with status cancelled) or engagement\_\_sent/opens/clicks/open\_rate/click\_rate; sort\_order: asc or desc. include: comma-separated among attribution, tags, location, canceled\_at (canceled\_at only with status cancelled, otherwise 422). slim: true omits custom field values. Cursor pagination: pass pagination.end\_cursor as after for the next page (before = start\_cursor for the previous one); per\_page 1 to 1000 (default 500). |
| `list_tags` | List the account's tags (id, name, creation date). include: "subscriber\_count" adds each tag's subscriber count. Cursor pagination: pass pagination.end\_cursor as after for the next page (before = start\_cursor for the previous one); per\_page 1 to 1000 (default 500). |

## Write actions (7)

| Action | Description |
| - | - |
| `add_subscriber_to_form` | Add an existing subscriber, found by email, to a form or landing page (create the subscriber first with upsert\_subscriber). Arguments: form\_id (integer, bare number, from list\_forms); email\_address (string, required); referrer (string or null, optional: the URL the subscriber signed up from). |
| `add_subscriber_to_sequence` | Add an existing subscriber, found by email, to a sequence: they start receiving its emails (create the subscriber first with upsert\_subscriber). Arguments: sequence\_id (integer, bare number, from list\_sequences); email\_address (string, required). |
| `create_tag` | Create a tag. Idempotent on name (case-insensitive): if the tag already exists, it is returned instead of duplicated. Argument: name (string, required). |
| `tag_subscriber` | Apply a tag to an existing subscriber, found by email (create it first with upsert\_subscriber). Arguments: tag\_id (integer, bare number, from list\_tags or create\_tag); email\_address (string, required). |
| `unsubscribe_subscriber` | Unsubscribe a subscriber from all future emails (state becomes cancelled; record, history and tags are kept). Treat it as the subscriber's own unsubscribe: only re-subscribe them with their explicit consent. Argument: subscriber\_id (integer, bare number not a string, from list\_subscribers with email\_address). |
| `untag_subscriber` | Remove a tag from a subscriber (the subscriber and their other tags stay). Arguments: tag\_id (integer, bare number, from list\_tags); subscriber\_id (integer, bare number — not an email; get it from list\_subscribers with email\_address). |
| `upsert_subscriber` | Create a subscriber, or update the first name and custom fields of the one that already has this email (upsert by email; it cannot change an email address nor the state of an existing subscriber). Arguments: email\_address (string, required); first\_name (string or null); state (one of active, cancelled, bounced, complained, inactive — only applied on creation, default active); fields (object: custom field key → string value, keys from list\_custom\_fields, e.g. \{"last\_name": "Lamarr"}; unknown keys are ignored and reported in warnings). |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](/integrations/permissions) for the grant model and [Security](/integrations/security) for how credentials are protected.

***

*Last reviewed against the provider API: September 2026.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.