What you can query
Every query in OpenGate is a POST to a URL that names what you are querying, with a JSON body that
says which rows you want. This page is the index of that first half: find your resource, take the URL,
and write the body using the query language.
The URL pattern
That covers most resources, which are global or scoped by your API key. Two families depart from it, and knowing which one you are in saves a lot of guessing.
Time series and data sets — you query one named store, so the organization and its identifier are part of the URL:
Operations — note the missing north prefix, which the operations service predates:
Three more resources invert the shape into /<resource>/search:
rules,
provision processors and
operation types.
The /summary variant
Most search endpoints have a twin ending in /summary that returns aggregated counters instead of rows.
Same URL, same body, different answer: use it when you want how many, not which ones. See
Summary. Endpoints offering it are marked below.
Paths in the tables below
Paths are shown relative to /north/v80, except in the operations table, where they are relative to
/v80. A + in the Summary column means the endpoint also has a /summary twin. {org} is the
organization name and {id} the identifier of the time series or data set.
Collected data
What the devices have sent you.
| To query | POST to | Summary | Documented in |
|---|---|---|---|
| Current data stream values | search/datastreams |
Data streams | |
| Historical data points — deprecated | search/datapoints |
Data points | |
| All raised alarms | search/entities/alarms |
+ | Alarms |
| Alarms on devices | search/entities/devices/alarms |
+ | Alarms |
| Alarms on subscriptions | search/entities/subscriptions/alarms |
+ | Alarms |
| Data of one time series | timeseries/provision/organizations/{org}/{id}/data |
Time series | |
| A time series aggregated per device | timeseries/provision/organizations/{org}/{id}/dataset |
Time series | |
| A time series as a Parquet export | timeseries/provision/organizations/{org}/{id}/export |
Time series | |
| Data of one data set | datasets/provision/organizations/{org}/{id}/data |
Data sets | |
| The data set catalog | search/catalog/datasets |
Data sets |
Entities and provisioning
What you have registered on the platform.
| To query | POST to | Summary | Documented in |
|---|---|---|---|
| Any entity, whatever its type | search/entities |
+ | Entities |
| Devices | search/devices |
+ | Devices |
| Assets | search/assets |
+ | Assets |
| Subscribers | search/subscribers |
+ | Subscribers |
| Subscriptions | search/subscriptions |
+ | Subscriptions |
| Channels | search/channels |
+ | Channels |
| Organizations | search/organizations |
+ | Organizations |
| Work groups | search/workgroups |
+ | Work groups |
| Users | search/users |
+ | Users |
| Geo-areas | search/areas |
Geo-areas | |
| Tickets | search/tickets |
+ | Tickets |
| Data models | search/datamodels |
Data models | |
| Software and configuration bundles | search/bundles |
Bundles | |
| Certificates | search/certificates |
Certificates | |
| Hardware catalog | search/catalog/hardwares |
+ | Hardware catalog |
| Mobile operators catalog | search/catalog/operators |
Operators | |
| Rules | rules/search |
Rules | |
| Provision processors | provisionProcessors/bulk/search |
Provision functions | |
| Asynchronous bulk requests | search/bulk/async |
Bulk |
Operations
What you have asked the devices to do. Note the missing north prefix.
| To query | POST to | Summary | Documented in |
|---|---|---|---|
| Jobs | search/jobs |
+ | Jobs |
| Tasks | search/tasks |
Tasks | |
| Operations on devices | search/entities/devices/operations |
+ | Jobs |
| Operations on subscribers | search/entities/subscribers/operations |
+ | Jobs |
| Operations on subscriptions | search/entities/subscriptions/operations |
+ | Jobs |
| Closed operations history | search/entities/operations/history |
+ | Jobs |
| Operation types | operationTypes/search |
Operation types |
Which fields can I filter on?
The clause syntax is the same everywhere, but the field names depend on the resource. They are dotted paths, and entity searches expose two families of them:
| Field family | Example | Holds |
|---|---|---|
provision.* |
provision.device.administrativeState |
Provisioned configuration |
<entity>.* |
device.serialNumber |
Entity attributes, including collected ones |
<resource>.* |
datapoints.datastreamId, jobs.report.summary.status |
The fields of a non-entity resource |
| A column name | Prov Identifier |
Data sets and time series, where you define the columns yourself |
Arrays are addressed with [], optionally indexed:
provision.device.communicationModules[].mobile.imei.
Each resource’s filterable fields are listed in its own API specification, rendered on the page named in the
tables above. The fastest shortcut, though, is to run the query with an empty body {} and read the paths
off the response: those are exactly the paths you can filter, sort and select on.