Kit · Authentication Profile

Convertkit Authentication

Authentication

Kit secures its APIs with apiKey and oauth2 across 2 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode flow(s).

Email MarketingCreator EconomySubscribersAutomationNewslettersSequencesFormsBroadcastsWebhookMCPAgentsAuthenticationMarketing AutomationLanding PagesSegmentationEmail CampaignsSoftware-as-a-ServiceCommerce
Methods: apiKey, oauth2 Schemes: 2 OAuth flows: authorizationCode API key in: header

Security Schemes

API Key apiKey
· in: header (X-Kit-Api-Key)
OAuth2 oauth2
· flows: authorizationCode

Source

Authentication Profile

Raw ↑
generated: '2026-08-13'
method: searched
source: openapi/convertkit-accounts-api-openapi.yml, openapi/convertkit-broadcasts-api-openapi.yml, openapi/convertkit-custom-fields-api-openapi.yml,
  openapi/convertkit-email-templates-api-openapi.yml, openapi/convertkit-forms-api-openapi.yml, openapi/convertkit-posts-api-openapi.yml,
  openapi/convertkit-purchases-api-openapi.yml, openapi/convertkit-segments-api-openapi.yml, openapi/convertkit-sequence-emails-api-openapi.yml,
  openapi/convertkit-sequences-api-openapi.yml, openapi/convertkit-snippets-api-openapi.yml, openapi/convertkit-subscribers-api-openapi.yml
  ...
summary:
  types:
  - apiKey
  - oauth2
  api_key_in:
  - header
  oauth2_flows:
  - authorizationCode
schemes:
- name: API Key
  type: apiKey
  in: header
  parameter: X-Kit-Api-Key
  description: Authenticate API requests via an API Key
  sources:
  - openapi/convertkit-accounts-api-openapi.yml
  - openapi/convertkit-broadcasts-api-openapi.yml
  - openapi/convertkit-custom-fields-api-openapi.yml
  - openapi/convertkit-email-templates-api-openapi.yml
  - openapi/convertkit-forms-api-openapi.yml
  - openapi/convertkit-posts-api-openapi.yml
  - openapi/convertkit-purchases-api-openapi.yml
  - openapi/convertkit-segments-api-openapi.yml
  - openapi/convertkit-sequence-emails-api-openapi.yml
  - openapi/convertkit-sequences-api-openapi.yml
  - openapi/convertkit-snippets-api-openapi.yml
  - openapi/convertkit-subscribers-api-openapi.yml
  - openapi/convertkit-tags-api-openapi.yml
  - openapi/convertkit-webhooks-api-openapi.yml
- name: OAuth2
  type: oauth2
  flows:
  - flow: authorizationCode
    authorizationUrl: https://api.kit.com/v4/oauth/authorize
    tokenUrl: https://api.kit.com/v4/oauth/token
    scopes: 2
  description: Authenticate API requests via an OAuth token
  sources:
  - openapi/convertkit-accounts-api-openapi.yml
  - openapi/convertkit-broadcasts-api-openapi.yml
  - openapi/convertkit-custom-fields-api-openapi.yml
  - openapi/convertkit-email-templates-api-openapi.yml
  - openapi/convertkit-forms-api-openapi.yml
  - openapi/convertkit-posts-api-openapi.yml
  - openapi/convertkit-purchases-api-openapi.yml
  - openapi/convertkit-segments-api-openapi.yml
  - openapi/convertkit-sequence-emails-api-openapi.yml
  - openapi/convertkit-sequences-api-openapi.yml
  - openapi/convertkit-snippets-api-openapi.yml
  - openapi/convertkit-subscribers-api-openapi.yml
  - openapi/convertkit-tags-api-openapi.yml
  - openapi/convertkit-webhooks-api-openapi.yml
docs: https://developers.kit.com/api-reference/authentication
searched_note: Upgraded from the mechanical derive with Kit's published auth docs and the live RFC 8414
  / RFC 9728 well-known documents. Note the OpenAPI oauth2 endpoint URLs (api.kit.com/v4/oauth/*) disagree
  with the live authorization-server metadata (authorize on app.kit.com, no /v4 prefix) — see scopes/convertkit-scopes.yml.
live_metadata:
  authorization_server: https://api.kit.com/.well-known/oauth-authorization-server
  protected_resource: https://api.kit.com/.well-known/oauth-protected-resource
  probed: '2026-08-13'
  http_status: 200
  issuer: https://api.kit.com
  authorization_endpoint: https://app.kit.com/oauth/authorize
  token_endpoint: https://api.kit.com/oauth/token
  revocation_endpoint: https://api.kit.com/oauth/revoke
  registration_endpoint: https://app.kit.com/oauth/register
  dynamic_client_registration: true
  pkce: S256
  grant_types_supported:
  - authorization_code
  - refresh_token
  token_endpoint_auth_methods_supported:
  - client_secret_post
  - none
usage_policy:
  api_key:
    header: X-Kit-Api-Key
    intended_use: Personal automation and pre-launch testing only
    rate_limit: 120 requests / rolling 60s
    restrictions: Rejected by every /v4/bulk/ endpoint and by POST /v4/purchases
    retrievability: Shown once at creation in account settings > Developer; not retrievable later
  oauth:
    required_for: Any app published to the Kit App Store, all bulk endpoints, purchase creation, and the
      Kit MCP
    rate_limit: 600 requests / rolling 60s
    flows:
    - authorization_code
    - authorization_code + PKCE (SPAs and mobile)
    - refresh_token
    refresh_token_rotation: Single-use since 2026-05-20; each refresh issues a new refresh token and revokes
      the previous. Reuse returns invalid_grant.
    docs:
    - https://developers.kit.com/api-reference/oauth-refresh-token-flow
    - https://developers.kit.com/api-reference/oauth-proof-key-for-code-exchange-flow
    - https://developers.kit.com/api-reference/oauth-token-revocation
scopes_artifact: scopes/convertkit-scopes.yml