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

POST https://api.opengate.es/north/v80/search/<resource>

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:

POST /north/v80/timeseries/provision/organizations/{organization}/{identifier}/data
POST /north/v80/datasets/provision/organizations/{organization}/{identifier}/data

Operations — note the missing north prefix, which the operations service predates:

POST /v80/search/jobs

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.