Maton

Kit

Access the Kit (formerly ConvertKit) API with managed OAuth authentication. Manage subscribers, tags, forms, sequences, broadcasts, custom fields, and webhooks.

Reference

List Subscribers

GET /kit/v4/subscribers

Query parameters:

  • per_page - Results per page (default: 500, max: 1000)
  • after - Cursor for next page
  • before - Cursor for previous page
  • status - Filter by: active, inactive, bounced, complained, cancelled, or all
  • email_address - Filter by specific email
  • created_after / created_before - Filter by creation date (yyyy-mm-dd)
  • updated_after / updated_before - Filter by update date (yyyy-mm-dd)
  • include_total_count - Include total count (slower)

Response:

{
  "subscribers": [
    {
      "id": 3914682852,
      "first_name": "Test User",
      "email_address": "test@example.com",
      "state": "active",
      "created_at": "2026-02-07T00:42:54Z",
      "fields": {"company": null}
    }
  ],
  "pagination": {
    "has_previous_page": false,
    "has_next_page": false,
    "start_cursor": "WzE0OV0=",
    "end_cursor": "WzE0OV0=",
    "per_page": 500
  }
}

Get Subscriber

GET /kit/v4/subscribers/{id}

Create Subscriber

POST /kit/v4/subscribers
Content-Type: application/json

{
  "email_address": "user@example.com",
  "first_name": "John"
}

Update Subscriber

PUT /kit/v4/subscribers/{id}
Content-Type: application/json

{
  "first_name": "Updated Name"
}

List Tags

GET /kit/v4/tags

Query parameters: per_page, after, before, include_total_count

Create Tag

POST /kit/v4/tags
Content-Type: application/json

{
  "name": "new-tag"
}

Response:

{
  "tag": {
    "id": 15690016,
    "name": "new-tag",
    "created_at": "2026-02-07T00:42:53Z"
  }
}

Update Tag

PUT /kit/v4/tags/{id}
Content-Type: application/json

{
  "name": "updated-tag-name"
}

Delete Tag

DELETE /kit/v4/tags/{id}

Returns 204 No Content on success.

Tag a Subscriber

POST /kit/v4/tags/{tag_id}/subscribers
Content-Type: application/json

{
  "email_address": "user@example.com"
}

Remove Tag from Subscriber

DELETE /kit/v4/tags/{tag_id}/subscribers/{subscriber_id}

Returns 204 No Content on success.

List Subscribers with Tag

GET /kit/v4/tags/{tag_id}/subscribers

List Forms

GET /kit/v4/forms

Query parameters:

  • per_page, after, before, include_total_count
  • status - Filter by: active, archived, trashed, or all
  • type - embed for embedded forms, hosted for landing pages

Response:

{
  "forms": [
    {
      "id": 9061198,
      "name": "Creator Profile",
      "created_at": "2026-02-07T00:00:32Z",
      "type": "embed",
      "format": null,
      "embed_js": "https://chris-kim-2.kit.com/c682763b07/index.js",
      "embed_url": "https://chris-kim-2.kit.com/c682763b07",
      "archived": false,
      "uid": "c682763b07"
    }
  ],
  "pagination": {...}
}

Add Subscriber to Form

POST /kit/v4/forms/{form_id}/subscribers
Content-Type: application/json

{
  "email_address": "user@example.com"
}

List Form Subscribers

GET /kit/v4/forms/{form_id}/subscribers

List Sequences

GET /kit/v4/sequences

Response:

{
  "sequences": [
    {
      "id": 123,
      "name": "Welcome Sequence",
      "hold": false,
      "repeat": false,
      "created_at": "2026-01-01T00:00:00Z"
    }
  ],
  "pagination": {...}
}

Add Subscriber to Sequence

POST /kit/v4/sequences/{sequence_id}/subscribers
Content-Type: application/json

{
  "email_address": "user@example.com"
}

List Sequence Subscribers

GET /kit/v4/sequences/{sequence_id}/subscribers

List Broadcasts

GET /kit/v4/broadcasts

Query parameters: per_page, after, before, include_total_count

Response:

{
  "broadcasts": [
    {
      "id": 123,
      "publication_id": 456,
      "created_at": "2026-02-07T00:00:00Z",
      "subject": "My Broadcast",
      "preview_text": "Preview...",
      "content": "<p>Content</p>",
      "public": false,
      "published_at": null,
      "send_at": null,
      "email_template": {"id": 123, "name": "Text only"}
    }
  ],
  "pagination": {...}
}

List Segments

GET /kit/v4/segments

Query parameters: per_page, after, before, include_total_count

List Custom Fields

GET /kit/v4/custom_fields

Response:

{
  "custom_fields": [
    {
      "id": 1192946,
      "name": "ck_field_1192946_company",
      "key": "company",
      "label": "Company"
    }
  ],
  "pagination": {...}
}

Create Custom Field

POST /kit/v4/custom_fields
Content-Type: application/json

{
  "label": "Company"
}

Update Custom Field

PUT /kit/v4/custom_fields/{id}
Content-Type: application/json

{
  "label": "Company Name"
}

Delete Custom Field

DELETE /kit/v4/custom_fields/{id}

Returns 204 No Content on success.

List Purchases

GET /kit/v4/purchases

Query parameters: per_page, after, before, include_total_count

List Email Templates

GET /kit/v4/email_templates

Response:

{
  "email_templates": [
    {
      "id": 4956167,
      "name": "Text only",
      "is_default": true,
      "category": "Classic"
    }
  ],
  "pagination": {...}
}

List Webhooks

GET /kit/v4/webhooks

Create Webhook

POST /kit/v4/webhooks
Content-Type: application/json

{
  "target_url": "https://example.com/webhook",
  "event": {"name": "subscriber.subscriber_activate"}
}

Response:

{
  "webhook": {
    "id": 5291560,
    "account_id": 2596262,
    "event": {
      "name": "subscriber_activate",
      "initiator_value": null
    },
    "target_url": "https://example.com/webhook"
  }
}

Delete Webhook

DELETE /kit/v4/webhooks/{id}

Returns 204 No Content on success.

Resources

On this page