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

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

Filter coverage by device ID

deviceName: string
Optional

Name of device associated with the data

end: string
Optional
(format: date-time)

End of an inclusive time range

importId: string
Optional

Filter coverage by import ID

includeEdgeRecordings: boolean
Optional

Include recordings from an Edge Site or Agent in the response.

When edge recordings are included, each item in the response array will also include the importStatus for the coverage range.

recordingId: string
Optional

Filter coverage by recording ID

recordingKey: string
Optional

Filter coverage by recordingKey

start: string
Optional
(format: date-time)

Start of an inclusive time range

tolerance: number
Optional
(minimum: 0)

Minimum interval (in seconds) that ranges must be separated by to be considered discrete. Currently, the minimum meaningful value is 14s and smaller values will be clamped to this value.

Response fields
end: string
(format: date-time)

End of this coverage

start: string
(format: date-time)

Start of this coverage

status: "at-edge" | "import-pending" | "imported"
Deprecated

The status of the coverage range

device:
Optional

Device summary.

deviceId: string
Optional

ID of device.

importStatus:
Optional

The import status of recordings. Status will be one of:

  • none: The recording has not yet been imported, and import has not been requested.
  • pending: Foxglove has received a request to import this recording.
  • importing: The recording data is being processed for access via Foxglove.
  • failed: The recording data could not be imported.
  • complete: The contents of the recording are available for access via Foxglove.

Note: none and pending statuses are applicable only to recordings originating from an Edge Site or Foxglove Agent.

The set of importStatus values may expand in the future.

Request example
200Example
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.

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.