Endgame · Authentication Profile

End Game Authentication

Authentication

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

CompanySalesRevenue IntelligenceGo-To-MarketArtificial IntelligenceAgentsMCPKnowledge GraphCRMConversation Intelligence
Methods: http, oauth2 Schemes: 2 OAuth flows: authorizationCode, clientCredentials, deviceCode API key in: header

Security Schemes

bearerAuth http
scheme: bearer
WorkOS OAuth 2.0 oauth2
· flows: authorizationCode, deviceCode, clientCredentials

Source

Authentication Profile

Raw ↑
generated: '2026-08-13'
method: searched
source: openapi/end-game-threads-api-openapi.yml
docs:
- https://docs.endgame.io/api-reference/authentication
- https://app.endgame.io/.well-known/oauth-authorization-server
- https://app.endgame.io/.well-known/oauth-protected-resource
summary:
  types:
  - http
  - oauth2
  api_key_in:
  - header
  oauth2_flows:
  - authorizationCode
  - clientCredentials
  - deviceCode
  note: >-
    Two authentication surfaces. The REST API takes a single Bearer credential —
    either a static Endgame API key (eak_ prefix) or a WorkOS-issued JWT — and the
    OpenAPI declares only that one http/bearer scheme. The MCP endpoint and the CLI
    use full OAuth 2.0 against the authorization server advertised at
    app.endgame.io, whose endpoints are delegated to WorkOS at login.endgame.io.
    Authorization is expressed as PRINCIPAL, not scope: see scopes/end-game-scopes.yml.
schemes:
- name: bearerAuth
  type: http
  scheme: bearer
  applies_to: REST API (/api/v1/*)
  description: 'One of: an Endgame API key prefixed `eak_` (created from Settings → API Keys
    with a Personal or Org-wide scope), or a WorkOS access token from an Endgame-provisioned
    M2M application (created from Settings → Applications and exchanged via the `client_credentials`
    grant).'
  sources:
  - openapi/end-game-threads-api-openapi.yml
  - https://docs.endgame.io/api-reference/authentication
- name: WorkOS OAuth 2.0
  type: oauth2
  applies_to: MCP endpoint (https://app.endgame.io/api/v1/mcp), Endgame CLI, M2M applications
  issuer: https://app.endgame.io
  flows:
  - flow: authorizationCode
    authorizationUrl: https://login.endgame.io/oauth2/authorize
    tokenUrl: https://login.endgame.io/oauth2/token
    pkce: S256
  - flow: deviceCode
    deviceAuthorizationUrl: https://login.endgame.io/oauth2/device_authorization
    tokenUrl: https://login.endgame.io/oauth2/token
  - flow: clientCredentials
    tokenUrl: https://login.endgame.io/oauth2/token
  jwks_uri: https://login.endgame.io/oauth2/jwks
  introspection_endpoint: https://login.endgame.io/oauth2/introspection
  registration_endpoint: https://login.endgame.io/oauth2/register
  dynamic_client_registration: true
  scopes_ref: scopes/end-game-scopes.yml
  sources:
  - https://app.endgame.io/.well-known/oauth-authorization-server
  - https://docs.endgame.io/api-reference/authentication
credentials:
- kind: api-key
  prefix: eak_
  scope_toggle: [Personal, Org-wide]
  provisioning: https://app.endgame.io/settings/api-keys
  admin_only: true
  shown_once: true
  scope_immutable: true
  revocation: >-
    Revoked from the API Keys settings page; immediate. Personal keys are revoked
    automatically when the owning user leaves the organization.
- kind: m2m-application
  provisioning: https://app.endgame.io/settings/applications
  admin_only: true
  grant: client_credentials
  token_endpoint: https://login.endgame.io/oauth2/token
  token_format: JWT
  note: >-
    Endgame provisions a WorkOS OAuth client and returns a client id and secret; the
    secret is shown once and can be rotated. Deleting the application revokes all
    tokens issued under it. Endgame's own docs prefer M2M over org-wide API keys for
    read-only service integrations because short-lived tokens are easier to contain.
authorization:
  model: principal-based
  principals:
  - {principal: user, credentials: [personal API key, user OAuth token], writes: true, reads: 'own threads + every org-published thread'}
  - {principal: org-wide service identity, credentials: [org-wide API key, M2M application token], writes: false, reads: 'every org-published thread'}
  mutation_rule: >-
    Writes require a user identity. Org-wide credentials return 403 FORBIDDEN on
    create, rename and delete. Only a thread's creator may rename or delete it, even
    when the thread is published to the organization. Cross-organization access is
    always denied.
  gap: >-
    Endgame's own documentation states org-wide write scope is on the roadmap; today
    a write-capable automation must use a personal API key issued under a dedicated
    service-account user.
failure_modes:
- {status: 401, code: UNAUTHORIZED, cause: missing, malformed or revoked credential}
- {status: 403, code: FORBIDDEN, cause: valid credential without permission to mutate this thread}