Lukka · Authentication Profile

Lukka Authentication

Authentication

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

CryptoDigital AssetsMarket DataReference DataPricingBlockchainAMLComplianceFinancial ServicesAnalyticsPrediction MarketsMCP
Methods: oauth2, http Schemes: 4 OAuth flows: clientCredentials, authorizationCode API key in:

Security Schemes

oktaClientCredentials oauth2
· flows: clientCredentials, clientCredentials
bearerAuth http
scheme: bearer
websocketAccessToken apiKey
· in: query (access_token)
mcpOAuth oauth2
· flows: authorizationCode

Source

Authentication Profile

Raw ↑
generated: '2026-08-04'
method: searched
docs: https://apidocs.lukka.tech/
source:
- https://apidocs.lukka.tech/
- https://sso.lukka.tech/.well-known/openid-configuration
- https://github.com/lukkatech/lukka-mcps
summary:
  types:
  - oauth2
  - http
  oauth2_flows:
  - clientCredentials
  - authorizationCode
  identity_providers:
  - Okta (sso.lukka.tech) - REST and streaming APIs
  - Auth0 (auth0.lukka.tech) - hosted MCP servers
  note: 'Lukka runs two distinct identity planes: Okta client-credentials for the machine-to-machine data APIs, and Auth0
    authorization-code + PKCE with Dynamic Client Registration for the seven hosted MCP servers.'
schemes:
- name: oktaClientCredentials
  type: oauth2
  surface: REST data APIs
  flows:
  - flow: clientCredentials
    tokenUrl: https://sso.lukka.tech/oauth2/aus1imo2fqcx5Ik4Q0h8/v1/token
    authorization_server: https://sso.lukka.tech/oauth2/aus1imo2fqcx5Ik4Q0h8
    note: Pricing / Market Data / Analytics authorization server
  - flow: clientCredentials
    tokenUrl: https://sso.lukka.tech/oauth2/aus1imo2g7ugEl49C0h8/v1/token
    authorization_server: https://sso.lukka.tech/oauth2/aus1imo2g7ugEl49C0h8
    note: Reference Data / Derived Data authorization server
  client_authentication: HTTP Basic - base64(client_id:client_secret) on the token request
  token:
    type: JWT
    header: 'Authorization: Bearer <access_token>'
    expires_in: 86400
    documented_response_scope: pricing
  token_endpoint_auth_methods_supported:
  - client_secret_basic
  - client_secret_post
  - client_secret_jwt
  - private_key_jwt
  - none
  introspection_endpoint: https://sso.lukka.tech/oauth2/aus1imo2fqcx5Ik4Q0h8/v1/introspect
  revocation_endpoint: https://sso.lukka.tech/oauth2/aus1imo2fqcx5Ik4Q0h8/v1/revoke
  jwks_uri: https://sso.lukka.tech/oauth2/aus1imo2fqcx5Ik4Q0h8/v1/keys
  sources:
  - authentication derived from openapi/
  - https://sso.lukka.tech/oauth2/aus1imo2fqcx5Ik4Q0h8/.well-known/oauth-authorization-server
- name: bearerAuth
  type: http
  scheme: bearer
  bearerFormat: JWT
  surface: REST data APIs
  description: The Okta-issued JWT is presented as a Bearer token on every Lukka data API call.
  sources:
  - openapi/lukka-analytics-openapi.yml
  - openapi/lukka-pricing-market-data-openapi.yml
  - openapi/lukka-reference-data-openapi.yml
  - openapi/lukka-reference-data-v1-openapi.yml
  - openapi/lukka-valuation-openapi.yml
- name: websocketAccessToken
  type: apiKey
  in: query
  parameter: access_token
  surface: WebSocket streaming
  description: Streaming connections carry the same Okta JWT as an access_token query parameter on the wss:// URL. Tokens
    expire; the server emits a token-expiry notice and the client reauthorizes in-band with an authenticate action message.
  sources:
  - asyncapi/lukka-market-data-streaming-asyncapi.yml
- name: mcpOAuth
  type: oauth2
  surface: Hosted MCP servers (7)
  flows:
  - flow: authorizationCode
    pkce: S256
    authorization_server: https://auth0.lukka.tech
    authorizationUrl: https://auth0.lukka.tech/authorize
    tokenUrl: https://auth0.lukka.tech/oauth/token
    registration_endpoint: https://auth0.lukka.tech/oidc/register
    jwks_uri: https://auth0.lukka.tech/.well-known/jwks.json
    revocation_endpoint: https://auth0.lukka.tech/oauth/revoke
  dynamic_client_registration: true
  protected_resource_metadata: RFC 9728 - <server>/.well-known/oauth-protected-resource returns 200 on all seven MCP
    hosts
  scopes:
  - mcp
  description: No static client id or secret. The MCP client discovers the authorization server from the protected-resource
    metadata and registers dynamically (Client ID Metadata Document), then the user signs in once per server.
  sources:
  - https://github.com/lukkatech/lukka-mcps
  - https://pricing.mcp.lukka.tech/.well-known/oauth-protected-resource
x-evidence:
  fetched: '2026-08-04'
  probes:
  - url: https://sso.lukka.tech/.well-known/openid-configuration
    http_status: 200
  - url: https://sso.lukka.tech/.well-known/oauth-authorization-server
    http_status: 200
  - url: https://auth0.lukka.tech/.well-known/oauth-authorization-server
    http_status: 200
  - url: https://pricing.mcp.lukka.tech/.well-known/oauth-protected-resource
    http_status: 200