MailerLite · Authentication Profile

Mailerlite Authentication

Authentication

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

Email MarketingAutomationNewslettersSubscribersCampaignsWebhookE-CommerceSegmentationTransactional EmailMCP
Methods: http, oauth2 Schemes: 3 OAuth flows: authorizationCode API key in: header

Security Schemes

BearerAuth http
scheme: bearer · in: header ()
OAuth2 (MCP) oauth2
· flows: authorizationCode
OAuth2 (CLI) oauth2
· flows: authorizationCode

Source

Authentication Profile

Raw ↑
generated: '2026-08-13'
method: searched
source: openapi/*.yml (securitySchemes)
docs: https://developers.mailerlite.com/getting-started
also:
  - https://developers.mailerlite.com/cli
  - https://developers.mailerlite.com/mcp
  - https://mcp.mailerlite.com/.well-known/oauth-authorization-server
notes: >-
  Upgraded from derived to searched on 2026-08-13. The OpenAPI-only view showed
  a single bearer scheme; the docs show a THREE-SURFACE auth model in which the
  REST API is API-key-only while the CLI and the hosted MCP server both use
  OAuth. That distinction matters to an agent: the callable-by-agent surface
  (MCP) is OAuth with open Dynamic Client Registration, so an agent can
  authorize itself, while the REST surface requires a human to mint a key in
  the dashboard first.

summary:
  types: [http, oauth2]
  api_key_in: [header]
  oauth2_flows: [authorizationCode]
  oauth2_scopes: 0
  surfaces: [rest, cli, mcp]
  human_bootstrap_required_for_rest: true

schemes:
  - name: BearerAuth
    type: http
    scheme: bearer
    surface: rest
    in: header
    header: Authorization
    format: "Bearer <api key>"
    description: >-
      API key generated in the MailerLite dashboard under
      Integrations > MailerLite API > "Generate new token".
    docs: https://developers.mailerlite.com/getting-started
    sources:
      - openapi/mailerlite-subscribers-api-openapi.yml
      - openapi/mailerlite-groups-api-openapi.yml
      - openapi/mailerlite-segments-api-openapi.yml
      - openapi/mailerlite-fields-api-openapi.yml
      - openapi/mailerlite-campaigns-api-openapi.yml
      - openapi/mailerlite-automations-api-openapi.yml
      - openapi/mailerlite-forms-api-openapi.yml
      - openapi/mailerlite-webhooks-api-openapi.yml
    key_properties:
      shown_once: true
      stored_plaintext_by_provider: false
      rotatable: true
      scoped: false
      expiring: false
      named: true
      bound_to_user: true
    lifecycle_warning: >-
      Keys are permanently bound to the user who created them. Removing that
      user from the account — or deleting their user account — silently kills
      every integration using that key. There is no service-account concept.
    failure: '401 {"message": "Unauthenticated."}'

  - name: OAuth2 (MCP)
    type: oauth2
    surface: mcp
    resource: https://mcp.mailerlite.com/mcp
    flows:
      - flow: authorizationCode
        authorizationUrl: https://mcp.mailerlite.com/authorize
        tokenUrl: https://mcp.mailerlite.com/token
        refreshUrl: https://mcp.mailerlite.com/token
        scopes: {}
    registration_endpoint: https://mcp.mailerlite.com/register
    revocation_endpoint: https://mcp.mailerlite.com/token
    code_challenge_methods: [plain, S256]
    token_endpoint_auth_methods: [client_secret_basic, client_secret_post, none]
    dynamic_client_registration: true
    bearer_methods_supported: [header]
    metadata:
      authorization_server: https://mcp.mailerlite.com/.well-known/oauth-authorization-server
      protected_resource: https://mcp.mailerlite.com/.well-known/oauth-protected-resource/mcp
    description: >-
      OAuth 2.1-shaped authorization for the hosted MCP server, discovered
      through RFC 8414 + RFC 9728 metadata. No scopes are advertised — an
      issued token carries whatever the authorizing MailerLite user can do.
    probe:
      url: https://mcp.mailerlite.com/mcp
      method: POST
      date: '2026-08-13'
      http_status: 401
      www_authenticate: >-
        Bearer realm="OAuth",
        resource_metadata="https://mcp.mailerlite.com/.well-known/oauth-protected-resource/mcp",
        error="invalid_token"
    sources:
      - https://mcp.mailerlite.com/.well-known/oauth-authorization-server
      - https://developers.mailerlite.com/mcp

  - name: OAuth2 (CLI)
    type: oauth2
    surface: cli
    flows:
      - flow: authorizationCode
    description: >-
      `mailerlite auth login` is browser-based OAuth and is the CLI's
      recommended default; tokens auto-refresh. `--method token` falls back to
      pasting a dashboard API key, and MAILERLITE_API_TOKEN covers CI.
    docs: https://developers.mailerlite.com/cli
    sources:
      - https://developers.mailerlite.com/cli

webhook_authentication:
  direction: inbound-to-customer
  mechanism: HMAC-SHA256
  header: Signature
  key: The webhook `secret` returned when the webhook is created
  signed_material: raw JSON request body
  timestamp_in_signature: false
  replay_protection: >-
    None published — no timestamp is signed and no tolerance window is
    documented. Receivers must add their own replay defence.
  docs: https://developers.mailerlite.com/api/webhooks

not_supported:
  - openIdConnect
  - mutualTLS
  - basic auth
  - hmac request signing on outbound REST calls
  - scoped / least-privilege API keys
  - key expiry

gaps:
  - >-
    No scope surface anywhere: neither the REST keys nor the MCP OAuth tokens
    can be narrowed. A token that can list subscribers can also schedule a
    campaign send.
  - >-
    No service-account identity — API keys inherit and die with a human user.

maintainers:
  - FN: Kin Lane
    email: kin@apievangelist.com