Foxglove Technologies · Authentication Profile

Foxglove Technologies Authentication

Authentication

Foxglove Technologies secures its APIs with http and apiKey across 3 declared security schemes, as derived from its OpenAPI definitions.

RoboticsObservabilityVisualizationData PlatformPhysical AIAutonomyFleet ManagementDeveloper ToolsMCAPROS
Methods: http, apiKey Schemes: 3 OAuth flows: API key in: cookie

Security Schemes

ApiKey http
scheme: bearer
Session apiKey
· in: cookie (fox.session)
SiteBucketNotificationBearerToken http
scheme: bearer

Source

Authentication Profile

Raw ↑
generated: '2026-08-16'
method: searched
source: openapi/foxglove-technologies-openapi-original.yml
docs: https://docs.foxglove.dev/api
settings_docs: https://docs.foxglove.dev/docs/settings#api-keys
sso_docs: https://docs.foxglove.dev/docs/security/sso
roles_docs: https://docs.foxglove.dev/docs/security/roles
summary:
  types: [http, apiKey]
  http_schemes: [bearer]
  api_key_in: [cookie]
  oauth2_flows: []
  oauth2: false
  openid_connect: false
  note: >-
    The Foxglove API is API-key authenticated, not OAuth. Keys are bearer tokens
    prefixed `fox_sk_`, issued only by organization admins, and carry a set of
    capabilities; every operation names the capability it requires in its security
    requirement. That capability list is the closest thing Foxglove has to an OAuth
    scope surface, so it is recorded here rather than in scopes/ — there is no
    authorization server, no consent screen, no token endpoint and no scope grant
    flow. Custom OIDC single sign-on exists for logging HUMANS into the Foxglove
    application on the Enterprise tier; it does not issue API credentials.
schemes:
- name: ApiKey
  type: http
  scheme: bearer
  header: Authorization
  format: 'Bearer fox_sk_...'
  key_prefix: fox_sk_
  description: API key authentication using HTTP Bearer auth
  issuance: organization administrators only
  applies_to: all routes except POST /site-bucket-notifications
  sources: [openapi/foxglove-technologies-openapi-original.yml]
- name: Session
  type: apiKey
  in: cookie
  parameter: fox.session
  description: User permissions when signed into the website
  applies_to: browser sessions on the Foxglove web app
  sources: [openapi/foxglove-technologies-openapi-original.yml]
- name: SiteBucketNotificationBearerToken
  type: http
  scheme: bearer
  header: Authorization
  description: Site bucket notification authentication using HTTP Bearer auth
  applies_to: POST /site-bucket-notifications only — the inbound notification route
    used by a self-hosted Primary Site's object storage
  issuance: site inbox notification tokens (POST /site-inbox-notification-tokens)
  sources: [openapi/foxglove-technologies-openapi-original.yml]
adjacent_credentials:
- name: Device token
  purpose: Authenticates a device (robot) to the API
  managed_by: [GET /device-tokens, POST /device-tokens, 'PATCH /device-tokens/{id}', 'DELETE /device-tokens/{id}']
  docs: https://docs.foxglove.dev/docs/fleet/device-tokens
- name: Site token
  purpose: Credential a self-hosted Primary Site or Edge Site uses to talk to the
    Foxglove API
  managed_by: [GET /site-tokens, POST /site-tokens, 'DELETE /site-tokens/{id}']
- name: MCP access token
  purpose: Random bearer token generated by the desktop app for its local MCP server
  docs: https://docs.foxglove.dev/docs/agents/mcp-server
capability_model:
  applies_to: ApiKey
  declared_in: operation security requirements in the OpenAPI
  count: 48
  syntax_note: >-
    Declared using OpenAPI's scope syntax against an http-bearer scheme (e.g.
    a security requirement naming ApiKey with the scope devices.list), which is
    non-standard — OpenAPI only
    defines scopes for oauth2/openIdConnect — but it is how Foxglove publishes the
    per-endpoint permission requirement, and Redoc renders it as
    "Authorizations: ApiKey (devices.list)".
  capabilities:
  - data.coverage.list
  - data.imports.delete
  - data.imports.list
  - data.imports.pending.list
  - data.stream
  - data.topics.list
  - data.upload
  - deviceTokens.create
  - deviceTokens.delete
  - deviceTokens.list
  - deviceTokens.update
  - devices.create
  - devices.delete
  - devices.list
  - devices.update
  - eventTypes.create
  - eventTypes.delete
  - eventTypes.list
  - eventTypes.update
  - events.create
  - events.delete
  - events.list
  - events.update
  - extensions.create
  - extensions.delete
  - extensions.list
  - layouts.create
  - layouts.delete
  - layouts.list
  - layouts.update
  - projects.list
  - properties.create
  - properties.delete
  - properties.list
  - properties.update
  - recordings.delete
  - recordings.list
  - sessions.create
  - sessions.delete
  - sessions.list
  - sessions.update
  - siteTokens.create
  - siteTokens.delete
  - siteTokens.list
  - sites.create
  - sites.delete
  - sites.list
  - sites.update
transport_security:
  https_required: true
  tls: TLS 1.2 minimum in transit; TLS 1.3 observed on api.foxglove.dev
  source: https://foxglove.dev/security
gaps:
- No token rotation, expiry or refresh contract is published for API keys.
- No OAuth 2.0 / OIDC authorization server for API access, so third-party
  applications cannot obtain delegated, user-consented access — only an admin-issued
  organization key.