Skip to content

Documentation

Worlds API Documentation

Description goes here

Version

1.53.0

Queries

activityChronicle

Description

Look up an activity by its unique identifier.

Response

Returns an ActivityChronicle

Arguments
Name Description
id - ID! The activity's unique identifier.

Example

Query
query activityChronicle($id: ID!) {
  activityChronicle(id: $id) {
    id
    chronicleProducer {
      ...ChronicleProducerFragment
    }
    name
    description
    startTime
    endTime
    timezone
    metadata
    validation {
      ...ChronicleValidationFragment
    }
    priority
    status
    labels
    locations
    images {
      ...ImageFragment
    }
    dataSourceClips {
      ...DataSourceClipFragment
    }
    tracks {
      ...TrackFragment
    }
    sites {
      ...SiteFragment
    }
    dataSources {
      ...DataSourceFragment
    }
    tags {
      ...TagFragment
    }
    pointsOfInterest {
      ...PointOfInterestFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "activityChronicle": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "chronicleProducer": ChronicleProducer,
      "name": "abc123",
      "description": "xyz789",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "timezone": "xyz789",
      "metadata": {},
      "validation": ChronicleValidation,
      "priority": "abc123",
      "status": "xyz789",
      "labels": ["abc123"],
      "locations": ["abc123"],
      "images": [Image],
      "dataSourceClips": [DataSourceClip],
      "tracks": [Track],
      "sites": [Site],
      "dataSources": [DataSource],
      "tags": [Tag],
      "pointsOfInterest": [PointOfInterest],
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00"
    }
  }
}

activityChronicles

Description

Search for activities based on a set of filters.

Response

Returns an ActivityChronicleConnection

Arguments
Name Description
filter - FilterActivityChronicleInput Filter activities by unique identifier, type, time, etc.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [ActivityChronicleSort!]! The field and direction by which to sort the results. Default = [{field: START_TIME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query activityChronicles(
  $filter: FilterActivityChronicleInput,
  $first: Int!,
  $after: String,
  $sort: [ActivityChronicleSort!]!
) {
  activityChronicles(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    edges {
      ...ActivityChronicleEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{
  "filter": FilterActivityChronicleInput,
  "first": 20,
  "after": "abc123",
  "sort": [
    {"field": "START_TIME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "activityChronicles": {
      "edges": [ActivityChronicleEdge],
      "pageInfo": PageInfo
    }
  }
}

chronicleProducer

Description

Look up an chronicle producer by its unique identifier.

Response

Returns a ChronicleProducer

Arguments
Name Description
id - ID! The chronicle producer's unique identifier.

Example

Query
query chronicleProducer($id: ID!) {
  chronicleProducer(id: $id) {
    id
    name
    description
    timezone
    active
    validationReasons
    metadata
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "chronicleProducer": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "xyz789",
      "description": "abc123",
      "timezone": "abc123",
      "active": false,
      "validationReasons": ["xyz789"],
      "metadata": {}
    }
  }
}

chronicleProducers

Description

Search for chronicle producers based on a set of filters.

Response

Returns a ChronicleProducerConnection

Arguments
Name Description
filter - FilterChronicleProducerInput Filter chronicle producers by unique identifier or name
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [ChronicleProducersSort!]! The field and direction by which to sort the results. Default = [{field: NAME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query chronicleProducers(
  $filter: FilterChronicleProducerInput,
  $first: Int!,
  $after: String,
  $sort: [ChronicleProducersSort!]!
) {
  chronicleProducers(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    edges {
      ...ChronicleProducerEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{
  "filter": FilterChronicleProducerInput,
  "first": 20,
  "after": "xyz789",
  "sort": [
    {"field": "NAME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "chronicleProducers": {
      "edges": [ChronicleProducerEdge],
      "pageInfo": PageInfo
    }
  }
}

dataSource

Description

Look up a data source's information by its unique identifier.

Response

Returns a DataSource

Arguments
Name Description
id - ID! The data source's unique numeric ID or UUID.

Example

Query
query dataSource($id: ID!) {
  dataSource(id: $id) {
    id
    name
    type
    device {
      ...DeviceFragment
    }
    zones {
      ...ZoneFragment
    }
    labels
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "dataSource": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "abc123",
      "type": "FOLDER",
      "device": Device,
      "zones": [Zone],
      "labels": ["xyz789"]
    }
  }
}

dataSources

Description

Search for data sources based on a set of filters.

Response

Returns a DataSourceConnection

Arguments
Name Description
filter - FilterDataSourceInput Filter data sources by type and/or position.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [DataSourceSort!]! The field and direction by which to sort the results. Default = [{field: NAME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query dataSources(
  $filter: FilterDataSourceInput,
  $first: Int!,
  $after: String,
  $sort: [DataSourceSort!]!
) {
  dataSources(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...DataSourceEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterDataSourceInput,
  "first": 20,
  "after": "abc123",
  "sort": [
    {"field": "NAME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "dataSources": {
      "pageInfo": PageInfo,
      "edges": [DataSourceEdge]
    }
  }
}

detections

Description

Finds detections, which are objects detected by the Worlds system, based on a set of filters.

Response

Returns a DetectionConnection

Arguments
Name Description
filter - FilterDetectionInput! Filter detections based on the originating device, time period, etc.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [DetectionsSort!]! The field and direction by which to sort the results. Default = [{field: DETECTION_TIME, direction: ASC}, {field: GLOBAL_TRACK_ID, direction: ASC}]

Example

Query
query detections(
  $filter: FilterDetectionInput!,
  $first: Int!,
  $after: String,
  $sort: [DetectionsSort!]!
) {
  detections(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...DetectionEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterDetectionInput,
  "first": 20,
  "after": "xyz789",
  "sort": [
    {"field": "DETECTION_TIME", "direction": "ASC"},
    {"field": "GLOBAL_TRACK_ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "detections": {
      "pageInfo": PageInfo,
      "edges": [DetectionEdge]
    }
  }
}

device

Description

Look up a device's information by its unique identifier.

Response

Returns a Device

Arguments
Name Description
id - ID! The sensor's unique numeric ID or UUID.

Example

Query
query device($id: ID!) {
  device(id: $id) {
    id
    uuid
    externalId
    name
    enabled
    address
    frameRate
    position {
      ...GeoJSONPointFragment
    }
    dataSource {
      ...DataSourceFragment
    }
    site {
      ...SiteFragment
    }
    calibrations {
      ...DeviceCalibrationFragment
    }
    pointOfInterest {
      ...PointOfInterestFragment
    }
    lastHeartbeat
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "device": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "uuid": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "externalId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "abc123",
      "enabled": true,
      "address": "xyz789",
      "frameRate": 987.65,
      "position": GeoJSONPoint,
      "dataSource": DataSource,
      "site": Site,
      "calibrations": [DeviceCalibration],
      "pointOfInterest": PointOfInterest,
      "lastHeartbeat": "2025-01-01T00:00:00.000+00"
    }
  }
}

devices

Description

Search for devices based on a set of filters.

Response

Returns a DeviceConnection

Arguments
Name Description
filter - FilterDeviceInput Filter devices by id, uuid and/or name.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [DevicesSort!]! The field and direction by which to sort the results. Default = [{field: NAME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query devices(
  $filter: FilterDeviceInput,
  $first: Int!,
  $after: String,
  $sort: [DevicesSort!]!
) {
  devices(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...DeviceEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterDeviceInput,
  "first": 20,
  "after": "abc123",
  "sort": [
    {"field": "NAME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "devices": {
      "pageInfo": PageInfo,
      "edges": [DeviceEdge]
    }
  }
}

embeddingForDataSource

Description

Generate an embedding vector of a data source's asset at a specified timestamp

Response

Returns an EmbeddingResponse

Arguments
Name Description
dataSourceId - ID! The ID of the data source
timestamp - DateTimeOffset! The time at which the embedding vector will be generated
options - EmbeddingOptionsInput Optional embedding parameters.

Example

Query
query embeddingForDataSource(
  $dataSourceId: ID!,
  $timestamp: DateTimeOffset!,
  $options: EmbeddingOptionsInput
) {
  embeddingForDataSource(
    dataSourceId: $dataSourceId,
    timestamp: $timestamp,
    options: $options
  ) {
    results {
      ...EmbeddingResultFragment
    }
  }
}
Variables
{
  "dataSourceId": 4,
  "timestamp": DateTimeOffset,
  "options": EmbeddingOptionsInput
}
Response
{
  "data": {
    "embeddingForDataSource": {
      "results": [EmbeddingResult]
    }
  }
}

embeddingForFrame

Description

Generate an embedding vector of a frame

Response

Returns an EmbeddingResponse

Arguments
Name Description
frameId - ID! The ID of the frame
options - EmbeddingOptionsInput Optional embedding parameters.

Example

Query
query embeddingForFrame(
  $frameId: ID!,
  $options: EmbeddingOptionsInput
) {
  embeddingForFrame(
    frameId: $frameId,
    options: $options
  ) {
    results {
      ...EmbeddingResultFragment
    }
  }
}
Variables
{"frameId": 4, "options": EmbeddingOptionsInput}
Response
{
  "data": {
    "embeddingForFrame": {"results": [EmbeddingResult]}
  }
}

embeddingForImage

Description

Generate an embedding vector of an image

Response

Returns an EmbeddingResponse

Arguments
Name Description
imageId - ID! The ID of the image
options - EmbeddingOptionsInput Optional embedding parameters.

Example

Query
query embeddingForImage(
  $imageId: ID!,
  $options: EmbeddingOptionsInput
) {
  embeddingForImage(
    imageId: $imageId,
    options: $options
  ) {
    results {
      ...EmbeddingResultFragment
    }
  }
}
Variables
{
  "imageId": "4",
  "options": EmbeddingOptionsInput
}
Response
{
  "data": {
    "embeddingForImage": {"results": [EmbeddingResult]}
  }
}

embeddingForTrack

Description

Generate an embedding vector for the detection described by the provided track ID and timestamp.

Response

Returns an EmbeddingResponse

Arguments
Name Description
trackId - ID! The ID of the track
timestamp - DateTimeOffset! A timestamp within the lifetime of the track. An embedding will be generated for the detection closest to this timestamp for the specified track.
options - EmbeddingOptionsInput Optional embedding parameters.

Example

Query
query embeddingForTrack(
  $trackId: ID!,
  $timestamp: DateTimeOffset!,
  $options: EmbeddingOptionsInput
) {
  embeddingForTrack(
    trackId: $trackId,
    timestamp: $timestamp,
    options: $options
  ) {
    results {
      ...EmbeddingResultFragment
    }
  }
}
Variables
{
  "trackId": 4,
  "timestamp": DateTimeOffset,
  "options": EmbeddingOptionsInput
}
Response
{
  "data": {
    "embeddingForTrack": {"results": [EmbeddingResult]}
  }
}

embeddingForUrl

Description

Generate an embedding vector of the image at the specified URL

Response

Returns an EmbeddingResponse

Arguments
Name Description
url - String! The URL of the image
options - EmbeddingOptionsInput Optional embedding parameters.

Example

Query
query embeddingForUrl(
  $url: String!,
  $options: EmbeddingOptionsInput
) {
  embeddingForUrl(
    url: $url,
    options: $options
  ) {
    results {
      ...EmbeddingResultFragment
    }
  }
}
Variables
{
  "url": "abc123",
  "options": EmbeddingOptionsInput
}
Response
{
  "data": {
    "embeddingForUrl": {"results": [EmbeddingResult]}
  }
}

embeddingForVideo

Description

Generate an embedding vector of a video at the specified timestamp

Response

Returns an EmbeddingResponse

Arguments
Name Description
videoId - ID! The ID of the video
timestamp - DateTimeOffset! The time at which the embedding vector will be generated
options - EmbeddingOptionsInput Optional embedding parameters.

Example

Query
query embeddingForVideo(
  $videoId: ID!,
  $timestamp: DateTimeOffset!,
  $options: EmbeddingOptionsInput
) {
  embeddingForVideo(
    videoId: $videoId,
    timestamp: $timestamp,
    options: $options
  ) {
    results {
      ...EmbeddingResultFragment
    }
  }
}
Variables
{
  "videoId": 4,
  "timestamp": DateTimeOffset,
  "options": EmbeddingOptionsInput
}
Response
{
  "data": {
    "embeddingForVideo": {"results": [EmbeddingResult]}
  }
}

event

Description

Look up an event by its unique identifier.

Response

Returns an Event

Arguments
Name Description
id - ID! The event's unique identifier.

Example

Query
query event($id: ID!) {
  event(id: $id) {
    id
    eventProducer {
      ...EventProducerFragment
    }
    type
    subType
    startTime
    endTime
    position {
      ...GeoJSONPointFragment
    }
    timezone
    metadata
    images {
      ...ImageFragment
    }
    videos {
      ...VideoFragment
    }
    dataSourceClips {
      ...DataSourceClipFragment
    }
    properties {
      ...EventPropertiesFragment
    }
    draft
    validation {
      ...EventValidationFragment
    }
    priority
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "event": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "eventProducer": EventProducer,
      "type": "xyz789",
      "subType": "abc123",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "position": GeoJSONPoint,
      "timezone": "xyz789",
      "metadata": {},
      "images": [Image],
      "videos": [Video],
      "dataSourceClips": [DataSourceClip],
      "properties": EventProperties,
      "draft": true,
      "validation": EventValidation,
      "priority": "abc123"
    }
  }
}

eventChronicle

Description

Look up an event by its unique identifier.

Response

Returns an EventChronicle

Arguments
Name Description
id - ID! The event's unique identifier.

Example

Query
query eventChronicle($id: ID!) {
  eventChronicle(id: $id) {
    id
    chronicleProducer {
      ...ChronicleProducerFragment
    }
    name
    description
    timestamp
    timezone
    metadata
    validation {
      ...ChronicleValidationFragment
    }
    priority
    status
    labels
    locations
    activityChronicles {
      ...ActivityChronicleFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "eventChronicle": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "chronicleProducer": ChronicleProducer,
      "name": "abc123",
      "description": "abc123",
      "timestamp": "2025-01-01T00:00:00.000+00",
      "timezone": "xyz789",
      "metadata": {},
      "validation": ChronicleValidation,
      "priority": "xyz789",
      "status": "xyz789",
      "labels": ["xyz789"],
      "locations": ["abc123"],
      "activityChronicles": [ActivityChronicle],
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00"
    }
  }
}

eventChronicles

Description

Search for events based on a set of filters.

Response

Returns an EventChronicleConnection

Arguments
Name Description
filter - FilterEventChronicleInput Filter events by unique identifier, type, time, etc.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [EventChronicleSort!]! The field and direction by which to sort the results. Default = [{field: TIMESTAMP, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query eventChronicles(
  $filter: FilterEventChronicleInput,
  $first: Int!,
  $after: String,
  $sort: [EventChronicleSort!]!
) {
  eventChronicles(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    edges {
      ...EventChronicleEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{
  "filter": FilterEventChronicleInput,
  "first": 20,
  "after": "xyz789",
  "sort": [
    {"field": "TIMESTAMP", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "eventChronicles": {
      "edges": [EventChronicleEdge],
      "pageInfo": PageInfo
    }
  }
}

eventProducer

Description

Look up an event producer by its unique identifier.

Response

Returns an EventProducer

Arguments
Name Description
id - ID! The event producer's unique identifier.

Example

Query
query eventProducer($id: ID!) {
  eventProducer(id: $id) {
    id
    name
    description
    timezone
    active
    invalidReasons
    metadata
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "eventProducer": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "abc123",
      "description": "xyz789",
      "timezone": "abc123",
      "active": false,
      "invalidReasons": ["xyz789"],
      "metadata": {}
    }
  }
}

eventProducers

Description

Search for event producers based on a set of filters.

Response

Returns an EventProducerConnection

Arguments
Name Description
filter - FilterEventProducerInput Filter event producers by unique identifier or name
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [EventProducersSort!]! The field and direction by which to sort the results. Default = [{field: EVENT_PRODUCER_NAME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query eventProducers(
  $filter: FilterEventProducerInput,
  $first: Int!,
  $after: String,
  $sort: [EventProducersSort!]!
) {
  eventProducers(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...EventProducerEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterEventProducerInput,
  "first": 20,
  "after": "xyz789",
  "sort": [
    {"field": "EVENT_PRODUCER_NAME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "eventProducers": {
      "pageInfo": PageInfo,
      "edges": [EventProducerEdge]
    }
  }
}

events

Description

Search for events based on a set of filters.

Response

Returns an EventConnection

Arguments
Name Description
filter - FilterEventInput! Filter events by unique identifier, type, time, etc.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [EventsSort!]! The field and direction by which to sort the results. Default = [{field: START_TIME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query events(
  $filter: FilterEventInput!,
  $first: Int!,
  $after: String,
  $sort: [EventsSort!]!
) {
  events(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...EventEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterEventInput,
  "first": 20,
  "after": "xyz789",
  "sort": [
    {"field": "START_TIME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "events": {
      "pageInfo": PageInfo,
      "edges": [EventEdge]
    }
  }
}

eventsSummary

Description

Summarizes events over a time range.

Response

Returns an EventsSummary

Arguments
Name Description
startTime - DateTimeOffset! Start time for the summary.
endTime - DateTimeOffset! End time for the summary.
bucket - SummaryBucketSize If provided, return summary buckets of this size.

Example

Query
query eventsSummary(
  $startTime: DateTimeOffset!,
  $endTime: DateTimeOffset!,
  $bucket: SummaryBucketSize
) {
  eventsSummary(
    startTime: $startTime,
    endTime: $endTime,
    bucket: $bucket
  ) {
    total
    buckets {
      ...EventsSummaryBucketFragment
    }
  }
}
Variables
{
  "startTime": DateTimeOffset,
  "endTime": DateTimeOffset,
  "bucket": "MINUTES"
}
Response
{
  "data": {
    "eventsSummary": {
      "total": 987,
      "buckets": [EventsSummaryBucket]
    }
  }
}

geofence

Description

Look up a geofence, a real-world geographic area, by its unique identifier.

Response

Returns a Geofence

Arguments
Name Description
id - ID! The geofence's unique identifier.

Example

Query
query geofence($id: ID!) {
  geofence(id: $id) {
    id
    name
    bounds {
      ...GeofenceBoundsFragment
    }
    active
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "geofence": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "abc123",
      "bounds": GeofenceBounds,
      "active": false
    }
  }
}

geofenceEvents

geofenceEvents is deprecated. Use geofenceIntersections instead
Description

Find events for a geofence based on a set of filters.

Response

Returns a GeofenceEventConnection

Arguments
Name Description
filter - FilterGeofenceEventInput! Filter geofence events based on the geofence id, time period, etc.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [GeofenceEventsSort!]! The field and direction by which to sort the results. Default = [{field: OCCURRED, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query geofenceEvents(
  $filter: FilterGeofenceEventInput!,
  $first: Int!,
  $after: String,
  $sort: [GeofenceEventsSort!]!
) {
  geofenceEvents(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...GeofenceEventEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterGeofenceEventInput,
  "first": 20,
  "after": "abc123",
  "sort": [
    {"field": "OCCURRED", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "geofenceEvents": {
      "pageInfo": PageInfo,
      "edges": [GeofenceEventEdge]
    }
  }
}

geofenceIntersections

Description

Find events for a geofence based on a set of filters.

Response

Returns a GeofenceIntersectionConnection

Arguments
Name Description
filter - FilterGeofenceIntersectionInput! Filter geofence intersections based on the geofence id, time period, etc.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [GeofenceIntersectionsSort!]! The field and direction by which to sort the results. Default = [{field: START_TIME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query geofenceIntersections(
  $filter: FilterGeofenceIntersectionInput!,
  $first: Int!,
  $after: String,
  $sort: [GeofenceIntersectionsSort!]!
) {
  geofenceIntersections(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...GeofenceIntersectionEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterGeofenceIntersectionInput,
  "first": 20,
  "after": "abc123",
  "sort": [
    {"field": "START_TIME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "geofenceIntersections": {
      "pageInfo": PageInfo,
      "edges": [GeofenceIntersectionEdge]
    }
  }
}

geofences

Description

Search for geofences based on a set of filters.

Response

Returns a GeofenceConnection

Arguments
Name Description
filter - FilterGeofenceInput Filter geofences by unique identifier, name, etc.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [GeofencesSort!]! The field and direction by which to sort the results. Default = [{field: NAME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query geofences(
  $filter: FilterGeofenceInput,
  $first: Int!,
  $after: String,
  $sort: [GeofencesSort!]!
) {
  geofences(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...GeofenceEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterGeofenceInput,
  "first": 20,
  "after": "abc123",
  "sort": [
    {"field": "NAME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "geofences": {
      "pageInfo": PageInfo,
      "edges": [GeofenceEdge]
    }
  }
}

imageUrl

imageUrl is deprecated. Use snapshot query instead
Description

Retrieve the URL for a screenshot from the given device at a particular timestamp.

Response

Returns a String

Arguments
Name Description
deviceId - ID! The unique identifier of the device from which to capture the image.
timestamp - DateTimeOffset! The time at which the given image should have been recorded by the device.

Example

Query
query imageUrl(
  $deviceId: ID!,
  $timestamp: DateTimeOffset!
) {
  imageUrl(
    deviceId: $deviceId,
    timestamp: $timestamp
  )
}
Variables
{"deviceId": 4, "timestamp": DateTimeOffset}
Response
{"data": {"imageUrl": "abc123"}}

measurements

Description

Finds measurements of a sensor based on a set of filters.

Response

Returns a MeasurementConnection

Arguments
Name Description
filter - FilterMeasurementInput! Filter measurements based on the originating sensor, time period, etc.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [MeasurementsSort!]! The field and direction by which to sort the results. Default = [{field: TIMESTAMP, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query measurements(
  $filter: FilterMeasurementInput!,
  $first: Int!,
  $after: String,
  $sort: [MeasurementsSort!]!
) {
  measurements(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...MeasurementEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterMeasurementInput,
  "first": 20,
  "after": "xyz789",
  "sort": [
    {"field": "TIMESTAMP", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "measurements": {
      "pageInfo": PageInfo,
      "edges": [MeasurementEdge]
    }
  }
}

pointOfInterest

Description

Look up a point of interest, such as its name, associated site, and devices.

Response

Returns a PointOfInterest

Arguments
Name Description
id - ID! The point of interest's unique identifier.

Example

Query
query pointOfInterest($id: ID!) {
  pointOfInterest(id: $id) {
    id
    site {
      ...SiteFragment
    }
    name
    position {
      ...GeoJSONPointFragment
    }
    devices {
      ...DeviceFragment
    }
    geofences {
      ...GeofenceFragment
    }
    metadata
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "pointOfInterest": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "site": Site,
      "name": "xyz789",
      "position": GeoJSONPoint,
      "devices": [Device],
      "geofences": [Geofence],
      "metadata": {}
    }
  }
}

pointsOfInterest

Description

Search for points of interest based on a set of filters.

Response

Returns a PointOfInterestConnection

Arguments
Name Description
filter - FilterPointOfInterestInput Filter points of interest by id or name.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [PointOfInterestSort!]! The field and direction by which to sort the results. Default = [{field: NAME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query pointsOfInterest(
  $filter: FilterPointOfInterestInput,
  $first: Int!,
  $after: String,
  $sort: [PointOfInterestSort!]!
) {
  pointsOfInterest(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...PointOfInterestEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterPointOfInterestInput,
  "first": 20,
  "after": "abc123",
  "sort": [
    {"field": "NAME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "pointsOfInterest": {
      "pageInfo": PageInfo,
      "edges": [PointOfInterestEdge]
    }
  }
}

segmentationForDataSource

Description

Segment a data source's asset at a specified timestamp

Response

Returns a SegmentationResponse

Arguments
Name Description
dataSourceId - ID! The ID of the data source
timestamp - DateTimeOffset! The time at which the data source will be segmented
options - SegmentationOptionsInput Optional segmentation parameters.

Example

Query
query segmentationForDataSource(
  $dataSourceId: ID!,
  $timestamp: DateTimeOffset!,
  $options: SegmentationOptionsInput
) {
  segmentationForDataSource(
    dataSourceId: $dataSourceId,
    timestamp: $timestamp,
    options: $options
  ) {
    results {
      ...SegmentationResultFragment
    }
  }
}
Variables
{
  "dataSourceId": "4",
  "timestamp": DateTimeOffset,
  "options": SegmentationOptionsInput
}
Response
{
  "data": {
    "segmentationForDataSource": {
      "results": [SegmentationResult]
    }
  }
}

segmentationForFrame

Description

Segment a frame

Response

Returns a SegmentationResponse

Arguments
Name Description
frameId - ID! The ID of the frame
options - SegmentationOptionsInput Optional segmentation parameters.

Example

Query
query segmentationForFrame(
  $frameId: ID!,
  $options: SegmentationOptionsInput
) {
  segmentationForFrame(
    frameId: $frameId,
    options: $options
  ) {
    results {
      ...SegmentationResultFragment
    }
  }
}
Variables
{"frameId": 4, "options": SegmentationOptionsInput}
Response
{
  "data": {
    "segmentationForFrame": {
      "results": [SegmentationResult]
    }
  }
}

segmentationForImage

Description

Segment an image

Response

Returns a SegmentationResponse

Arguments
Name Description
imageId - ID! The ID of the image
options - SegmentationOptionsInput Optional segmentation parameters.

Example

Query
query segmentationForImage(
  $imageId: ID!,
  $options: SegmentationOptionsInput
) {
  segmentationForImage(
    imageId: $imageId,
    options: $options
  ) {
    results {
      ...SegmentationResultFragment
    }
  }
}
Variables
{
  "imageId": "4",
  "options": SegmentationOptionsInput
}
Response
{
  "data": {
    "segmentationForImage": {
      "results": [SegmentationResult]
    }
  }
}

segmentationForTrack

Description

Segment an image within the polygon defined by a track's detection

Response

Returns a SegmentationResponse

Arguments
Name Description
trackId - ID! The ID of the track
timestamp - DateTimeOffset! The time of the track's detection. Will use the nearest detection if there isn't one at this exact timestamp
options - SegmentationOptionsInput Optional segmentation parameters.

Example

Query
query segmentationForTrack(
  $trackId: ID!,
  $timestamp: DateTimeOffset!,
  $options: SegmentationOptionsInput
) {
  segmentationForTrack(
    trackId: $trackId,
    timestamp: $timestamp,
    options: $options
  ) {
    results {
      ...SegmentationResultFragment
    }
  }
}
Variables
{
  "trackId": "4",
  "timestamp": DateTimeOffset,
  "options": SegmentationOptionsInput
}
Response
{
  "data": {
    "segmentationForTrack": {
      "results": [SegmentationResult]
    }
  }
}

segmentationForUrl

Description

Segment the image at the specified URL

Response

Returns a SegmentationResponse

Arguments
Name Description
url - String! The URL of the image
options - SegmentationOptionsInput Optional segmentation parameters.

Example

Query
query segmentationForUrl(
  $url: String!,
  $options: SegmentationOptionsInput
) {
  segmentationForUrl(
    url: $url,
    options: $options
  ) {
    results {
      ...SegmentationResultFragment
    }
  }
}
Variables
{
  "url": "abc123",
  "options": SegmentationOptionsInput
}
Response
{
  "data": {
    "segmentationForUrl": {
      "results": [SegmentationResult]
    }
  }
}

segmentationForVideo

Description

Segment a video at the specified timestamp

Response

Returns a SegmentationResponse

Arguments
Name Description
videoId - ID! The ID of the video
timestamp - DateTimeOffset! The time at which the video will be segmented
options - SegmentationOptionsInput Optional segmentation parameters.

Example

Query
query segmentationForVideo(
  $videoId: ID!,
  $timestamp: DateTimeOffset!,
  $options: SegmentationOptionsInput
) {
  segmentationForVideo(
    videoId: $videoId,
    timestamp: $timestamp,
    options: $options
  ) {
    results {
      ...SegmentationResultFragment
    }
  }
}
Variables
{
  "videoId": 4,
  "timestamp": DateTimeOffset,
  "options": SegmentationOptionsInput
}
Response
{
  "data": {
    "segmentationForVideo": {
      "results": [SegmentationResult]
    }
  }
}

sensor

Description

Look up a sensor's information, such as its name, description, and location, by its unique identifier.

Response

Returns a Sensor

Arguments
Name Description
id - ID! The sensor's unique identifier.

Example

Query
query sensor($id: ID!) {
  sensor(id: $id) {
    id
    name
    description
    type
    position {
      ...GeoJSONPointFragment
    }
    address
    metadata
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "sensor": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "xyz789",
      "description": "xyz789",
      "type": "NUMBER",
      "position": GeoJSONPoint,
      "address": "xyz789",
      "metadata": {}
    }
  }
}

sensors

Description

Find sensors based on a set of filters.

Response

Returns a SensorConnection

Arguments
Name Description
filter - FilterSensorInput Filter sensors based on id, name, type, or position.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [SensorsSort!]! The field and direction by which to sort the results. Default = [{field: NAME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query sensors(
  $filter: FilterSensorInput,
  $first: Int!,
  $after: String,
  $sort: [SensorsSort!]!
) {
  sensors(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...SensorEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterSensorInput,
  "first": 20,
  "after": "abc123",
  "sort": [
    {"field": "NAME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "sensors": {
      "pageInfo": PageInfo,
      "edges": [SensorEdge]
    }
  }
}

site

Description

Look up a site's information, such as its name, location and devices, by its unique identifier.

Response

Returns a Site

Arguments
Name Description
id - ID! The site's unique identifier.

Example

Query
query site($id: ID!) {
  site(id: $id) {
    id
    name
    position {
      ...GeoJSONPointFragment
    }
    polygon {
      ...GeoJSONMultiPolygonFragment
    }
    devices {
      ...DeviceFragment
    }
    pointsOfInterest {
      ...PointOfInterestFragment
    }
    geofences {
      ...GeofenceFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "site": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "xyz789",
      "position": GeoJSONPoint,
      "polygon": GeoJSONMultiPolygon,
      "devices": [Device],
      "pointsOfInterest": [PointOfInterest],
      "geofences": [Geofence]
    }
  }
}

sites

Description

Find sites based on a set of filters.

Response

Returns a SiteConnection

Arguments
Name Description
filter - FilterSiteInput Filter sites based on id.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [SitesSort!]! The field and direction by which to sort the results. Default = [{field: NAME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query sites(
  $filter: FilterSiteInput,
  $first: Int!,
  $after: String,
  $sort: [SitesSort!]!
) {
  sites(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...SiteEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterSiteInput,
  "first": 20,
  "after": "abc123",
  "sort": [
    {"field": "NAME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "sites": {
      "pageInfo": PageInfo,
      "edges": [SiteEdge]
    }
  }
}

snapshot

Description

Retrieve an Image for the given data source at a particular timestamp.

Response

Returns an Image

Arguments
Name Description
input - CreateSnapshotInput! Arguments for retrieving an image (A Data Source ID and a Timestamp).

Example

Query
query snapshot($input: CreateSnapshotInput!) {
  snapshot(input: $input) {
    id
    dataSourceId
    timestamp
    url
    thumbnailUrl
  }
}
Variables
{"input": CreateSnapshotInput}
Response
{
  "data": {
    "snapshot": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "dataSourceId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "timestamp": "2025-01-01T00:00:00.000+00",
      "url": "xyz789",
      "thumbnailUrl": "abc123"
    }
  }
}

summaryChronicle

Description

Look up an summary by its unique identifier.

Response

Returns a SummaryChronicle

Arguments
Name Description
id - ID! The summary's unique identifier.

Example

Query
query summaryChronicle($id: ID!) {
  summaryChronicle(id: $id) {
    id
    name
    chronicleProducer {
      ...ChronicleProducerFragment
    }
    description
    startTime
    endTime
    timezone
    metadata
    validation {
      ...ChronicleValidationFragment
    }
    priority
    status
    labels
    locations
    activityChronicles {
      ...ActivityChronicleFragment
    }
    eventChronicles {
      ...EventChronicleFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "summaryChronicle": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "abc123",
      "chronicleProducer": ChronicleProducer,
      "description": "xyz789",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "timezone": "xyz789",
      "metadata": {},
      "validation": ChronicleValidation,
      "priority": "xyz789",
      "status": "abc123",
      "labels": ["abc123"],
      "locations": ["abc123"],
      "activityChronicles": [ActivityChronicle],
      "eventChronicles": [EventChronicle],
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00"
    }
  }
}

summaryChronicles

Description

Search for summaries based on a set of filters.

Response

Returns a SummaryChronicleConnection

Arguments
Name Description
filter - FilterSummaryChronicleInput Filter summaries by unique identifier, type, time, etc.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [SummaryChronicleSort!]! The field and direction by which to sort the results. Default = [{field: START_TIME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query summaryChronicles(
  $filter: FilterSummaryChronicleInput,
  $first: Int!,
  $after: String,
  $sort: [SummaryChronicleSort!]!
) {
  summaryChronicles(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    edges {
      ...SummaryChronicleEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{
  "filter": FilterSummaryChronicleInput,
  "first": 20,
  "after": "xyz789",
  "sort": [
    {"field": "START_TIME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "summaryChronicles": {
      "edges": [SummaryChronicleEdge],
      "pageInfo": PageInfo
    }
  }
}

tag

Description

Look up a tag's information by its unique identifier.

Response

Returns a Tag

Arguments
Name Description
id - ID The tag's unique numeric ID.
name - String The tag's name.

Example

Query
query tag(
  $id: ID,
  $name: String
) {
  tag(
    id: $id,
    name: $name
  ) {
    id
    name
    color
  }
}
Variables
{
  "id": "4",
  "name": "xyz789"
}
Response
{
  "data": {
    "tag": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "xyz789",
      "color": "abc123"
    }
  }
}

tags

Description

Search for tags based on a set of filters.

Response

Returns a TagConnection

Arguments
Name Description
filter - FilterTagInput Filter tags by id or name.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [TagsSort!]! The field and direction by which to sort the results. Default = [{field: LABEL_NAME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query tags(
  $filter: FilterTagInput,
  $first: Int!,
  $after: String,
  $sort: [TagsSort!]!
) {
  tags(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...TagEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterTagInput,
  "first": 20,
  "after": "abc123",
  "sort": [
    {"field": "LABEL_NAME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "tags": {
      "pageInfo": PageInfo,
      "edges": [TagEdge]
    }
  }
}

textReadingForImage

Description

Read text in an image. The image supplied should be a pre-cropped image containing text.

Response

Returns a TextReadingResponse

Arguments
Name Description
imageId - ID! The ID of the image

Example

Query
query textReadingForImage($imageId: ID!) {
  textReadingForImage(imageId: $imageId) {
    text
    textConfidence
  }
}
Variables
{"imageId": "4"}
Response
{
  "data": {
    "textReadingForImage": {
      "text": "abc123",
      "textConfidence": 987.65
    }
  }
}

textReadingForUrl

Description

Read text in the image at the specified URL. The URL supplied should be a pre-cropped image containing text.

Response

Returns a TextReadingResponse

Arguments
Name Description
url - String! The URL of the image

Example

Query
query textReadingForUrl($url: String!) {
  textReadingForUrl(url: $url) {
    text
    textConfidence
  }
}
Variables
{"url": "abc123"}
Response
{
  "data": {
    "textReadingForUrl": {
      "text": "xyz789",
      "textConfidence": 123.45
    }
  }
}

textRecognitionForDataSource

Description

Detect text in a data source's asset at a specified timestamp

Response

Returns a TextRecognitionResponse

Arguments
Name Description
dataSourceId - ID! The ID of the data source
timestamp - DateTimeOffset! The time at which text will be detected
options - TextRecognitionOptionsInput Optional text recognition parameters.

Example

Query
query textRecognitionForDataSource(
  $dataSourceId: ID!,
  $timestamp: DateTimeOffset!,
  $options: TextRecognitionOptionsInput
) {
  textRecognitionForDataSource(
    dataSourceId: $dataSourceId,
    timestamp: $timestamp,
    options: $options
  ) {
    results {
      ...TextRecognitionResultFragment
    }
  }
}
Variables
{
  "dataSourceId": "4",
  "timestamp": DateTimeOffset,
  "options": TextRecognitionOptionsInput
}
Response
{
  "data": {
    "textRecognitionForDataSource": {
      "results": [TextRecognitionResult]
    }
  }
}

textRecognitionForFrame

Description

Detect text in a frame

Response

Returns a TextRecognitionResponse

Arguments
Name Description
frameId - ID! The ID of the frame
options - TextRecognitionOptionsInput Optional text recognition parameters.

Example

Query
query textRecognitionForFrame(
  $frameId: ID!,
  $options: TextRecognitionOptionsInput
) {
  textRecognitionForFrame(
    frameId: $frameId,
    options: $options
  ) {
    results {
      ...TextRecognitionResultFragment
    }
  }
}
Variables
{"frameId": 4, "options": TextRecognitionOptionsInput}
Response
{
  "data": {
    "textRecognitionForFrame": {
      "results": [TextRecognitionResult]
    }
  }
}

textRecognitionForImage

Description

Detect text in an image

Response

Returns a TextRecognitionResponse

Arguments
Name Description
imageId - ID! The ID of the image
options - TextRecognitionOptionsInput Optional text recognition parameters.

Example

Query
query textRecognitionForImage(
  $imageId: ID!,
  $options: TextRecognitionOptionsInput
) {
  textRecognitionForImage(
    imageId: $imageId,
    options: $options
  ) {
    results {
      ...TextRecognitionResultFragment
    }
  }
}
Variables
{
  "imageId": "4",
  "options": TextRecognitionOptionsInput
}
Response
{
  "data": {
    "textRecognitionForImage": {
      "results": [TextRecognitionResult]
    }
  }
}

textRecognitionForTrack

Description

Detect text within the polygon defined by a track's detection

Response

Returns a TextRecognitionResponse

Arguments
Name Description
trackId - ID! The ID of the track
timestamp - DateTimeOffset! The time of the track's detection. Will use the nearest detection if there isn't one at this exact timestamp
options - TextRecognitionOptionsInput Optional text recognition parameters.

Example

Query
query textRecognitionForTrack(
  $trackId: ID!,
  $timestamp: DateTimeOffset!,
  $options: TextRecognitionOptionsInput
) {
  textRecognitionForTrack(
    trackId: $trackId,
    timestamp: $timestamp,
    options: $options
  ) {
    results {
      ...TextRecognitionResultFragment
    }
  }
}
Variables
{
  "trackId": "4",
  "timestamp": DateTimeOffset,
  "options": TextRecognitionOptionsInput
}
Response
{
  "data": {
    "textRecognitionForTrack": {
      "results": [TextRecognitionResult]
    }
  }
}

textRecognitionForUrl

Description

Detect text in the image at the specified URL

Response

Returns a TextRecognitionResponse

Arguments
Name Description
url - String! The URL of the image
options - TextRecognitionOptionsInput Optional text recognition parameters.

Example

Query
query textRecognitionForUrl(
  $url: String!,
  $options: TextRecognitionOptionsInput
) {
  textRecognitionForUrl(
    url: $url,
    options: $options
  ) {
    results {
      ...TextRecognitionResultFragment
    }
  }
}
Variables
{
  "url": "xyz789",
  "options": TextRecognitionOptionsInput
}
Response
{
  "data": {
    "textRecognitionForUrl": {
      "results": [TextRecognitionResult]
    }
  }
}

textRecognitionForVideo

Description

Detect text in a video at the specified timestamp

Response

Returns a TextRecognitionResponse

Arguments
Name Description
videoId - ID! The ID of the video
timestamp - DateTimeOffset! The time at which text will be detected
options - TextRecognitionOptionsInput Optional text recognition parameters.

Example

Query
query textRecognitionForVideo(
  $videoId: ID!,
  $timestamp: DateTimeOffset!,
  $options: TextRecognitionOptionsInput
) {
  textRecognitionForVideo(
    videoId: $videoId,
    timestamp: $timestamp,
    options: $options
  ) {
    results {
      ...TextRecognitionResultFragment
    }
  }
}
Variables
{
  "videoId": 4,
  "timestamp": DateTimeOffset,
  "options": TextRecognitionOptionsInput
}
Response
{
  "data": {
    "textRecognitionForVideo": {
      "results": [TextRecognitionResult]
    }
  }
}

track

Description

Look up a track, a record of the motion of a detected object, by its unique identifier.

Response

Returns a Track

Arguments
Name Description
id - ID! The track's unique identifier.
timestamp - DateTimeOffset If provided, locate the track within 24 hours of the given time. Otherwise, the track will only be identified if it is less than 24 hours since it was active.

Example

Query
query track(
  $id: ID!,
  $timestamp: DateTimeOffset
) {
  track(
    id: $id,
    timestamp: $timestamp
  ) {
    id
    dataSource {
      ...DataSourceFragment
    }
    video {
      ...VideoFragment
    }
    tag
    startTime
    endTime
    detections {
      ...DetectionFragment
    }
    properties {
      ...TrackPropertiesFragment
    }
    metadata
    zoneIntersections {
      ...ZoneIntersectionFragment
    }
    geofenceIntersections {
      ...GeofenceIntersectionFragment
    }
    deviceIds
  }
}
Variables
{"id": 4, "timestamp": DateTimeOffset}
Response
{
  "data": {
    "track": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "dataSource": DataSource,
      "video": Video,
      "tag": "abc123",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "detections": [Detection],
      "properties": TrackProperties,
      "metadata": {},
      "zoneIntersections": [ZoneIntersection],
      "geofenceIntersections": [GeofenceIntersection],
      "deviceIds": ["f81d4fae-7dec-11d0-a765-00a0c91e6bf6"]
    }
  }
}

tracks

Description

Finds tracks, which are records of a detected object over time, based on a set of filters.

Response

Returns a TrackConnection

Arguments
Name Description
filter - FilterTrackInput! Filter tracks based on the originating device, time period, etc.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [TracksSort!]! The field and direction by which to sort the results. Default = [{field: TRACK_START_TIME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query tracks(
  $filter: FilterTrackInput!,
  $first: Int!,
  $after: String,
  $sort: [TracksSort!]!
) {
  tracks(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...TrackEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterTrackInput,
  "first": 20,
  "after": "xyz789",
  "sort": [
    {"field": "TRACK_START_TIME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "tracks": {
      "pageInfo": PageInfo,
      "edges": [TrackEdge]
    }
  }
}

tracksSummary

Description

Summarizes tracks over a time range.

Response

Returns a TracksSummary

Arguments
Name Description
startTime - DateTimeOffset! Start time for the summary.
endTime - DateTimeOffset! End time for the summary.
tags - FilterTagInput Filter tracks based on their tags.
bucket - SummaryBucketSize If provided, return summary buckets of this size.

Example

Query
query tracksSummary(
  $startTime: DateTimeOffset!,
  $endTime: DateTimeOffset!,
  $tags: FilterTagInput,
  $bucket: SummaryBucketSize
) {
  tracksSummary(
    startTime: $startTime,
    endTime: $endTime,
    tags: $tags,
    bucket: $bucket
  ) {
    total
    totalsByTag {
      ...TracksCountByTagFragment
    }
    buckets {
      ...TracksSummaryBucketFragment
    }
  }
}
Variables
{
  "startTime": DateTimeOffset,
  "endTime": DateTimeOffset,
  "tags": FilterTagInput,
  "bucket": "MINUTES"
}
Response
{
  "data": {
    "tracksSummary": {
      "total": 987,
      "totalsByTag": [TracksCountByTag],
      "buckets": [TracksSummaryBucket]
    }
  }
}

video

Description

Look up a video by its unique identifier.

Response

Returns a Video

Arguments
Name Description
id - ID! The video's UUID.

Example

Query
query video($id: ID!) {
  video(id: $id) {
    id
    dataSource {
      ...DataSourceFragment
    }
    startTime
    endTime
    url
    thumbnailUrl
    displayName
    resolutionHeight
    resolutionWidth
    frameRate
    createdBy {
      ...UserFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "video": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "dataSource": DataSource,
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "url": "abc123",
      "thumbnailUrl": "abc123",
      "displayName": "abc123",
      "resolutionHeight": "xyz789",
      "resolutionWidth": "xyz789",
      "frameRate": 987.65,
      "createdBy": User
    }
  }
}

videos

Description

Search for videos based on a set of filters.

Response

Returns a VideoConnection

Arguments
Name Description
filter - FilterVideoInput! Filter videos by Fields to filter videos
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [VideosSort!]! The field and direction by which to sort the results. Default = [{field: START_TIME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query videos(
  $filter: FilterVideoInput!,
  $first: Int!,
  $after: String,
  $sort: [VideosSort!]!
) {
  videos(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...VideoEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterVideoInput,
  "first": 20,
  "after": "xyz789",
  "sort": [
    {"field": "START_TIME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "videos": {
      "pageInfo": PageInfo,
      "edges": [VideoEdge]
    }
  }
}

zone

Description

Look up a zone, a region on a camera, by its unique identifier.

Response

Returns a Zone

Arguments
Name Description
id - ID! The zone's unique identifier.

Example

Query
query zone($id: ID!) {
  zone(id: $id) {
    id
    dataSource {
      ...DataSourceFragment
    }
    name
    polygon {
      ...GeoJSONPolygonFragment
    }
    active
    createdAt
    updatedAt
    deviceId
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "zone": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "dataSource": DataSource,
      "name": "xyz789",
      "polygon": GeoJSONPolygon,
      "active": false,
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00",
      "deviceId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
    }
  }
}

zoneEvents

zoneEvents is deprecated. Use zoneIntersections instead
Description

Find events for a zone based on a set of filters.

Response

Returns a ZoneEventConnection

Arguments
Name Description
filter - FilterZoneEventInput! Filter zone events based on the zone id, time period, etc.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [ZoneEventsSort!]! The field and direction by which to sort the results. Default = [{field: START_TIME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query zoneEvents(
  $filter: FilterZoneEventInput!,
  $first: Int!,
  $after: String,
  $sort: [ZoneEventsSort!]!
) {
  zoneEvents(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...ZoneEventEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterZoneEventInput,
  "first": 20,
  "after": "abc123",
  "sort": [
    {"field": "START_TIME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "zoneEvents": {
      "pageInfo": PageInfo,
      "edges": [ZoneEventEdge]
    }
  }
}

zoneIntersections

Description

Find intersections for a zone based on a set of filters.

Response

Returns a ZoneIntersectionConnection

Arguments
Name Description
filter - FilterZoneIntersectionInput! Filter zone intersections based on the zone id, time period, etc.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [ZoneIntersectionsSort!]! The field and direction by which to sort the results. Default = [{field: START_TIME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query zoneIntersections(
  $filter: FilterZoneIntersectionInput!,
  $first: Int!,
  $after: String,
  $sort: [ZoneIntersectionsSort!]!
) {
  zoneIntersections(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...ZoneIntersectionEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterZoneIntersectionInput,
  "first": 20,
  "after": "abc123",
  "sort": [
    {"field": "START_TIME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "zoneIntersections": {
      "pageInfo": PageInfo,
      "edges": [ZoneIntersectionEdge]
    }
  }
}

zones

Description

Find zones based on a set of filters

Response

Returns a ZoneConnection

Arguments
Name Description
filter - FilterZoneInput Filter zones based on the specified filters.
first - Int! Returns the first n elements from the list. Default = 20
after - String Returns the elements in the list that come after the specified cursor.
sort - [ZonesSort!]! The field and direction by which to sort the results. Default = [{field: NAME, direction: ASC}, {field: ID, direction: ASC}]

Example

Query
query zones(
  $filter: FilterZoneInput,
  $first: Int!,
  $after: String,
  $sort: [ZonesSort!]!
) {
  zones(
    filter: $filter,
    first: $first,
    after: $after,
    sort: $sort
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...ZoneEdgeFragment
    }
  }
}
Variables
{
  "filter": FilterZoneInput,
  "first": 20,
  "after": "abc123",
  "sort": [
    {"field": "NAME", "direction": "ASC"},
    {"field": "ID", "direction": "ASC"}
  ]
}
Response
{
  "data": {
    "zones": {
      "pageInfo": PageInfo,
      "edges": [ZoneEdge]
    }
  }
}

Mutations

createActivityChronicle

Description

Creates a new Event Chronicle. This allows for the creation of custom events within the Worlds system.

Response

Returns an ActivityChronicle!

Arguments
Name Description
activityChronicle - CreateActivityChronicleInput! Arguments to create a new event chronicle.

Example

Query
mutation createActivityChronicle($activityChronicle: CreateActivityChronicleInput!) {
  createActivityChronicle(activityChronicle: $activityChronicle) {
    id
    chronicleProducer {
      ...ChronicleProducerFragment
    }
    name
    description
    startTime
    endTime
    timezone
    metadata
    validation {
      ...ChronicleValidationFragment
    }
    priority
    status
    labels
    locations
    images {
      ...ImageFragment
    }
    dataSourceClips {
      ...DataSourceClipFragment
    }
    tracks {
      ...TrackFragment
    }
    sites {
      ...SiteFragment
    }
    dataSources {
      ...DataSourceFragment
    }
    tags {
      ...TagFragment
    }
    pointsOfInterest {
      ...PointOfInterestFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"activityChronicle": CreateActivityChronicleInput}
Response
{
  "data": {
    "createActivityChronicle": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "chronicleProducer": ChronicleProducer,
      "name": "abc123",
      "description": "xyz789",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "timezone": "abc123",
      "metadata": {},
      "validation": ChronicleValidation,
      "priority": "xyz789",
      "status": "abc123",
      "labels": ["abc123"],
      "locations": ["abc123"],
      "images": [Image],
      "dataSourceClips": [DataSourceClip],
      "tracks": [Track],
      "sites": [Site],
      "dataSources": [DataSource],
      "tags": [Tag],
      "pointsOfInterest": [PointOfInterest],
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00"
    }
  }
}

createChronicleProducer

Description

Creates a new ChronicleProducer.

Response

Returns a ChronicleProducer!

Arguments
Name Description
chronicleProducer - CreateChronicleProducerInput! Arguments to create a new chronicle producer.

Example

Query
mutation createChronicleProducer($chronicleProducer: CreateChronicleProducerInput!) {
  createChronicleProducer(chronicleProducer: $chronicleProducer) {
    id
    name
    description
    timezone
    active
    validationReasons
    metadata
  }
}
Variables
{"chronicleProducer": CreateChronicleProducerInput}
Response
{
  "data": {
    "createChronicleProducer": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "abc123",
      "description": "xyz789",
      "timezone": "xyz789",
      "active": true,
      "validationReasons": ["abc123"],
      "metadata": {}
    }
  }
}

createDataSource

Description

Creates a new DataSource.

Response

Returns a DataSource

Arguments
Name Description
dataSource - CreateDataSourceInput! Arguments to create a new data source.

Example

Query
mutation createDataSource($dataSource: CreateDataSourceInput!) {
  createDataSource(dataSource: $dataSource) {
    id
    name
    type
    device {
      ...DeviceFragment
    }
    zones {
      ...ZoneFragment
    }
    labels
  }
}
Variables
{"dataSource": CreateDataSourceInput}
Response
{
  "data": {
    "createDataSource": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "xyz789",
      "type": "FOLDER",
      "device": Device,
      "zones": [Zone],
      "labels": ["xyz789"]
    }
  }
}

createDetection

Description

Creates a new Detection.

Response

Returns a Detection

Arguments
Name Description
detection - CreateDetectionInput! Arguments to create a new detection.

Example

Query
mutation createDetection($detection: CreateDetectionInput!) {
  createDetection(detection: $detection) {
    track {
      ...TrackFragment
    }
    timestamp
    frame {
      ...FrameFragment
    }
    polygon {
      ...GeoJSONPolygonFragment
    }
    position {
      ...GeoJSONPointFragment
    }
    zones {
      ...ZoneFragment
    }
    geofences {
      ...GeofenceFragment
    }
    metadata
    createdAt
    updatedAt
    direction
    geofenceIds
    zoneIds
    zoneEvents {
      ...ZoneEventFragment
    }
    geofenceEvents {
      ...GeofenceEventFragment
    }
    globalTrackId
    deviceId
    tag
  }
}
Variables
{"detection": CreateDetectionInput}
Response
{
  "data": {
    "createDetection": {
      "track": Track,
      "timestamp": "2025-01-01T00:00:00.000+00",
      "frame": Frame,
      "polygon": GeoJSONPolygon,
      "position": GeoJSONPoint,
      "zones": [Zone],
      "geofences": [Geofence],
      "metadata": {},
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00",
      "direction": 987.65,
      "geofenceIds": ["f81d4fae-7dec-11d0-a765-00a0c91e6bf6"],
      "zoneIds": ["f81d4fae-7dec-11d0-a765-00a0c91e6bf6"],
      "zoneEvents": [ZoneEvent],
      "geofenceEvents": [GeofenceEvent],
      "globalTrackId": "xyz789",
      "deviceId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "tag": "xyz789"
    }
  }
}

createDetections

Description

Creates multiple new Detection.

Response

Returns [Detection]

Arguments
Name Description
detections - [CreateDetectionInput!]! Arguments to create a list of detections.

Example

Query
mutation createDetections($detections: [CreateDetectionInput!]!) {
  createDetections(detections: $detections) {
    track {
      ...TrackFragment
    }
    timestamp
    frame {
      ...FrameFragment
    }
    polygon {
      ...GeoJSONPolygonFragment
    }
    position {
      ...GeoJSONPointFragment
    }
    zones {
      ...ZoneFragment
    }
    geofences {
      ...GeofenceFragment
    }
    metadata
    createdAt
    updatedAt
    direction
    geofenceIds
    zoneIds
    zoneEvents {
      ...ZoneEventFragment
    }
    geofenceEvents {
      ...GeofenceEventFragment
    }
    globalTrackId
    deviceId
    tag
  }
}
Variables
{"detections": [CreateDetectionInput]}
Response
{
  "data": {
    "createDetections": [
      {
        "track": Track,
        "timestamp": "2025-01-01T00:00:00.000+00",
        "frame": Frame,
        "polygon": GeoJSONPolygon,
        "position": GeoJSONPoint,
        "zones": [Zone],
        "geofences": [Geofence],
        "metadata": {},
        "createdAt": "2025-01-01T00:00:00.000+00",
        "updatedAt": "2025-01-01T00:00:00.000+00",
        "direction": 987.65,
        "geofenceIds": ["f81d4fae-7dec-11d0-a765-00a0c91e6bf6"],
        "zoneIds": ["f81d4fae-7dec-11d0-a765-00a0c91e6bf6"],
        "zoneEvents": [ZoneEvent],
        "geofenceEvents": [GeofenceEvent],
        "globalTrackId": "xyz789",
        "deviceId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
        "tag": "xyz789"
      }
    ]
  }
}

createDevice

Description

Creates a new Device.

Response

Returns a Device

Arguments
Name Description
device - CreateDeviceInput! Arguments to create a new device.

Example

Query
mutation createDevice($device: CreateDeviceInput!) {
  createDevice(device: $device) {
    id
    uuid
    externalId
    name
    enabled
    address
    frameRate
    position {
      ...GeoJSONPointFragment
    }
    dataSource {
      ...DataSourceFragment
    }
    site {
      ...SiteFragment
    }
    calibrations {
      ...DeviceCalibrationFragment
    }
    pointOfInterest {
      ...PointOfInterestFragment
    }
    lastHeartbeat
  }
}
Variables
{"device": CreateDeviceInput}
Response
{
  "data": {
    "createDevice": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "uuid": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "externalId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "xyz789",
      "enabled": false,
      "address": "xyz789",
      "frameRate": 987.65,
      "position": GeoJSONPoint,
      "dataSource": DataSource,
      "site": Site,
      "calibrations": [DeviceCalibration],
      "pointOfInterest": PointOfInterest,
      "lastHeartbeat": "2025-01-01T00:00:00.000+00"
    }
  }
}

createEvent

Description

Creates a new Event. This allows for the creation of custom events within the Worlds system.

Response

Returns an Event

Arguments
Name Description
event - CreateEventInput! Arguments to create a new event.

Example

Query
mutation createEvent($event: CreateEventInput!) {
  createEvent(event: $event) {
    id
    eventProducer {
      ...EventProducerFragment
    }
    type
    subType
    startTime
    endTime
    position {
      ...GeoJSONPointFragment
    }
    timezone
    metadata
    images {
      ...ImageFragment
    }
    videos {
      ...VideoFragment
    }
    dataSourceClips {
      ...DataSourceClipFragment
    }
    properties {
      ...EventPropertiesFragment
    }
    draft
    validation {
      ...EventValidationFragment
    }
    priority
  }
}
Variables
{"event": CreateEventInput}
Response
{
  "data": {
    "createEvent": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "eventProducer": EventProducer,
      "type": "xyz789",
      "subType": "xyz789",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "position": GeoJSONPoint,
      "timezone": "xyz789",
      "metadata": {},
      "images": [Image],
      "videos": [Video],
      "dataSourceClips": [DataSourceClip],
      "properties": EventProperties,
      "draft": true,
      "validation": EventValidation,
      "priority": "abc123"
    }
  }
}

createEventChronicle

Description

Creates a new Event Chronicle. This allows for the creation of custom events within the Worlds system.

Response

Returns an EventChronicle!

Arguments
Name Description
eventChronicle - CreateEventChronicleInput! Arguments to create a new event chronicle.

Example

Query
mutation createEventChronicle($eventChronicle: CreateEventChronicleInput!) {
  createEventChronicle(eventChronicle: $eventChronicle) {
    id
    chronicleProducer {
      ...ChronicleProducerFragment
    }
    name
    description
    timestamp
    timezone
    metadata
    validation {
      ...ChronicleValidationFragment
    }
    priority
    status
    labels
    locations
    activityChronicles {
      ...ActivityChronicleFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"eventChronicle": CreateEventChronicleInput}
Response
{
  "data": {
    "createEventChronicle": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "chronicleProducer": ChronicleProducer,
      "name": "xyz789",
      "description": "abc123",
      "timestamp": "2025-01-01T00:00:00.000+00",
      "timezone": "abc123",
      "metadata": {},
      "validation": ChronicleValidation,
      "priority": "xyz789",
      "status": "abc123",
      "labels": ["xyz789"],
      "locations": ["xyz789"],
      "activityChronicles": [ActivityChronicle],
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00"
    }
  }
}

createEventProducer

Description

Creates a new EventProducer.

Response

Returns an EventProducer

Arguments
Name Description
eventProducer - EventProducerInput! Arguments to create a new event producer.

Example

Query
mutation createEventProducer($eventProducer: EventProducerInput!) {
  createEventProducer(eventProducer: $eventProducer) {
    id
    name
    description
    timezone
    active
    invalidReasons
    metadata
  }
}
Variables
{"eventProducer": EventProducerInput}
Response
{
  "data": {
    "createEventProducer": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "xyz789",
      "description": "xyz789",
      "timezone": "abc123",
      "active": false,
      "invalidReasons": ["abc123"],
      "metadata": {}
    }
  }
}

createMeasurement

Description

Creates a new Measurement for a Sensor.

Response

Returns a Measurement

Arguments
Name Description
measurement - MeasurementInput! Arguments to create a new measurement.

Example

Query
mutation createMeasurement($measurement: MeasurementInput!) {
  createMeasurement(measurement: $measurement) {
    id
    sensor {
      ...SensorFragment
    }
    timestamp
    value
  }
}
Variables
{"measurement": MeasurementInput}
Response
{
  "data": {
    "createMeasurement": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "sensor": Sensor,
      "timestamp": "2025-01-01T00:00:00.000+00",
      "value": "abc123"
    }
  }
}

createPointOfInterest

Description

Creates a new PointOfInterest.

Response

Returns a PointOfInterest

Arguments
Name Description
pointOfInterest - CreatePointOfInterestInput! Arguments to create a new point of interest.

Example

Query
mutation createPointOfInterest($pointOfInterest: CreatePointOfInterestInput!) {
  createPointOfInterest(pointOfInterest: $pointOfInterest) {
    id
    site {
      ...SiteFragment
    }
    name
    position {
      ...GeoJSONPointFragment
    }
    devices {
      ...DeviceFragment
    }
    geofences {
      ...GeofenceFragment
    }
    metadata
  }
}
Variables
{"pointOfInterest": CreatePointOfInterestInput}
Response
{
  "data": {
    "createPointOfInterest": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "site": Site,
      "name": "abc123",
      "position": GeoJSONPoint,
      "devices": [Device],
      "geofences": [Geofence],
      "metadata": {}
    }
  }
}

createSensor

Description

Creates a new Sensor.

Response

Returns a Sensor

Arguments
Name Description
sensor - SensorInput! Arguments to create a new sensor.

Example

Query
mutation createSensor($sensor: SensorInput!) {
  createSensor(sensor: $sensor) {
    id
    name
    description
    type
    position {
      ...GeoJSONPointFragment
    }
    address
    metadata
  }
}
Variables
{"sensor": SensorInput}
Response
{
  "data": {
    "createSensor": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "abc123",
      "description": "abc123",
      "type": "NUMBER",
      "position": GeoJSONPoint,
      "address": "abc123",
      "metadata": {}
    }
  }
}

createSite

Description

Creates a new Site.

Response

Returns a Site

Arguments
Name Description
site - CreateSiteInput! Arguments to create a new site.

Example

Query
mutation createSite($site: CreateSiteInput!) {
  createSite(site: $site) {
    id
    name
    position {
      ...GeoJSONPointFragment
    }
    polygon {
      ...GeoJSONMultiPolygonFragment
    }
    devices {
      ...DeviceFragment
    }
    pointsOfInterest {
      ...PointOfInterestFragment
    }
    geofences {
      ...GeofenceFragment
    }
  }
}
Variables
{"site": CreateSiteInput}
Response
{
  "data": {
    "createSite": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "xyz789",
      "position": GeoJSONPoint,
      "polygon": GeoJSONMultiPolygon,
      "devices": [Device],
      "pointsOfInterest": [PointOfInterest],
      "geofences": [Geofence]
    }
  }
}

createSummaryChronicle

Description

Creates a new Summary Chronicle. This allows for the creation of custom summaries within the Worlds system.

Response

Returns a SummaryChronicle!

Arguments
Name Description
summaryChronicle - CreateSummaryChronicleInput! Arguments to create a new summary chronicle.

Example

Query
mutation createSummaryChronicle($summaryChronicle: CreateSummaryChronicleInput!) {
  createSummaryChronicle(summaryChronicle: $summaryChronicle) {
    id
    name
    chronicleProducer {
      ...ChronicleProducerFragment
    }
    description
    startTime
    endTime
    timezone
    metadata
    validation {
      ...ChronicleValidationFragment
    }
    priority
    status
    labels
    locations
    activityChronicles {
      ...ActivityChronicleFragment
    }
    eventChronicles {
      ...EventChronicleFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"summaryChronicle": CreateSummaryChronicleInput}
Response
{
  "data": {
    "createSummaryChronicle": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "abc123",
      "chronicleProducer": ChronicleProducer,
      "description": "xyz789",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "timezone": "xyz789",
      "metadata": {},
      "validation": ChronicleValidation,
      "priority": "xyz789",
      "status": "abc123",
      "labels": ["abc123"],
      "locations": ["abc123"],
      "activityChronicles": [ActivityChronicle],
      "eventChronicles": [EventChronicle],
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00"
    }
  }
}

createTrack

Description

Creates a new Track.

Response

Returns a Track

Arguments
Name Description
track - CreateTrackInput! Arguments to create a new track.

Example

Query
mutation createTrack($track: CreateTrackInput!) {
  createTrack(track: $track) {
    id
    dataSource {
      ...DataSourceFragment
    }
    video {
      ...VideoFragment
    }
    tag
    startTime
    endTime
    detections {
      ...DetectionFragment
    }
    properties {
      ...TrackPropertiesFragment
    }
    metadata
    zoneIntersections {
      ...ZoneIntersectionFragment
    }
    geofenceIntersections {
      ...GeofenceIntersectionFragment
    }
    deviceIds
  }
}
Variables
{"track": CreateTrackInput}
Response
{
  "data": {
    "createTrack": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "dataSource": DataSource,
      "video": Video,
      "tag": "xyz789",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "detections": [Detection],
      "properties": TrackProperties,
      "metadata": {},
      "zoneIntersections": [ZoneIntersection],
      "geofenceIntersections": [GeofenceIntersection],
      "deviceIds": ["f81d4fae-7dec-11d0-a765-00a0c91e6bf6"]
    }
  }
}

createZone

Description

Creates a new Zone.

Response

Returns a Zone

Arguments
Name Description
zone - CreateZoneInput! Arguments to create a new zone.

Example

Query
mutation createZone($zone: CreateZoneInput!) {
  createZone(zone: $zone) {
    id
    dataSource {
      ...DataSourceFragment
    }
    name
    polygon {
      ...GeoJSONPolygonFragment
    }
    active
    createdAt
    updatedAt
    deviceId
  }
}
Variables
{"zone": CreateZoneInput}
Response
{
  "data": {
    "createZone": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "dataSource": DataSource,
      "name": "abc123",
      "polygon": GeoJSONPolygon,
      "active": false,
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00",
      "deviceId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
    }
  }
}

updateActivityChronicle

Description

Updates an existing Event Chronicle.

Response

Returns an ActivityChronicle!

Arguments
Name Description
activityChronicle - UpdateActivityChronicleInput! Arguments to update an existing event chronicle.

Example

Query
mutation updateActivityChronicle($activityChronicle: UpdateActivityChronicleInput!) {
  updateActivityChronicle(activityChronicle: $activityChronicle) {
    id
    chronicleProducer {
      ...ChronicleProducerFragment
    }
    name
    description
    startTime
    endTime
    timezone
    metadata
    validation {
      ...ChronicleValidationFragment
    }
    priority
    status
    labels
    locations
    images {
      ...ImageFragment
    }
    dataSourceClips {
      ...DataSourceClipFragment
    }
    tracks {
      ...TrackFragment
    }
    sites {
      ...SiteFragment
    }
    dataSources {
      ...DataSourceFragment
    }
    tags {
      ...TagFragment
    }
    pointsOfInterest {
      ...PointOfInterestFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"activityChronicle": UpdateActivityChronicleInput}
Response
{
  "data": {
    "updateActivityChronicle": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "chronicleProducer": ChronicleProducer,
      "name": "xyz789",
      "description": "abc123",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "timezone": "xyz789",
      "metadata": {},
      "validation": ChronicleValidation,
      "priority": "xyz789",
      "status": "abc123",
      "labels": ["abc123"],
      "locations": ["xyz789"],
      "images": [Image],
      "dataSourceClips": [DataSourceClip],
      "tracks": [Track],
      "sites": [Site],
      "dataSources": [DataSource],
      "tags": [Tag],
      "pointsOfInterest": [PointOfInterest],
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00"
    }
  }
}

updateChronicleProducer

Description

Updates an existing ChronicleProducer.

Response

Returns a ChronicleProducer!

Arguments
Name Description
chronicleProducer - UpdateChronicleProducerInput! Arguments to update an existing chronicle producer.

Example

Query
mutation updateChronicleProducer($chronicleProducer: UpdateChronicleProducerInput!) {
  updateChronicleProducer(chronicleProducer: $chronicleProducer) {
    id
    name
    description
    timezone
    active
    validationReasons
    metadata
  }
}
Variables
{"chronicleProducer": UpdateChronicleProducerInput}
Response
{
  "data": {
    "updateChronicleProducer": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "xyz789",
      "description": "abc123",
      "timezone": "abc123",
      "active": true,
      "validationReasons": ["xyz789"],
      "metadata": {}
    }
  }
}

updateDataSource

Description

Updates an existing DataSource.

Response

Returns a DataSource

Arguments
Name Description
dataSource - UpdateDataSourceInput! Arguments to update an existing data source.

Example

Query
mutation updateDataSource($dataSource: UpdateDataSourceInput!) {
  updateDataSource(dataSource: $dataSource) {
    id
    name
    type
    device {
      ...DeviceFragment
    }
    zones {
      ...ZoneFragment
    }
    labels
  }
}
Variables
{"dataSource": UpdateDataSourceInput}
Response
{
  "data": {
    "updateDataSource": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "abc123",
      "type": "FOLDER",
      "device": Device,
      "zones": [Zone],
      "labels": ["abc123"]
    }
  }
}

updateDevice

Description

Updates an existing Device.

Response

Returns a Device

Arguments
Name Description
device - UpdateDeviceInput! Arguments to update an existing device.

Example

Query
mutation updateDevice($device: UpdateDeviceInput!) {
  updateDevice(device: $device) {
    id
    uuid
    externalId
    name
    enabled
    address
    frameRate
    position {
      ...GeoJSONPointFragment
    }
    dataSource {
      ...DataSourceFragment
    }
    site {
      ...SiteFragment
    }
    calibrations {
      ...DeviceCalibrationFragment
    }
    pointOfInterest {
      ...PointOfInterestFragment
    }
    lastHeartbeat
  }
}
Variables
{"device": UpdateDeviceInput}
Response
{
  "data": {
    "updateDevice": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "uuid": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "externalId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "xyz789",
      "enabled": false,
      "address": "abc123",
      "frameRate": 987.65,
      "position": GeoJSONPoint,
      "dataSource": DataSource,
      "site": Site,
      "calibrations": [DeviceCalibration],
      "pointOfInterest": PointOfInterest,
      "lastHeartbeat": "2025-01-01T00:00:00.000+00"
    }
  }
}

updateEvent

Description

Updates an existing Event.

Response

Returns an Event

Arguments
Name Description
event - UpdateEventInput! Arguments to update an existing event.

Example

Query
mutation updateEvent($event: UpdateEventInput!) {
  updateEvent(event: $event) {
    id
    eventProducer {
      ...EventProducerFragment
    }
    type
    subType
    startTime
    endTime
    position {
      ...GeoJSONPointFragment
    }
    timezone
    metadata
    images {
      ...ImageFragment
    }
    videos {
      ...VideoFragment
    }
    dataSourceClips {
      ...DataSourceClipFragment
    }
    properties {
      ...EventPropertiesFragment
    }
    draft
    validation {
      ...EventValidationFragment
    }
    priority
  }
}
Variables
{"event": UpdateEventInput}
Response
{
  "data": {
    "updateEvent": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "eventProducer": EventProducer,
      "type": "abc123",
      "subType": "abc123",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "position": GeoJSONPoint,
      "timezone": "xyz789",
      "metadata": {},
      "images": [Image],
      "videos": [Video],
      "dataSourceClips": [DataSourceClip],
      "properties": EventProperties,
      "draft": false,
      "validation": EventValidation,
      "priority": "abc123"
    }
  }
}

updateEventChronicle

Description

Updates an existing Event Chronicle.

Response

Returns an EventChronicle!

Arguments
Name Description
eventChronicle - UpdateEventChronicleInput! Arguments to update an existing event chronicle.

Example

Query
mutation updateEventChronicle($eventChronicle: UpdateEventChronicleInput!) {
  updateEventChronicle(eventChronicle: $eventChronicle) {
    id
    chronicleProducer {
      ...ChronicleProducerFragment
    }
    name
    description
    timestamp
    timezone
    metadata
    validation {
      ...ChronicleValidationFragment
    }
    priority
    status
    labels
    locations
    activityChronicles {
      ...ActivityChronicleFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"eventChronicle": UpdateEventChronicleInput}
Response
{
  "data": {
    "updateEventChronicle": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "chronicleProducer": ChronicleProducer,
      "name": "xyz789",
      "description": "abc123",
      "timestamp": "2025-01-01T00:00:00.000+00",
      "timezone": "abc123",
      "metadata": {},
      "validation": ChronicleValidation,
      "priority": "abc123",
      "status": "abc123",
      "labels": ["abc123"],
      "locations": ["abc123"],
      "activityChronicles": [ActivityChronicle],
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00"
    }
  }
}

updateEventProducer

Description

Updates an existing EventProducer.

Response

Returns an EventProducer

Arguments
Name Description
eventProducer - UpdateEventProducerInput! Arguments to update an existing event producer.

Example

Query
mutation updateEventProducer($eventProducer: UpdateEventProducerInput!) {
  updateEventProducer(eventProducer: $eventProducer) {
    id
    name
    description
    timezone
    active
    invalidReasons
    metadata
  }
}
Variables
{"eventProducer": UpdateEventProducerInput}
Response
{
  "data": {
    "updateEventProducer": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "xyz789",
      "description": "xyz789",
      "timezone": "xyz789",
      "active": false,
      "invalidReasons": ["xyz789"],
      "metadata": {}
    }
  }
}

updatePointOfInterest

Description

Updates an existing PointOfInterest.

Response

Returns a PointOfInterest

Arguments
Name Description
pointOfInterest - UpdatePointOfInterestInput! Arguments to update an existing point of interest.

Example

Query
mutation updatePointOfInterest($pointOfInterest: UpdatePointOfInterestInput!) {
  updatePointOfInterest(pointOfInterest: $pointOfInterest) {
    id
    site {
      ...SiteFragment
    }
    name
    position {
      ...GeoJSONPointFragment
    }
    devices {
      ...DeviceFragment
    }
    geofences {
      ...GeofenceFragment
    }
    metadata
  }
}
Variables
{"pointOfInterest": UpdatePointOfInterestInput}
Response
{
  "data": {
    "updatePointOfInterest": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "site": Site,
      "name": "xyz789",
      "position": GeoJSONPoint,
      "devices": [Device],
      "geofences": [Geofence],
      "metadata": {}
    }
  }
}

updateSensor

Description

Updates an existing Sensor.

Response

Returns a Sensor

Arguments
Name Description
sensor - UpdateSensorInput! Arguments to update an existing sensor.

Example

Query
mutation updateSensor($sensor: UpdateSensorInput!) {
  updateSensor(sensor: $sensor) {
    id
    name
    description
    type
    position {
      ...GeoJSONPointFragment
    }
    address
    metadata
  }
}
Variables
{"sensor": UpdateSensorInput}
Response
{
  "data": {
    "updateSensor": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "abc123",
      "description": "xyz789",
      "type": "NUMBER",
      "position": GeoJSONPoint,
      "address": "abc123",
      "metadata": {}
    }
  }
}

updateSite

Description

Updates an existing Site.

Response

Returns a Site

Arguments
Name Description
site - UpdateSiteInput! Arguments to update an existing site.

Example

Query
mutation updateSite($site: UpdateSiteInput!) {
  updateSite(site: $site) {
    id
    name
    position {
      ...GeoJSONPointFragment
    }
    polygon {
      ...GeoJSONMultiPolygonFragment
    }
    devices {
      ...DeviceFragment
    }
    pointsOfInterest {
      ...PointOfInterestFragment
    }
    geofences {
      ...GeofenceFragment
    }
  }
}
Variables
{"site": UpdateSiteInput}
Response
{
  "data": {
    "updateSite": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "xyz789",
      "position": GeoJSONPoint,
      "polygon": GeoJSONMultiPolygon,
      "devices": [Device],
      "pointsOfInterest": [PointOfInterest],
      "geofences": [Geofence]
    }
  }
}

updateSummaryChronicle

Description

Updates an existing Summary Chronicle.

Response

Returns a SummaryChronicle!

Arguments
Name Description
summaryChronicle - UpdateSummaryChronicleInput! Arguments to update an existing summary chronicle.

Example

Query
mutation updateSummaryChronicle($summaryChronicle: UpdateSummaryChronicleInput!) {
  updateSummaryChronicle(summaryChronicle: $summaryChronicle) {
    id
    name
    chronicleProducer {
      ...ChronicleProducerFragment
    }
    description
    startTime
    endTime
    timezone
    metadata
    validation {
      ...ChronicleValidationFragment
    }
    priority
    status
    labels
    locations
    activityChronicles {
      ...ActivityChronicleFragment
    }
    eventChronicles {
      ...EventChronicleFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"summaryChronicle": UpdateSummaryChronicleInput}
Response
{
  "data": {
    "updateSummaryChronicle": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "xyz789",
      "chronicleProducer": ChronicleProducer,
      "description": "abc123",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "timezone": "abc123",
      "metadata": {},
      "validation": ChronicleValidation,
      "priority": "xyz789",
      "status": "xyz789",
      "labels": ["xyz789"],
      "locations": ["xyz789"],
      "activityChronicles": [ActivityChronicle],
      "eventChronicles": [EventChronicle],
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00"
    }
  }
}

updateTrack

Description

Updates an existing track.

Response

Returns a Track

Arguments
Name Description
track - UpdateTrackInput! Arguments to update an existing track.

Example

Query
mutation updateTrack($track: UpdateTrackInput!) {
  updateTrack(track: $track) {
    id
    dataSource {
      ...DataSourceFragment
    }
    video {
      ...VideoFragment
    }
    tag
    startTime
    endTime
    detections {
      ...DetectionFragment
    }
    properties {
      ...TrackPropertiesFragment
    }
    metadata
    zoneIntersections {
      ...ZoneIntersectionFragment
    }
    geofenceIntersections {
      ...GeofenceIntersectionFragment
    }
    deviceIds
  }
}
Variables
{"track": UpdateTrackInput}
Response
{
  "data": {
    "updateTrack": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "dataSource": DataSource,
      "video": Video,
      "tag": "abc123",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "detections": [Detection],
      "properties": TrackProperties,
      "metadata": {},
      "zoneIntersections": [ZoneIntersection],
      "geofenceIntersections": [GeofenceIntersection],
      "deviceIds": ["f81d4fae-7dec-11d0-a765-00a0c91e6bf6"]
    }
  }
}

updateZone

Description

Updates an existing zone.

Response

Returns a Zone

Arguments
Name Description
zone - UpdateZoneInput! Arguments to update an existing zone.

Example

Query
mutation updateZone($zone: UpdateZoneInput!) {
  updateZone(zone: $zone) {
    id
    dataSource {
      ...DataSourceFragment
    }
    name
    polygon {
      ...GeoJSONPolygonFragment
    }
    active
    createdAt
    updatedAt
    deviceId
  }
}
Variables
{"zone": UpdateZoneInput}
Response
{
  "data": {
    "updateZone": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "dataSource": DataSource,
      "name": "abc123",
      "polygon": GeoJSONPolygon,
      "active": false,
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00",
      "deviceId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
    }
  }
}

uploadImage

Description

Uploads an image.

Response

Returns an Image

Arguments
Name Description
image - UploadImageInput! Arguments to upload an image.

Example

Query
mutation uploadImage($image: UploadImageInput!) {
  uploadImage(image: $image) {
    id
    dataSourceId
    timestamp
    url
    thumbnailUrl
  }
}
Variables
{"image": UploadImageInput}
Response
{
  "data": {
    "uploadImage": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "dataSourceId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "timestamp": "2025-01-01T00:00:00.000+00",
      "url": "abc123",
      "thumbnailUrl": "abc123"
    }
  }
}

Subscriptions

activityChronicles

Description

Subscribes to changes in any Event based on the given filter.

Response

Returns an ActivityChronicle!

Arguments
Name Description
filter - FilterActivityChronicleInputSubscription Filter events by unique identifier of the event producer or type of event, etc.

Example

Query
subscription activityChronicles($filter: FilterActivityChronicleInputSubscription) {
  activityChronicles(filter: $filter) {
    id
    chronicleProducer {
      ...ChronicleProducerFragment
    }
    name
    description
    startTime
    endTime
    timezone
    metadata
    validation {
      ...ChronicleValidationFragment
    }
    priority
    status
    labels
    locations
    images {
      ...ImageFragment
    }
    dataSourceClips {
      ...DataSourceClipFragment
    }
    tracks {
      ...TrackFragment
    }
    sites {
      ...SiteFragment
    }
    dataSources {
      ...DataSourceFragment
    }
    tags {
      ...TagFragment
    }
    pointsOfInterest {
      ...PointOfInterestFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"filter": FilterActivityChronicleInputSubscription}
Response
{
  "data": {
    "activityChronicles": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "chronicleProducer": ChronicleProducer,
      "name": "abc123",
      "description": "xyz789",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "timezone": "abc123",
      "metadata": {},
      "validation": ChronicleValidation,
      "priority": "abc123",
      "status": "xyz789",
      "labels": ["abc123"],
      "locations": ["abc123"],
      "images": [Image],
      "dataSourceClips": [DataSourceClip],
      "tracks": [Track],
      "sites": [Site],
      "dataSources": [DataSource],
      "tags": [Tag],
      "pointsOfInterest": [PointOfInterest],
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00"
    }
  }
}

detectionActivity

Description

Subscribes to changes in any Detection based on the given filter.

Response

Returns a Detection

Arguments
Name Description
filter - FilterDetectionActivityInput Filter detections by unique identifier of the device, unique identifier of the zone or geofence, type of the event, etc.

Example

Query
subscription detectionActivity($filter: FilterDetectionActivityInput) {
  detectionActivity(filter: $filter) {
    track {
      ...TrackFragment
    }
    timestamp
    frame {
      ...FrameFragment
    }
    polygon {
      ...GeoJSONPolygonFragment
    }
    position {
      ...GeoJSONPointFragment
    }
    zones {
      ...ZoneFragment
    }
    geofences {
      ...GeofenceFragment
    }
    metadata
    createdAt
    updatedAt
    direction
    geofenceIds
    zoneIds
    zoneEvents {
      ...ZoneEventFragment
    }
    geofenceEvents {
      ...GeofenceEventFragment
    }
    globalTrackId
    deviceId
    tag
  }
}
Variables
{"filter": FilterDetectionActivityInput}
Response
{
  "data": {
    "detectionActivity": {
      "track": Track,
      "timestamp": "2025-01-01T00:00:00.000+00",
      "frame": Frame,
      "polygon": GeoJSONPolygon,
      "position": GeoJSONPoint,
      "zones": [Zone],
      "geofences": [Geofence],
      "metadata": {},
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00",
      "direction": 987.65,
      "geofenceIds": ["f81d4fae-7dec-11d0-a765-00a0c91e6bf6"],
      "zoneIds": ["f81d4fae-7dec-11d0-a765-00a0c91e6bf6"],
      "zoneEvents": [ZoneEvent],
      "geofenceEvents": [GeofenceEvent],
      "globalTrackId": "xyz789",
      "deviceId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "tag": "xyz789"
    }
  }
}

devices

Description

Subscribes to changes in any Device based on the given filter.

Response

Returns a DeviceMessage

Arguments
Name Description
filter - FilterDeviceMessageInput Filter devices by unique identifier of the device, message state, etc.

Example

Query
subscription devices($filter: FilterDeviceMessageInput) {
  devices(filter: $filter) {
    message {
      ...DeviceFragment
    }
    state
  }
}
Variables
{"filter": FilterDeviceMessageInput}
Response
{
  "data": {
    "devices": {"message": Device, "state": "CREATE"}
  }
}

eventActivity

Description

Subscribes to changes in any Event based on the given filter.

Response

Returns an Event

Arguments
Name Description
filter - FilterEventActivityInput Filter events by unique identifier of the event producer or type of event, etc.

Example

Query
subscription eventActivity($filter: FilterEventActivityInput) {
  eventActivity(filter: $filter) {
    id
    eventProducer {
      ...EventProducerFragment
    }
    type
    subType
    startTime
    endTime
    position {
      ...GeoJSONPointFragment
    }
    timezone
    metadata
    images {
      ...ImageFragment
    }
    videos {
      ...VideoFragment
    }
    dataSourceClips {
      ...DataSourceClipFragment
    }
    properties {
      ...EventPropertiesFragment
    }
    draft
    validation {
      ...EventValidationFragment
    }
    priority
  }
}
Variables
{"filter": FilterEventActivityInput}
Response
{
  "data": {
    "eventActivity": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "eventProducer": EventProducer,
      "type": "abc123",
      "subType": "xyz789",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "position": GeoJSONPoint,
      "timezone": "xyz789",
      "metadata": {},
      "images": [Image],
      "videos": [Video],
      "dataSourceClips": [DataSourceClip],
      "properties": EventProperties,
      "draft": true,
      "validation": EventValidation,
      "priority": "abc123"
    }
  }
}

eventChronicles

Description

Subscribes to changes in any Event based on the given filter.

Response

Returns an EventChronicle!

Arguments
Name Description
filter - FilterEventChronicleInputSubscription Filter events by unique identifier of the event producer or type of event, etc.

Example

Query
subscription eventChronicles($filter: FilterEventChronicleInputSubscription) {
  eventChronicles(filter: $filter) {
    id
    chronicleProducer {
      ...ChronicleProducerFragment
    }
    name
    description
    timestamp
    timezone
    metadata
    validation {
      ...ChronicleValidationFragment
    }
    priority
    status
    labels
    locations
    activityChronicles {
      ...ActivityChronicleFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"filter": FilterEventChronicleInputSubscription}
Response
{
  "data": {
    "eventChronicles": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "chronicleProducer": ChronicleProducer,
      "name": "abc123",
      "description": "abc123",
      "timestamp": "2025-01-01T00:00:00.000+00",
      "timezone": "xyz789",
      "metadata": {},
      "validation": ChronicleValidation,
      "priority": "xyz789",
      "status": "xyz789",
      "labels": ["abc123"],
      "locations": ["xyz789"],
      "activityChronicles": [ActivityChronicle],
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00"
    }
  }
}

geofenceIntersections

Description

Subscribes to changes in any GeofenceIntersection based on the given filter.

Response

Returns a GeofenceIntersectionMessage

Arguments
Name Description
filter - FilterGeofenceIntersectionMessageInput Filter detections by unique identifier of the device, unique identifier of the geofence, tag, message state, etc.

Example

Query
subscription geofenceIntersections($filter: FilterGeofenceIntersectionMessageInput) {
  geofenceIntersections(filter: $filter) {
    message {
      ...GeofenceIntersectionFragment
    }
    state
  }
}
Variables
{"filter": FilterGeofenceIntersectionMessageInput}
Response
{
  "data": {
    "geofenceIntersections": {
      "message": GeofenceIntersection,
      "state": "START"
    }
  }
}

measurementActivity

Description

Subscribes to changes in any Measurement based on the given filter.

Response

Returns a Measurement

Arguments
Name Description
filter - FilterMeasurementActivityInput Filter measurements by unique identifier of the sensor, type of the event, etc.

Example

Query
subscription measurementActivity($filter: FilterMeasurementActivityInput) {
  measurementActivity(filter: $filter) {
    id
    sensor {
      ...SensorFragment
    }
    timestamp
    value
  }
}
Variables
{"filter": FilterMeasurementActivityInput}
Response
{
  "data": {
    "measurementActivity": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "sensor": Sensor,
      "timestamp": "2025-01-01T00:00:00.000+00",
      "value": "abc123"
    }
  }
}

summaryChronicles

Description

Subscribes to changes in any Event based on the given filter.

Response

Returns a SummaryChronicle!

Arguments
Name Description
filter - FilterSummaryChronicleInputSubscription Filter events by unique identifier of the event producer or type of event, etc.

Example

Query
subscription summaryChronicles($filter: FilterSummaryChronicleInputSubscription) {
  summaryChronicles(filter: $filter) {
    id
    name
    chronicleProducer {
      ...ChronicleProducerFragment
    }
    description
    startTime
    endTime
    timezone
    metadata
    validation {
      ...ChronicleValidationFragment
    }
    priority
    status
    labels
    locations
    activityChronicles {
      ...ActivityChronicleFragment
    }
    eventChronicles {
      ...EventChronicleFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"filter": FilterSummaryChronicleInputSubscription}
Response
{
  "data": {
    "summaryChronicles": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "name": "abc123",
      "chronicleProducer": ChronicleProducer,
      "description": "xyz789",
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "timezone": "xyz789",
      "metadata": {},
      "validation": ChronicleValidation,
      "priority": "xyz789",
      "status": "xyz789",
      "labels": ["abc123"],
      "locations": ["xyz789"],
      "activityChronicles": [ActivityChronicle],
      "eventChronicles": [EventChronicle],
      "createdAt": "2025-01-01T00:00:00.000+00",
      "updatedAt": "2025-01-01T00:00:00.000+00"
    }
  }
}

tracks

Description

Subscribes to changes in any Track based on the given filter.

Response

Returns a TrackMessage

Arguments
Name Description
filter - FilterTrackMessageInput Filter tracks by unique identifier of the data source, tag, message state, etc.

Example

Query
subscription tracks($filter: FilterTrackMessageInput) {
  tracks(filter: $filter) {
    message {
      ...TrackFragment
    }
    state
  }
}
Variables
{"filter": FilterTrackMessageInput}
Response
{"data": {"tracks": {"message": Track, "state": "START"}}}

videoActivity

Description

Subscribes to any created Video from a given DataSource.

Response

Returns a Video

Arguments
Name Description
filter - FilterVideoActivityInput Filter videos by unique identifier of the data source.

Example

Query
subscription videoActivity($filter: FilterVideoActivityInput) {
  videoActivity(filter: $filter) {
    id
    dataSource {
      ...DataSourceFragment
    }
    startTime
    endTime
    url
    thumbnailUrl
    displayName
    resolutionHeight
    resolutionWidth
    frameRate
    createdBy {
      ...UserFragment
    }
  }
}
Variables
{"filter": FilterVideoActivityInput}
Response
{
  "data": {
    "videoActivity": {
      "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "dataSource": DataSource,
      "startTime": "2025-01-01T00:00:00.000+00",
      "endTime": "2025-01-01T00:00:00.000+00",
      "url": "xyz789",
      "thumbnailUrl": "abc123",
      "displayName": "abc123",
      "resolutionHeight": "xyz789",
      "resolutionWidth": "xyz789",
      "frameRate": 987.65,
      "createdBy": User
    }
  }
}

zoneIntersections

Description

Subscribes to changes in any ZoneIntersection based on the given filter.

Response

Returns a ZoneIntersectionMessage

Arguments
Name Description
filter - FilterZoneIntersectionMessageInput Filter detections by unique identifier of the device, unique identifier of the zone, message state, etc.

Example

Query
subscription zoneIntersections($filter: FilterZoneIntersectionMessageInput) {
  zoneIntersections(filter: $filter) {
    message {
      ...ZoneIntersectionFragment
    }
    state
  }
}
Variables
{"filter": FilterZoneIntersectionMessageInput}
Response
{
  "data": {
    "zoneIntersections": {
      "message": ZoneIntersection,
      "state": "START"
    }
  }
}

Types

ActivityChronicle

Description

An activity chronicle represents behavior which occurs over a period of time.

Fields
Field Name Description
id - ID! The unique identifier for the activity.
chronicleProducer - ChronicleProducer! The chronicle producer that created the activity.
name - String! The name of the activity
description - String A text description of the activity.
startTime - DateTimeOffset! The time at which the activity started.
endTime - DateTimeOffset The time at which the activity ended.
timezone - String The timezone for the activity, if provided.
metadata - JSON Additional metadata associated with the activity. This may represent any JSON object structure.
validation - ChronicleValidation Optional information to validate the accuracy of the activity.
priority - String User-defined priority of the activity.
status - String User-defined status of the activity.
labels - [String!] Human-readable labels describing the activity.
locations - [String!] Human-readable locations describing the activity.
images - [Image!]! Images associated with the activity.
dataSourceClips - [DataSourceClip!]! Clips associated with the activity.
tracks - [Track!] Tracks associated with the activity.
sites - [Site!] Sites associated with the activity.
dataSources - [DataSource!] Data Sources associated with the activity.
tags - [Tag!] Tags associated with the activity.
pointsOfInterest - [PointOfInterest!] Points of Interest associated with the activity.
createdAt - DateTimeOffset! Timestamp that the activity was created.
updatedAt - DateTimeOffset! Timestamp that the activity was most recently updated.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "chronicleProducer": ChronicleProducer,
  "name": "xyz789",
  "description": "abc123",
  "startTime": "2025-01-01T00:00:00.000+00",
  "endTime": "2025-01-01T00:00:00.000+00",
  "timezone": "abc123",
  "metadata": {},
  "validation": ChronicleValidation,
  "priority": "xyz789",
  "status": "xyz789",
  "labels": ["abc123"],
  "locations": ["xyz789"],
  "images": [Image],
  "dataSourceClips": [DataSourceClip],
  "tracks": [Track],
  "sites": [Site],
  "dataSources": [DataSource],
  "tags": [Tag],
  "pointsOfInterest": [PointOfInterest],
  "createdAt": "2025-01-01T00:00:00.000+00",
  "updatedAt": "2025-01-01T00:00:00.000+00"
}

ActivityChronicleConnection

Description

An ActivityConnection is the paginated results of an activities query. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
edges - [ActivityChronicleEdge!]! Pagination information for the resulting edges.
pageInfo - PageInfo! The resulting collection of activity edges.
Example
{
  "edges": [ActivityChronicleEdge],
  "pageInfo": PageInfo
}

ActivityChronicleEdge

Description

An activity edge is the pairing of an Activity with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - ActivityChronicle! Information about a particular Activity.
cursor - String! The cursor to use with the Query activities field after argument.
Example
{
  "node": ActivityChronicle,
  "cursor": "xyz789"
}

ActivityChronicleSort

Description

Indicates the field used for sorting an activityChronicles query.

Fields
Input Field Description
field - ActivityChronicleSortField! Any sortable field available to the ActivityProducersSortField. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

ActivityChronicleSortField

Description

Indicates the field used for sorting an activities query.

Values
Enum Value Description

ID

Sort the resulting list by the activityChronicle's unique identifier.

START_TIME

Sort the resulting list by the activityChronicle's start time.

END_TIME

Sort the resulting list by the activityChronicle's end time.

NAME

Sort the resulting list by the activityChronicle's name.

PRIORITY

Sort the resulting list by the activityChronicle's priority.

STATUS

Sort the resulting list by the activityChronicle's status.
Example
"ID"

ActivityType

Description

Indicates the type of GeofenceEvent or ZoneEvent reported by a Geofence or a Zone.

Values
Enum Value Description

INGRESS

A detection entering a Geofence or a Zone.

DWELL

A detection remaining inside a Geofence or a Zone.

EGRESS

A detection exiting a Geofence or a Zone.
Example
"INGRESS"

Boolean

Description

The Boolean scalar type represents true or false.

ChronicleProducer

Description

An chronicle producer represents a custom process that detects and records chronicles. Chronicles created by an chronicle producer can represent a wide variety of time-based activities to be used by your application's specific needs that aren't expressed natively through detections and geofences. For instance, an chronicle producer could track detections of hazards and people, creating an event chronicle for each case where a person was too close to a hazard without personal protective equipment.

Fields
Field Name Description
id - ID! The unique identifier for the chronicle producer.
name - String! The name of the chronicle producer.
description - String The text description of the chronicle producer, if provided.
timezone - String The timezone for the chronicle producer, if provided.
active - Boolean! True if the chronicle producer is currently active, otherwise false.
validationReasons - [String!]! A list of validation reasons currently used by the chronicle producer.
metadata - JSON Arbitrary information about the chronicle producer.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "name": "xyz789",
  "description": "xyz789",
  "timezone": "xyz789",
  "active": true,
  "validationReasons": ["abc123"],
  "metadata": {}
}

ChronicleProducerConnection

Description

The paginated results of an chronicleProducers query. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
edges - [ChronicleProducerEdge!]! The resulting collection of chronicle producer edges.
pageInfo - PageInfo! Pagination information for the resulting edges.
Example
{
  "edges": [ChronicleProducerEdge],
  "pageInfo": PageInfo
}

ChronicleProducerEdge

Description

The pairing of an ChronicleProducer with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - ChronicleProducer! Information about a particular ChronicleProducer.
cursor - String! The cursor to use with the Query chronicleProducers field after argument.
Example
{
  "node": ChronicleProducer,
  "cursor": "abc123"
}

ChronicleProducersSort

Description

ChronicleProducersSort allows for sorting an chronicle producer by a sort field and direction.

Fields
Input Field Description
field - ChronicleProducersSortField! Any sortable field available to the ChronicleProducersSortField. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

ChronicleProducersSortField

Description

Indicates the field used for sorting an chronicleProducers query.

Values
Enum Value Description

ID

Sort the resulting list by the ChronicleProducer's unique identifier.

NAME

Sort the resulting list by the ChronicleProducer's name.
Example
"ID"

ChronicleValidation

Description

This input type indicates whether an chronicle is valid and contains additional information about the validation.

Fields
Field Name Description
status - ChronicleValidationStatus! Whether the chronicle is VALID or INVALID.
reason - String The reason for the chronicle's validation status. Required if the status is INVALID.
details - String Additional details for the chronicle's validation status.
Example
{
  "status": "VALID",
  "reason": "abc123",
  "details": "abc123"
}

ChronicleValidationInput

Description

This input type indicates whether an chronicle is valid and contains additional information about the validation.

Fields
Input Field Description
status - ChronicleValidationStatus! Whether the chronicle is VALID or INVALID.
summary - String The reason for the chronicle's validation status. Required if the status is INVALID.
details - String Additional details for the chronicle's validation status.
Example
{
  "status": "VALID",
  "summary": "xyz789",
  "details": "abc123"
}

ChronicleValidationStatus

Description

Used in ChronicleValidationInput to indicate whether an chronicle is VALID or INVALID.

Values
Enum Value Description

VALID

The chronicle is valid.

INVALID

The chronicle is invalid.
Example
"VALID"

CreateActivityChronicleInput

Description

This input type is used to create a new ActivityChronicle.

Fields
Input Field Description
name - String! The chronicle producer that owns the activity.
chronicleProducerId - ID! The name of the activity
description - String A text description of the activity.
startTime - DateTimeOffset! The time at which the activity started.
endTime - DateTimeOffset The time at which the activity ended.
timezone - String The timezone for the activity, if provided.
metadata - JSON Additional metadata associated with the activity. This may represent any JSON object structure.
priority - String Optional information to validate the accuracy of the activity.
status - String User-defined priority of the activity.
labels - [String!] User-defined status of the activity.
locations - [String!] Human-readable labels describing the activity.
validation - ChronicleValidationInput Human-readable locations describing the activity.
imageIds - [ID!] IDs for images to associate with the activity.
clips - [CreateClipInput!] Requests to create clips associated with the activity.
trackIds - [ID!] IDs for tracks to associate with the activity.
siteIds - [ID!] IDs for sites to associate with the activity.
dataSourceIds - [ID!] IDs for data sources to associate with the activity.
tagIds - [ID!] IDs for tags to associate with the activity.
pointOfInterestIds - [ID!] IDs for points of interest to associate with the activity.
Example
{
  "name": "abc123",
  "chronicleProducerId": 4,
  "description": "abc123",
  "startTime": DateTimeOffset,
  "endTime": DateTimeOffset,
  "timezone": "abc123",
  "metadata": {},
  "priority": "xyz789",
  "status": "xyz789",
  "labels": ["xyz789"],
  "locations": ["xyz789"],
  "validation": ChronicleValidationInput,
  "imageIds": [4],
  "clips": [CreateClipInput],
  "trackIds": [4],
  "siteIds": [4],
  "dataSourceIds": ["4"],
  "tagIds": [4],
  "pointOfInterestIds": [4]
}

CreateChronicleProducerInput

Description

This input type is used to create a new custom ChronicleProducer.

Fields
Input Field Description
name - String! The name of the chronicle producer.
description - String The text description of the chronicle producer.
timezone - String The timezone for the chronicle producer.
active - Boolean! True if the chronicle producer should be active by default, otherwise false.
metadata - JSON Arbitrary information about the chronicle producer.
validationReasons - [String!] A list of validation reasons to be used by the chronicle producer.
Example
{
  "name": "abc123",
  "description": "xyz789",
  "timezone": "xyz789",
  "active": true,
  "metadata": {},
  "validationReasons": ["xyz789"]
}

CreateClipInput

Description

This input type is used to create a new clip for an event. See About Events for more details.

Fields
Input Field Description
dataSourceId - ID! The unique ID of the datasource or device of the clip
startTime - DateTimeOffset! The start time of the clip
endTime - DateTimeOffset! The end time of the clip
Example
{
  "dataSourceId": 4,
  "startTime": DateTimeOffset,
  "endTime": DateTimeOffset
}

CreateDataSourceInput

Description

This type is used to create a new DataSource

Fields
Input Field Description
name - String! The name of the data source
type - DataSourceType! The type of the data source
labels - [String!] Human-readable labels describing this data source
Example
{
  "name": "abc123",
  "type": "FOLDER",
  "labels": ["xyz789"]
}

CreateDetectionInput

Description

This type is used to create a new Detection

Fields
Input Field Description
trackId - ID! The id of the track that governs the detection
timestamp - DateTimeOffset! The time at which the detection occurred.
position - GeoJSONPointInput A GeoJSON point that represents the location of the detection in the world.
polygon - GeoJSONPolygonInput A GeoJSON polygon that represents the two dimensional bounds of the detection in its captured video or image.
direction - Float The direction, in degrees, of the detection in the world. Direction is measured clockwise from north, so 0 is north, 90 is east, 180 is south and 270 is west. The direction should be between 0 and 360 degrees.
metadata - JSON Arbitrary metadata associated with the detection.
Example
{
  "trackId": "4",
  "timestamp": DateTimeOffset,
  "position": GeoJSONPointInput,
  "polygon": GeoJSONPolygonInput,
  "direction": 123.45,
  "metadata": {}
}

CreateDeviceInput

Description

This input type is used to create a new Device.

Fields
Input Field Description
siteId - ID The unique identifier for the site that this device belongs to.
pointOfInterestId - ID The unique identifier for the point of interest the device belongs to.
externalId - ID An identifier that the device may use outside of Worlds.
name - String! The name of the device.
address - String The address of the device.
position - GeoJSONPointInput The geographic location of the device.
enabled - Boolean! true if the device's feed is being persisted by Worlds.
Example
{
  "siteId": 4,
  "pointOfInterestId": "4",
  "externalId": 4,
  "name": "abc123",
  "address": "abc123",
  "position": GeoJSONPointInput,
  "enabled": true
}

CreateEventChronicleInput

Description

This input type is used to create a new EventChronicle.

Fields
Input Field Description
name - String! The name of the event
chronicleProducerId - ID! The event producer that owns the event.
description - String A text description of the event.
timestamp - DateTimeOffset! The time at which the event occurred.
timezone - String The timezone for the event, if provided.
metadata - JSON Additional metadata associated with the event. This may represent any JSON object structure.
priority - String User-defined priority of the event.
status - String User-defined status of the event.
labels - [String!] Human-readable labels describing the event.
locations - [String!] Human-readable locations describing the event.
validation - ChronicleValidationInput Optional information to validate the accuracy of the event.
activityChronicleIds - [ID!] IDs of activity chronicles associated with the event.
Example
{
  "name": "abc123",
  "chronicleProducerId": 4,
  "description": "abc123",
  "timestamp": DateTimeOffset,
  "timezone": "abc123",
  "metadata": {},
  "priority": "xyz789",
  "status": "abc123",
  "labels": ["abc123"],
  "locations": ["abc123"],
  "validation": ChronicleValidationInput,
  "activityChronicleIds": [4]
}

CreateEventInput

Description

This input type is used to create a new Event for a custom event producer. See About EventProducers for more details.

Fields
Input Field Description
id - ID The unique identifier for the event. If not provided, one will be automatically assigned.
eventProducerId - String! The unique identifier of the EventProducer that will own the event.
type - String! The type of the event, which should convey the broad category of the event.
subType - String The subtype of the event, if provided, which should provide more context on the category of the event.
startTime - DateTimeOffset! The time at which the event started.
endTime - DateTimeOffset The time at which the event ended. If not provided, the event is still ongoing.
position - GeoJSONPointInput The GeoJSON point to be recorded with the event, if any.
timezone - String The timezone for the event, if provided.
metadata - JSON Additional metadata associated with the event. This may represent any JSON object structure.
snapshots - [CreateSnapshotInput!] Requests to generate snapshots for this event
uploads - [UploadImageInput!] Requests to upload images for this event
clips - [CreateClipInput!] Requests to associate clips to this event
trackIds - [ID!] List of Track IDs to attach to this event. Ensures that the Events UI page renders a map with plotted tracks.
properties - EventPropertiesInput Optional additional information associated with this event, including related data sources, sites, and tags.
draft - Boolean! Whether the event is a draft. Default = false
validation - EventValidationInput Optional information to validate the accuracy of the event.
priority - String Optional string to indicate the priority of an event.
Example
{
  "id": "4",
  "eventProducerId": "xyz789",
  "type": "xyz789",
  "subType": "abc123",
  "startTime": DateTimeOffset,
  "endTime": DateTimeOffset,
  "position": GeoJSONPointInput,
  "timezone": "abc123",
  "metadata": {},
  "snapshots": [CreateSnapshotInput],
  "uploads": [UploadImageInput],
  "clips": [CreateClipInput],
  "trackIds": [4],
  "properties": EventPropertiesInput,
  "draft": true,
  "validation": EventValidationInput,
  "priority": "xyz789"
}

CreatePointOfInterestInput

Description

Fields to create a new PointOfInterest

Fields
Input Field Description
siteId - ID! The ID of the Site that the PointOfInterest belongs to
name - String! The name of the PointOfInterest.
position - GeoJSONPointInput! The geographic position of the PointOfInterest
metadata - JSON The metadata associated with the PointOfInterest.
Example
{
  "siteId": 4,
  "name": "xyz789",
  "position": GeoJSONPointInput,
  "metadata": {}
}

CreateSiteInput

Description

Input type used to create a new [Site]({{Types.site}.

Fields
Input Field Description
name - String! The name of the site.
position - GeoJSONPointInput The geographic location of the site
polygon - GeoJSONMultiPolygonInput The geographic shape of the site
Example
{
  "name": "abc123",
  "position": GeoJSONPointInput,
  "polygon": GeoJSONMultiPolygonInput
}

CreateSnapshotInput

Description

This input type is used to create a new Image for an event. See About Events for more details.

Fields
Input Field Description
dataSourceId - ID! The unique ID of the datasource or device that will take the snapshot
timestamp - DateTimeOffset! The time when the snapshot will be taken
Example
{
  "dataSourceId": "4",
  "timestamp": DateTimeOffset
}

CreateSummaryChronicleInput

Description

This input type is used to create a new SummaryChronicle.

Fields
Input Field Description
name - String! The name of the summary
chronicleProducerId - ID! The summary producer that owns the summary.
description - String A text description of the summary.
startTime - DateTimeOffset! The start time of the summary.
endTime - DateTimeOffset! The end time of the summary.
timezone - String The timezone for the summary, if provided.
metadata - JSON Additional metadata associated with the summary. This may represent any JSON object structure.
priority - String User-defined priority of the summary.
status - String User-defined status of the summary.
labels - [String!] Human-readable labels describing the summary.
locations - [String!] Human-readable locations describing the summary.
validation - ChronicleValidationInput Optional information to validate the accuracy of the summary.
activityChronicleIds - [ID!] IDs of activity chronicles associated with the summary.
eventChronicleIds - [ID!] IDs of event chronicles associated with the summary.
Example
{
  "name": "abc123",
  "chronicleProducerId": 4,
  "description": "abc123",
  "startTime": DateTimeOffset,
  "endTime": DateTimeOffset,
  "timezone": "xyz789",
  "metadata": {},
  "priority": "xyz789",
  "status": "xyz789",
  "labels": ["abc123"],
  "locations": ["abc123"],
  "validation": ChronicleValidationInput,
  "activityChronicleIds": ["4"],
  "eventChronicleIds": [4]
}

CreateTrackInput

Description

This input type is used to create a new Track.

Fields
Input Field Description
id - ID The unique identifier for the Track. Will be autogenerated if one is not provided.
dataSourceId - ID! The unique identifier of the data source that captured the Track.
tag - String! The class label of the tracked object, i.e person, car, truck, etc.
startTime - DateTimeOffset! The time of the first detection of the tracked object.
endTime - DateTimeOffset The time of the last detection of the tracked object, or null if it is still being tracked.
detections - [TrackDetectionInput!]! A list of detections that will also be created and associated to the new track.
properties - TrackPropertiesInput The identifying and descriptive attributes of a new track.
metadata - JSON Arbitrary information about the Track.
Example
{
  "id": "4",
  "dataSourceId": 4,
  "tag": "abc123",
  "startTime": DateTimeOffset,
  "endTime": DateTimeOffset,
  "detections": [TrackDetectionInput],
  "properties": TrackPropertiesInput,
  "metadata": {}
}

CreateZoneInput

Fields
Input Field Description
dataSourceId - ID! The unique identifier of the data source that owns the zone
name - String! The name given to the camera zone.
polygon - GeoJSONPolygonInput! The geometrical boundry of the camera zone.
active - Boolean True if the zone is currently active, otherwise false.
Example
{
  "dataSourceId": "4",
  "name": "xyz789",
  "polygon": GeoJSONPolygonInput,
  "active": false
}

DataSource

Description

A data source is responsible for producing the videos, images and other sensor data that may eventually produce detections and tracks. For more details on detections, see About Detections

Fields
Field Name Description
id - ID! The unique identifier of the data source.
name - String! The name of the data source
type - DataSourceType! The type of the data source
device - Device The device associated with this data source
zones - [Zone!]! The zones associated with this data source
labels - [String!] Human-readable labels describing this data source
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "name": "abc123",
  "type": "FOLDER",
  "device": Device,
  "zones": [Zone],
  "labels": ["xyz789"]
}

DataSourceClip

Description

A data source clip represents a video from a data source, bounded by a start and end time.

Fields
Field Name Description
id - ID! The unique identifier of the data source clip.
dataSource - DataSource! The data source that created the video.
startTime - DateTimeOffset! Start time of the clip
endTime - DateTimeOffset! End time of the clip
url - String! The signed URL to be used to stream the clip.
thumbnailUrl - String The signed URL to be used to retrieve the clip thumbnail.
displayName - String Optional display name for a clip
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "dataSource": DataSource,
  "startTime": "2025-01-01T00:00:00.000+00",
  "endTime": "2025-01-01T00:00:00.000+00",
  "url": "abc123",
  "thumbnailUrl": "xyz789",
  "displayName": "xyz789"
}

DataSourceConnection

Description

A DataSourceConnection is the paginated results of a data sources query. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [DataSourceEdge]! The resulting collection of detection edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [DataSourceEdge]
}

DataSourceEdge

Description

A data source edge is the pairing of a Data Source with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - DataSource Information about a particular Data Source.
cursor - String! The cursor to use with the dataSources query after argument.
Example
{
  "node": DataSource,
  "cursor": "abc123"
}

DataSourceSort

Description

DataSourceSort allows for sorting a dataSources query by field and direction.

Fields
Input Field Description
field - DataSourceSortField! Any sortable field available to the DataSourceSort. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

DataSourceSortField

Description

Indicates the field used for sorting a Data Sources query.

Values
Enum Value Description

ID

Sort the resulting list in by its unique identifier.

NAME

Sort the resulting list by the device name.
Example
"ID"

DataSourceType

Description

Indicates the type of a DataSource

Values
Enum Value Description

FOLDER

A data source that is simply meant to store videos or images

VIDEO_DEVICE

A data source that corresponds to a Device that is generating video.

IMAGE_DEVICE

A data source that corresponds to a Device that is generating images.

GEOPOSITION

A data source that directly produces Tracks and detections
Example
"FOLDER"

DateTimeOffset

Description

A moment in time described by the date, the time and the timezone offset from UTC. This is specified by ISO-8601.

Example
DateTimeOffset

Detection

Description

Detections are the lowest level unit of computer vision primitive within Worlds. A detection represents a single frame of a recognized object, which then has additional data associated with it, including its position, track, and interactions with zones and geofences.

Fields
Field Name Description
track - Track! The track that is associated with the detection.
timestamp - DateTimeOffset! The time at which the detection occurred.
frame - Frame Information about the video frame in which this detection was captured
polygon - GeoJSONPolygon A GeoJSON polygon that represents the spatial bounds of the detection.
position - GeoJSONPoint A GeoJSON point that represents the location of the detection in the world. This value may be null if the camera that captured the detection hasn't been calibrated. It may also be null if the location cannot be calculated (i.e the detected object is in the sky).
zones - [Zone!]! A list of Zones with which the detection intersects.
geofences - [Geofence!]! A list of Geofences with which the detection intersects.
metadata - JSON Arbitrary metadata associated with the detection.
createdAt - DateTimeOffset Timestamp that the detection was created. May be delayed from the timestamp due to post-processing video feeds or other latency.
updatedAt - DateTimeOffset Timestamp that the detection was most recently updated.
direction - Float The direction in which the detection is moving, represented in degrees.
geofenceIds - [ID!]! A list of geofence unique identifiers with which the detection intersects. geofenceIds is deprecated. Use geofences.id instead
zoneIds - [ID!]! A list of zone unique identifiers with which the detection intersects. zoneIds is deprecated. Use zones.id instead
zoneEvents - [ZoneEvent!]! A list of zone events related to this detection. zoneEvents is deprecated. Use track.zoneEvents instead
geofenceEvents - [GeofenceEvent!]! A list of geofence events related to this detection. geofenceEvents is deprecated. Use track.geofenceEvents instead
globalTrackId - String The global track id that governs the detection, if any. globalTrackId is deprecated. Use track.id instead
deviceId - ID The unique identifier of the device where the detection occurred. deviceId is deprecated. Use track.dataSourceId.id instead
tag - String! The class label of the detected object, i.e person, car, truck, etc. tag is deprecated. Use track.tag instead
Example
{
  "track": Track,
  "timestamp": "2025-01-01T00:00:00.000+00",
  "frame": Frame,
  "polygon": GeoJSONPolygon,
  "position": GeoJSONPoint,
  "zones": [Zone],
  "geofences": [Geofence],
  "metadata": {},
  "createdAt": "2025-01-01T00:00:00.000+00",
  "updatedAt": "2025-01-01T00:00:00.000+00",
  "direction": 987.65,
  "geofenceIds": ["f81d4fae-7dec-11d0-a765-00a0c91e6bf6"],
  "zoneIds": ["f81d4fae-7dec-11d0-a765-00a0c91e6bf6"],
  "zoneEvents": [ZoneEvent],
  "geofenceEvents": [GeofenceEvent],
  "globalTrackId": "abc123",
  "deviceId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "tag": "xyz789"
}

DetectionConnection

Description

A DetectionConnection is the paginated results of a detections query. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [DetectionEdge]! The resulting collection of detection edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [DetectionEdge]
}

DetectionEdge

Description

A detection edge is the pairing of a Detection with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - Detection Information about a particular Detection.
cursor - String! The cursor to use with the detections query after argument.
Example
{
  "node": Detection,
  "cursor": "abc123"
}

DetectionsSort

Description

DetectionsSort allows for sorting a detection by detection sort field and direction.

Fields
Input Field Description
field - DetectionsSortField! Any sortable field available to the DetectionsSort. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "DETECTION_TIME", "direction": "ASC"}

DetectionsSortField

Description

Indicates the field used for sorting a Detections query.

Values
Enum Value Description

DETECTION_TIME

Sort the resulting list by detection time.

GLOBAL_TRACK_ID

Sort the resulting list by the corresponding Track's unique identifier..
Example
"DETECTION_TIME"

Device

Description

A device represents a camera: a source of videos and images. These videos and images may then be processed to produce detections and tracks or to train models. For more details on detections, see About Detections

Fields
Field Name Description
id - ID! The unique identifier of the device.
uuid - ID! An alternative UUID for the device.
externalId - ID An identifier that the device may use outside of Worlds.
name - String! The name of the device
enabled - Boolean! true if the device's feed is being persisted by Worlds.
address - String The address of the device
frameRate - Float The target frame rate for videos produced by this Device
position - GeoJSONPoint The geographic location of the device
dataSource - DataSource The data source associated with this device
site - Site The site that this device belongs to
calibrations - [DeviceCalibration!]! The list of calibrations for the device
pointOfInterest - PointOfInterest The point of interest the device belongs to
lastHeartbeat - DateTimeOffset Timestamp at which this device last received a heartbeat update. Can be used to confirm the device is still active.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "uuid": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "externalId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "name": "abc123",
  "enabled": true,
  "address": "xyz789",
  "frameRate": 123.45,
  "position": GeoJSONPoint,
  "dataSource": DataSource,
  "site": Site,
  "calibrations": [DeviceCalibration],
  "pointOfInterest": PointOfInterest,
  "lastHeartbeat": "2025-01-01T00:00:00.000+00"
}

DeviceCalibration

Description

A device calibration determines how objects captured by in a video or image are geo-referenced into the real world.

Fields
Field Name Description
id - ID! The unique identifier of the device calibration.
timestamp - DateTimeOffset! The start time of the calibration. Detections generated after this time for this device will be geo-referenced according to this calibration.
markers - [DeviceCalibrationMarker!]! The markers associated with the calibration.
precomputeAt - DateTimeOffset The time the calibration was precomputed, if any.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "timestamp": "2025-01-01T00:00:00.000+00",
  "markers": [DeviceCalibrationMarker],
  "precomputeAt": "2025-01-01T00:00:00.000+00"
}

DeviceCalibrationMarker

Description

DeviceCalibrationMarker represents a reference point used in device calibration. Markers consist of a point in an image and their corresponding point in the real world.

Fields
Field Name Description
id - ID! The unique identifier of the calibration marker.
name - String! The name of the calibration marker.
position - GeoJSONPoint! The corresponding geographic position for the marker.
pixel - GeoJSONPoint! The corresponding point in the video for the marker.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "name": "xyz789",
  "position": GeoJSONPoint,
  "pixel": GeoJSONPoint
}

DeviceConnection

Description

A DeviceConnection is the paginated results of a devices query. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [DeviceEdge]! The resulting collection of Device edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [DeviceEdge]
}

DeviceEdge

Description

A device edge is the pairing of a Device with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - Device Information about a particular Device.
cursor - String! The cursor to use with the Query devices field after argument.
Example
{
  "node": Device,
  "cursor": "xyz789"
}

DeviceMessage

Description

A message containing a Device from a devices subscription.

Fields
Field Name Description
message - Device! The device.
state - DeviceMessageState! The state of the device message.
Example
{"message": Device, "state": "CREATE"}

DeviceMessageState

Description

Indicates the state of a message from a devices subscription.

Values
Enum Value Description

CREATE

A new device is created.

UPDATE

A device is updated.

HEARTBEAT

A device receives a new lastHeartbeat.
Example
"CREATE"

DevicesSort

Description

DevicesSort allows for sorting a devices query by field and direction.

Fields
Input Field Description
field - DevicesSortField! Any sortable field available to the DevicesSort. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

DevicesSortField

Description

Indicates the field used for sorting a Devices query.

Values
Enum Value Description

ID

Sort the resulting list in by its unique identifier.

NAME

Sort the resulting list by the device name.
Example
"ID"

EmbeddingOptionsInput

Fields
Input Field Description
regions - [GeoJSONMultiPolygonInput!] The model will only attempt to embed the image inside the specified multipolygons
Example
{"regions": [GeoJSONMultiPolygonInput]}

EmbeddingResponse

Fields
Field Name Description
results - [EmbeddingResult!]! The list of embeddings
Example
{"results": [EmbeddingResult]}

EmbeddingResult

Fields
Field Name Description
embedding - [Float!]! The embedding vector
regionIndex - Int The index of the region in the provided regions array that contains the embedding. Only applicable if regions was specified in the original query.
Example
{"embedding": [987.65], "regionIndex": 123}

Event

Description

An event represents a custom event, including its start time, location, and duration. For more details on event producers and events, see About EventProducers.

Fields
Field Name Description
id - ID! The unique identifier for the event.
eventProducer - EventProducer! The event producer that owns the event.
type - String! The type of the event, which should convey the broad category of the event.
subType - String The subtype of the event, if provided, which should provide more context on the category of the event.
startTime - DateTimeOffset! The time at which the event started.
endTime - DateTimeOffset The time at which the event ended. If not provided, the event is still ongoing.
position - GeoJSONPoint The GeoJSON point recorded with the event, if any.
timezone - String The timezone for the event, if provided.
metadata - JSON Additional metadata associated with the event. This may represent any JSON object structure.
images - [Image!]! The images that are associated with this event.
videos - [Video!]! The videos that are associated with this event. videos is deprecated. Use dataSourceClips instead.
dataSourceClips - [DataSourceClip!]! Video clips that are associated with this event.
properties - EventProperties Optional additional information associated with this event, including related data sources, sites, and tags.
draft - Boolean Indicate that the event is a draft. Defaults to false.
validation - EventValidation Optional information to validate the accuracy of the event.
priority - String Optional string to indicate the priority of an event.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "eventProducer": EventProducer,
  "type": "abc123",
  "subType": "abc123",
  "startTime": "2025-01-01T00:00:00.000+00",
  "endTime": "2025-01-01T00:00:00.000+00",
  "position": GeoJSONPoint,
  "timezone": "abc123",
  "metadata": {},
  "images": [Image],
  "videos": [Video],
  "dataSourceClips": [DataSourceClip],
  "properties": EventProperties,
  "draft": true,
  "validation": EventValidation,
  "priority": "abc123"
}

EventChronicle

Description

An event chronicle represents an occurrence at a single point at time.

Fields
Field Name Description
id - ID! The unique identifier for the event.
chronicleProducer - ChronicleProducer! The chronicle producer that created the event.
name - String! The name of the event
description - String A text description of the event.
timestamp - DateTimeOffset! The time at which the event occurred.
timezone - String The timezone for the event, if provided.
metadata - JSON Additional metadata associated with the event. This may represent any JSON object structure.
validation - ChronicleValidation Optional information to validate the accuracy of the event.
priority - String User-defined priority of the event.
status - String User-defined status of the event.
labels - [String!] Human-readable labels describing the event.
locations - [String!] Human-readable locations describing the event.
activityChronicles - [ActivityChronicle!]! Activity chronicles associated with the event.
createdAt - DateTimeOffset! Timestamp that the event was created.
updatedAt - DateTimeOffset! Timestamp that the event was most recently updated.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "chronicleProducer": ChronicleProducer,
  "name": "abc123",
  "description": "abc123",
  "timestamp": "2025-01-01T00:00:00.000+00",
  "timezone": "xyz789",
  "metadata": {},
  "validation": ChronicleValidation,
  "priority": "abc123",
  "status": "xyz789",
  "labels": ["abc123"],
  "locations": ["xyz789"],
  "activityChronicles": [ActivityChronicle],
  "createdAt": "2025-01-01T00:00:00.000+00",
  "updatedAt": "2025-01-01T00:00:00.000+00"
}

EventChronicleConnection

Description

An EventConnection is the paginated results of an events query. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
edges - [EventChronicleEdge!]! Pagination information for the resulting edges.
pageInfo - PageInfo! The resulting collection of event edges.
Example
{
  "edges": [EventChronicleEdge],
  "pageInfo": PageInfo
}

EventChronicleEdge

Description

An event edge is the pairing of an Event with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - EventChronicle! Information about a particular Event.
cursor - String! The cursor to use with the Query events field after argument.
Example
{
  "node": EventChronicle,
  "cursor": "abc123"
}

EventChronicleSort

Description

Indicates the field used for sorting an eventProducers query.

Fields
Input Field Description
field - EventChronicleSortField! Any sortable field available to the EventProducersSortField. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

EventChronicleSortField

Description

Indicates the field used for sorting an events query.

Values
Enum Value Description

ID

Sort the resulting list by the eventChronicle's unique identifier.

TIMESTAMP

Sort the resulting list by the eventChronicle's timestamp.

NAME

Sort the resulting list by the eventChronicle's name.

PRIORITY

Sort the resulting list by the eventChronicle's priority.

STATUS

Sort the resulting list by the eventChronicle's status.
Example
"ID"

EventConnection

Description

An EventConnection is the paginated results of an events query. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [EventEdge]! The resulting collection of event edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [EventEdge]
}

EventEdge

Description

An event edge is the pairing of an Event with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - Event Information about a particular Event.
cursor - String! The cursor to use with the Query events field after argument.
Example
{
  "node": Event,
  "cursor": "xyz789"
}

EventProducer

Description

An event producer represents a custom process that detects and records events. Events created by an event producer can represent a wide variety of time-based activities to be used by your application's specific needs that aren't expressed natively through detections and geofences. For instance, an event producer could track detections of hazards and people, creating an event for each case where a person was too close to a hazard without personal protective equipment.

Fields
Field Name Description
id - ID! The unique identifier for the event producer.
name - String! The name of the event producer.
description - String The text description of the event producer, if provided.
timezone - String The timezone for the event producer, if provided.
active - Boolean! True if the event producer is currently active, otherwise false.
invalidReasons - [String!]! A list of invalid reasons currently used by the event producer.
metadata - JSON Arbitrary information about the event producer.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "name": "xyz789",
  "description": "abc123",
  "timezone": "xyz789",
  "active": true,
  "invalidReasons": ["xyz789"],
  "metadata": {}
}

EventProducerConnection

Description

An EventProducerConnection is the paginated results of an eventProducers query. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [EventProducerEdge]! The resulting collection of event producer edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [EventProducerEdge]
}

EventProducerEdge

Description

An event producer edge is the pairing of an EventProducer with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - EventProducer Information about a particular EventProducer.
cursor - String! The cursor to use with the Query eventProducers field after argument.
Example
{
  "node": EventProducer,
  "cursor": "xyz789"
}

EventProducerInput

Description

This input type is used to create a new custom EventProducer. See About EventProducers for more details.

Fields
Input Field Description
id - ID
name - String! The name of the event producer.
description - String The text description of the event producer.
timezone - String The timezone for the event producer.
active - Boolean True if the event producer should be active by default, otherwise false.
metadata - JSON Arbitrary information about the event producer.
Example
{
  "id": 4,
  "name": "xyz789",
  "description": "xyz789",
  "timezone": "abc123",
  "active": true,
  "metadata": {}
}

EventProducersSort

Description

EventProducersSort allows for sorting an event producer by a sort field and direction.

Fields
Input Field Description
field - EventProducersSortField! Any sortable field available to the EventProducersSortField. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

EventProducersSortField

Description

Indicates the field used for sorting an eventProducers query.

Values
Enum Value Description

ID

Sort the resulting list by the EventProducer's unique identifier.

EVENT_PRODUCER_NAME

Sort the resulting list by the EventProducer's name.
Example
"ID"

EventProperties

Description

Event Properties contain additional details and related information for an event. For more details on event producers and events, see About EventProducers.

Fields
Field Name Description
tracks - [Track!] The tracks associated with the event.
sites - [Site!] The sites associated with the event.
dataSources - [DataSource!] The data sources associated with the event.
tags - [Tag!] The tag labels of detections associated with the event.
pointsOfInterest - [PointOfInterest!] The points of interest associated with the event.
Example
{
  "tracks": [Track],
  "sites": [Site],
  "dataSources": [DataSource],
  "tags": [Tag],
  "pointsOfInterest": [PointOfInterest]
}

EventPropertiesInput

Description

This input type contains additional details and related information for an event. For more details on event producers and events, see About EventProducers.

Fields
Input Field Description
siteIds - [ID!] The unique identifiers for the sites associated with the event.
dataSourceIds - [ID!] The unique identifiers for the data sources associated with the event.
tags - [String!] The tag labels of detections associated with the event.
pointOfInterestIds - [ID!] The points of interest associated with the event.
Example
{
  "siteIds": ["4"],
  "dataSourceIds": [4],
  "tags": ["abc123"],
  "pointOfInterestIds": ["4"]
}

EventValidation

Description

This type indicates whether an event is valid and contains additional information about the validation.

Fields
Field Name Description
status - EventValidationStatus! Whether the event is VALID or INVALID.
reason - String The reason for the event's validation status. Required if the status is INVALID.
details - String Optional details for the event's validation status.
Example
{
  "status": "VALID",
  "reason": "xyz789",
  "details": "abc123"
}

EventValidationInput

Description

This input type indicates whether an event is valid and contains additional information about the validation.

Fields
Input Field Description
status - EventValidationStatus! Whether the event is VALID or INVALID.
reason - String The reason for the event's validation status. Required if the status is INVALID.
details - String Additional details for the event's validation status.
Example
{
  "status": "VALID",
  "reason": "xyz789",
  "details": "xyz789"
}

EventValidationStatus

Description

Used in EventValidationInput to indicate whether an event is VALID or INVALID.

Values
Enum Value Description

VALID

The event is valid.

INVALID

The event is invalid.
Example
"VALID"

EventsSort

Description

EventsSort allows for sorting an event by a sort field and direction.

Fields
Input Field Description
field - EventsSortField! Any sortable field available to the EventsSortField. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

EventsSortField

Description

Indicates the field used for sorting an events query.

Values
Enum Value Description

ID

Sort the resulting list by the Event's unique identifier.

START_TIME

Sort the resulting list by the Event's start time.
Example
"ID"

EventsSummary

Fields
Field Name Description
total - Int! The total number of Events within the time range.
buckets - [EventsSummaryBucket!] A detailed summary of each bucket within the time range. Summary buckets are only returned if bucket is provided as a query parameter to eventsSummary.
Example
{"total": 987, "buckets": [EventsSummaryBucket]}

EventsSummaryBucket

Fields
Field Name Description
time - DateTimeOffset! The start time of the bucket.
total - Int! The total number of Events within the bucket.
Example
{"time": "2025-01-01T00:00:00.000+00", "total": 987}

FilterActivityChronicleInput

Description

FilterActivityChronicleInput filters ActivityChronicles based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the id of the ActivityChronicle.
name - FilterStringInput If provided, specifies filters that work against the name of the ActivityChronicle.
startTime - FilterDateTimeOffsetInput If provided, specifies filters that work against the startTime of the ActivityChronicle.
endTime - FilterDateTimeOffsetInput If provided, specifies filters that work against the endTime of the ActivityChronicle.
timezone - FilterStringInput If provided, specifies filters that work against the timezone of the ActivityChronicle.
priority - FilterStringInput If provided, specifies filters that work against the priority of the ActivityChronicle.
status - FilterStringInput If provided, specifies filters that work against the status of the ActivityChronicle.
validation - FilterChronicleValidationStatusInput If provided, specifies filters that work against the validation of the ActivityChronicle.
labels - FilterStringListInput If provided, specifies filters that work against the labels of the ActivityChronicle.
locations - FilterStringListInput If provided, specifies filters that work against the locations of the ActivityChronicle.
chronicleProducerId - FilterIDInput If provided, specifies filters that work against the chronicleProducer ID of the ActivityChronicle.
tagIds - FilterIDListInput If provided, specifies filters that work against the tags IDs of the ActivityChronicle.
siteIds - FilterIDListInput If provided, specifies filters that work against the sites IDs of the ActivityChronicle.
dataSourceIds - FilterIDListInput If provided, specifies filters that work against the dataSources IDs of the ActivityChronicle.
pointOfInterestIds - FilterIDListInput If provided, specifies filters that work against the pointsOfInterest IDs of the ActivityChronicle.
and - [FilterActivityChronicleInput!] If provided, an activity must pass all filters in this list to match the current filter.
or - [FilterActivityChronicleInput!] If provided, an activity must pass at least one of the filters in this list to match the current filter.
not - FilterActivityChronicleInput If provided, an activity may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "name": FilterStringInput,
  "startTime": FilterDateTimeOffsetInput,
  "endTime": FilterDateTimeOffsetInput,
  "timezone": FilterStringInput,
  "priority": FilterStringInput,
  "status": FilterStringInput,
  "validation": FilterChronicleValidationStatusInput,
  "labels": FilterStringListInput,
  "locations": FilterStringListInput,
  "chronicleProducerId": FilterIDInput,
  "tagIds": FilterIDListInput,
  "siteIds": FilterIDListInput,
  "dataSourceIds": FilterIDListInput,
  "pointOfInterestIds": FilterIDListInput,
  "and": [FilterActivityChronicleInput],
  "or": [FilterActivityChronicleInput],
  "not": FilterActivityChronicleInput
}

FilterActivityChronicleInputSubscription

Description

FilterActivityChronicleInput filters ActivityChronicles based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the id of the ActivityChronicle.
name - FilterStringInput If provided, specifies filters that work against the name of the ActivityChronicle.
startTime - FilterDateTimeOffsetInput If provided, specifies filters that work against the startTime of the ActivityChronicle.
endTime - FilterDateTimeOffsetInput If provided, specifies filters that work against the endTime of the ActivityChronicle.
timezone - FilterStringInput If provided, specifies filters that work against the timezone of the ActivityChronicle.
priority - FilterStringInput If provided, specifies filters that work against the priority of the ActivityChronicle.
status - FilterStringInput If provided, specifies filters that work against the status of the ActivityChronicle.
validation - FilterStringInput If provided, specifies filters that work against the validation of the ActivityChronicle.
labels - FilterStringListInput If provided, specifies filters that work against the labels of the ActivityChronicle.
locations - FilterStringListInput If provided, specifies filters that work against the locations of the ActivityChronicle.
chronicleProducerId - FilterIDInput If provided, specifies filters that work against the chronicleProducer ID of the ActivityChronicle.
tagIds - FilterIDListInput If provided, specifies filters that work against the tag IDs of the ActivityChronicle.
siteIds - FilterIDListInput If provided, specifies filters that work against the site IDs of the ActivityChronicle.
dataSourceIds - FilterIDListInput If provided, specifies filters that work against the dataSource IDs of the ActivityChronicle.
pointOfInterestIds - FilterIDListInput If provided, specifies filters that work against the pointOfInterest IDs of the ActivityChronicle.
and - [FilterActivityChronicleInputSubscription!] If provided, an activity must pass all filters in this list to match the current filter.
or - [FilterActivityChronicleInputSubscription!] If provided, an activity must pass at least one of the filters in this list to match the current filter.
not - FilterActivityChronicleInputSubscription If provided, an activity may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "name": FilterStringInput,
  "startTime": FilterDateTimeOffsetInput,
  "endTime": FilterDateTimeOffsetInput,
  "timezone": FilterStringInput,
  "priority": FilterStringInput,
  "status": FilterStringInput,
  "validation": FilterStringInput,
  "labels": FilterStringListInput,
  "locations": FilterStringListInput,
  "chronicleProducerId": FilterIDInput,
  "tagIds": FilterIDListInput,
  "siteIds": FilterIDListInput,
  "dataSourceIds": FilterIDListInput,
  "pointOfInterestIds": FilterIDListInput,
  "and": [FilterActivityChronicleInputSubscription],
  "or": [FilterActivityChronicleInputSubscription],
  "not": FilterActivityChronicleInputSubscription
}

FilterBooleanInput

Description

FilterBooleanInput allows for filtering based on a Boolean parameter. Only one field should be provided per filter object.

Fields
Input Field Description
eq - Boolean If provided, the Boolean input must be the same as the value provided to match the current filter.
ne - Boolean If provided, the Boolean input must not be the same as the value provided to match the current filter.
attributeExists - Boolean If provided and true, the filter will pass only if there is a Boolean in the corresponding field. If provided and false, the filter will pass only if there is not a Boolean in the corresponding field.
Example
{"eq": false, "ne": false, "attributeExists": false}

FilterChronicleProducerInput

Description

FilterChronicleProducerInput filters ChronicleProducer based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the ChronicleProducer's unique id.
name - FilterStringInput If provided, specifies filters that work against the ChronicleProducer's name.
active - FilterBooleanInput If provided, specifies filters that work against the ChronicleProducer's active status.
and - [FilterChronicleProducerInput!] If provided, an chronicle producer must pass all filters in this list to match the current filter.
or - [FilterChronicleProducerInput!] If provided, an chronicle producer must pass at least one of the filters in this list to match the current filter.
not - FilterChronicleProducerInput If provided, an chronicle producer may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "name": FilterStringInput,
  "active": FilterBooleanInput,
  "and": [FilterChronicleProducerInput],
  "or": [FilterChronicleProducerInput],
  "not": FilterChronicleProducerInput
}

FilterChronicleValidationStatusInput

Description

FilterChronicleValidationStatusInput allows for filtering based on an chronicle's validation status. Only one field should be provided per filter object.

Fields
Input Field Description
eq - ChronicleValidationStatus If provided, the chronicle's validation status must be equivalent to the value provided to match the current filter.
ne - ChronicleValidationStatus If provided, the chronicle's validation status must not be equivalent to the value provided to match the current filter.
in - [ChronicleValidationStatus!] If provided, the chronicle's validation status must be present in the value provided to match the current filter.
attributeExists - Boolean If provided and true, the filter will pass only if the chronicle has a validation status. If provided and false, the filter will pass only if there is no validation status.
Example
{"eq": "VALID", "ne": "VALID", "in": ["VALID"], "attributeExists": true}

FilterDataSourceInput

Description

FilterDataSourceInput filters DataSources based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
type - FilterStringInput If provided, specifies filters that work against the dataSource's type. The type of the data source
position - FilterPointInput If provided, specifies filters that work against the position of the data source's device.
id - FilterIDInput If provided, specifies filters that work against the [data source`](#definition-datasource)'s unique id.
name - FilterStringInput If provided, specifies filters that work against the [data source`](#definition-datasource)'s name.
labels - FilterStringListInput If provided, specifies filters that work against the labels of the DataSource.
and - [FilterDataSourceInput!] If provided, a data source must pass all filters in this list to match the current filter.
or - [FilterDataSourceInput!] If provided, a data source must pass at least one of the filters in this list to match the current filter.
not - FilterDataSourceInput If provided, a data source may not match this filter to match the current filter.
Example
{
  "type": FilterStringInput,
  "position": FilterPointInput,
  "id": FilterIDInput,
  "name": FilterStringInput,
  "labels": FilterStringListInput,
  "and": [FilterDataSourceInput],
  "or": [FilterDataSourceInput],
  "not": FilterDataSourceInput
}

FilterDateTimeOffsetInput

Description

FilterDateTimeOffsetInput allows for filtering based on a DateTimeOffset parameter. Only one field should be provided per filter object.

Fields
Input Field Description
eq - DateTimeOffset If provided, the DateTimeOffset input must be the same as the value provided to match the current filter.
between - [DateTimeOffset!] If provided, the DateTimeOffset input must be between the two values provided to match the current filter.
attributeExists - Boolean If provided and true, the filter will pass only if there is a DateTimeOffset in the corresponding field. If provided and false, the filter will pass only if there is not a DateTimeOffset in the corresponding field.
Example
{
  "eq": DateTimeOffset,
  "between": [DateTimeOffset],
  "attributeExists": false
}

FilterDetectionActivityInput

Description

FilterDetectionActivityInput allows for filtering a detection activity based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
dataSourceId - FilterIDInput If provided, specifies filters that work against the unique id of the data source that initiated the detection activity.
zoneId - FilterIDInput If provided, specifies filters that work against the unique id of the zone in which a zone event was triggered by the detection.
geofenceId - FilterIDInput If provided, specifies filters that work against the unique id of the geofence in which a geofence event was triggered by the detection.
tag - FilterStringInput If provided, specifies case-insensitive filters that work against the tag associated with the detection activity.
position - FilterPointInput If provided, specifies filters that work against the position of the detection
and - [FilterDetectionActivityInput!] If provided, a detection activity must pass all filters in this list to match the current filter.
or - [FilterDetectionActivityInput!] If provided, a detection activity must pass at least one of the filters in this list to match the current filter.
not - FilterDetectionActivityInput If provided, a detection activity may not match this filter to match the current filter.
Example
{
  "dataSourceId": FilterIDInput,
  "zoneId": FilterIDInput,
  "geofenceId": FilterIDInput,
  "tag": FilterStringInput,
  "position": FilterPointInput,
  "and": [FilterDetectionActivityInput],
  "or": [FilterDetectionActivityInput],
  "not": FilterDetectionActivityInput
}

FilterDetectionInput

Description

FilterDetectionInput allows for filtering a detection based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below

Fields
Input Field Description
dataSourceId - FilterIDInput If provided, specifies filters that work against the unique id of the data source](#definition-datasource) that initiated the detection.
trackId - FilterIDInput If provided, specifies filters that work against the unique id of the detection's track.
zoneId - FilterIDInput If provided, specifies filters that work against the unique id of the zone in which a zone event was triggered by the detection.
geofenceId - FilterIDInput If provided, specifies filters that work against the unique id of the geofence in which a geofence event was triggered by the detection.
tag - FilterStringInput If provided, specifies case-insensitive filters that work against the tag associated with the detection.
time - FilterDateTimeOffsetInput! If provided, specifies filters that work against the timestamp associated with the detection.
position - FilterPointInput If provided, specifies filters that work against the position of the detection
and - [FilterDetectionInput!] If provided, a detection must pass all filters in this list to match the current filter.
or - [FilterDetectionInput!] If provided, a detection must pass at least one of the filters in this list to match the current filter.
not - FilterDetectionInput If provided, a detection may not match this filter to match the current filter.
Example
{
  "dataSourceId": FilterIDInput,
  "trackId": FilterIDInput,
  "zoneId": FilterIDInput,
  "geofenceId": FilterIDInput,
  "tag": FilterStringInput,
  "time": FilterDateTimeOffsetInput,
  "position": FilterPointInput,
  "and": [FilterDetectionInput],
  "or": [FilterDetectionInput],
  "not": FilterDetectionInput
}

FilterDeviceInput

Description

FilterDeviceInput allows for filtering devices based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the id of a device.
uuid - FilterIDInput If provided, specifies filters that work against the uuid of a device.
name - FilterStringInput If provided, specifies filters that work against the name of a device.
externalId - FilterStringInput If provided, specifies filters that work against the externalId of a device.
address - FilterStringInput If provided, specifies filters that work against the address of a device.
enabled - FilterBooleanInput If provided, specified filters that work against the enabled status of a device.
and - [FilterDeviceInput!] If provided, a device must pass all filters in this list to match the current filter.
or - [FilterDeviceInput!] If provided, a device must pass at least one of the filters in this list to match the current filter.
not - FilterDeviceInput If provided, a device may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "uuid": FilterIDInput,
  "name": FilterStringInput,
  "externalId": FilterStringInput,
  "address": FilterStringInput,
  "enabled": FilterBooleanInput,
  "and": [FilterDeviceInput],
  "or": [FilterDeviceInput],
  "not": FilterDeviceInput
}

FilterDeviceMessageInput

Description

FilterDeviceMessageInput allows for filtering device messages based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the id of a device.
uuid - FilterIDInput If provided, specifies filters that work against the uuid of a device.
name - FilterStringInput If provided, specifies filters that work against the name of a device.
externalId - FilterStringInput If provided, specifies filters that work against the externalId of a device.
address - FilterStringInput If provided, specifies filters that work against the address of a device.
enabled - FilterBooleanInput If provided, specified filters that work against the enabled status of a device.
state - FilterDeviceMessageStateInput If provided, specified filters that work against the state of the DeviceMessage.
and - [FilterDeviceMessageInput!] If provided, a device must pass all filters in this list to match the current filter.
or - [FilterDeviceMessageInput!] If provided, a device must pass at least one of the filters in this list to match the current filter.
not - FilterDeviceMessageInput If provided, a device may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "uuid": FilterIDInput,
  "name": FilterStringInput,
  "externalId": FilterStringInput,
  "address": FilterStringInput,
  "enabled": FilterBooleanInput,
  "state": FilterDeviceMessageStateInput,
  "and": [FilterDeviceMessageInput],
  "or": [FilterDeviceMessageInput],
  "not": FilterDeviceMessageInput
}

FilterDeviceMessageStateInput

Description

FilterDeviceMessageStateInput allows for filtering based on a DeviceMessageState parameter. Only one field should be provided per filter object. Note that the UPDATE state alone will not include CREATE and HEARTBEAT messages.

Fields
Input Field Description
eq - DeviceMessageState If provided, the DeviceMessageState must be equal to the value provided to match the current filter.
ne - DeviceMessageState If provided, the DeviceMessageState must not be equal to the value provided to match the current filter.
in - [DeviceMessageState!] If provided, the DeviceMessageState must be present in the list provided to match the current filter.
Example
{"eq": "CREATE", "ne": "CREATE", "in": ["CREATE"]}

FilterEventActivityInput

Description

FilterEventActivityInput filters events based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
eventProducerId - FilterIDInput If provided, specifies filters that work against the EventProducer's unique id of the event producer owning the event.
type - FilterStringInput If provided, specifies filters that work against the type of the Event.
subType - FilterStringInput If provided, specifies filters that work against the subType of the Event.
draft - FilterBooleanInput If provided, specifies filters that work against the draft status of the Event.
priority - FilterStringInput If provided, specifies filters that work against the priority of the Event.
and - [FilterEventActivityInput!] If provided, an event must pass all filters in this list to match the current filter.
or - [FilterEventActivityInput!] If provided, an event must pass at least one of the filters in this list to match the current filter.
not - FilterEventActivityInput If provided, an event may not match this filter to match the current filter.
Example
{
  "eventProducerId": FilterIDInput,
  "type": FilterStringInput,
  "subType": FilterStringInput,
  "draft": FilterBooleanInput,
  "priority": FilterStringInput,
  "and": [FilterEventActivityInput],
  "or": [FilterEventActivityInput],
  "not": FilterEventActivityInput
}

FilterEventChronicleInput

Description

FilterEventChronicleInput filters EventChronicles based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the id of the EventChronicle.
name - FilterStringInput If provided, specifies filters that work against the name of the EventChronicle.
chronicleProducerId - FilterIDInput If provided, specifies filters that work against the chronicleProducer ID of the EventChronicle.
timestamp - FilterDateTimeOffsetInput If provided, specifies filters that work against the timestamp of the EventChronicle.
timezone - FilterStringInput If provided, specifies filters that work against the timezone of the EventChronicle.
priority - FilterStringInput If provided, specifies filters that work against the priority of the EventChronicle.
status - FilterStringInput If provided, specifies filters that work against the status of the EventChronicle.
validation - FilterChronicleValidationStatusInput If provided, specifies filters that work against the validation of the EventChronicle.
labels - FilterStringListInput If provided, specifies filters that work against the labels of the EventChronicle.
locations - FilterStringListInput If provided, specifies filters that work against the locations of the EventChronicle.
activityChronicleIds - FilterIDListInput If provided, specifies filters that work against the activityChronicles IDs of the EventChronicle.
and - [FilterEventChronicleInput!] If provided, an event must pass all filters in this list to match the current filter.
or - [FilterEventChronicleInput!] If provided, an event must pass at least one of the filters in this list to match the current filter.
not - FilterEventChronicleInput If provided, an event may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "name": FilterStringInput,
  "chronicleProducerId": FilterIDInput,
  "timestamp": FilterDateTimeOffsetInput,
  "timezone": FilterStringInput,
  "priority": FilterStringInput,
  "status": FilterStringInput,
  "validation": FilterChronicleValidationStatusInput,
  "labels": FilterStringListInput,
  "locations": FilterStringListInput,
  "activityChronicleIds": FilterIDListInput,
  "and": [FilterEventChronicleInput],
  "or": [FilterEventChronicleInput],
  "not": FilterEventChronicleInput
}

FilterEventChronicleInputSubscription

Description

FilterEventChronicleInput filters EventChronicles based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the id of the EventChronicle.
name - FilterStringInput If provided, specifies filters that work against the name of the EventChronicle.
chronicleProducerId - FilterIDInput If provided, specifies filters that work against the chronicleProducer ID of the EventChronicle.
timestamp - FilterDateTimeOffsetInput If provided, specifies filters that work against the timestamp of the EventChronicle.
timezone - FilterStringInput If provided, specifies filters that work against the timezone of the EventChronicle.
priority - FilterStringInput If provided, specifies filters that work against the priority of the EventChronicle.
status - FilterStringInput If provided, specifies filters that work against the status of the EventChronicle.
validation - FilterStringInput If provided, specifies filters that work against the validation of the EventChronicle.
labels - FilterStringListInput If provided, specifies filters that work against the labels of the EventChronicle.
locations - FilterStringListInput If provided, specifies filters that work against the locations of the EventChronicle.
and - [FilterEventChronicleInputSubscription!] If provided, specifies filters that work against the activityChronicle IDs of the EventChronicle.
or - [FilterEventChronicleInputSubscription!] If provided, an event must pass all filters in this list to match the current filter.
not - FilterEventChronicleInputSubscription If provided, an event must pass at least one of the filters in this list to match the current filter.
Example
{
  "id": FilterIDInput,
  "name": FilterStringInput,
  "chronicleProducerId": FilterIDInput,
  "timestamp": FilterDateTimeOffsetInput,
  "timezone": FilterStringInput,
  "priority": FilterStringInput,
  "status": FilterStringInput,
  "validation": FilterStringInput,
  "labels": FilterStringListInput,
  "locations": FilterStringListInput,
  "and": [FilterEventChronicleInputSubscription],
  "or": [FilterEventChronicleInputSubscription],
  "not": FilterEventChronicleInputSubscription
}

FilterEventInput

Description

FilterEventInput filters events based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
eventProducerId - FilterIDInput If provided, specifies filters that work against the EventProducer's unique id of the event producer owning the event.
type - FilterStringInput If provided, specifies filters that work against the type of the Event.
subType - FilterStringInput If provided, specifies filters that work against the subType of the Event.
time - FilterDateTimeOffsetInput! If provided, specifies filters that work against the time of the Event.
draft - FilterBooleanInput If provided, specifies filters that work against the draft status of the Event.
priority - FilterStringInput If provided, specifies filters that work against the priority of the Event.
validation - FilterEventValidationStatusInput If provided, specifies filters that work against the validation status of the Event.
and - [FilterEventInput!] If provided, an event must pass all filters in this list to match the current filter.
or - [FilterEventInput!] If provided, an event must pass at least one of the filters in this list to match the current filter.
not - FilterEventInput If provided, an event may not match this filter to match the current filter.
Example
{
  "eventProducerId": FilterIDInput,
  "type": FilterStringInput,
  "subType": FilterStringInput,
  "time": FilterDateTimeOffsetInput,
  "draft": FilterBooleanInput,
  "priority": FilterStringInput,
  "validation": FilterEventValidationStatusInput,
  "and": [FilterEventInput],
  "or": [FilterEventInput],
  "not": FilterEventInput
}

FilterEventProducerInput

Description

FilterEventProducerInput filters EventProducers based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the EventProducer's unique id.
name - FilterStringInput If provided, specifies filters that work against the EventProducer's name.
and - [FilterEventProducerInput!] If provided, an event producer must pass all filters in this list to match the current filter.
or - [FilterEventProducerInput!] If provided, an event producer must pass at least one of the filters in this list to match the current filter.
not - FilterEventProducerInput If provided, an event producer may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "name": FilterStringInput,
  "and": [FilterEventProducerInput],
  "or": [FilterEventProducerInput],
  "not": FilterEventProducerInput
}

FilterEventValidationStatusInput

Description

FilterEventValidationStatusInput allows for filtering based on an event's validation status. Only one field should be provided per filter object.

Fields
Input Field Description
eq - EventValidationStatus If provided, the event's validation status must be equivalent to the value provided to match the current filter.
ne - EventValidationStatus If provided, the event's validation status must not be equivalent to the value provided to match the current filter.
in - [EventValidationStatus!] If provided, the event's validation status must be present in the value provided to match the current filter.
attributeExists - Boolean If provided and true, the filter will pass only if the event has a validation status. If provided and false, the filter will pass only if there is no validation status.
Example
{"eq": "VALID", "ne": "VALID", "in": ["VALID"], "attributeExists": true}

FilterGeofenceEventInput

Description

FilterGeofenceEventInput allows for filtering a geofence event based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below

Fields
Input Field Description
geofenceId - FilterIDInput If provided, specifies filters that work against the unique id of a geofence.
time - FilterDateTimeOffsetInput! If provided, specifies filters that work against the timestamp associated with the geofence event.
and - [FilterGeofenceEventInput!] If provided, a geofence event must pass all filters in this list to match the current filter.
or - [FilterGeofenceEventInput!] If provided, a geofence event must pass at least one of the filters in this list to match the current filter.
not - FilterGeofenceEventInput If provided, a geofence event may not match this filter to match the current filter.
Example
{
  "geofenceId": FilterIDInput,
  "time": FilterDateTimeOffsetInput,
  "and": [FilterGeofenceEventInput],
  "or": [FilterGeofenceEventInput],
  "not": FilterGeofenceEventInput
}

FilterGeofenceInput

Description

FilterGeofenceInput allows for filtering a geofence based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the unique id of the geofence.
name - FilterStringInput If provided, specifies filters that work against the name of the geofence.
active - FilterBooleanInput If provided, specifies filters that work against the active state of the geofence.
and - [FilterGeofenceInput!] If provided, a geofence must pass all filters in this list to match the current filter.
or - [FilterGeofenceInput!] If provided, a geofence must pass at least one of the filters in this list to match the current filter.
not - FilterGeofenceInput If provided, a geofence may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "name": FilterStringInput,
  "active": FilterBooleanInput,
  "and": [FilterGeofenceInput],
  "or": [FilterGeofenceInput],
  "not": FilterGeofenceInput
}

FilterGeofenceIntersectionInput

Description

FilterGeofenceIntersectionInput allows for filtering a geofence intersection based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below

Fields
Input Field Description
geofenceId - FilterIDInput If provided, specifies filters that work against the unique id of a geofence.
time - FilterDateTimeOffsetInput! Specifies filters that work against the startTime associated with the geofence intersection.
and - [FilterGeofenceIntersectionInput!] If provided, a geofence intersection must pass all filters in this list to match the current filter.
or - [FilterGeofenceIntersectionInput!] If provided, a geofence intersection must pass at least one of the filters in this list to match the current filter.
not - FilterGeofenceIntersectionInput If provided, a geofence intersection may not match this filter to match the current filter.
Example
{
  "geofenceId": FilterIDInput,
  "time": FilterDateTimeOffsetInput,
  "and": [FilterGeofenceIntersectionInput],
  "or": [FilterGeofenceIntersectionInput],
  "not": FilterGeofenceIntersectionInput
}

FilterGeofenceIntersectionMessageInput

Description

FilterGeofenceIntersectionMessageInput allows for filtering a geofence intersection subscription based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
geofenceId - FilterIDInput If provided, specifies filters that work against the unique id of the geofence collided with.
tag - FilterStringInput If provided, specifies case-insensitive filters that work against the tag associated with the geofence intersection's track.
dataSourceId - FilterIDInput Specifies filters that work against the dataSource associated with the geofence intersection's track.
state - FilterMessageStateInput Specifies filters that work against the state of the geofence intersection message.
and - [FilterGeofenceIntersectionMessageInput!] If provided, a detection activity must pass all filters in this list to match the current filter.
or - [FilterGeofenceIntersectionMessageInput!] If provided, a detection activity must pass at least one of the filters in this list to match the current filter.
not - FilterGeofenceIntersectionMessageInput If provided, a detection activity may not match this filter to match the current filter.
Example
{
  "geofenceId": FilterIDInput,
  "tag": FilterStringInput,
  "dataSourceId": FilterIDInput,
  "state": FilterMessageStateInput,
  "and": [FilterGeofenceIntersectionMessageInput],
  "or": [FilterGeofenceIntersectionMessageInput],
  "not": FilterGeofenceIntersectionMessageInput
}

FilterIDInput

Description

FilterIDInput allows for filtering based on an ID parameter. Only one field should be provided per filter object.

Fields
Input Field Description
ne - ID If provided, the ID input must not be equivalent to the value provided to match the current filter.
eq - ID If provided, the ID input must be equivalent to the value provided to match the current filter.
in - [ID!] If provided, the ID input must be present in the value provided to match the current filter.
Example
{"ne": 4, "eq": 4, "in": ["4"]}

FilterIDListInput

Fields
Input Field Description
eq - [ID!]
in - [ID!]
Example
{"eq": ["4"], "in": [4]}

FilterMeasurementActivityInput

Description

FilterMeasurementActivityInput allows for filtering measurement activity based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below

Fields
Input Field Description
sensorId - FilterIDInput If provided, specifies filters that work against the unique id of the sensor that created a measurement.
and - [FilterMeasurementActivityInput!] If provided, a detection activity must pass all filters in this list to match the current filter.
or - [FilterMeasurementActivityInput!] If provided, a detection activity must pass at least one of the filters in this list to match the current filter.
not - FilterMeasurementActivityInput If provided, a detection activity may not match this filter to match the current filter.
Example
{
  "sensorId": FilterIDInput,
  "and": [FilterMeasurementActivityInput],
  "or": [FilterMeasurementActivityInput],
  "not": FilterMeasurementActivityInput
}

FilterMeasurementInput

Description

FilterMeasurementInput allows for filtering measurement of a sensor on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below

Fields
Input Field Description
sensorId - FilterIDInput If provided, specifies filters that work against the unique id of the sensor that created a measurement.
time - FilterDateTimeOffsetInput! If provided, specifies filters that work against the timestamp associated with the sensor measurement.
and - [FilterMeasurementInput!] If provided, a measurement must pass all filters in this list to match the current filter.
or - [FilterMeasurementInput!] If provided, a measurement must pass at least one of the filters in this list to match the current filter.
not - FilterMeasurementInput If provided, a measurement may not match this filter to match the current filter.
Example
{
  "sensorId": FilterIDInput,
  "time": FilterDateTimeOffsetInput,
  "and": [FilterMeasurementInput],
  "or": [FilterMeasurementInput],
  "not": FilterMeasurementInput
}

FilterMessageStateInput

Description

FilterMessageStateInput allows for filtering based on a MessageState parameter. Only one field should be provided per filter object. Note that the UPDATE state will exclude START and END messages.

Fields
Input Field Description
eq - MessageState If provided, the MessageState must be equal to the value provided to match the current filter.
ne - MessageState If provided, the MessageState must not be equal to the value provided to match the current filter.
in - [MessageState!] If provided, the MessageState must be present in the list provided to match the current filter.
Example
{"eq": "START", "ne": "START", "in": ["START"]}

FilterPointInput

Description

FilterPoinInput is used to filter records by their positional values

Fields
Input Field Description
in - GeoJSONPolygonInput If provided, returns records with positions that are inside the specified polygon
near - FilterPointNearInput If provided, returns records that are near the record according to the input
attributeExists - Boolean If provided and true, the filter will pass only if there is a position in the corresponding field. If provided and false, the filter will pass only if there is not a position in the corresponding field.
Example
{
  "in": GeoJSONPolygonInput,
  "near": FilterPointNearInput,
  "attributeExists": true
}

FilterPointNearInput

Description

FilterPointNearInput is used to filter records with positional arguments by proximity to the specified point

Fields
Input Field Description
point - GeoJSONPointInput! The point from which the distance is being checked
radius - Float! The maximum distance that the record can be from the point. Default = 500
Example
{"point": GeoJSONPointInput, "radius": 987.65}

FilterPointOfInterestInput

Description

FilterPointOfInterestInput allows for filtering points of interest based on criteria described below. Only one field should be provided per Filter object unless an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the unique id of a point of interest.
siteId - FilterIDInput If provided, specifies filters that work against the unique id of the site the point of interest is associated with.
name - FilterStringInput If provided, specifies filters that work against the name of a point of interest.
and - [FilterPointOfInterestInput!] If provided, a point of interest must pass all filters in this list to match the current filter.
or - [FilterPointOfInterestInput!] If provided, a point of interest must pass at least one of the filters in this list to match the current filter.
not - FilterPointOfInterestInput If provided, a point of interest may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "siteId": FilterIDInput,
  "name": FilterStringInput,
  "and": [FilterPointOfInterestInput],
  "or": [FilterPointOfInterestInput],
  "not": FilterPointOfInterestInput
}

FilterSensorInput

Description

FilterSensorInput filters sensors based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the Sensor's unique id.
name - FilterStringInput If provided, specifies filters that work against the Sensor's name.
type - FilterStringInput If provided, specifies filters that work against the Sensor's type.
position - FilterPointInput If provided, specifies filters that work against the Sensor's position.
and - [FilterSensorInput!] If provided, a sensor must pass all filters in this list to match the current filter.
or - [FilterSensorInput!] If provided, a sensor must pass at least one of the filters in this list to match the current filter.
not - FilterSensorInput If provided, a sensor may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "name": FilterStringInput,
  "type": FilterStringInput,
  "position": FilterPointInput,
  "and": [FilterSensorInput],
  "or": [FilterSensorInput],
  "not": FilterSensorInput
}

FilterSiteInput

Description

FilterSiteInput filters sites based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the Site's unique id.
name - FilterStringInput If provided, specifies filters that work against the Site's name.
and - [FilterSiteInput!] If provided, a site must pass all filters in this list to match the current filter.
or - [FilterSiteInput!] If provided, a site must pass at least one of the filters in this list to match the current filter.
not - FilterSiteInput If provided, a site may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "name": FilterStringInput,
  "and": [FilterSiteInput],
  "or": [FilterSiteInput],
  "not": FilterSiteInput
}

FilterStringInput

Description

FilterStringInput allows for filtering based on a string parameter. Only one field should be provided per filter object.

Fields
Input Field Description
ne - String If provided, the string input must not be equivalent to the value provided to match the current filter.
eq - String If provided, the string input must be equivalent to the value provided to match the current filter.
like - String If provided, the string input must be a case-insensitive substring of the value provided to match the current filter.
in - [String!] If provided, the string input must be present in the value provided to match the current filter.
attributeExists - Boolean If provided and true, the filter will pass only if there is a string in the corresponding field. If provided and false, the filter will pass only if there is not a string in the corresponding field.
Example
{
  "ne": "abc123",
  "eq": "xyz789",
  "like": "abc123",
  "in": ["abc123"],
  "attributeExists": false
}

FilterStringListInput

Fields
Input Field Description
eq - [String!]
in - [String!]
Example
{
  "eq": ["xyz789"],
  "in": ["abc123"]
}

FilterSummaryChronicleInput

Description

FilterSummaryChronicleInput filters SummaryChronicles based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the id of the SummaryChronicle.
name - FilterStringInput If provided, specifies filters that work against the name of the SummaryChronicle.
chronicleProducerId - FilterIDInput If provided, specifies filters that work against the chronicleProducerId of the SummaryChronicle.
startTime - FilterDateTimeOffsetInput If provided, specifies filters that work against the startTime of the SummaryChronicle.
endTime - FilterDateTimeOffsetInput If provided, specifies filters that work against the endTime of the SummaryChronicle.
timezone - FilterStringInput If provided, specifies filters that work against the timezone of the SummaryChronicle.
priority - FilterStringInput If provided, specifies filters that work against the priority of the SummaryChronicle.
status - FilterStringInput If provided, specifies filters that work against the status of the SummaryChronicle.
validation - FilterChronicleValidationStatusInput If provided, specifies filters that work against the validation of the SummaryChronicle.
labels - FilterStringListInput If provided, specifies filters that work against the labels of the SummaryChronicle.
locations - FilterStringListInput If provided, specifies filters that work against the locations of the SummaryChronicle.
activityChronicleIds - FilterIDListInput If provided, specifies filters that work against the activityChronicles IDs of the SummaryChronicle.
eventChronicleIds - FilterIDListInput If provided, specifies filters that work against the eventChronicles IDs of the SummaryChronicle.
and - [FilterSummaryChronicleInput!] If provided, an summary must pass all filters in this list to match the current filter.
or - [FilterSummaryChronicleInput!] If provided, an summary must pass at least one of the filters in this list to match the current filter.
not - FilterSummaryChronicleInput If provided, an summary may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "name": FilterStringInput,
  "chronicleProducerId": FilterIDInput,
  "startTime": FilterDateTimeOffsetInput,
  "endTime": FilterDateTimeOffsetInput,
  "timezone": FilterStringInput,
  "priority": FilterStringInput,
  "status": FilterStringInput,
  "validation": FilterChronicleValidationStatusInput,
  "labels": FilterStringListInput,
  "locations": FilterStringListInput,
  "activityChronicleIds": FilterIDListInput,
  "eventChronicleIds": FilterIDListInput,
  "and": [FilterSummaryChronicleInput],
  "or": [FilterSummaryChronicleInput],
  "not": FilterSummaryChronicleInput
}

FilterSummaryChronicleInputSubscription

Description

FilterSummaryChronicleInput filters SummaryChronicles based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the id of the SummaryChronicle.
name - FilterStringInput If provided, specifies filters that work against the name of the SummaryChronicle.
chronicleProducerId - FilterIDInput If provided, specifies filters that work against the chronicleProducerId of the SummaryChronicle.
startTime - FilterDateTimeOffsetInput If provided, specifies filters that work against the startTime of the SummaryChronicle.
endTime - FilterDateTimeOffsetInput If provided, specifies filters that work against the endTime of the SummaryChronicle.
timezone - FilterStringInput If provided, specifies filters that work against the timezone of the SummaryChronicle.
priority - FilterStringInput If provided, specifies filters that work against the priority of the SummaryChronicle.
status - FilterStringInput If provided, specifies filters that work against the status of the SummaryChronicle.
validation - FilterStringInput If provided, specifies filters that work against the validation of the SummaryChronicle.
labels - FilterStringListInput If provided, specifies filters that work against the labels of the SummaryChronicle.
locations - FilterStringListInput If provided, specifies filters that work against the locations of the SummaryChronicle.
and - [FilterSummaryChronicleInputSubscription!] If provided, an summary must pass all filters in this list to match the current filter.
or - [FilterSummaryChronicleInputSubscription!] If provided, an summary must pass at least one of the filters in this list to match the current filter.
not - FilterSummaryChronicleInputSubscription If provided, an summary may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "name": FilterStringInput,
  "chronicleProducerId": FilterIDInput,
  "startTime": FilterDateTimeOffsetInput,
  "endTime": FilterDateTimeOffsetInput,
  "timezone": FilterStringInput,
  "priority": FilterStringInput,
  "status": FilterStringInput,
  "validation": FilterStringInput,
  "labels": FilterStringListInput,
  "locations": FilterStringListInput,
  "and": [FilterSummaryChronicleInputSubscription],
  "or": [FilterSummaryChronicleInputSubscription],
  "not": FilterSummaryChronicleInputSubscription
}

FilterTagInput

Description

FilterTagInput allows for filtering tags based on criteria described below. Only one field should be provided per Filter object unless an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the unique id of a tag.
name - FilterStringInput If provided, specifies case-insensitive filters that work against the name of a tag.
and - [FilterTagInput!] If provided, a tag must pass all filters in this list to match the current filter.
or - [FilterTagInput!] If provided, a tag must pass at least one of the filters in this list to match the current filter.
not - FilterTagInput If provided, a tag may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "name": FilterStringInput,
  "and": [FilterTagInput],
  "or": [FilterTagInput],
  "not": FilterTagInput
}

FilterTrackInput

Description

FilterTrackInput allows for filtering a tracks query based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below

Fields
Input Field Description
dataSourceId - FilterIDInput If provided, specifies filters that work against the unique id of the data source that initiated the track.
time - FilterDateTimeOffsetInput! If provided, specifies filters that work against the time associated with the start time of a track.
tag - FilterStringInput If provided, specifies case-insensitive filters that work against the tag of a track
position - FilterPointInput If provided, specifies filters that work against the positions of the track's detections
identifier - FilterTrackPropertyInput If provided, specifies filters that work against the identifier of the track
attribute - FilterTrackPropertyInput If provided, specifies filters that work against the attributes of the track
pointOfInterestId - FilterIDInput If provided, specifies filters that work against the unique identifier of the point of interest of the track's data source.
dataSourceType - FilterStringInput If provided, specifies filters that work against the type of the track's dataSource.
dataSourceLabels - FilterStringListInput If provided, specifies filters that work against the labels of the track's dataSource.
and - [FilterTrackInput!] If provided, a detection activity must pass all filters in this list to match the current filter.
or - [FilterTrackInput!] If provided, a detection activity must pass at least one of the filters in this list to match the current filter.
not - FilterTrackInput If provided, a detection activity may not match this filter to match the current filter.
Example
{
  "dataSourceId": FilterIDInput,
  "time": FilterDateTimeOffsetInput,
  "tag": FilterStringInput,
  "position": FilterPointInput,
  "identifier": FilterTrackPropertyInput,
  "attribute": FilterTrackPropertyInput,
  "pointOfInterestId": FilterIDInput,
  "dataSourceType": FilterStringInput,
  "dataSourceLabels": FilterStringListInput,
  "and": [FilterTrackInput],
  "or": [FilterTrackInput],
  "not": FilterTrackInput
}

FilterTrackMessageInput

Description

FilterTrackMessageInput allows for filtering a tracks subscription based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below

Fields
Input Field Description
dataSourceId - FilterIDInput If provided, specifies filters that work against the unique id of the data source that initiated the track.
tag - FilterStringInput If provided, specifies case-insensitive filters that work against the tag of a track
position - FilterPointInput If provided, specifies filters that work against the positions of the track's detections
identifier - FilterTrackPropertyInput If provided, specifies filters that work against the identifier of the track
attribute - FilterTrackPropertyInput If provided, specifies filters that work against the attributes of the track
pointOfInterestId - FilterIDInput If provided, specifies filters that work against the unique identifier of the point of interest of the track's data source.
dataSourceType - FilterStringInput If provided, specifies filters that work against the type of the track's dataSource.
dataSourceLabels - FilterStringListInput If provided, specifies filters that work against the labels of the track's dataSource.
state - FilterMessageStateInput Specifies filters that work against the state of the track message.
and - [FilterTrackMessageInput!] If provided, a detection activity must pass all filters in this list to match the current filter.
or - [FilterTrackMessageInput!] If provided, a detection activity must pass at least one of the filters in this list to match the current filter.
not - FilterTrackMessageInput If provided, a detection activity may not match this filter to match the current filter.
Example
{
  "dataSourceId": FilterIDInput,
  "tag": FilterStringInput,
  "position": FilterPointInput,
  "identifier": FilterTrackPropertyInput,
  "attribute": FilterTrackPropertyInput,
  "pointOfInterestId": FilterIDInput,
  "dataSourceType": FilterStringInput,
  "dataSourceLabels": FilterStringListInput,
  "state": FilterMessageStateInput,
  "and": [FilterTrackMessageInput],
  "or": [FilterTrackMessageInput],
  "not": FilterTrackMessageInput
}

FilterTrackPropertyInput

Description

FilterTrackPropertyInput allows for filtering a tracks query based on criteria described below

Fields
Input Field Description
type - FilterStringInput If provided, specifies filters that work against the type or name of the track's property
value - FilterStringInput If provided, specifies filters that work against value of the track's property
Example
{
  "type": FilterStringInput,
  "value": FilterStringInput
}

FilterVideoActivityInput

Description

FilterEventActivityInput filters events based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
dataSourceId - FilterIDInput If provided, specifies filters that work against the DataSource's unique id of the video that created the event.
and - [FilterVideoActivityInput!] If provided, an event must pass all filters in this list to match the current filter.
or - [FilterVideoActivityInput!] If provided, an event must pass at least one of the filters in this list to match the current filter.
not - FilterVideoActivityInput If provided, an event may not match this filter to match the current filter.
Example
{
  "dataSourceId": FilterIDInput,
  "and": [FilterVideoActivityInput],
  "or": [FilterVideoActivityInput],
  "not": FilterVideoActivityInput
}

FilterVideoInput

Description

FilterVideoInput filters videos based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the Videos's unique id.
dataSourceId - FilterIDInput If provided, specifies filters that work against the unique ID of the data source that the video belongs to.
startTime - FilterDateTimeOffsetInput! If provided, specifies filters that work against the Videos's start time.
endTime - FilterDateTimeOffsetInput If provided, specifies filters that work against the Videos's end time.
and - [FilterVideoInput!] If provided, an event must pass all filters in this list to match the current filter.
or - [FilterVideoInput!] If provided, an event must pass at least one of the filters in this list to match the current filter.
not - FilterVideoInput If provided, an event may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "dataSourceId": FilterIDInput,
  "startTime": FilterDateTimeOffsetInput,
  "endTime": FilterDateTimeOffsetInput,
  "and": [FilterVideoInput],
  "or": [FilterVideoInput],
  "not": FilterVideoInput
}

FilterZoneEventInput

Description

FilterZoneEventInput allows for filtering a zone event based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
zoneId - FilterIDInput If provided, specifies filters that work against the unique id of a zone event.
time - FilterDateTimeOffsetInput! If provided, specifies filters that work against the timestamp associated with the zone event.
and - [FilterZoneEventInput!] If provided, a detection activity must pass all filters in this list to match the current filter.
or - [FilterZoneEventInput!] If provided, a detection activity must pass at least one of the filters in this list to match the current filter.
not - FilterZoneEventInput If provided, a detection activity may not match this filter to match the current filter.
Example
{
  "zoneId": FilterIDInput,
  "time": FilterDateTimeOffsetInput,
  "and": [FilterZoneEventInput],
  "or": [FilterZoneEventInput],
  "not": FilterZoneEventInput
}

FilterZoneInput

Description

FilterZoneInput allows for filtering zones based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
id - FilterIDInput If provided, specifies filters that work against the unique id of a zone.
name - FilterStringInput If provided, specifies filters that work against the name of a zone.
dataSourceId - FilterIDInput If provided, specifies filters that work against the id of the data source that owns the zone.
active - FilterBooleanInput If provided, specifies filters that work against the active state of the zone
createdAt - FilterDateTimeOffsetInput If provided, specifies filters that work against the timestamp the zone was created at.
updatedAt - FilterDateTimeOffsetInput If provided, specifies filters that work against the timestamp the zone was most recently updated.
and - [FilterZoneInput!] If provided, a detection activity must pass all filters in this list to match the current filter.
or - [FilterZoneInput!] If provided, a detection activity must pass at least one of the filters in this list to match the current filter.
not - FilterZoneInput If provided, a detection activity may not match this filter to match the current filter.
Example
{
  "id": FilterIDInput,
  "name": FilterStringInput,
  "dataSourceId": FilterIDInput,
  "active": FilterBooleanInput,
  "createdAt": FilterDateTimeOffsetInput,
  "updatedAt": FilterDateTimeOffsetInput,
  "and": [FilterZoneInput],
  "or": [FilterZoneInput],
  "not": FilterZoneInput
}

FilterZoneIntersectionInput

Description

FilterZoneIntersectionInput allows for filtering a zone intersection based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
zoneId - FilterIDInput If provided, specifies filters that work against the unique id of a zone intersection.
time - FilterDateTimeOffsetInput! Specifies filters that work against the startTime associated with the zone intersection.
tag - FilterStringInput Specifies filters that work against the tag associated with the zone intersection.
dataSourceId - FilterIDInput Specifies filters that work against the dataSource associated with the zone intersection.
and - [FilterZoneIntersectionInput!] If provided, a detection activity must pass all filters in this list to match the current filter.
or - [FilterZoneIntersectionInput!] If provided, a detection activity must pass at least one of the filters in this list to match the current filter.
not - FilterZoneIntersectionInput If provided, a detection activity may not match this filter to match the current filter.
Example
{
  "zoneId": FilterIDInput,
  "time": FilterDateTimeOffsetInput,
  "tag": FilterStringInput,
  "dataSourceId": FilterIDInput,
  "and": [FilterZoneIntersectionInput],
  "or": [FilterZoneIntersectionInput],
  "not": FilterZoneIntersectionInput
}

FilterZoneIntersectionMessageInput

Description

FilterZoneIntersectionMessageInput allows for filtering a zone intersection subscription based on criteria described below. Only one field should be provided per Filter object unless using an operator (and or not) as specified below.

Fields
Input Field Description
zoneId - FilterIDInput If provided, specifies filters that work against the unique id of the zone collided with.
dataSourceId - FilterIDInput Specifies filters that work against the dataSource associated with the zone intersection's track.
state - FilterMessageStateInput Specifies filters that work against the state of the zone intersection message.
and - [FilterZoneIntersectionMessageInput!] If provided, a detection activity must pass all filters in this list to match the current filter.
or - [FilterZoneIntersectionMessageInput!] If provided, a detection activity must pass at least one of the filters in this list to match the current filter.
not - FilterZoneIntersectionMessageInput If provided, a detection activity may not match this filter to match the current filter.
Example
{
  "zoneId": FilterIDInput,
  "dataSourceId": FilterIDInput,
  "state": FilterMessageStateInput,
  "and": [FilterZoneIntersectionMessageInput],
  "or": [FilterZoneIntersectionMessageInput],
  "not": FilterZoneIntersectionMessageInput
}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
123.45

Frame

Description

A frame in a data source's video

Fields
Field Name Description
number - Int! The index of the frame in the video
Example
{"number": 123}

GeoJSONCRS

Description

A [GeoJSON][geojson] coordinate reference system is a way to specify how the coordinates should be interpretted. If no coordinate reference system is specified for a GeoJSON object, the coordinates for a single point must be an array of either two or three floating-point numbers, in order as follows:

  1. Longitude (in degrees)
  2. Latitude (in degrees)
  3. Altitude (in meters, optional, assumed to be sea-level if omitted) For more information, see the [RFC 7946, Section 4 Coordinate Reference System][rfc7946-4] and the [GeoJSON 1.0 specification][GJ2008].
Fields
Field Name Description
type - String An Open Geospatial Consortium URN that indicates the coordinate reference system.
properties - JSON An arbitrary set of properties associated with the coordinate reference system.
Example
{"type": "xyz789", "properties": {}}

GeoJSONCRSInput

Description

This type represents the input data needed to initialize a GeoJSON coordinate reference system.

Fields
Input Field Description
type - String An Open Geospatial Consortium URN that indicates the coordinate reference system. Default = "name"
properties - JSON An arbitrary set of properties associated with the coordinate reference system.
Example
{"type": "xyz789", "properties": {}}

GeoJSONMultiPolygon

Description

A [GeoJSON][geojson] multi-polygon represents any number of regions in the world. GeoJSON is a formal specification as defined by [RFC 7946][geojson-rfc].

Fields
Field Name Description
type - String! The type of the GeoJSON node. For the GeoJSON multi-polygon, this will be "MultiPolygon".
coordinates - [Float!]! The coordinates that define the regions, as determined by the crs (coordinate reference system). Each element of the outermost array represent a region; the first element in each array represents the exterior ring. Any subsequent elements represent interior rings (or holes). For more information, see MultiPolygons in RFC 7946.
crs - GeoJSONCRS The coordinate reference system used for this multipolygon. See GeoJSONCRS for more information.
Example
{
  "type": "xyz789",
  "coordinates": [123.45],
  "crs": GeoJSONCRS
}

GeoJSONMultiPolygonInput

Description

This type represents the input data needed to initialize a GeoJSON multipolygon.

Fields
Input Field Description
type - String! The type of the GeoJSON node. This defaults to and must be "MultiPolygon". Default = "MultiPolygon"
coordinates - [Float!]! The coordinates for the the GeoJSON multipolygon, as determined by the crs (coordinate reference system). Each element of the outermost array represent a region; the first element in each array represents the exterior ring. Any subsequent elements represent interior rings (or holes). Each element consists of the points that make up the polygon. See GeoJSONCRS for more information.
crs - GeoJSONCRSInput The coordinate reference system used for thismultipolygon. See GeoJSONCRS for more information.
Example
{
  "type": "xyz789",
  "coordinates": [987.65],
  "crs": GeoJSONCRSInput
}

GeoJSONPoint

Description

A [GeoJSON][geojson] point represents a single position in the world. GeoJSON is a formal specification as defined by [RFC 7946][geojson-rfc].

Fields
Field Name Description
type - String! The type of the GeoJSON node. For the GeoJSON point, this will be "Point".
coordinates - [Float!]! The coordinates for the the GeoJSON point, as determined by the crs (coordinate reference system).
crs - GeoJSONCRS The coordinate reference system used for this geographical position. See GeoJSONCRS for more information.
Example
{
  "type": "abc123",
  "coordinates": [987.65],
  "crs": GeoJSONCRS
}

GeoJSONPointInput

Description

This type represents the input data needed to initialize a GeoJSON point.

Fields
Input Field Description
type - String! The type of the GeoJSON node. This must be "Point". Default = "Point"
coordinates - [Float!]!

The coordinates for the the GeoJSON point, as determined by the crs (coordinate reference system). Typically, this should be an array of coordinates, with each coordinate having either two or three values, as follows:

  1. Longitude (in degrees)
  2. Latitude (in degrees)
  3. Altitude (in meters, optional, assumed to be sea-level if omitted) See GeoJSONCRS for more information.
crs - GeoJSONCRSInput The coordinate reference system used for this geographical position. See GeoJSONCRS for more information.
Example
{
  "type": "abc123",
  "coordinates": [123.45],
  "crs": GeoJSONCRSInput
}

GeoJSONPolygon

Description

A [GeoJSON][geojson] polygon represents a region in the world. GeoJSON is a formal specification as defined by [RFC 7946][geojson-rfc].

Fields
Field Name Description
type - String! The type of the GeoJSON node. For the GeoJSON polygon, this will be "Polygon".
coordinates - [Float!]! The coordinates that define the region, as determined by the crs (coordinate reference system). The first element in the array represents the exterior ring. Any subsequent elements represent interior rings (or holes). For more information, see Polygons in RFC 7946.
crs - GeoJSONCRS The coordinate reference system used for this polygon. See GeoJSONCRS for more information.
Example
{
  "type": "xyz789",
  "coordinates": [123.45],
  "crs": GeoJSONCRS
}

GeoJSONPolygonInput

Description

This type represents the input data needed to initialize a GeoJSON polygon.

Fields
Input Field Description
type - String! The type of the GeoJSON node. This defaults to and must be "Polygon". Default = "Polygon"
coordinates - [Float!]! The coordinates for the the GeoJSON polygon, as determined by the crs (coordinate reference system). The first element in the array represents the exterior ring. Any subsequent elements represent interior rings (or holes). Each element consists of the points that make up the shape. See GeoJSONCRS for more information.
crs - GeoJSONCRSInput The coordinate reference system used for this geographical position. See GeoJSONCRS for more information.
Example
{
  "type": "abc123",
  "coordinates": [987.65],
  "crs": GeoJSONCRSInput
}

Geofence

Description

A geofence is a user-defined region in world coordinates. When a detection occurs within a geofence, or a track crosses the border of a geofence, a geofence event is created. Geofence events, along with zone events are a key part of creating custom business logic with Worlds.

Fields
Field Name Description
id - ID! The unique identifier of the geofence.
name - String! The display name of the geofence.
bounds - GeofenceBounds! An object that represents the bounds of the geofence.
active - Boolean! True if the geofence is active, otherwise false. Geofences that are not active will not produce events.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "name": "abc123",
  "bounds": GeofenceBounds,
  "active": true
}

GeofenceBounds

Description

A GeofenceBounds object represents the coordinates and boundaries of a geofence. See About Geofences for more details.

Fields
Field Name Description
polygon - GeoJSONPolygon! A GeoJSON polygon that represents the bounds of the geofence.
height - Float The height of the geofence, in meters, if provided.
Example
{"polygon": GeoJSONPolygon, "height": 987.65}

GeofenceConnection

Description

An GeofenceConnection is the paginated results of a geofences query. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [GeofenceEdge]! The resulting collection of geofence edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [GeofenceEdge]
}

GeofenceEdge

Description

An geofence edge is the pairing of a Geofence with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - Geofence Information about a particular Geofence.
cursor - String! The cursor to use with the Query geofences field after argument.
Example
{
  "node": Geofence,
  "cursor": "abc123"
}

GeofenceEvent

Description

A geofence event is a point-in-time representation of an interaction between a track and a geofence. The event represents the track either entering, leaving, or remaining within the geofence.

Fields
Field Name Description
id - ID! The unique identifier of the geofence event.
geofence - Geofence! The geofence indicated by the event.
track - Track! The track indicated by the event.
tag - String!

geofenceEvents is deprecated in favor of geofenceIntersections, and tag will not be present on GeofenceIntersection. Use track's tag instead.

The class label of the object that triggered the geofence event, i.e person, car, truck, etc.

tag is deprecated and can instead be retrieved from the track.
type - ActivityType!

geofenceEvents is deprecated in favor of geofenceIntersections, and type will not be present on GeofenceIntersection.\

The type of geofence event, i.e ingress (an object entered the geofence), dwell (an object remained in the geofence), and egress. (an object exited the geofence)

geofenceEvent is deprecated in favor of geofenceIntersection, which does not use type.
position - GeoJSONPoint!

geofenceEvents is deprecated in favor of geofenceIntersections, and position will not be present on GeofenceIntersection.

The GeoJSON point for the position of the track at the time of the geofence event.

geofenceEvent is deprecated in favor of geofenceIntersection, which does not use position.
timestamp - DateTimeOffset!

geofenceEvents is deprecated in favor of geofenceIntersections, and timestamp will not be present on GeofenceIntersection. Use startTime and endTime instead.

The timestamp at which the event occurred.

geofenceEvent is deprecated in favor of geofenceIntersection, which does not use type, using startTime and endTime instead.
metadata - JSON

geofenceEvents is deprecated in favor of geofenceIntersections, and metadata will not be present on GeofenceIntersection.

Any additional information about the event will be stored here.

geofenceEvent is deprecated in favor of geofenceIntersection, which does not use metadata.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "geofence": Geofence,
  "track": Track,
  "tag": "xyz789",
  "type": "INGRESS",
  "position": GeoJSONPoint,
  "timestamp": "2025-01-01T00:00:00.000+00",
  "metadata": {}
}

GeofenceEventConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [GeofenceEventEdge]! The resulting collection of geofence events edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [GeofenceEventEdge]
}

GeofenceEventEdge

Fields
Field Name Description
node - GeofenceEvent Information about a particular GeofenceEvent.
cursor - String! The cursor to use with the Query geofenceEvents field after argument.
Example
{
  "node": GeofenceEvent,
  "cursor": "abc123"
}

GeofenceEventsSort

Description

GeofenceEventsSort allows for sorting geofence events by a sort field and direction.

Fields
Input Field Description
field - GeofenceEventsSortField! Any sortable field available to the GeofenceEventsSortField. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

GeofenceEventsSortField

Description

Indicates the field used for sorting a geofenceEvents query.

Values
Enum Value Description

ID

Sort the resulting list by the GeofenceEvent's unique identifier.

OCCURRED

Sort the resulting list by the GeofenceEvent's timestamp.
Example
"ID"

GeofenceIntersection

Description

A geofence intersection is a point-in-time representation of an interaction between a track and a geofence.

Fields
Field Name Description
id - ID! The unique identifier of the geofence intersection.
geofence - Geofence! The geofence indicated by the intersection.
track - Track! The track indicated by the intersection.
startTime - DateTimeOffset! The time at which the intersection started.
endTime - DateTimeOffset The time at which the intersection ended.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "geofence": Geofence,
  "track": Track,
  "startTime": "2025-01-01T00:00:00.000+00",
  "endTime": "2025-01-01T00:00:00.000+00"
}

GeofenceIntersectionConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [GeofenceIntersectionEdge]! The resulting collection of geofence intersections edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [GeofenceIntersectionEdge]
}

GeofenceIntersectionEdge

Fields
Field Name Description
node - GeofenceIntersection Information about a particular GeofenceIntersection.
cursor - String! The cursor to use with the Query geofenceIntersections field after argument.
Example
{
  "node": GeofenceIntersection,
  "cursor": "xyz789"
}

GeofenceIntersectionMessage

Fields
Field Name Description
message - GeofenceIntersection! The zone intersection.
state - MessageState! The state of the intersection message. Within the message, the endTime will only be present on an END event.
Example
{"message": GeofenceIntersection, "state": "START"}

GeofenceIntersectionsSort

Description

GeofenceIntersectionsSort allows for sorting geofence intersections by a sort field and direction.

Fields
Input Field Description
field - GeofenceIntersectionsSortField! Any sortable field available to the GeofenceIntersectionsSortField. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

GeofenceIntersectionsSortField

Description

Indicates the field used for sorting a geofenceIntersections query.

Values
Enum Value Description

ID

Sort the resulting list by the GeofenceIntersection's unique identifier.

START_TIME

Sort the resulting list by the GeofenceIntersection's start time.
Example
"ID"

GeofencesSort

Description

GeofencesSort allows for sorting a geofence by a sort field and direction.

Fields
Input Field Description
field - GeofencesSortField! Any sortable field available to the GeofencesSortField. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

GeofencesSortField

Description

Indicates the field used for sorting a geofences query.

Values
Enum Value Description

ID

Sort the resulting list by the Geofence's unique identifier.

NAME

Sort the resulting list by the Geofence's name.
Example
"ID"

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"4"

Image

Description

An Image represents a stored image asset. It contains information about the datasource it belongs to and the URLs that can be used to access the image and its thumbnail.

Fields
Field Name Description
id - ID! The unique identifier of the iamge
dataSourceId - ID When applicable, the unique identifier of the datasource or device that generated this image.
timestamp - DateTimeOffset When applicable, the time when the image was taken
url - String! The URL of the image
thumbnailUrl - String The URL of the image's thumbnail
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "dataSourceId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "timestamp": "2025-01-01T00:00:00.000+00",
  "url": "xyz789",
  "thumbnailUrl": "xyz789"
}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
123

JSON

Description

Arbitrary data in JSON format. Commonly used for metadata added by custom processes. See JSON and the ECMA-404 standard.

Example
{}

Measurement

Description

A Measurement is the specific output of a sensor at a given time.

Fields
Field Name Description
id - ID! The unique identifier for the measurement.
sensor - Sensor! The sensor that provided the measurement.
timestamp - DateTimeOffset! The time the measurement took place.
value - String! The actual output of the sensor.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "sensor": Sensor,
  "timestamp": "2025-01-01T00:00:00.000+00",
  "value": "abc123"
}

MeasurementConnection

Description

A MeasurementConnection is the paginated results of an measurements query. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [MeasurementEdge]! The resulting collection of measurement edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [MeasurementEdge]
}

MeasurementEdge

Description

An measurement edge is the pairing of an Measurement with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - Measurement Information about a particular measurement.
cursor - String! The cursor to use with the measurements query after argument.
Example
{
  "node": Measurement,
  "cursor": "xyz789"
}

MeasurementInput

Description

This input type is used to create new Measurement for a sensor. See About Sensors for more details.

Fields
Input Field Description
sensorId - ID! The unique idenfitier of the Sensor that will own the measurement.
timestamp - DateTimeOffset! The time at which the measurement was recorded.
value - String! The value of the measurement
Example
{
  "sensorId": 4,
  "timestamp": DateTimeOffset,
  "value": "abc123"
}

MeasurementsSort

Description

MeasurementsSort allows for sorting measurements by a sort field and direction.

Fields
Input Field Description
field - MeasurementsSortField! Any sortable field available to the MeasurementsSortField. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

MeasurementsSortField

Description

Indicates the field used for sorting a measurements query.

Values
Enum Value Description

ID

Sort the resulting list by the Measurement's unique identifier.

TIMESTAMP

Sort the resulting list by the Measurement's timestamp.
Example
"ID"

MessageState

Description

Indicates the state of a message from a subscription.

Values
Enum Value Description

START

The start of the messages for a given group of messages.

UPDATE

An update to an existing group of messages.

END

The ending of an existing group of messages.
Example
"START"

PageInfo

Description

Pagination info for any connection

Fields
Field Name Description
hasNextPage - Boolean! True if the connection edges field does not contain the last element available, otherwise false.
hasPreviousPage - Boolean! True if the connection edges field does not contain the first element available, otherwise false.
startCursor - String The cursor of the first edge returned. Used for the query after argument.
endCursor - String The cursor of the last edge returned. Used for the query after argument.
Example
{
  "hasNextPage": true,
  "hasPreviousPage": false,
  "startCursor": "abc123",
  "endCursor": "xyz789"
}

PointOfInterest

Description

A point of interest is a designated area within a Site, used to subdivide a location into meaningful sections. Each POI belongs to a single Site and can contain multiple Devices.

Fields
Field Name Description
id - ID! The unique identifier of the point of interest.
site - Site! The site the point of interest belongs to.
name - String! The name of the point of interest.
position - GeoJSONPoint! The geographic position of the point of interest
devices - [Device!]! The devices located within the point of interest.
geofences - [Geofence!]! The geofences located within the point of interest
metadata - JSON The metadata associated with the point of interest.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "site": Site,
  "name": "xyz789",
  "position": GeoJSONPoint,
  "devices": [Device],
  "geofences": [Geofence],
  "metadata": {}
}

PointOfInterestConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [PointOfInterestEdge]! The resulting collection of site edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [PointOfInterestEdge]
}

PointOfInterestEdge

Description

A point of interest edge is the pairing of a PointOfInterest with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - PointOfInterest Information about a particular PointOfInterest.
cursor - String! The cursor to use with the pointsOfInterest query after argument.
Example
{
  "node": PointOfInterest,
  "cursor": "xyz789"
}

PointOfInterestSort

Description

PointOfInterestSort allows for sorting a pointsOfInterest query by field and direction.

Fields
Input Field Description
field - PointOfInterestSortField! Any sortable field available to the PointOfInterestSort. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

PointOfInterestSortField

Description

Indicates the field used for sorting a pointsOfInterest query.

Values
Enum Value Description

ID

Sort the resulting list by the Point of Interest's unique identifier.

NAME

Sort the resulting list by the Point of Interest's name.
Example
"ID"

Segment

Fields
Field Name Description
polygon - GeoJSONMultiPolygon! The region of the image that defines the segment
box - GeoJSONPolygon! A bounding box that covers the entire area of the segment
Example
{
  "polygon": GeoJSONMultiPolygon,
  "box": GeoJSONPolygon
}

SegmentationOptionsInput

Fields
Input Field Description
points - [GeoJSONPointInput!] The model will only attempt to generate segments at the specified points
regions - [GeoJSONMultiPolygonInput!] The model will only attempt to generate segments inside the specified multipolygons
Example
{
  "points": [GeoJSONPointInput],
  "regions": [GeoJSONMultiPolygonInput]
}

SegmentationResponse

Fields
Field Name Description
results - [SegmentationResult!]! The list of segments
Example
{"results": [SegmentationResult]}

SegmentationResult

Fields
Field Name Description
segment - Segment! The actual segment
regionIndex - Int The index of the region in the provided regions array that contains the segment. Only applicable if regions was specified in the original query.
Example
{"segment": Segment, "regionIndex": 987}

Sensor

Fields
Field Name Description
id - ID! The unique identifier for the Sensor.
name - String! The name of the Sensor.
description - String A brief description of the Sensor.
type - SensorType! The class label of the Sensor, e.g. thermometer.
position - GeoJSONPoint The geographic location of the Sensor.
address - String The address of the Sensor.
metadata - JSON Arbitrary information about the Sensor outside of configuration.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "name": "xyz789",
  "description": "xyz789",
  "type": "NUMBER",
  "position": GeoJSONPoint,
  "address": "xyz789",
  "metadata": {}
}

SensorConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [SensorEdge]! The resulting collection of sensor edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [SensorEdge]
}

SensorEdge

Description

A sensor edge is the pairing of a Sensor with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - Sensor Information about a particular Sensor.
cursor - String! The cursor to use with the sensors query after argument.
Example
{
  "node": Sensor,
  "cursor": "xyz789"
}

SensorInput

Description

This input type is used to create a new Sensor.

Fields
Input Field Description
name - String! The name of the sensor.
description - String A text description of the sensor.
type - SensorType! The type of data outputted by the sensor.
position - GeoJSONPointInput The geographic location of the sensor.
address - String The address of the sensor.
metadata - JSON Additional metadata associated with the sensor. This may represent any JSON object structure.
Example
{
  "name": "abc123",
  "description": "abc123",
  "type": "NUMBER",
  "position": GeoJSONPointInput,
  "address": "abc123",
  "metadata": {}
}

SensorType

Description

Indicates the type of data that is outputted by a sensor.

Values
Enum Value Description

NUMBER

Numeric data types, i.e integers, floats, and doubles.

BOOLEAN

Boolean data types, i.e true or false.

TEXT

Text-based data types.
Example
"NUMBER"

SensorsSort

Description

SensorsSort allows for sorting a sensors query by field and direction.

Fields
Input Field Description
field - SensorsSortField! Any sortable field available to the SensorsSort. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

SensorsSortField

Description

Indicates the field used for sorting an sensors query.

Values
Enum Value Description

ID

Sort the resulting list by the sensor's unique identifier.

NAME

Sort the resulting list by the sensor's name.
Example
"ID"

Site

Description

A site represents a business location, such as an office building, a facility or a campus. Sites can be used to logically and geospatially group various objects and events that share a physical space, such as Devices, Geofences.

Fields
Field Name Description
id - ID! The unique identifier of the site.
name - String! The name of the site.
position - GeoJSONPoint The geographic location of the site
polygon - GeoJSONMultiPolygon The geographic shape of the site
devices - [Device!]! The devices that are associated with the site
pointsOfInterest - [PointOfInterest!]! The points of interest that are associated with this site
geofences - [Geofence!]! The geofences that are associated with this site
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "name": "xyz789",
  "position": GeoJSONPoint,
  "polygon": GeoJSONMultiPolygon,
  "devices": [Device],
  "pointsOfInterest": [PointOfInterest],
  "geofences": [Geofence]
}

SiteConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [SiteEdge]! The resulting collection of site edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [SiteEdge]
}

SiteEdge

Description

A site edge is the pairing of a Site with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - Site Information about a particular Site.
cursor - String! The cursor to use with the sites query after argument.
Example
{
  "node": Site,
  "cursor": "abc123"
}

SitesSort

Description

SitesSort allows for sorting a sites query by field and direction.

Fields
Input Field Description
field - SitesSortField! Any sortable field available to the SitesSort. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

SitesSortField

Description

Indicates the field used for sorting an sites query.

Values
Enum Value Description

ID

Sort the resulting list by the sites's unique identifier.

NAME

Sort the resulting list by the sites's name.
Example
"ID"

SortDirection

Description

Indicates the direction of sorting based on a particular field's value.

Values
Enum Value Description

ASC

Sort the resulting list in ascending order.

DESC

Sort the resulting list in descending order.
Example
"ASC"

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

SummaryBucketSize

Description

Indicates the time bucket size for a summary query.

Values
Enum Value Description

MINUTES

Bucket by minutes.

HOURS

Bucket by hours.
Example
"MINUTES"

SummaryChronicle

Description

A summary chronicle summarizes across a specific timeframe. It can reference event and activity chronicles.

Fields
Field Name Description
id - ID! The unique identifier for the summary.
name - String! The name of the summary
chronicleProducer - ChronicleProducer! The chronicle producer that created the summary.
description - String A text description of the summary.
startTime - DateTimeOffset! The start time of the summary.
endTime - DateTimeOffset! The end time of the summary.
timezone - String The timezone for the summary, if provided.
metadata - JSON Additional metadata associated with the summary. This may represent any JSON object structure.
validation - ChronicleValidation Optional information to validate the accuracy of the summary.
priority - String User-defined priority of the summary.
status - String User-defined status of the summary.
labels - [String!] Human-readable labels describing the summary.
locations - [String!] Human-readable locations describing the summary.
activityChronicles - [ActivityChronicle!]! Activity chronicles associated with the summary.
eventChronicles - [EventChronicle!]! Event chronicles associated with the summary.
createdAt - DateTimeOffset! Timestamp that the summary was created.
updatedAt - DateTimeOffset! Timestamp that the summary was most recently updated.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "name": "xyz789",
  "chronicleProducer": ChronicleProducer,
  "description": "xyz789",
  "startTime": "2025-01-01T00:00:00.000+00",
  "endTime": "2025-01-01T00:00:00.000+00",
  "timezone": "abc123",
  "metadata": {},
  "validation": ChronicleValidation,
  "priority": "abc123",
  "status": "xyz789",
  "labels": ["abc123"],
  "locations": ["abc123"],
  "activityChronicles": [ActivityChronicle],
  "eventChronicles": [EventChronicle],
  "createdAt": "2025-01-01T00:00:00.000+00",
  "updatedAt": "2025-01-01T00:00:00.000+00"
}

SummaryChronicleConnection

Description

An SummaryConnection is the paginated results of an summaries query. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
edges - [SummaryChronicleEdge!]! Pagination information for the resulting edges.
pageInfo - PageInfo! The resulting collection of summary edges.
Example
{
  "edges": [SummaryChronicleEdge],
  "pageInfo": PageInfo
}

SummaryChronicleEdge

Description

An summary edge is the pairing of an Summary with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - SummaryChronicle! Information about a particular Summary.
cursor - String! The cursor to use with the Query summaries field after argument.
Example
{
  "node": SummaryChronicle,
  "cursor": "abc123"
}

SummaryChronicleSort

Description

Indicates the field used for sorting an summaryProducers query.

Fields
Input Field Description
field - SummaryChronicleSortField! Any sortable field available to the SummaryProducersSortField. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

SummaryChronicleSortField

Description

Indicates the field used for sorting an summaries query.

Values
Enum Value Description

ID

Sort the resulting list by the summaryChronicle's unique identifier.

START_TIME

Sort the resulting list by the summaryChronicle's start time.

END_TIME

Sort the resulting list by the summaryChronicle's end time.

NAME

Sort the resulting list by the summaryChronicle's name.

PRIORITY

Sort the resulting list by the summaryChronicle's priority.

STATUS

Sort the resulting list by the summaryChronicle's status.
Example
"ID"

Tag

Description

Tags are descriptive labels used to classify and group both detections and training data for models.

Fields
Field Name Description
id - ID! The unique identifier for a tag.
name - String! The name of the tag. The name is not case-sensitive, and this field will always return as lowercase.
color - String The bounding box color used for detections of this tag type.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "name": "abc123",
  "color": "xyz789"
}

TagConnection

Description

A TagConnection is the paginated result of a tags query See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [TagEdge]! The resulting collection of Tag edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [TagEdge]
}

TagEdge

Description

A tag edge is the pairing of a Tag with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - Tag Information about a particular Tag.
cursor - String! The cursor to use with the Query tags field after argument.
Example
{
  "node": Tag,
  "cursor": "abc123"
}

TagsSort

Description

TagsSort allows for sorting a tags query by field and direction.

Fields
Input Field Description
field - TagsSortField! Any sortable field available to the TagsSort. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

TagsSortField

Description

Indicates the field used for sorting a Tags query.

Values
Enum Value Description

ID

Sort the resulting list in by its unique identifier.

LABEL_NAME

Sort the resulting list by the tag name.
Example
"ID"

TextDetection

Fields
Field Name Description
polygon - GeoJSONPolygon! The position and shape of the detection in the image
detectionConfidence - Float! The confidence score for the detection's existance.
text - String! The recognized text
textConfidence - Float! The confidence score for the recognized text's accuracy.
Example
{
  "polygon": GeoJSONPolygon,
  "detectionConfidence": 123.45,
  "text": "abc123",
  "textConfidence": 123.45
}

TextReadingResponse

Fields
Field Name Description
text - String! The recognized text
textConfidence - Float! The confidence score for the recognized text's accuracy.
Example
{"text": "abc123", "textConfidence": 123.45}

TextRecognitionOptionsInput

Fields
Input Field Description
regions - [GeoJSONMultiPolygonInput!] The model will only attempt to detect text inside the specified multipolygons
Example
{"regions": [GeoJSONMultiPolygonInput]}

TextRecognitionResponse

Fields
Field Name Description
results - [TextRecognitionResult!]! The list of detected text
Example
{"results": [TextRecognitionResult]}

TextRecognitionResult

Fields
Field Name Description
textDetection - TextDetection! The actual detected text
regionIndex - Int The index of the region in the provided regions array that contains the text detection. Only applicable if regions was specified in the original query.
Example
{"textDetection": TextDetection, "regionIndex": 987}

Track

Fields
Field Name Description
id - ID! The unique identifier for the Track.
dataSource - DataSource The data source that captured the Track.
video - Video The video that this detection was captured in
tag - String! The class label of the tracked object, i.e person, car, truck, etc.
startTime - DateTimeOffset! The time of the first detection of the tracked object.
endTime - DateTimeOffset The time of the last detection of the tracked object, or null if it is still being tracked.
detections - [Detection!]! A collection of every Detection associated with the Track.
properties - TrackProperties The identifying and descriptive attributes of the Track
metadata - JSON Arbitrary information about the Track.
zoneIntersections - [ZoneIntersection!] Intersections triggered by this track interacting with a zone.
geofenceIntersections - [GeofenceIntersection!] Point-in-time representations of an interaction between the track and a geofence.
deviceIds - [ID!] The unique identifiers of the devices that captured the Track. deviceIds is deprecated. Use dataSource.id instead
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "dataSource": DataSource,
  "video": Video,
  "tag": "xyz789",
  "startTime": "2025-01-01T00:00:00.000+00",
  "endTime": "2025-01-01T00:00:00.000+00",
  "detections": [Detection],
  "properties": TrackProperties,
  "metadata": {},
  "zoneIntersections": [ZoneIntersection],
  "geofenceIntersections": [GeofenceIntersection],
  "deviceIds": ["f81d4fae-7dec-11d0-a765-00a0c91e6bf6"]
}

TrackConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [TrackEdge]! The resulting collection of track edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [TrackEdge]
}

TrackDetectionInput

Description

This type is used to create a new Detection when creating or updating a Track

Fields
Input Field Description
timestamp - DateTimeOffset! The time at which the detection occurred.
position - GeoJSONPointInput A GeoJSON point that represents the location of the detection in the world.
polygon - GeoJSONPolygonInput A GeoJSON polygon that represents the two dimensional bounds of the detection in its captured video or image.
direction - Float The direction, in degrees, of the detection in the world. Direction is measured clockwise from north, so 0 is north, 90 is east, 180 is south and 270 is west. The direction should be between 0 and 360 degrees.
metadata - JSON Arbitrary metadata associated with the detection.
Example
{
  "timestamp": DateTimeOffset,
  "position": GeoJSONPointInput,
  "polygon": GeoJSONPolygonInput,
  "direction": 123.45,
  "metadata": {}
}

TrackEdge

Fields
Field Name Description
node - Track Information about a particular track.
cursor - String! The cursor to use with the tracks query after argument.
Example
{
  "node": Track,
  "cursor": "abc123"
}

TrackMessage

Fields
Field Name Description
message - Track! The track.
state - MessageState! The state of the track message.
Example
{"message": Track, "state": "START"}

TrackProperties

Fields
Field Name Description
identifier - TrackProperty A property that identifies the Track
attributes - [TrackProperty!] Properties that describe the Track
Example
{
  "identifier": TrackProperty,
  "attributes": [TrackProperty]
}

TrackPropertiesInput

Fields
Input Field Description
identifier - TrackPropertyInput A property that identifies the Track
attributes - [TrackPropertyInput!] Properties that describe the Track
Example
{
  "identifier": TrackPropertyInput,
  "attributes": [TrackPropertyInput]
}

TrackProperty

Fields
Field Name Description
type - String! The type or name of the property
value - String! The stored value of the property
Example
{
  "type": "abc123",
  "value": "abc123"
}

TrackPropertyInput

Fields
Input Field Description
type - String! The type or name of the property
value - String! The stored value of the property
Example
{
  "type": "abc123",
  "value": "abc123"
}

TracksCountByTag

Fields
Field Name Description
tag - String! The name of the tag.
count - Int! The total count of Tracks within the time range with a matching tag.
Example
{"tag": "abc123", "count": 987}

TracksSort

Description

TracksSort allows for sorting a tracks query by field and direction.

Fields
Input Field Description
field - TracksSortField! Any sortable field available to the TracksSort. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

TracksSortField

Description

Indicates the field used for sorting a Tracks query.

Values
Enum Value Description

ID

Sort the resulting list in by its unique identifier.

TRACK_START_TIME

Sort the resulting list by the track start time.
Example
"ID"

TracksSummary

Fields
Field Name Description
total - Int! The total number of Tracks within the time range.
totalsByTag - [TracksCountByTag!]! The count of Tracks for each Tag within the time range.
buckets - [TracksSummaryBucket!] A detailed summary of each bucket within the time range. Summary buckets are only returned if bucket is provided as a query parameter to tracksSummary.
Example
{
  "total": 987,
  "totalsByTag": [TracksCountByTag],
  "buckets": [TracksSummaryBucket]
}

TracksSummaryBucket

Fields
Field Name Description
time - DateTimeOffset! The start time of the bucket.
total - Int! The total number of Tracks within the bucket.
counts - [TracksCountByTag!]! The count of Tracks for each Tag within the bucket.
Example
{
  "time": "2025-01-01T00:00:00.000+00",
  "total": 987,
  "counts": [TracksCountByTag]
}

UpdateActivityChronicleInput

Description

This input type is used to update an existing ActivityChronicle.

Fields
Input Field Description
id - ID! The unique identifier of activity.
name - String The name of the activity
description - String A text description of the activity.
startTime - DateTimeOffset The time at which the activity started.
endTime - DateTimeOffset The time at which the activity ended.
timezone - String The timezone for the activity, if provided.
metadata - JSON Additional metadata associated with the activity. This may represent any JSON object structure.
priority - String Optional information to validate the accuracy of the activity.
status - String User-defined priority of the activity.
labels - [String!] User-defined status of the activity.
locations - [String!] Human-readable labels describing the activity.
validation - ChronicleValidationInput Human-readable locations describing the activity.
imageIds - [ID!] IDs for images to associate with the activity.
clips - [CreateClipInput!] Requests to create clips associated with the activity.
trackIds - [ID!] IDs for tracks to associate with the activity.
siteIds - [ID!] IDs for sites to associate with the activity.
dataSourceIds - [ID!] IDs for data sources to associate with the activity.
tagIds - [ID!] IDs for tags to associate with the activity.
pointOfInterestIds - [ID!] IDs for points of interest to associate with the activity.
Example
{
  "id": "4",
  "name": "xyz789",
  "description": "abc123",
  "startTime": DateTimeOffset,
  "endTime": DateTimeOffset,
  "timezone": "xyz789",
  "metadata": {},
  "priority": "xyz789",
  "status": "abc123",
  "labels": ["abc123"],
  "locations": ["xyz789"],
  "validation": ChronicleValidationInput,
  "imageIds": ["4"],
  "clips": [CreateClipInput],
  "trackIds": [4],
  "siteIds": [4],
  "dataSourceIds": ["4"],
  "tagIds": ["4"],
  "pointOfInterestIds": [4]
}

UpdateChronicleProducerInput

Description

This input type is used to update an existing ChronicleProducer.

Fields
Input Field Description
id - ID! The unique identifier for the chronicle producer.
name - String The name of the chronicle producer.
description - String The text description of the chronicle producer.
timezone - String The timezone for the chronicle producer.
active - Boolean True if the chronicle producer is active, otherwise false.
metadata - JSON Arbitrary information about the chronicle producer.
validationReasons - [String!] A list of validation reasons to be used by the chronicle producer.
Example
{
  "id": "4",
  "name": "abc123",
  "description": "abc123",
  "timezone": "xyz789",
  "active": true,
  "metadata": {},
  "validationReasons": ["xyz789"]
}

UpdateDataSourceInput

Description

This type is used to update an existing DataSource

Fields
Input Field Description
id - ID! The unique identifier of the data source
name - String The name of the data source
type - DataSourceType The type of the data source
labels - [String!] Human-readable labels describing this data source
Example
{
  "id": "4",
  "name": "abc123",
  "type": "FOLDER",
  "labels": ["xyz789"]
}

UpdateDeviceInput

Description

This input type is used to update an existing Device.

Fields
Input Field Description
id - ID! The unique identifier for the event.
siteId - ID The unique identifier for the site that this device belongs to.
pointOfInterestId - ID The unique identifier for the point of interest the device belongs to.
externalId - ID An identifier that the device may use outside of Worlds.
name - String The name of the device.
address - String The address of the device.
position - GeoJSONPointInput The geographic location of the device.
enabled - Boolean true if the device's feed is being persisted by Worlds.
Example
{
  "id": 4,
  "siteId": "4",
  "pointOfInterestId": "4",
  "externalId": "4",
  "name": "abc123",
  "address": "abc123",
  "position": GeoJSONPointInput,
  "enabled": false
}

UpdateEventChronicleInput

Description

This input type is used to update an existing EventChronicle.

Fields
Input Field Description
id - ID! The unique identifier for the event.
name - String The name of the event
description - String A text description of the event.
timestamp - DateTimeOffset The time at which the event occurred.
timezone - String The timezone for the event, if provided.
metadata - JSON Additional metadata associated with the event. This may represent any JSON object structure.
priority - String User-defined priority of the event.
status - String User-defined status of the event.
labels - [String!] Human-readable labels describing the event.
locations - [String!] Human-readable locations describing the event.
validation - ChronicleValidationInput Optional information to validate the accuracy of the event.
activityChronicleIds - [ID!] IDs of activity chronicles associated with the event.
Example
{
  "id": "4",
  "name": "abc123",
  "description": "xyz789",
  "timestamp": DateTimeOffset,
  "timezone": "xyz789",
  "metadata": {},
  "priority": "xyz789",
  "status": "abc123",
  "labels": ["abc123"],
  "locations": ["xyz789"],
  "validation": ChronicleValidationInput,
  "activityChronicleIds": [4]
}

UpdateEventInput

Description

This input type is used to update an existing Event for a custom event producer. See About EventProducers for more details.

Fields
Input Field Description
id - ID! The unique identifier for the event.
type - String The type of the event, which should convey the broad category of the event.
subType - String The subtype of the event, if provided, which should provide more context on the category of the event.
startTime - DateTimeOffset The time at which the event started.
endTime - DateTimeOffset The time at which the event ended. If not provided, the event is still ongoing.
position - GeoJSONPointInput The GeoJSON point to be recorded with the event, if any.
timezone - String The timezone for the event, if provided.
metadata - JSON Additional metadata associated with the event. This may represent any JSON object structure.
snapshots - [CreateSnapshotInput!] Requests to generate snapshots for this event Snapshots are only generated when the event is ended for the first time. Therefore, snapshots will only be generated the first time that the endTime is specified for this event.
uploads - [UploadImageInput!] Requests to upload images for this event
clips - [CreateClipInput!] Requests to associate clips to this event
trackIds - [ID!] List of Track IDs to attach to this event. Ensures that the Events UI page renders a map with plotted tracks.
properties - EventPropertiesInput Optional additional information associated with this event, including related data sources, sites, and tags.
draft - Boolean Whether the event is a draft.
validation - EventValidationInput Optional information to validate the accuracy of the event.
priority - String Optional string to indicate the priority of an event.
Example
{
  "id": "4",
  "type": "abc123",
  "subType": "abc123",
  "startTime": DateTimeOffset,
  "endTime": DateTimeOffset,
  "position": GeoJSONPointInput,
  "timezone": "xyz789",
  "metadata": {},
  "snapshots": [CreateSnapshotInput],
  "uploads": [UploadImageInput],
  "clips": [CreateClipInput],
  "trackIds": ["4"],
  "properties": EventPropertiesInput,
  "draft": false,
  "validation": EventValidationInput,
  "priority": "abc123"
}

UpdateEventProducerInput

Description

This input type is used to update an existing EventProducer. See About EventProducers for more details.

Fields
Input Field Description
id - ID! The unique identifier for the event producer.
name - String The name of the event producer.
description - String The text description of the event producer.
timezone - String The timezone for the event producer.
active - Boolean True if the event producer is active, otherwise false.
metadata - JSON Arbitrary information about the event producer.
Example
{
  "id": 4,
  "name": "xyz789",
  "description": "abc123",
  "timezone": "abc123",
  "active": true,
  "metadata": {}
}

UpdatePointOfInterestInput

Description

Fields to update an existing PointOfInterest

Fields
Input Field Description
id - ID! The ID of the PointOfInterest that will be updated
siteId - ID The ID of the Site that the PointOfInterest belongs to
name - String The name of the PointOfInterest.
position - GeoJSONPointInput The geographic position of the PointOfInterest
metadata - JSON The metadata associated with the PointOfInterest.
Example
{
  "id": 4,
  "siteId": 4,
  "name": "abc123",
  "position": GeoJSONPointInput,
  "metadata": {}
}

UpdateSensorInput

Description

This input type is used update an existing Sensor.

Fields
Input Field Description
id - ID! The unique identifier of the sensor.
name - String The name of the sensor.
description - String A text description of the sensor.
type - SensorType The type of data outputted by the sensor.
position - GeoJSONPointInput The geographic location of the sensor.
address - String The address of the sensor.
metadata - JSON Additional metadata associated with the sensor. This may represent any JSON object structure.
Example
{
  "id": "4",
  "name": "abc123",
  "description": "abc123",
  "type": "NUMBER",
  "position": GeoJSONPointInput,
  "address": "xyz789",
  "metadata": {}
}

UpdateSiteInput

Description

Input type used to update an existing [Site]({{Types.site}.

Fields
Input Field Description
id - ID! The unique identifier of the site.
name - String The name of the site.
position - GeoJSONPointInput The geographic location of the site
polygon - GeoJSONMultiPolygonInput The geographic shape of the site
Example
{
  "id": 4,
  "name": "abc123",
  "position": GeoJSONPointInput,
  "polygon": GeoJSONMultiPolygonInput
}

UpdateSummaryChronicleInput

Description

This input type is used to update an existing SummaryChronicle.

Fields
Input Field Description
id - ID! The unique identifier for the summary.
name - String The name of the summary
description - String A text description of the summary.
startTime - DateTimeOffset The start time of the summary.
endTime - DateTimeOffset The end time of the summary.
timezone - String The timezone for the summary, if provided.
metadata - JSON Additional metadata associated with the summary. This may represent any JSON object structure.
priority - String User-defined priority of the summary.
status - String User-defined status of the summary.
labels - [String!] Human-readable labels describing the summary.
locations - [String!] Human-readable locations describing the summary.
validation - ChronicleValidationInput Optional information to validate the accuracy of the summary.
activityChronicleIds - [ID!] IDs of activity chronicles associated with the summary.
eventChronicleIds - [ID!] IDs of event chronicles associated with the summary.
Example
{
  "id": 4,
  "name": "xyz789",
  "description": "xyz789",
  "startTime": DateTimeOffset,
  "endTime": DateTimeOffset,
  "timezone": "xyz789",
  "metadata": {},
  "priority": "abc123",
  "status": "abc123",
  "labels": ["abc123"],
  "locations": ["abc123"],
  "validation": ChronicleValidationInput,
  "activityChronicleIds": [4],
  "eventChronicleIds": [4]
}

UpdateTrackInput

Description

This input type is used to update an existing Track.

Fields
Input Field Description
id - ID! The unique identifier of the Track.
tag - String The class label of the tracked object, i.e person, car, truck, etc.
startTime - DateTimeOffset The time of the first detection of the tracked object.
endTime - DateTimeOffset The time of the last detection of the tracked object, or null if it is still being tracked.
detections - [TrackDetectionInput!] A list of detections that will be created and associated to the existing track.
properties - TrackPropertiesInput The identifying and descriptive attributes of a track.
metadata - JSON Arbitrary information about the Track.
Example
{
  "id": "4",
  "tag": "xyz789",
  "startTime": DateTimeOffset,
  "endTime": DateTimeOffset,
  "detections": [TrackDetectionInput],
  "properties": TrackPropertiesInput,
  "metadata": {}
}

UpdateZoneInput

Fields
Input Field Description
id - ID! The unique identifier of the zone.
dataSourceId - ID The unique identifier of the data source that owns the zone.
name - String The name given to the camera zone.
polygon - GeoJSONPolygonInput The geometrical boundry of the camera zone.
active - Boolean True if the zone is currently active, otherwise false.
Example
{
  "id": "4",
  "dataSourceId": "4",
  "name": "xyz789",
  "polygon": GeoJSONPolygonInput,
  "active": false
}

UploadImageInput

Description

This input type is used to upload an image to worlds.

Fields
Input Field Description
dataSourceId - ID The optional UUID of the data source that this image will be associated with
fileName - String The optional name of the uploaded file
timestamp - DateTimeOffset The optional timestamp that will be associated with the image
data - String! The image bytes as a base64 encoded string
Example
{
  "dataSourceId": "4",
  "fileName": "abc123",
  "timestamp": DateTimeOffset,
  "data": "abc123"
}

User

Description

A user is an object that represents an existing user in the database.

Fields
Field Name Description
id - ID! The unique identifier for the user.
emailAddress - String! The email address of the user.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "emailAddress": "abc123"
}

Video

Description

A video represents a video from a data source, including its start and end time.

Fields
Field Name Description
id - ID! The unique identifier for the video.
dataSource - DataSource! The data source that created the video.
startTime - DateTimeOffset! The time at which the video started.
endTime - DateTimeOffset The time at which the video ended. If not provided, the video is still ongoing.
url - String! The signed URL to be used to stream the video.
thumbnailUrl - String The signed URL to be used to retrieve the video thumbnail.
displayName - String The display name of the video.
resolutionHeight - String The resolution height of the video.
resolutionWidth - String The resolution width of the video.
frameRate - Float The frame rate of the video.
createdBy - User The user the video was created by.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "dataSource": DataSource,
  "startTime": "2025-01-01T00:00:00.000+00",
  "endTime": "2025-01-01T00:00:00.000+00",
  "url": "xyz789",
  "thumbnailUrl": "xyz789",
  "displayName": "xyz789",
  "resolutionHeight": "abc123",
  "resolutionWidth": "abc123",
  "frameRate": 987.65,
  "createdBy": User
}

VideoConnection

Description

A VideoConnection is the paginated result of a videos query See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [VideoEdge]! The resulting collection of Video edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [VideoEdge]
}

VideoEdge

Description

A video edge is the pairing of a Video with its query cursor. See about queries for details on how "connection" and "edge" types are used with pagination.

Fields
Field Name Description
node - Video Information about a particular Video.
cursor - String! The cursor to use with the Query videos field after argument.
Example
{
  "node": Video,
  "cursor": "xyz789"
}

VideosSort

Description

VideosSort allows for sorting a videos query by field and direction.

Fields
Input Field Description
field - VideosSortField! Any sortable field available to the VideosSort. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

VideosSortField

Description

Indicates the field used for sorting a Videos query.

Values
Enum Value Description

ID

Sort the resulting list in by its unique identifier.

DATA_SOURCE_ID

Sort the resulting list by the datasource identifier.

START_TIME

Sort the resulting list by start time.

END_TIME

Sort the resulting list by end time.
Example
"ID"

Zone

Fields
Field Name Description
id - ID! The unique identifier for the camera zone.
dataSource - DataSource The data source that owns the zone
name - String! The name given to the camera zone.
polygon - GeoJSONPolygon! The geometrical boundry of the camera zone.
active - Boolean! True if the zone is currently active, otherwise false.
createdAt - DateTimeOffset The timestamp the zone was created at.
updatedAt - DateTimeOffset The timestamp the zone was most recently updated.
deviceId - ID! The unique identifier for the camera the zone belongs to. deviceId is deprecated. Use dataSource.id instead
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "dataSource": DataSource,
  "name": "abc123",
  "polygon": GeoJSONPolygon,
  "active": false,
  "createdAt": "2025-01-01T00:00:00.000+00",
  "updatedAt": "2025-01-01T00:00:00.000+00",
  "deviceId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
}

ZoneConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [ZoneEdge]! The resulting collection of zone edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [ZoneEdge]
}

ZoneEdge

Fields
Field Name Description
node - Zone Information about a particular Zone.
cursor - String! The cursor to use with the Query zones field after argument.
Example
{
  "node": Zone,
  "cursor": "xyz789"
}

ZoneEvent

Fields
Field Name Description
id - ID! The unique idenifier for the zone event.
zone - Zone! The camera zone the event happened in.
track - Track! The track associated with the object that triggered the zone event.
tag - String!

zoneEvents is deprecated in favor of zoneIntersections, and tag will not be present on ZoneIntersection. Use track's tag instead.

The class label of the object that triggered the zone event, i.e person, car, truck, etc.

tag is deprecated and can instead be retrieved from the track.
type - ActivityType!

zoneEvents is deprecated in favor of zoneIntersections, and type will not be present on ZoneIntersection.

The type of zone event, i.e ingress (an object entered the zone), dwell (an object remained in the zone), and egress. (an object exited the zone)

zoneEvent is deprecated in favor of zoneIntersection, which does not use type.
startTime - DateTimeOffset! The time at which the event started.
endTime - DateTimeOffset The time at which the event ended.
polygon - GeoJSONMultiPolygon

zoneEvents is deprecated in favor of zoneIntersections, and polygon will not be present on ZoneIntersection.

The two-dimensional shape of the detection that triggered the event.

zoneEvent is deprecated in favor of zoneIntersection, which does not use polygon.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "zone": Zone,
  "track": Track,
  "tag": "xyz789",
  "type": "INGRESS",
  "startTime": "2025-01-01T00:00:00.000+00",
  "endTime": "2025-01-01T00:00:00.000+00",
  "polygon": GeoJSONMultiPolygon
}

ZoneEventConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [ZoneEventEdge]! The resulting collection of zone events edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [ZoneEventEdge]
}

ZoneEventEdge

Fields
Field Name Description
node - ZoneEvent Information about a particular ZoneEvent.
cursor - String! The cursor to use with the Query zoneEvents field after argument.
Example
{
  "node": ZoneEvent,
  "cursor": "xyz789"
}

ZoneEventsSort

Description

ZoneEventsSort allows for sorting zone events by a sort field and direction.

Fields
Input Field Description
field - ZoneEventsSortField! Any sortable field available to the ZoneEventsSortField. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

ZoneEventsSortField

Description

Indicates the field used for sorting a zoneEvents query.

Values
Enum Value Description

ID

Sort the resulting list in by its unique identifier.

START_TIME

Sort the resulting list by the track start time.
Example
"ID"

ZoneIntersection

Fields
Field Name Description
id - ID! The unique identifier for the zone intersection.
zone - Zone! The camera zone the intersection happened in.
track - Track! The track associated with the object that triggered the zone intersection.
startTime - DateTimeOffset! The time at which the intersection started.
endTime - DateTimeOffset The time at which the intersection ended.
Example
{
  "id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "zone": Zone,
  "track": Track,
  "startTime": "2025-01-01T00:00:00.000+00",
  "endTime": "2025-01-01T00:00:00.000+00"
}

ZoneIntersectionConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination information for the resulting edges.
edges - [ZoneIntersectionEdge]! The resulting collection of zone intersections edges.
Example
{
  "pageInfo": PageInfo,
  "edges": [ZoneIntersectionEdge]
}

ZoneIntersectionEdge

Fields
Field Name Description
node - ZoneIntersection Information about a particular ZoneIntersection.
cursor - String! The cursor to use with the Query zoneIntersections field after argument.
Example
{
  "node": ZoneIntersection,
  "cursor": "xyz789"
}

ZoneIntersectionMessage

Fields
Field Name Description
message - ZoneIntersection! The zone intersection.
state - MessageState! The state of the intersection message. Within the message, the endTime will only be present on an END event.
Example
{"message": ZoneIntersection, "state": "START"}

ZoneIntersectionsSort

Description

ZoneIntersectionsSort allows for sorting zone intersections by a sort field and direction.

Fields
Input Field Description
field - ZoneIntersectionsSortField! Any sortable field available to the ZoneIntersectionsSortField. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

ZoneIntersectionsSortField

Description

Indicates the field used for sorting a zoneIntersections query.

Values
Enum Value Description

ID

Sort the resulting list in by its unique identifier.

START_TIME

Sort the resulting list by the intersection start time.
Example
"ID"

ZonesSort

Description

ZonesSort allows for sorting zones by a sort field and direction.

Fields
Input Field Description
field - ZonesSortField! Any sortable field available to the ZonesSortField. See the link to the type below for more details.
direction - SortDirection! Sort direction. See the link to the type below for more details.
Example
{"field": "ID", "direction": "ASC"}

ZonesSortField

Description

Indicates the field used for sorting a zones query.

Values
Enum Value Description

ID

Sort the resulting list by the zone's unique identifiers.

NAME

Sort the resulting list by the zone's names
Example
"ID"