Foxglove Technologies Topics API

Topics provide schema information for messages in the data source.

Operations 1

GET /data/topics List topics #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/foxglove-technologies-topics-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

foxglove-technologies-topics-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Foxglove Topics API
  version: v1
  x-logo:
    url: https://foxglove.dev/images/logo-icon-round.png
  description: '# Python client


    Foxglove provides a Python client library (`foxglove-client`) to more easily interact with the Foxglove API.'
servers:
- url: https://api.foxglove.dev/v1
  description: Production
security: []
tags:
- name: Topics
  description: Topics provide schema information for messages in the data source.
paths:
  /data/topics:
    get:
      tags:
      - Topics
      summary: List topics
      description: 'Get a list of topics available for a device within a given time range.


        By default, this endpoint will not return the `schema` for each topic. To include

        the schemas, you must provide the `includeSchemas` query parameter.


        Use `start` and `end` to limit the response to overlapping recording ranges.


        Topics for not-imported recordings are only returned if no parameter is provided besides

        recordingId or recordingKey. This is because most parameters need the imported files to

        filter, and can only return an empty list if imports are unavailable.'
      security:
      - ApiKey:
        - data.topics.list
      x-codeSamples:
      - lang: python
        label: Python
        source: "from foxglove.client import Client\nfrom datetime import datetime, timedelta\n\ntoken = \"<YOUR API TOKEN HERE>\"\nclient = Client(token=token)\n\nclient.get_topics(\n    device_id=device_id,\n    start=datetime.now() - timedelta(hours=3),\n    end=datetime.now() - timedelta(hours=1),\n)\n"
      parameters:
      - $ref: '#/components/parameters/start'
        description: 'Return all topics appearing in recordings ending on or after `start`

          '
      - $ref: '#/components/parameters/end'
        description: 'Return all topics appearing in recordings starting on or before `end` (updated March 2024 to be `<=` instead of `<`)

          '
      - in: query
        name: importId
        description: ID of the import from which to list topics
        deprecated: true
        schema:
          type: string
          minLength: 1
        required: false
      - in: query
        name: recordingId
        description: ID of the recording from which to list topics
        schema:
          type: string
          minLength: 1
        required: false
      - in: query
        name: recordingKey
        description: Key of the recording from which to list topics
        schema:
          type: string
          minLength: 1
        required: false
      - in: query
        name: deviceId
        description: ID of device being queried
        schema:
          type: string
          minLength: 1
        required: false
      - in: query
        name: device.name
        description: Equivalent to deviceName, and ignored if deviceName is supplied
        schema:
          type: string
          minLength: 1
        required: false
        deprecated: true
      - in: query
        name: deviceName
        description: Name of device being queried
        schema:
          type: string
          minLength: 1
        required: false
      - in: query
        name: device.id
        description: Equivalent to deviceId, and ignored if deviceId is supplied
        schema:
          type: string
          minLength: 1
        required: false
        deprecated: true
      - in: query
        name: sessionId
        description: ID of a recording session to list topics from
        schema:
          type: string
          minLength: 1
        required: false
      - in: query
        name: sessionKey
        description: Key of a recording session to list topics from
        schema:
          type: string
          minLength: 1
        required: false
      - in: query
        name: includeSchemas
        description: Whether full schemas should be included in the response
        schema:
          type: boolean
          default: false
        required: false
      - in: query
        name: sortBy
        description: Sort by a single field of the topic type ("topic" or "version")
        schema:
          type: string
          enum:
          - topic
          - version
        required: false
      - in: query
        name: projectId
        description: Filter topics matching project ID
        schema:
          type: string
        required: false
      - $ref: '#/components/parameters/sortOrder'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: List of topics
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Topic'
      operationId: getDataTopics
      x-operation-id-source: derived
components:
  schemas:
    Topic:
      type: object
      description: A topic to which messages can be published.
      properties:
        encoding:
          type: string
          description: Encoding of the topic
        schema:
          type: string
          description: Full schema, base-64 encoded; included only if the request's includeSchemas is true
        schemaEncoding:
          type: string
          description: Encoding of the topic schema
        schemaName:
          type: string
          description: Name of the topic schema
        topic:
          type: string
          description: Topic name
        version:
          type: string
          description: Topic version
      required:
      - encoding
      - schemaEncoding
      - schemaName
      - topic
      - version
  parameters:
    sortOrder:
      in: query
      name: sortOrder
      description: Sort order for the `sortBy` field
      schema:
        type: string
        enum:
        - asc
        - desc
    limit:
      in: query
      name: limit
      description: Maximum number of items to return
      schema:
        type: number
        minimum: 0
        maximum: 2000
        default: 2000
    end:
      in: query
      name: end
      description: End of an inclusive time range
      schema:
        type: string
        format: date-time
    start:
      in: query
      name: start
      description: Start of an inclusive time range
      schema:
        type: string
        format: date-time
    offset:
      in: query
      name: offset
      description: Number of items to skip before returning the results
      schema:
        type: integer
        minimum: 0
        default: 0
  securitySchemes:
    Session:
      type: apiKey
      in: cookie
      name: fox.session
      description: User permissions when signed into the website
    ApiKey:
      type: http
      scheme: bearer
      description: API key authentication using HTTP Bearer auth
    SiteBucketNotificationBearerToken:
      type: http
      scheme: bearer
      description: Site bucket notification authentication using HTTP Bearer auth
x-tagGroups:
- name: Data Platform
  tags:
  - Coverage
  - Custom Properties
  - Device Tokens
  - Devices
  - Events
  - Event Types
  - Imports
  - Lake files
  - Projects
  - Recording Attachments
  - Recordings
  - Sessions
  - Site Tokens
  - Site Inbox Notification Tokens
  - Sites
  - Stream data
  - Topics
- name: Webhooks
  tags:
  - Webhook Payloads
- name: Visualization
  tags:
  - Extensions
  - Layouts