Fetch the result of a DDSQL query

POST https://api.ap1.datadoghq.com/api/v2/ddsql/query/tabular/fetchhttps://api.ap2.datadoghq.com/api/v2/ddsql/query/tabular/fetchhttps://api.datadoghq.eu/api/v2/ddsql/query/tabular/fetchhttps://api.ddog-gov.com/api/v2/ddsql/query/tabular/fetchhttps://api.us2.ddog-gov.com/api/v2/ddsql/query/tabular/fetchhttps://api.uk1.datadoghq.com/api/v2/ddsql/query/tabular/fetchhttps://api.datadoghq.com/api/v2/ddsql/query/tabular/fetchhttps://api.us3.datadoghq.com/api/v2/ddsql/query/tabular/fetchhttps://api.us5.datadoghq.com/api/v2/ddsql/query/tabular/fetch

Overview

Poll a previously submitted DDSQL query for results. Pass the opaque query_id returned by a prior ExecuteDdsqlTabularQuery (or by a prior FetchDdsqlTabularQuery that returned state: running) and the server returns either a running state to poll again or a completed state with the column-major result set inlined.

Request

Body Data (required)

Expand All

Field

Type

Description

data [required]

object

JSON:API resource object for a DDSQL tabular query fetch request.

attributes [required]

object

Attributes describing which previously submitted DDSQL query to fetch.

query_id [required]

string

Opaque token returned by an earlier execute or fetch response that carried state: running. Identifies the query to poll for results.

type [required]

enum

JSON:API resource type for a DDSQL tabular query fetch request. Allowed enum values: ddsql_query_fetch_request

default: ddsql_query_fetch_request

{
  "data": {
    "attributes": {
      "query_id": "eyJxdWVyeSI6ICJTRUxFQ1QgKiBGUk9NIGxvZ3MifQ=="
    },
    "type": "ddsql_query_fetch_request"
  }
}

Response

OK

Response envelope for both the execute and fetch DDSQL tabular query endpoints. Carries the JSON:API primary resource and a top-level meta block with request-scoped observability handles.

Expand All

Field

Type

Description

data [required]

object

JSON:API resource object for a DDSQL tabular query response.

attributes [required]

object

Attributes of a DDSQL tabular query response. query_id is set when state is running; columns is set when state is completed.

columns

[object]

Column-major result set. Each element carries one column's name, type, and values, with one value per row of the result. Set when state is completed.

name [required]

string

Name of the column as projected by the SQL statement.

type [required]

string

DDSQL data type of the column's values, for example VARCHAR, BIGINT, DECIMAL, BOOLEAN, TIMESTAMP, JSON, or an array variant such as VARCHAR[]. See the DDSQL data-types reference for the full, up-to-date list.

values [required]

[]

Column values in row order, one entry per result row. The element type follows the column's type. The following serialization rules should be taken into account:

  • BIGINT values are encoded as JSON numbers in the signed 64-bit integer range.
  • DECIMAL values are encoded as JSON numbers with 64-bit double precision.
  • TIMESTAMP and DATE values are encoded as Unix-millisecond integers; a DATE resolves to midnight UTC.
  • JSON values are returned as a JSON-encoded string.

null is allowed for any column type where a value is missing.

query_id

string

Opaque token to pass to the fetch endpoint to poll for results. Set when state is running and absent when state is completed.

state [required]

enum

Lifecycle state of a DDSQL tabular query response. running means the query is still executing and the client should poll the fetch endpoint with the returned query_id. completed means the result set is inlined in columns and no further polling is required. Allowed enum values: running,completed

warnings

[string]

Non-fatal messages emitted by the query engine while serving this response.

id [required]

string

Stable identifier for the query response resource.

type [required]

enum

JSON:API resource type for a DDSQL tabular query response. Allowed enum values: ddsql_query_response

default: ddsql_query_response

meta [required]

object

Top-level JSON:API meta block accompanying every DDSQL tabular query response. Carries standard observability handles for client-side correlation.

elapsed [required]

int64

Server-side time spent serving this request, in milliseconds.

request_id [required]

string

Echo of the DD-Request-ID header assigned by Datadog's edge to this request, for support correlation.

{
  "data": {
    "attributes": {
      "columns": [
        {
          "name": "service",
          "type": "VARCHAR",
          "values": [
            "web-store",
            "checkout"
          ]
        }
      ],
      "query_id": "eyJxdWVyeSI6ICJTRUxFQ1QgKiBGUk9NIGxvZ3MifQ==",
      "state": "completed",
      "warnings": [
        "Query result was truncated at the configured row_limit."
      ]
    },
    "id": "00000000-0000-0000-0000-000000000000",
    "type": "ddsql_query_response"
  },
  "meta": {
    "elapsed": 87,
    "request_id": "req-7f3e7d2c-1a0b-4d3e-9b2a-3c4d5e6f7082"
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Forbidden

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Too many requests

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Internal Server Error

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Code Example

                  ## default
# 

# Curl command
curl -X POST "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/ddsql/query/tabular/fetch" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \ -d @- << EOF { "data": { "attributes": { "query_id": "eyJxdWVyeSI6ICJTRUxFQ1QgKiBGUk9NIGxvZ3MifQ==" }, "type": "ddsql_query_fetch_request" } } EOF