Data

data

Methods

List Pending Imports -> OffsetPage<{ createdAt, filename, orgId, 10 more... }>
get/data/pending-imports

List the pending imports. These are in-progress import jobs for newly uploaded recordings.

List Coverage -> Array<{ end, start, status, 3 more... }>
get/data/coverage

A coverage range represents a time span for which Foxglove has data for a given device.

Your must specify the start and end arguments when making a coverage request.

Note: By default, only coverage ranges with imported recordings are returned. To include coverage ranges with unimported recordings from an Edge Site or Agent, set the includeEdgeRecordings query parameter to true

Download Data -> { link }
post/data/stream

This endpoint returns a link URL where you can download your data as an .mcap or .bag file.

To download your data:

  1. Make a request to this endpoint.
  2. Make a GET request to the link URL.

One of recordingId, key, importId (deprecated) or all three of deviceId/deviceName, start, and end must be specified.

Note: You can only export a .bag file if you originally uploaded a .bag file.

Upload A Recording -> { link, requestId }
post/data/upload

Use this endpoint to upload data to your foxglove-hosted site. The upload is a two-request process.

  1. Make a request to this upload endpoint to create an upload link.
  2. Issue a PUT HTTP request to the link response field URL.

Your PUT request header should have Content-Type: application/octet-stream, and your request body should contain your file content.

Note: If you are using a self-hosted site, see this guide for uploading data.

List Topics -> OffsetPage<{ encoding, schemaEncoding, schemaName, 3 more... }>
get/data/topics

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.

query Parameters
device: {
Optional
id: string
Optional

Equivalent to deviceId, and ignored if deviceId is supplied

name: string
Optional

Equivalent to deviceName, and ignored if deviceName is supplied

}
deviceId: string
Optional

ID of device being queried

deviceName: string
Optional

Name of device being queried

end: string
Optional
(format: date-time)

Return all topics appearing in recordings starting on or before end (updated March 2024 to be <= instead of <)

importId: string
Optional

ID of the import from which to list topics

includeSchemas: boolean
Optional

Whether full schemas should be included in the response

limit: number
Optional
(minimum: 0, maximum: 2000, default: 2000)

Maximum number of items to return

offset: number
Optional
(minimum: 0)

Number of items to skip before returning the results

recordingId: string
Optional

ID of the recording from which to list topics

recordingKey: string
Optional

Key of the recording from which to list topics

sortBy:
Optional

Sort by a single field of the topic type ("topic" or "version")

"topic"
"version"
sortOrder:
Optional

Sort order for the sortBy field

"asc"
"desc"
start: string
Optional
(format: date-time)

Return all topics appearing in recordings ending on or after start

Response fields
encoding: string

Encoding of the topic

schemaEncoding: string

Encoding of the topic schema

schemaName: string

Name of the topic schema

topic: string

Topic name

version: string

Topic version

schema: string
Optional

Full schema, base-64 encoded; included only if the request's includeSchemas is true

Request example
200Example
Data

Imports

data.imports

Methods

List Imports -> OffsetPage<{ id, end, filename, 12 more... }>
Deprecated
get/data/imports

This endpoint is deprecated. Use the list recordings endpoint instead.

Delete Multiple Imports -> { deletionResults }
Deprecated
delete/data/imports

Deletes multiple imports by ID. Returns an array of result objects, which indicate whether a given import was successfully deleted. An import that has already been deleted will result in "notFound". Note: All imports must belong to the same site. If any import belongs to a different site, the entire request is rejected with a 400 response.

Delete An Import -> { id }
Deprecated
delete/data/imports/{importId}

This endpoint is deprecated. Use the delete recording endpoint instead.

Deleting an import deletes all data associated with the import.

This action is permanent and cannot be undone.