Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

Query - Query Twins

Service:
Reference
API Version:
2023-10-31

Executes a query that allows traversing relationships and filtering by property values. Status codes:

  • 200 OK
  • 400 Bad Request
    • BadRequest - The continuation token is invalid.
    • SqlQueryError - The query contains some errors.
    • TimeoutError - The query execution timed out after 60 seconds. Try simplifying the query or adding conditions to reduce the result size.
  • 429 Too Many Requests
  • QuotaReachedError - The maximum query rate limit has been reached.
POST https://digitaltwins-hostname/query?api-version=2023-10-31

URI Parameters

Name In Required Type Description
api-version
query True

string

The requested API version.

Request Header

Name Required Type Description
max-items-per-page

integer

The maximum number of items to retrieve per request. The server may choose to return less than the requested number.

traceparent

string

Identifies the request in a distributed tracing system.

tracestate

string

Provides vendor-specific trace identification information and is a companion to traceparent.

Request Body

Name Type Description
continuationToken

string

A token which is used to retrieve the next set of results from a previous query.

query

string

The query to execute. This value is ignored if a continuation token is provided.

Responses

Name Type Description
200 OK

QueryResult

Success

Headers

query-charge: number

Other Status Codes

ErrorResponse

Default response.

Headers

x-ms-error-code: string

Security

oauth2

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize?resource=0b07f429-9f4b-4714-9392-cc5e8e80c8b0

Examples

Query for digital twins
Query for digital twins through a relationship
Retrieve paged query results

Query for digital twins

Sample request

POST https://digitaltwins-hostname/query?api-version=2023-10-31

{
 "query": "SELECT * FROM DIGITALTWINS WHERE temp = 79"
}

Sample response

Status code:
200
{
 "value": [
 {
 "$dtId": "Twin-01",
 "$metadata": {
 "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
 "$model": "dtmi:com:example:Sample;1",
 "name": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "temp": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "comfortIndex": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 }
 },
 "name": "Sample01",
 "temp": 79,
 "comfortIndex": 50
 },
 {
 "$dtId": "Twin-02",
 "$metadata": {
 "$lastUpdateTime": "2022-02-28T00:29:00.1234567Z",
 "$model": "dtmi:com:example:Sample;1",
 "name": {
 "lastUpdateTime": "2022-02-28T00:29:00.1234567Z"
 },
 "temp": {
 "lastUpdateTime": "2022-02-28T00:29:00.1234567Z",
 "sourceTime": "2022-05-31T12:00:00.000125009Z"
 },
 "comfortIndex": {
 "lastUpdateTime": "2022-02-28T00:29:00.1234567Z"
 }
 },
 "name": "Sample02",
 "temp": 79,
 "comfortIndex": 50
 },
 {
 "$dtId": "Twin-03",
 "$metadata": {
 "$lastUpdateTime": "2022-02-28T00:31:00.1234567Z",
 "$model": "dtmi:com:example:Sample;1",
 "name": {
 "lastUpdateTime": "2022-02-28T00:31:00.1234567Z"
 },
 "temp": {
 "lastUpdateTime": "2022-02-28T00:31:00.1234567Z"
 },
 "comfortIndex": {
 "lastUpdateTime": "2022-02-28T00:31:00.1234567Z"
 }
 },
 "name": "Sample03",
 "temp": 79,
 "comfortIndex": 50
 }
 ],
 "continuationToken": "<token>"
}

Query for digital twins through a relationship

Sample request

POST https://digitaltwins-hostname/query?api-version=2023-10-31

{
 "query": "SELECT Widget, Gadget FROM DIGITALTWINS Widget JOIN Gadget RELATED Widget.Contains WHERE Widget.$dtId = 'Twin-01'"
}

Sample response

Status code:
200
{
 "value": [
 {
 "Widget": {
 "$dtId": "Twin-01",
 "$metadata": {
 "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
 "$model": "dtmi:com:example:Sample;1",
 "name": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "temp": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "comfortIndex": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 }
 },
 "name": "Sample01",
 "temp": 79,
 "comfortIndex": 50
 },
 "Gadget": {
 "$dtId": "Twin-02",
 "$metadata": {
 "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
 "$model": "dtmi:com:example:Sample;1",
 "name": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "temp": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "comfortIndex": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 }
 },
 "name": "Sample02",
 "temp": 79,
 "comfortIndex": 50
 }
 },
 {
 "Widget": {
 "$dtId": "Twin-01",
 "$metadata": {
 "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
 "$model": "dtmi:com:example:Sample;1",
 "name": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "temp": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "comfortIndex": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 }
 },
 "name": "Sample01",
 "temp": 79,
 "comfortIndex": 50
 },
 "Gadget": {
 "$dtId": "Twin-10",
 "$metadata": {
 "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
 "$model": "dtmi:com:example:Sample;1",
 "name": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "temp": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "comfortIndex": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 }
 },
 "name": "Sample10",
 "temp": 79,
 "comfortIndex": 50
 }
 }
 ]
}

Retrieve paged query results

Sample request

POST https://digitaltwins-hostname/query?api-version=2023-10-31

{
 "continuationToken": "<continuationToken from previous query>"
}

Sample response

Status code:
200
{
 "value": [
 {
 "$dtId": "Twin-04",
 "$metadata": {
 "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
 "$model": "dtmi:com:example:Sample;1",
 "name": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "temp": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "comfortIndex": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 }
 },
 "name": "Sample04",
 "temp": 79,
 "comfortIndex": 50
 },
 {
 "$dtId": "Twin-05",
 "$metadata": {
 "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
 "$model": "dtmi:com:example:Sample;1",
 "name": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "temp": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "comfortIndex": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 }
 },
 "name": "Sample05",
 "temp": 79,
 "comfortIndex": 50
 },
 {
 "$dtId": "Twin-06",
 "$metadata": {
 "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
 "$model": "dtmi:com:example:Sample;1",
 "name": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "temp": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 },
 "comfortIndex": {
 "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
 }
 },
 "name": "Sample06",
 "temp": 79,
 "comfortIndex": 50
 }
 ]
}

Definitions

Name Description
Error

Error definition.

ErrorResponse

Error response.

InnerError

A more specific error description than was provided by the containing error.

QueryResult

The results of a query operation and an optional continuation token.

QuerySpecification

A query specification containing either a query statement or a continuation token from a previous query result.

Error

Object

Error definition.

Name Type Description
code

string

Service specific error code which serves as the substatus for the HTTP error code.

details

Error[]

Internal error details.

innererror

InnerError

An object containing more specific information than the current object about the error.

message

string

A human-readable representation of the error.

ErrorResponse

Object

Error response.

Name Type Description
error

Error

The error details.

InnerError

Object

A more specific error description than was provided by the containing error.

Name Type Description
code

string

A more specific error code than was provided by the containing error.

innererror

InnerError

An object containing more specific information than the current object about the error.

QueryResult

Object

The results of a query operation and an optional continuation token.

Name Type Description
continuationToken

string

A token which can be used to construct a new QuerySpecification to retrieve the next set of results.

value

object[]

The query results.

QuerySpecification

Object

A query specification containing either a query statement or a continuation token from a previous query result.

Name Type Description
continuationToken

string

A token which is used to retrieve the next set of results from a previous query.

query

string

The query to execute. This value is ignored if a continuation token is provided.


Feedback

Was this page helpful?