List Subscribers
convertkit.list_subscribers
ActionEmailconnection required
Calls the ConvertKit API with the connection's credentials.
List and search subscribers on the account, filtering by email address, state or sign-up date and paging with Kit's cursors.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- API key
- Providers
- ConvertKit
- Secret shape
- the v4 API key, or {"api_key": "…"}, or {"access_token": "…"} for OAuth
- Config it needs
- base_url
- Resolved by
- config.connection_id, else node.connection_id
Configuration
14 fields, none required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
email_address Exact-match lookup: one address, or several separated by commas. | string | No | — | — | alice@example.com |
status Only return subscribers in this state. Kit defaults to 'active'. | string | No | — | one of "active", "cancelled", "bounced", "complained", "inactive", "all" | — |
created_after Only include records created on or after this date (ISO 8601). | string | No | — | iso8601 format | 2026-01-01 |
created_before Only include records created on or before this date (ISO 8601). | string | No | — | iso8601 format | — |
updated_after Only include records updated on or after this date (ISO 8601). | string | No | — | iso8601 format | 2026-01-01 |
updated_before Only include records updated on or before this date (ISO 8601). | string | No | — | iso8601 format | — |
sort_field Field Kit orders the page by. Defaults to 'id'. | string | No | — | one of "id", "created_at", "updated_at", "cancelled_at", "engagement__sent", "engagement__opens", "engagement__clicks", "engagement__open_rate", "engagement__click_rate" | — |
sort_order Sort direction for 'sort_field'. Defaults to ascending. | string | No | — | one of "asc", "desc" | — |
include Extra data to embed in each subscriber, comma-separated: attribution, tags, location, canceled_at. | string | No | — | — | tags |
slim Omit each subscriber's custom 'fields' object for a faster response. | boolean | No | false | — | — |
per_page How many records to ask Kit for in one page (Kit's default is 500). | number | No | — | 1–1000 | 100 |
after Cursor for the next page: the 'end_cursor' from a previous run of this node. | string | No | — | — | — |
before Cursor for the previous page: the 'start_cursor' Kit returned earlier. | string | No | — | — | — |
include_total_count Ask Kit for the total number of matching records. It slows the call, so set it on the first page only. | boolean | No | false | — | — |
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"created_after": "2026-01-01",
"email_address": "alice@example.com",
"include": "tags",
"include_total_count": false,
"per_page": 100,
"slim": false,
"updated_after": "2026-01-01"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
items The records on this page, exactly as Kit returned them. | array | — |
returned How many records this page contains. | number | — |
total_count Total matching records, or null unless 'include_total_count' was set. | number | — |
has_next_page True when another page of records follows. | boolean | — |
end_cursor Cursor to pass as 'after' on the next run to fetch the following page. | string | — |
{
"end_cursor": "",
"has_next_page": false,
"items": [],
"returned": 0,
"total_count": 0
}See List Subscribers run in a workflow.
In a technical demo we add the ConvertKit connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.