Let me introduce myself
", "public": true, "published_at": "2023-02-17T11:43:55Z", "send_at": null, "thumbnail_alt": null, "thumbnail_url": null, "public_url": "https://kit-greetings.kit.com/posts/", "email_address": "greetings@kit.dev", "email_template": { "id": 2, "name": "Classic" }, "subscriber_filter": [ { "all": [ { "type": "segment", "ids": [ 18 ] } ] } ], "status": "draft" } } } } }, "401": { "description": "Returns a 401 if the token and/or account cannot be authenticated", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "The access token is invalid" ] } } } }, "403": { "description": "Returns a 403 with an error message if the current account is unauthorized to create a broadcast", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "You do not have sufficient permissions to access this resource. Please contact support." ] } } } }, "422": { "description": "Returns a 422 with an error message when one or more of the parameters were invalid", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "Email template not found", "Only a single filter group is supported. Use one of `all`, `any`, or `none`." ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "email_template_id": { "type": "integer", "description": "Id of the email template to use. Uses the account's default template if not provided. 'Starting point' template is not supported." }, "email_address": { "type": "string", "nullable": true, "description": "The sending email address to use. Uses the account's sending email address if not provided." }, "content": { "type": "string", "description": "The HTML content of the email." }, "description": { "type": "string" }, "public": { "type": "boolean", "description": "`true` to publish this broadcast to the web. The broadcast will appear in a newsletter feed on your Creator Profile and Landing Pages." }, "published_at": { "type": "string", "description": "The published timestamp to display in ISO8601 format. If no timezone is provided, UTC is assumed." }, "send_at": { "type": "string", "nullable": true, "description": "The scheduled send time for this broadcast in ISO8601 format. If no timezone is provided, UTC is assumed." }, "thumbnail_alt": { "type": "string", "nullable": true }, "thumbnail_url": { "type": "string", "nullable": true }, "preview_text": { "type": "string" }, "subject": { "type": "string" }, "subscriber_filter": { "type": "array", "description": "Filters your subscribers. At this time, we only support using only one filter group type via the API (e.g. `all`, `any`, or `none` but no combinations). If nothing is provided, will default to all of your subscribers.", "items": { "type": "object", "properties": { "all": { "type": "array", "description": "Filters your subscribers using a logical AND of all provided segment and tag ids, i.e. a subscriber would have to be part of all segments and tags provided", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "segment", "tag" ], "description": "`segment` or `tag`" }, "ids": { "type": "array", "items": { "type": "integer" } } }, "required": [ "type", "ids" ] } }, "any": { "type": "array", "description": "Filters your subscribers using a logical OR of all provided segment and tag ids, i.e. a subscriber would have to be part of at least one of the segments or tags provided", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "segment", "tag" ], "description": "`segment` or `tag`" }, "ids": { "type": "array", "items": { "type": "integer" } } }, "required": [ "type", "ids" ] }, "nullable": true }, "none": { "type": "array", "description": "Filters your subscribers using a logical NOT of all provided segment and tag ids, i.e. a subscriber would have to be in none of the segments or tags provided", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "segment", "tag" ], "description": "`segment` or `tag`" }, "ids": { "type": "array", "items": { "type": "integer" } } }, "required": [ "type", "ids" ] }, "nullable": true } }, "minProperties": 1, "required": [ "all", "any", "none" ] } } }, "required": [ "content", "description", "public", "published_at", "preview_text", "subject", "subscriber_filter" ] }, "example": { "email_template_id": 2, "email_address": null, "content": "Let me introduce myself
", "description": "Intro email", "public": true, "published_at": "2023-02-17T11:43:55+00:00", "send_at": null, "thumbnail_alt": null, "thumbnail_url": null, "preview_text": "Pleased to meet you!", "subject": "Hello!", "subscriber_filter": [ { "all": [ { "type": "segment", "ids": [ 18 ] } ], "any": null, "none": null } ] } } } }, "x-mcp": { "enabled": true } } }, "/v4/broadcasts/stats": { "get": { "summary": "Get stats for a list of broadcasts", "tags": [ "Broadcasts" ], "security": [ { "API Key": [] }, { "OAuth2": [] } ], "parameters": [ { "name": "after", "in": "query", "required": false, "schema": { "nullable": true }, "description": "To fetch next page of results, use `?after=Let me introduce myself
", "public": true, "published_at": "2023-02-17T11:43:55Z", "send_at": "2023-02-17T11:43:55Z", "thumbnail_alt": null, "thumbnail_url": null, "public_url": "https://kit-greetings.kit.com/posts/hello", "email_address": "greetings@kit.dev", "email_template": { "id": 2, "name": "Classic" }, "subscriber_filter": [ { "all": [ { "type": "segment", "ids": [ 54 ] } ] } ], "status": "sending" } } } } }, "401": { "description": "Returns a 401 if the token and/or account cannot be authenticated", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "The access token is invalid" ] } } } }, "403": { "description": "Returns a 403 with an error message if the current account is unauthorized to create a broadcast", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "You do not have sufficient permissions to access this resource. Please contact support." ] } } } }, "404": { "description": "Returns a 404 when the provided id does not exist", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "Not Found" ] } } } }, "422": { "description": "Returns a 422 with an error message when one or more of the parameters are invalid or the campaign has already started sending", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "Email template not found", "Only a single filter group is supported. Use one of `all`, `any`, or `none`." ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "email_template_id": { "type": "integer", "description": "Id of the email template to use. Uses the account's default template if not provided. 'Starting point' template is not supported." }, "email_address": { "type": "string", "nullable": true, "description": "The sending email address to use. Uses the account's sending email address if not provided." }, "content": { "type": "string", "description": "The HTML content of the email." }, "description": { "type": "string" }, "public": { "type": "boolean", "description": "`true` to publish this broadcast to the web. The broadcast will appear in a newsletter feed on your Creator Profile and Landing Pages." }, "published_at": { "type": "string", "description": "The published timestamp to display in ISO8601 format. If no timezone is provided, UTC is assumed." }, "send_at": { "type": "string", "description": "The scheduled send time for this broadcast in ISO8601 format. If no timezone is provided, UTC is assumed." }, "thumbnail_alt": { "nullable": true }, "thumbnail_url": { "nullable": true }, "preview_text": { "type": "string" }, "subject": { "type": "string" }, "subscriber_filter": { "type": "array", "description": "Filters your subscribers. At this time, we only support using only one filter group type via the API (e.g. `all`, `any`, or `none` but no combinations). If nothing is provided, will default to all of your subscribers.", "items": { "type": "object", "properties": { "all": { "type": "array", "description": "Filters your subscribers using a logical AND of all provided segment and tag ids, i.e. a subscriber would have to be part of all segments and tags provided", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "`segment` or `tag`" }, "ids": { "type": "array", "items": { "type": "integer" } } }, "required": [ "type", "ids" ] } }, "any": { "type": "array", "description": "Filters your subscribers using a logical OR of all provided segment and tag ids, i.e. a subscriber would have to be part of at least one of the segments or tags provided", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "`segment` or `tag`" }, "ids": { "type": "array", "items": { "type": "integer" } } }, "required": [ "type", "ids" ] }, "nullable": true }, "none": { "type": "array", "description": "Filters your subscribers using a logical NOT of all provided segment and tag ids, i.e. a subscriber would have to be in none of the segments or tags provided", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "`segment` or `tag`" }, "ids": { "type": "array", "items": { "type": "integer" } } }, "required": [ "type", "ids" ] }, "nullable": true } }, "minProperties": 1, "required": [ "all", "any", "none" ] } } }, "required": [ "email_template_id", "email_address", "content", "description", "public", "published_at", "send_at", "thumbnail_alt", "thumbnail_url", "preview_text", "subject", "subscriber_filter" ] }, "example": { "email_template_id": 2, "email_address": null, "content": "Let me introduce myself
", "description": "Intro email", "public": true, "published_at": "2023-02-17T11:43:55+00:00", "send_at": "2023-02-17T11:43:55+00:00", "thumbnail_alt": null, "thumbnail_url": null, "preview_text": "Pleased to meet you!", "subject": "Hello!", "subscriber_filter": [ { "all": [ { "type": "segment", "ids": [ 54 ] } ], "any": null, "none": null } ] } } } }, "x-mcp": { "enabled": true } } }, "/v4/bulk/custom_fields": { "post": { "summary": "Bulk create custom fields", "description": "See \"[Bulk & async processing](#bulk-amp-async-processing)\" for more information.", "tags": [ "Custom Fields" ], "security": [ { "OAuth2": [] } ], "parameters": [], "responses": { "200": { "description": "Creates the custom_fields synchronously when 100 or less custom fields are requested", "content": { "application/json": { "schema": { "type": "object", "properties": { "custom_fields": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer" }, "label": { "type": "string" }, "key": { "type": "string" }, "name": { "type": "string" }, "created_at": { "type": "string" } }, "required": [ "id", "key", "label", "name", "created_at" ] } }, "failures": { "type": "array", "items": {} } }, "required": [ "custom_fields", "failures" ] }, "example": { "custom_fields": [ { "id": 143, "key": "existing_custom_field", "label": "Existing Custom Field", "name": "ck_field_143_existing_custom_field", "created_at": "2023-02-17T11:43:55Z" }, { "id": 145, "key": "interests", "label": "Interests", "name": "ck_field_145_interests", "created_at": "2023-02-17T11:43:55Z" }, { "id": 144, "key": "last_name", "label": "Last name", "name": "ck_field_144_last_name", "created_at": "2023-02-17T11:43:55Z" } ], "failures": [] } } } }, "202": { "description": "Creates or updates custom_fields asynchronously when more than 100 custom fields are requested", "content": { "application/json": { "schema": { "type": "object", "properties": {} }, "example": {} } } }, "401": { "description": "Returns a 401 if the token and/or account cannot be authenticated", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "The access token is invalid" ] } } } }, "413": { "description": "Returns a 413 when the size of the request would exceed the account's data limit for enqueued bulk requests", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "This request exceeds your queued bulk requests limit. Please wait while we process your existing requests and try again later." ] } } } }, "422": { "description": "Returns a 422 when `custom_fields` is empty or not an array", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "No custom fields included for processing" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "custom_fields": { "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string" } }, "required": [ "label" ] } }, "callback_url": { "type": "string", "nullable": true } }, "required": [ "custom_fields" ] }, "example": { "custom_fields": [ { "label": "Test Custom Field 0" }, { "label": "Test Custom Field 1" }, { "label": "Test Custom Field 2" }, { "label": "Test Custom Field 3" } ], "callback_url": null } } } } } }, "/v4/bulk/custom_fields/subscribers": { "post": { "summary": "Bulk update subscriber custom field values", "tags": [ "Custom Fields" ], "security": [ { "OAuth2": [] } ], "parameters": [], "responses": { "200": { "description": "Creates or updates custom field values synchronously when 100 or less values are requested", "content": { "application/json": { "schema": { "type": "object", "properties": { "custom_field_values": { "type": "array", "items": { "type": "object", "properties": { "subscriber_id": { "type": "integer" }, "subscriber_custom_field_id": { "type": "integer" }, "value": { "type": "string" } }, "required": [ "subscriber_id", "subscriber_custom_field_id", "value" ] } }, "failures": { "type": "array", "items": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } }, "custom_field_value": { "type": "object", "properties": { "subscriber_id": { "type": "integer", "nullable": true }, "subscriber_custom_field_id": { "type": "integer" }, "value": { "type": "string" } }, "required": [ "subscriber_id", "subscriber_custom_field_id", "value" ] } }, "required": [ "errors", "custom_field_value" ] } } }, "required": [ "custom_field_values", "failures" ] }, "example": { "custom_field_values": [ { "subscriber_id": 615, "subscriber_custom_field_id": 156, "value": "Smith" }, { "subscriber_id": 615, "subscriber_custom_field_id": 157, "value": "Acme Inc" } ], "failures": [ { "errors": [ "Subscriber does not exist" ], "custom_field_value": { "subscriber_id": null, "subscriber_custom_field_id": 156, "value": "Jones" } }, { "errors": [ "Custom field does not exist" ], "custom_field_value": { "subscriber_id": 615, "subscriber_custom_field_id": 999999, "value": "Test" } } ] } } } }, "202": { "description": "Creates or updates custom field values asynchronously when more than 100 values are requested", "content": { "application/json": { "schema": { "type": "object", "properties": {} }, "example": {} } } }, "401": { "description": "Returns a 401 if the token and/or account cannot be authenticated", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "The access token is invalid" ] } } } }, "413": { "description": "Returns a 413 when the size of the request would exceed the account's data limit for enqueued bulk requests", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "This request exceeds your queued bulk requests limit. Please wait while we process your existing requests and try again later." ] } } } }, "422": { "description": "Returns a 422 when `custom_field_values` is empty or not an array", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "No custom field values included for processing" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "custom_field_values": { "type": "array", "items": { "type": "object", "properties": { "subscriber_id": { "type": "integer", "nullable": true }, "subscriber_custom_field_id": { "type": "integer" }, "value": { "type": "string" } }, "required": [ "subscriber_id", "subscriber_custom_field_id", "value" ] } }, "callback_url": { "nullable": true } }, "required": [ "custom_field_values", "callback_url" ] }, "example": { "custom_field_values": [ { "subscriber_id": 0, "subscriber_custom_field_id": 0, "value": "value_0" }, { "subscriber_id": 1, "subscriber_custom_field_id": 1, "value": "value_1" }, { "subscriber_id": 2, "subscriber_custom_field_id": 2, "value": "value_2" }, { "subscriber_id": 3, "subscriber_custom_field_id": 3, "value": "value_3" } ], "callback_url": null } } } } } }, "/v4/bulk/forms/subscribers": { "post": { "summary": "Bulk add subscribers to forms", "description": "Adding subscribers to double opt-in forms will trigger sending an Incentive Email. Subscribers already added to the specified form will not receive the Incentive Email again. For more information about double opt-in see \"[Double opt-in](#double-opt-in)\".Welcome!
" } } } } }, "401": { "description": "Returns a 401 if the token and/or account cannot be authenticated", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "The access token is invalid" ] } } } }, "404": { "description": "Returns a 404 when the provided id does not exist", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "Not Found" ] } } } } }, "x-mcp": { "enabled": true } }, "put": { "summary": "Update a sequence email", "description": "Updates any field on a sequence email — `subject`, `preview_text`, `content`, `delay_value`, `delay_unit`, `send_days`, `position`, `email_template_id`, or `published`. Only fields included in the request body change; everything else is preserved.\n\n**Note:** pass `send_days: null` to revert a per-email schedule override and inherit the parent sequence's `send_days` again. The response will then return all 7 days, indicating no per-email restriction.\n\n**Warning:** sending `send_days` on an email with `delay_unit: \"hours\"` returns `422` — `send_days` only applies to day-based emails.\n\n**Warning:** changing `position` while subscribers are actively progressing through the sequence can cause emails to be sent out of order or skipped. The same caution applies to flipping `published` on a `position: 0` email — it triggers Kit to process all queued subscribers for that email.\n\nFor the sequence-email model and how `delay_unit` and `send_days` interact, see [Create a sequence email](/api-reference/sequence-emails/create-a-sequence-email).", "tags": [ "Sequence Emails" ], "security": [ { "API Key": [] }, { "OAuth2": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" }, "example": 67 }, { "name": "sequence_id", "in": "path", "required": true, "schema": { "type": "integer" }, "example": 188 } ], "responses": { "200": { "description": "Updates the sequence email and returns its details", "content": { "application/json": { "schema": { "type": "object", "properties": { "email": { "type": "object", "properties": { "id": { "type": "integer" }, "sequence_id": { "type": "integer" }, "subject": { "type": "string" }, "preview_text": { "type": "string" }, "email_address": { "type": "string" }, "email_template_id": { "nullable": true }, "published": { "type": "boolean" }, "position": { "nullable": true }, "delay_value": { "type": "integer" }, "delay_unit": { "type": "string" }, "send_days": { "type": "array", "items": { "type": "string" } }, "content": { "nullable": true, "type": "string" } }, "required": [ "id", "sequence_id", "subject", "preview_text", "email_address", "email_template_id", "published", "position", "delay_value", "delay_unit", "send_days", "content" ] } }, "required": [ "email" ] }, "example": { "email": { "id": 66, "sequence_id": 187, "subject": "Updated subject", "preview_text": "Updated preview", "email_address": "joe2570@ck.lol", "email_template_id": null, "published": true, "position": null, "delay_value": 3, "delay_unit": "days", "send_days": [ "monday", "wednesday", "friday" ], "content": "Content 37" } } } } }, "401": { "description": "Returns a 401 if the token and/or account cannot be authenticated", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "The access token is invalid" ] } } } }, "404": { "description": "Returns a 404 when the provided id does not exist", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "Not Found" ] } } } }, "422": { "description": "Returns a 422 with an error message when one or more of the parameters were invalid", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "errors" ] }, "example": { "errors": [ "delay_unit must be one of: days, hours" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "subject": { "type": "string", "description": "New subject line for the email" }, "preview_text": { "type": "string", "nullable": true, "description": "New preview text shown in email clients before the email is opened" }, "content": { "type": "string", "nullable": true, "description": "New HTML body content of the email" }, "delay_value": { "type": "integer", "description": "New delay value" }, "delay_unit": { "type": "string", "enum": [ "days", "hours" ], "description": "New delay unit. Use `days` for schedule-aware delivery, `hours` for a fixed hourly delay" }, "email_template_id": { "type": "integer", "nullable": true, "description": "New email template ID for layout and styling. Pass `null` to clear" }, "published": { "type": "boolean", "description": "Pass `true` to publish a draft email or `false` to unpublish it" }, "send_days": { "type": "array", "nullable": true, "items": { "type": "string" }, "description": "Days of the week this email may be sent. Pass a subset to restrict delivery, or `null` to reset to all days (inherits the sequence schedule)" }, "position": { "type": "integer", "nullable": true, "description": "New zero-based position of the email in the sequence" } } }, "example": { "subject": "Updated subject", "preview_text": "Updated preview", "content": null, "delay_value": 3, "delay_unit": "days", "email_template_id": null, "published": true, "send_days": [ "monday", "wednesday", "friday" ], "position": null } } } }, "x-mcp": { "enabled": true } } }, "/v4/sequences/{sequence_id}/subscribers": { "get": { "summary": "List subscribers for a sequence", "tags": [ "Sequences" ], "security": [ { "API Key": [] }, { "OAuth2": [] } ], "parameters": [ { "name": "added_after", "description": "Filter subscribers who have been added to the form after this date (format yyyy-mm-dd)", "in": "query", "required": false, "schema": { "nullable": true, "type": "string" }, "example": "2023-02-14T11:43:55Z" }, { "name": "added_before", "description": "Filter subscribers who have been added to the form before this date (format yyyy-mm-dd)", "in": "query", "required": false, "schema": { "nullable": true, "type": "string" }, "example": "2023-02-18T11:43:55Z" }, { "name": "after", "description": "To fetch next page of results, use `?after=