VDS API (1.7.0)

Download OpenAPI specification:

Elliot Morrison-Reed: Elliot.Morrison-Reed@us.bosch.com

The Vehicle Data Solutions (VDS) REST API: vehicles, devices, measurement configurations, data dictionaries, trips with their files, signals and status log, event definitions with cloud runs, data-volume accounting, and users.

Every request carries the tenant in X-Tenant-Id and a bearer token from the tenant's user pool. Error responses are plain-text messages unless an operation documents a JSON error body. Timestamps are Unix milliseconds unless a field says otherwise.

The vds command-line tool covers every operation of this API; the user documentation explains the concepts behind them.

projects

Project management endpoints

vehicles

Vehicle management endpoints

List vehicles

Get List of all the available vehicles

Authorizations:
fe-api-authorizer
query Parameters
offset
integer <int32> >= 0
Default: 0

Number of items to skip before returning the results

limit
integer <int32> [ 1 .. 100 ]
Default: 20

Limit on number of items to return

with_devices
boolean

Include devices attached to vehicle

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "info": {
    },
  • "data": [
    ]
}

Create a vehicle

Create a new vehicle

Authorizations:
fe-api-authorizer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

The vehicle to create: name and attribute values.

id
integer

Unique identifier of the vehicle

version_id
integer

Unique version identifier of the vehicle

vehicle_name
required
string

Name of the vehicle

Array of objects (VehicleAttribute)

Attribute values keyed by attribute type name.

enabled
boolean

False once the vehicle has been disabled.

created_on
string <date-time>

When the vehicle was created.

modified_on
string <date-time>

When the record was last changed.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "vehicle_name": "string",
  • "attributes": [
    ],
  • "enabled": true,
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "vehicle_name": "string",
  • "attributes": [
    ],
  • "enabled": true,
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z",
  • "assigned_devices": [
    ]
}

Get a vehicle

Get vehicle by id

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "vehicle_name": "string",
  • "attributes": [
    ],
  • "enabled": true,
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z",
  • "assigned_devices": [
    ]
}

Update a vehicle

Update an existing vehicle

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

The vehicle fields to store: name and attribute values.

id
integer

Unique identifier of the vehicle

version_id
integer

Unique version identifier of the vehicle

vehicle_name
required
string

Name of the vehicle

Array of objects (VehicleAttribute)

Attribute values keyed by attribute type name.

enabled
boolean

False once the vehicle has been disabled.

created_on
string <date-time>

When the vehicle was created.

modified_on
string <date-time>

When the record was last changed.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "vehicle_name": "string",
  • "attributes": [
    ],
  • "enabled": true,
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "vehicle_name": "string",
  • "attributes": [
    ],
  • "enabled": true,
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z",
  • "assigned_devices": [
    ]
}

Disable a vehicle

Disable (soft delete) a vehicle

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

List vehicle attribute types

Get List of all the available vehicle attributes

Authorizations:
fe-api-authorizer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "info": {
    },
  • "data": [
    ]
}

Create a vehicle attribute type

Describe a new Vehicle Attribute

Authorizations:
fe-api-authorizer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

The attribute type to create: its name, group and description.

name
required
string

Name of the attribute

group
required
string

Group of the attribute

description
string

Description of the attribute

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "group": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "group": "string",
  • "description": "string"
}

Disable a vehicle attribute type

Set an attribute to disabled, this simply removes it from the attribute list. It can be added to the list again via a createAttribute call.

Authorizations:
fe-api-authorizer
path Parameters
prop
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

List device networks

Get List of all the available device networks

Authorizations:
fe-api-authorizer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "info": {
    },
  • "data": [
    ]
}

Create a device network

Create a new device Network

Authorizations:
fe-api-authorizer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

The network to create.

id
integer

Unique identifier of the device network

name
required
string

Name of the network

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string"
}

Update a device network

Update an existing device network

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

The new network name.

id
integer

Unique identifier of the device network

name
required
string

Name of the network

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string"
}

Disable a device network

Disable a device network

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

devices

Devices, their data-ingest totals and status log

List devices

List all of the available devices

Authorizations:
fe-api-authorizer
query Parameters
offset
integer <int32> >= 0
Default: 0

Number of items to skip before returning the results

limit
integer <int32> [ 1 .. 100 ]
Default: 20

Limit on number of items to return

details
boolean

Include vehicle and configuration details

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "info": {
    },
  • "data": [
    ]
}

Get a device

Get device by id

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer
query Parameters
details
boolean

Include vehicle and configuration details

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "device_name": "string",
  • "imei": "string",
  • "vehicle_id": 0,
  • "config_id": 0,
  • "device_networks": [
    ],
  • "enabled": true,
  • "status": {
    },
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z",
  • "vehicle": {
    },
  • "config": {
    },
  • "version": 0
}

Update a device

Update an existing device

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

The device fields to store: name, vehicle and configuration assignment.

id
integer

Unique identifier of the device

version_id
integer

Unique version identifier of the device

device_name
required
string

Name of the device

imei
required
string

IMEI of the device

vehicle_id
integer

Vehicle that the device is connected to

config_id
integer

Configuration that is assigned to the device

Array of objects (DeviceNetwork)

How the device's physical network interfaces map to the project's networks.

enabled
boolean

False once the device has been disabled.

object (DeviceStatus)

Last-seen information for a device.

created_on
string <date-time>

When the device was registered.

modified_on
string <date-time>

When the record was last changed.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "device_name": "string",
  • "imei": "string",
  • "vehicle_id": 0,
  • "config_id": 0,
  • "device_networks": [
    ],
  • "enabled": true,
  • "status": {
    },
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "device_name": "string",
  • "imei": "string",
  • "vehicle_id": 0,
  • "config_id": 0,
  • "device_networks": [
    ],
  • "enabled": true,
  • "status": {
    },
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z",
  • "vehicle": {
    },
  • "config": {
    },
  • "version": 0
}

Get a device's data-ingest totals

Get data-ingest byte totals for a single device, bucketed by period. The trip period returns one row per trip for the device.

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer

Device id.

query Parameters
period
required
string
Enum: "daily" "monthly" "trip"

Aggregation granularity.

start
required
string <date>

Start date (inclusive) in YYYY-MM-DD format.

end
required
string <date>

End date (inclusive) in YYYY-MM-DD format.

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "period": "daily",
  • "start": "2019-08-24",
  • "end": "2019-08-24",
  • "by_device": true,
  • "data": [
    ]
}

Get a device's status log

The device's status log across trips, newest first. Defaults to the last 90 days, the hot window kept in the database; entries of older trips are reachable per trip through GET /trips/{trip}/status.

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer

Device id.

query Parameters
start
integer <int64>

Range start (inclusive) as Unix milliseconds. Defaults to 90 days ago.

end
integer <int64>

Range end (exclusive) as Unix milliseconds. Defaults to now.

limit
integer

Maximum number of entries to return.

offset
integer

Number of entries to skip.

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
[
  • {
    }
]

configs

Measurement configuration management endpoints

List measurement configurations

Get list of all available configurations

Authorizations:
fe-api-authorizer
query Parameters
offset
integer <int32> >= 0
Default: 0

Number of items to skip before returning the results

limit
integer <int32> [ 1 .. 100 ]
Default: 20

Limit on number of items to return

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "info": {
    },
  • "data": [
    ]
}

Create a measurement configuration

Create a new configuration

Authorizations:
fe-api-authorizer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

The configuration to create. Server-assigned fields (id, version, timestamps) are ignored.

id
integer

Unique identifier of the configuration

version_id
integer

Unique version identifier of the configurations

name
string

Name of the configuration

version
integer

Version of the configuration

description
string

Description of the configuration

object (ConfigSpec)
object (ConfigValidation)

Validation results per source type, one entry per selected dictionary.

enabled
boolean

Whether this configuration is active

created_on
string <date-time>

When the configuration was created.

modified_on
string <date-time>

When this version was saved.

modified_by
string

User that last modified the configuration

networks
Array of integers

Ids of the device networks the configuration records from.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "name": "string",
  • "version": 0,
  • "description": "string",
  • "spec": {
    },
  • "validation": {
    },
  • "enabled": true,
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z",
  • "modified_by": "string",
  • "networks": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "name": "string",
  • "version": 0,
  • "description": "string",
  • "spec": {
    },
  • "validation": {
    },
  • "enabled": true,
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z",
  • "modified_by": "string",
  • "networks": [
    ]
}

Get a measurement configuration

Get configuration by id

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "name": "string",
  • "version": 0,
  • "description": "string",
  • "spec": {
    },
  • "validation": {
    },
  • "enabled": true,
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z",
  • "modified_by": "string",
  • "networks": [
    ]
}

Update a measurement configuration

Update an existing configuration

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

The complete new configuration; stored as a new version that becomes the current one.

id
integer

Unique identifier of the configuration

version_id
integer

Unique version identifier of the configurations

name
string

Name of the configuration

version
integer

Version of the configuration

description
string

Description of the configuration

object (ConfigSpec)
object (ConfigValidation)

Validation results per source type, one entry per selected dictionary.

enabled
boolean

Whether this configuration is active

created_on
string <date-time>

When the configuration was created.

modified_on
string <date-time>

When this version was saved.

modified_by
string

User that last modified the configuration

networks
Array of integers

Ids of the device networks the configuration records from.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "name": "string",
  • "version": 0,
  • "description": "string",
  • "spec": {
    },
  • "validation": {
    },
  • "enabled": true,
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z",
  • "modified_by": "string",
  • "networks": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "name": "string",
  • "version": 0,
  • "description": "string",
  • "spec": {
    },
  • "validation": {
    },
  • "enabled": true,
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z",
  • "modified_by": "string",
  • "networks": [
    ]
}

Disable a measurement configuration

Disable (soft delete) a configuration

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Duplicate a measurement configuration

Duplicate a configuration

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer
query Parameters
title
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "version_id": 0,
  • "name": "string",
  • "version": 0,
  • "description": "string",
  • "spec": {
    },
  • "validation": {
    },
  • "enabled": true,
  • "created_on": "2019-08-24T14:15:22Z",
  • "modified_on": "2019-08-24T14:15:22Z",
  • "modified_by": "string",
  • "networks": [
    ]
}

Get a configuration's signal-catalog manifest

Manifest of the configuration's signal catalog for event-expression completion and validation: the immutable catalog pieces (one per miniplugin of the current version, plus the built-in OBD and GPS dictionaries when enabled) to fetch from GET /catalogs/{version}/{pieceId} and merge. Served with an ETag; answers 304 to a matching If-None-Match.

Authorizations:
fe-api-authorizer
path Parameters
id
required
integer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "catalog_version": 0,
  • "config_version": 0,
  • "pieces": [
    ]
}

Get a signal-catalog piece

One immutable signal-catalog piece, addressed by catalog format version and content hash (see GET /configs/{id}/signal-catalog for the list of pieces a configuration needs). The response is a single-dictionary celcheck catalog JSON — data/eventmachine/emlite/celcheck is the source of truth for its shape — and is served with an immutable Cache-Control.

Authorizations:
fe-api-authorizer
path Parameters
version
required
integer
pieceId
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{ }

datadictionaries

Data dictionary management endpoints

List data dictionaries

Get a list of all data dictionaries for the current project

Authorizations:
fe-api-authorizer
query Parameters
offset
integer <int32> >= 0
Default: 0

Number of items to skip before returning the results

limit
integer <int32> [ 1 .. 100 ]
Default: 20

Limit on number of items to return

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "info": {
    },
  • "data": [
    ]
}

Start a data dictionary upload

Get a pre-signed URL for uploading a new data dictionary file to S3

Authorizations:
fe-api-authorizer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

File name, type and group of the dictionary to upload; the response carries the pre-signed upload URL.

filename
required
string

Name of the file to upload

filetype
required
string (DataDictionaryFiletype)
Enum: "a2l" "arxml" "dbc" "xlsm" "xlsx"

File extension type for data dictionaries

group
string

Data group (InfluxDB measurement name) for the new dictionary. Omit for the default of the file type (can, ecu or uds). 1-64 characters of letters, digits, '_' and '-'; built-in measurement names and file extensions are reserved.

Responses

Request samples

Content type
application/json
{
  • "filename": "string",
  • "filetype": "a2l",
  • "group": "string"
}

Response samples

Content type
application/json
{
  • "upload_url": "http://example.com",
  • "upload_id": "string",
  • "part_size": 0,
  • "dictionary": {
    }
}

Get a data dictionary

Get a specific data dictionary by ID

Authorizations:
fe-api-authorizer
path Parameters
id
required
string

ID of the data dictionary

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "filename": "string",
  • "filetype": "a2l",
  • "definition_type": "CAN",
  • "group": "string",
  • "active_config_count": 0,
  • "raw_path": "string",
  • "processed_path": "string",
  • "parse_error": "string",
  • "created_on": "2019-08-24T14:15:22Z"
}

Remove a data dictionary

Remove a data dictionary by ID

Authorizations:
fe-api-authorizer
path Parameters
id
required
string

ID of the data dictionary to remove

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Set a data dictionary's group

Change the data group for data dictionary

Authorizations:
fe-api-authorizer
path Parameters
id
required
string

ID of the data dictionary to update

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

The new group name: 1-64 characters of letters, digits, _ and -; built-in measurement names and file extensions are reserved.

group
required
string

Data group (InfluxDB measurement name). 1-64 characters of letters, digits, '_' and '-'; built-in measurement names and file extensions are reserved. Set to the file type's default (can, ecu or uds) to reset.

Responses

Request samples

Content type
application/json
{
  • "group": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "filename": "string",
  • "filetype": "a2l",
  • "definition_type": "CAN",
  • "group": "string",
  • "active_config_count": 0,
  • "raw_path": "string",
  • "processed_path": "string",
  • "parse_error": "string",
  • "created_on": "2019-08-24T14:15:22Z"
}

Get a download URL for the raw dictionary file

Get the CloudFront URL for downloading the raw data dictionary file

Authorizations:
fe-api-authorizer
path Parameters
id
required
string

ID of the data dictionary to retrieve

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json

Get a download URL for the CAN definition

Get the CAN definition from a data dictionary by ID

Authorizations:
fe-api-authorizer
path Parameters
id
required
string

ID of the data dictionary to retrieve CAN definition from

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json

Get a download URL for the XCP definition

Get the XCP definition from a data dictionary by ID

Authorizations:
fe-api-authorizer
path Parameters
id
required
string

ID of the data dictionary to retrieve XCP definition from

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json

Get a download URL for the diagnostic definition

Get the diagnostic definition from a data dictionary by ID

Authorizations:
fe-api-authorizer
path Parameters
id
required
string

ID of the data dictionary to retrieve diagnostic definition from

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json

Complete a data dictionary upload

Complete a multipart upload by finalizing all uploaded parts in S3

Authorizations:
fe-api-authorizer
path Parameters
id
required
string

ID of the data dictionary

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

The multipart upload id and the ETags of the uploaded parts.

upload_id
required
string

S3 multipart upload ID returned by the initiate endpoint

required
Array of objects (CompletedPart)

List of completed parts with ETags

Responses

Request samples

Content type
application/json
{
  • "upload_id": "string",
  • "parts": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "filename": "string",
  • "filetype": "a2l",
  • "definition_type": "CAN",
  • "group": "string",
  • "active_config_count": 0,
  • "raw_path": "string",
  • "processed_path": "string",
  • "parse_error": "string",
  • "created_on": "2019-08-24T14:15:22Z"
}

Abort a data dictionary upload

Abort a multipart upload and clean up S3 parts and the dictionary record

Authorizations:
fe-api-authorizer
path Parameters
id
required
string

ID of the data dictionary

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

The multipart upload to abort.

upload_id
required
string

S3 multipart upload ID to abort

Responses

Request samples

Content type
application/json
{
  • "upload_id": "string"
}

Response samples

Content type
application/json
{
  • "status": "string"
}

Get the built-in OBD definition

Get the OBD definition from a data dictionary

Authorizations:
fe-api-authorizer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "messages": [
    ]
}

trips

Trips, their files, signals, status log and detected events

List trips

Get information about project trips

Authorizations:
fe-api-authorizer
query Parameters
offset
integer <int32> >= 0
Default: 0

Number of items to skip before returning the results

limit
integer <int32> [ 1 .. 100 ]
Default: 20

Limit on number of items to return

search
string

Search for trips that contain the provided string.

devices
string

Comma-separated list of devices to limit trips to.

start
integer <int64>

Consider only trips with first_seen time after start. Unix milliseconds timestamp.

end
integer <int64>

Consider only trips with last_seen time before end. Unix milliseconds timestamp.

vehicle
string

Comma-separated list of vehicle names. Only trips associated with any of the provided vehicle names are returned. Case-sensitive exact match.

config
string

Comma-separated list of configuration names. Only trips associated with any of the provided configuration names are returned. Case-sensitive exact match.

signals
string

Comma-separated list of signal names. Only trips that contain ALL of the specified signals are returned (AND semantics). Uses GIN index on trip_miniplugin_map for fast lookup. Case-insensitive via citext.

status
string

Comma-separated list of trip status values (0=Error, 1=Warning, 2=OK, 3=Unknown). Only trips whose status matches any of the provided values are returned (OR semantics).

sort_by
string
Enum: "vehicle_name" "configuration" "first_seen" "last_seen" "duration"

Column to sort by. Omit or leave blank to use the default ordering (last_seen DESC, first_seen DESC).

sort_dir
string
Enum: "asc" "desc"

Sort direction. Only effective when sort_by is also provided. NULL values in vehicle_name and configuration always sort last.

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "info": {
    },
  • "data": [
    ]
}

List trip filter values

Get the distinct vehicle names, configuration names, and signal names that appear across trips in the project. Each list is narrowed by all OTHER active filters (faceted search) so dropdowns only show values compatible with current selections. When no filter parameters are provided, all values across all trips are returned.

Authorizations:
fe-api-authorizer
query Parameters
vehicles
string

Comma-separated vehicle names. Narrows configs and signals facets to trips associated with these vehicles.

configs
string

Comma-separated configuration names. Narrows vehicles and signals facets to trips with these configurations.

devices
string

Comma-separated device IMEIs. Narrows all facets to trips from these devices.

signals
string

Comma-separated signal names. Narrows vehicles and configs facets to trips containing ALL of these signals (AND semantics).

start
integer <int64>

Consider only trips with first_seen after this time. Unix milliseconds timestamp.

end
integer <int64>

Consider only trips with last_seen before this time. Unix milliseconds timestamp.

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "vehicles": [
    ],
  • "configs": [
    ],
  • "signals": [
    ]
}

Delete a trip

Delete a trip and all associated files and data

Authorizations:
fe-api-authorizer
path Parameters
trip
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Get a trip's status log

The device's status log for one trip. Trips recorded since 1.7.0 are served from the status-log table, where limit and offset apply; older trips fall back to the archived per-trip history, which is returned whole.

Authorizations:
fe-api-authorizer
path Parameters
trip
required
string

Trip id.

query Parameters
limit
integer

Maximum number of entries to return.

offset
integer

Number of entries to skip.

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a trip's signals

Get detailed signal information from a trip

Authorizations:
fe-api-authorizer
path Parameters
trip
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "device": "string",
  • "device_name": "string",
  • "vehicle_name": "string",
  • "configuration": "string",
  • "first_seen": 0,
  • "last_seen": 0,
  • "event_count": 0,
  • "status": 0,
  • "miniplugins": [
    ]
}

List a trip's files

List files associated with a trip

Authorizations:
fe-api-authorizer
path Parameters
trip
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "info": {
    },
  • "data": [
    ]
}

List a trip's events

List the events the device detected during a trip. Events found by cloud runs are listed per run instead.

Authorizations:
fe-api-authorizer
path Parameters
trip
required
string

Trip id.

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

events

Event definitions, expression validation and cloud runs. Conditions and calculated signals are CEL expressions over a configuration's signal catalog: signals by name, dt (seconds since the previous step), time (timestamp of the step), and the functions last(signal[, default]), delay(condition, seconds) and filter(name, input, time_constant).

List event definitions

List the project's enabled event definitions, each at its current version.

Authorizations:
fe-api-authorizer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create an event definition

Create an event definition as version 1. The server mints id when the body has none. Only name and start_condition are checked here; use POST /events/validate-expression to check the expressions.

Authorizations:
fe-api-authorizer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json
required

The definition. version, version_id, run_count, modified and modified_by are ignored.

id
required
string

Stable identifier referenced by ConfigSpec events mappings. Minted by the server when omitted on create.

version_id
integer <int64>

Identifier of the current version. Read-only; PUT creates a new version.

version
integer

Version number, starting at 1. Read-only; PUT creates a new version.

name
required
string

Display name; also the file name of the definition's YAML export.

description
string

Free text shown with the definition.

authoring_config_id
integer

Configuration whose signal catalog the definition is authored against. Workspace context only; changing it does not create a new version by itself and it does not restrict where the definition can run.

start_condition
required
string

CEL expression; the event starts when it becomes true. Must evaluate to a boolean.

end_condition
string

CEL expression; the event ends when it becomes true. Must evaluate to a boolean. Empty means the event ends when start_condition becomes false.

Array of objects (Calculated Signal)

Named intermediate expressions. Each is available by name to the conditions and to the other calculated signals, and is summarised with every occurrence.

extra_signals
Array of strings

Catalog signals recorded and summarised with every occurrence although no condition or calculated signal references them.

min_duration_s
number

Seconds. Events shorter than this are dropped at completion.

pre_roll_s
number

Seconds of capture window before the start edge.

post_roll_s
number

Seconds of capture window after the end edge.

cooldown_s
number

Seconds after an event ends before the same definition may start another one.

modified_by
string

User who saved the current version.

modified
integer <int64>

Unix milliseconds of the last modification.

Responses

Request samples

Content type
application/json
{
  • "id": "3f1c0f0e-8d2a-4b8e-9d1f-2c7a5e6b4a10",
  • "version_id": 42,
  • "version": 3,
  • "name": "Hard braking",
  • "description": "Deceleration above 4 m/s² held for at least half a second.",
  • "authoring_config_id": 17,
  • "start_condition": "decel > 4.0",
  • "end_condition": "decel < 1.0",
  • "calculated_signals": [
    ],
  • "extra_signals": [
    ],
  • "min_duration_s": 0.5,
  • "pre_roll_s": 5,
  • "post_roll_s": 5,
  • "cooldown_s": 10,
  • "run_count": 2,
  • "modified_by": "jane.doe",
  • "modified": 1757280000000
}

Response samples

Content type
application/json
{
  • "id": "3f1c0f0e-8d2a-4b8e-9d1f-2c7a5e6b4a10",
  • "version_id": 42,
  • "version": 3,
  • "name": "Hard braking",
  • "description": "Deceleration above 4 m/s² held for at least half a second.",
  • "authoring_config_id": 17,
  • "start_condition": "decel > 4.0",
  • "end_condition": "decel < 1.0",
  • "calculated_signals": [
    ],
  • "extra_signals": [
    ],
  • "min_duration_s": 0.5,
  • "pre_roll_s": 5,
  • "post_roll_s": 5,
  • "cooldown_s": 10,
  • "run_count": 2,
  • "modified_by": "jane.doe",
  • "modified": 1757280000000
}

Get an event definition

Get an event definition at its current version.

Authorizations:
fe-api-authorizer
path Parameters
id
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "id": "3f1c0f0e-8d2a-4b8e-9d1f-2c7a5e6b4a10",
  • "version_id": 42,
  • "version": 3,
  • "name": "Hard braking",
  • "description": "Deceleration above 4 m/s² held for at least half a second.",
  • "authoring_config_id": 17,
  • "start_condition": "decel > 4.0",
  • "end_condition": "decel < 1.0",
  • "calculated_signals": [
    ],
  • "extra_signals": [
    ],
  • "min_duration_s": 0.5,
  • "pre_roll_s": 5,
  • "post_roll_s": 5,
  • "cooldown_s": 10,
  • "run_count": 2,
  • "modified_by": "jane.doe",
  • "modified": 1757280000000
}

Update an event definition (new version)

Replace the definition. The change is stored as a new version and becomes the current one; earlier versions stay readable through the runs that executed them. Only name and start_condition are checked here.

Authorizations:
fe-api-authorizer
path Parameters
id
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json
required

The complete new version. version, version_id, run_count, modified and modified_by are ignored.

id
required
string

Stable identifier referenced by ConfigSpec events mappings. Minted by the server when omitted on create.

version_id
integer <int64>

Identifier of the current version. Read-only; PUT creates a new version.

version
integer

Version number, starting at 1. Read-only; PUT creates a new version.

name
required
string

Display name; also the file name of the definition's YAML export.

description
string

Free text shown with the definition.

authoring_config_id
integer

Configuration whose signal catalog the definition is authored against. Workspace context only; changing it does not create a new version by itself and it does not restrict where the definition can run.

start_condition
required
string

CEL expression; the event starts when it becomes true. Must evaluate to a boolean.

end_condition
string

CEL expression; the event ends when it becomes true. Must evaluate to a boolean. Empty means the event ends when start_condition becomes false.

Array of objects (Calculated Signal)

Named intermediate expressions. Each is available by name to the conditions and to the other calculated signals, and is summarised with every occurrence.

extra_signals
Array of strings

Catalog signals recorded and summarised with every occurrence although no condition or calculated signal references them.

min_duration_s
number

Seconds. Events shorter than this are dropped at completion.

pre_roll_s
number

Seconds of capture window before the start edge.

post_roll_s
number

Seconds of capture window after the end edge.

cooldown_s
number

Seconds after an event ends before the same definition may start another one.

modified_by
string

User who saved the current version.

modified
integer <int64>

Unix milliseconds of the last modification.

Responses

Request samples

Content type
application/json
{
  • "id": "3f1c0f0e-8d2a-4b8e-9d1f-2c7a5e6b4a10",
  • "version_id": 42,
  • "version": 3,
  • "name": "Hard braking",
  • "description": "Deceleration above 4 m/s² held for at least half a second.",
  • "authoring_config_id": 17,
  • "start_condition": "decel > 4.0",
  • "end_condition": "decel < 1.0",
  • "calculated_signals": [
    ],
  • "extra_signals": [
    ],
  • "min_duration_s": 0.5,
  • "pre_roll_s": 5,
  • "post_roll_s": 5,
  • "cooldown_s": 10,
  • "run_count": 2,
  • "modified_by": "jane.doe",
  • "modified": 1757280000000
}

Response samples

Content type
application/json
{
  • "id": "3f1c0f0e-8d2a-4b8e-9d1f-2c7a5e6b4a10",
  • "version_id": 42,
  • "version": 3,
  • "name": "Hard braking",
  • "description": "Deceleration above 4 m/s² held for at least half a second.",
  • "authoring_config_id": 17,
  • "start_condition": "decel > 4.0",
  • "end_condition": "decel < 1.0",
  • "calculated_signals": [
    ],
  • "extra_signals": [
    ],
  • "min_duration_s": 0.5,
  • "pre_roll_s": 5,
  • "post_roll_s": 5,
  • "cooldown_s": 10,
  • "run_count": 2,
  • "modified_by": "jane.doe",
  • "modified": 1757280000000
}

Delete an event definition

Disable the definition so it no longer lists or runs. Its versions and run history are kept.

Authorizations:
fe-api-authorizer
path Parameters
id
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

List an event definition's cloud runs

List the cloud runs of an event definition, newest first.

Authorizations:
fe-api-authorizer
path Parameters
id
required
string
query Parameters
offset
integer <int32> >= 0
Default: 0

Number of items to skip before returning the results

limit
integer <int32> [ 1 .. 100 ]
Default: 20

Limit on number of items to return

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "info": {
    },
  • "data": [
    ]
}

Start a cloud run

Start an asynchronous run of the definition's current version over the trips matching the filter. The response is the run in state pending; poll GET /eventdefinitions/{id}/runs/{runId} until state is terminal, then list its occurrences. Before starting, the definition's expressions are compiled against the authoring configuration's catalog: a definition that does not compile is rejected with 400 and diagnostics, and a filter that selects no trip carrying every measured signal is rejected with 422. Use POST /eventdefinitions/{id}/runs/preview to check the selection first.

Authorizations:
fe-api-authorizer
path Parameters
id
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json
required

Trip selection and an optional description. An empty object selects every trip.

start
integer <int64>

Unix milliseconds; trips whose last_seen is at or after this. Omit for no lower bound.

end
integer <int64>

Unix milliseconds; trips whose first_seen is at or before this. Omit for no upper bound.

vehicles
Array of strings

Vehicle names; any of.

devices
Array of strings

Device IMEIs; any of.

configs
Array of strings

Configuration names; any of.

description
string

Free text recorded with the run.

Responses

Request samples

Content type
application/json
{
  • "start": 1756684800000,
  • "end": 1757289600000,
  • "vehicles": [
    ],
  • "description": "Week 36, both test trucks"
}

Response samples

Content type
application/json
{
  • "id": "9b7d2c0a-1e4f-4a6b-8c3d-5f0e7a9b1c2d",
  • "definition_id": "3f1c0f0e-8d2a-4b8e-9d1f-2c7a5e6b4a10",
  • "version_id": 42,
  • "version": 3,
  • "state": "succeeded",
  • "filter": {
    },
  • "summary": {
    },
  • "error": "1 of 38 trips failed: trip has no raw-sorted chunks",
  • "created_by": "jane.doe",
  • "created": 1757290000000,
  • "completed": 1757290185000,
  • "output_prefix": "events/runs/9b7d2c0a-1e4f-4a6b-8c3d-5f0e7a9b1c2d/"
}

Preview a cloud run's trip selection

Resolve a run filter without starting a run: how many trips would be analyzed, how many bytes they hold, how many matching trips lack a measured signal, and which signals the run would bind. Applies the same expression check as starting a run.

Authorizations:
fe-api-authorizer
path Parameters
id
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json
required

The trip selection to resolve. An empty object selects every trip.

start
integer <int64>

Unix milliseconds; trips whose last_seen is at or after this. Omit for no lower bound.

end
integer <int64>

Unix milliseconds; trips whose first_seen is at or before this. Omit for no upper bound.

vehicles
Array of strings

Vehicle names; any of.

devices
Array of strings

Device IMEIs; any of.

configs
Array of strings

Configuration names; any of.

description
string

Free text recorded with the run.

Responses

Request samples

Content type
application/json
{
  • "start": 1756684800000,
  • "end": 1757289600000,
  • "vehicles": [
    ],
  • "description": "Week 36, both test trucks"
}

Response samples

Content type
application/json
{
  • "trips": 38,
  • "bytes": 5242880000,
  • "dropped_no_signals": 2,
  • "signals": [
    ],
  • "version": 3
}

Get a cloud run

Get one cloud run. A run whose execution ended without reporting back is reconciled here and returned in its final state.

Authorizations:
fe-api-authorizer
path Parameters
id
required
string
runId
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "id": "9b7d2c0a-1e4f-4a6b-8c3d-5f0e7a9b1c2d",
  • "definition_id": "3f1c0f0e-8d2a-4b8e-9d1f-2c7a5e6b4a10",
  • "version_id": 42,
  • "version": 3,
  • "state": "succeeded",
  • "filter": {
    },
  • "summary": {
    },
  • "error": "1 of 38 trips failed: trip has no raw-sorted chunks",
  • "created_by": "jane.doe",
  • "created": 1757290000000,
  • "completed": 1757290185000,
  • "output_prefix": "events/runs/9b7d2c0a-1e4f-4a6b-8c3d-5f0e7a9b1c2d/"
}

Stop a cloud run

Stop a pending or running cloud run. The run moves to stopped and keeps the results written so far. A run that already finished is returned unchanged.

Authorizations:
fe-api-authorizer
path Parameters
id
required
string
runId
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "id": "9b7d2c0a-1e4f-4a6b-8c3d-5f0e7a9b1c2d",
  • "definition_id": "3f1c0f0e-8d2a-4b8e-9d1f-2c7a5e6b4a10",
  • "version_id": 42,
  • "version": 3,
  • "state": "succeeded",
  • "filter": {
    },
  • "summary": {
    },
  • "error": "1 of 38 trips failed: trip has no raw-sorted chunks",
  • "created_by": "jane.doe",
  • "created": 1757290000000,
  • "completed": 1757290185000,
  • "output_prefix": "events/runs/9b7d2c0a-1e4f-4a6b-8c3d-5f0e7a9b1c2d/"
}

List the events a cloud run found

List the events a cloud run found, joined with the vehicle and device names. Paged by trip with limit and offset: a page holds every occurrence of up to limit trips, newest trip first and in time order within a trip, and the page info counts trips. The complete list is also available as results.json under the run's output_prefix.

Authorizations:
fe-api-authorizer
path Parameters
id
required
string
runId
required
string
query Parameters
offset
integer <int32> >= 0
Default: 0

Number of items to skip before returning the results

limit
integer <int32> [ 1 .. 100 ]
Default: 20

Limit on number of items to return

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "info": {
    },
  • "data": [
    ]
}

Validate an event expression

Check one CEL expression against a configuration's signal catalog: syntax, signal names, result type for the given field, and whether it could also run on the device. Use it while authoring; a definition is saved without this check and checked again when a cloud run starts. The diagnostics carry character offsets into the expression and, where possible, quick-fix suggestions.

Authorizations:
fe-api-authorizer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json
required

The expression, the slot it fills, and the configuration whose catalog to check it against.

config_id
required
integer

Configuration whose attached dictionaries form the signal catalog.

expression
required
string

The expression to check. For field: signal, a bare signal name.

field
required
string
Enum: "start" "end" "calc" "signal"

Which slot of the definition the expression fills; it decides the required result type. start and end must be boolean, calc numeric or string, and signal must name exactly one catalog signal (an extra signal).

calc_signals
Array of strings

Names of calculated signals declared alongside the expression, so that references to them are not reported as unknown signals.

Responses

Request samples

Content type
application/json
{
  • "config_id": 17,
  • "expression": "decel > 4.0 && Speed > 30",
  • "field": "start",
  • "calc_signals": [
    ]
}

Response samples

Content type
application/json
{
  • "valid": false,
  • "diagnostics": [
    ],
  • "liteCompat": false,
  • "liteReasons": [
    ],
  • "signals": [
    ],
  • "outputType": "",
  • "references": [
    ]
}

data-ingest

Data ingestion tracking endpoints

Get data-ingest totals

Get data-ingest byte totals for the tenant, bucketed by period. Defaults to tenant-wide totals; set by_device=true to split daily/monthly totals per device. The trip period returns one row per trip.

Authorizations:
fe-api-authorizer
query Parameters
period
required
string
Enum: "daily" "monthly" "trip"

Aggregation granularity.

start
required
string <date>

Start date (inclusive) in YYYY-MM-DD format.

end
required
string <date>

End date (inclusive) in YYYY-MM-DD format.

by_device
boolean

When true, daily/monthly totals are split per device. Ignored for the trip period.

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "period": "daily",
  • "start": "2019-08-24",
  • "end": "2019-08-24",
  • "by_device": true,
  • "data": [
    ]
}

data-egress

Data egress tracking endpoints

Get data-egress totals

Get data-egress byte totals for the tenant, bucketed by period. The transfer period returns one row per export event with its S3 path.

Authorizations:
fe-api-authorizer
query Parameters
period
required
string
Enum: "daily" "monthly" "transfer"

Aggregation granularity.

start
required
string <date>

Start date (inclusive) in YYYY-MM-DD format.

end
required
string <date>

End date (inclusive) in YYYY-MM-DD format.

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "period": "daily",
  • "start": "2019-08-24",
  • "end": "2019-08-24",
  • "data": [
    ]
}

users

User management endpoints

List users

Get a list of all users for the current project

Authorizations:
fe-api-authorizer
query Parameters
offset
integer <int32> >= 0
Default: 0

Number of items to skip before returning the results

limit
integer <int32> [ 1 .. 100 ]
Default: 20

Limit on number of items to return

header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "info": {
    },
  • "data": [
    ]
}

Create a user

Create a new user in the project

Authorizations:
fe-api-authorizer
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

The user to create: email, name and role.

email
required
string <email>

Email address of the user; also used as the Cognito username

name
required
string

Display name of the user

roles
Array of strings

Cognito groups to enroll the user in

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "name": "string",
  • "roles": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "username": "string",
  • "email": "string",
  • "created_on": "2019-08-24T14:15:22Z",
  • "roles": [
    ]
}

Get a user

Get a single user by id

Authorizations:
fe-api-authorizer
path Parameters
id
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "username": "string",
  • "email": "string",
  • "created_on": "2019-08-24T14:15:22Z",
  • "roles": [
    ]
}

Update a user

Update an existing user

Authorizations:
fe-api-authorizer
path Parameters
id
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Request Body schema: application/json

The user fields to change.

name
string

Display name of the user

roles
Array of strings

Full set of Cognito groups the user should be in; replaces the current set. Omit to leave the user's roles unchanged.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "roles": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "username": "string",
  • "email": "string",
  • "created_on": "2019-08-24T14:15:22Z",
  • "roles": [
    ]
}

Delete a user

Delete a user

Authorizations:
fe-api-authorizer
path Parameters
id
required
string
header Parameters
X-Tenant-Id
required
string
Example: my-project-id

Tenant ID for request

Responses