openapi: 3.0.0
info:
contact:
email: support@datadoghq.com
name: Datadog Support
url: https://www.datadoghq.com/support/
description: The Datadog API is an HTTP REST API. The API uses resource-oriented URLs to call the API, uses status codes to indicate the success or failure of requests, returns JSON from all requests, and uses standard HTTP response codes. Use the Datadog API to access the Datadog platform programmatically.
title: Datadog Account Data API
version: '1.0'
servers:
- url: https://{subdomain}.{site}
variables:
site:
default: datadoghq.com
description: The regional site for Datadog customers.
enum:
- datadoghq.com
- us3.datadoghq.com
- us5.datadoghq.com
- ap1.datadoghq.com
- datadoghq.eu
- ddog-gov.com
subdomain:
default: api
description: The subdomain where the API is deployed.
- url: '{protocol}://{name}'
variables:
name:
default: api.datadoghq.com
description: Full site DNS name.
protocol:
default: https
description: The protocol for accessing the API.
- url: https://{subdomain}.{site}
variables:
site:
default: datadoghq.com
description: Any Datadog deployment.
subdomain:
default: api
description: The subdomain where the API is deployed.
security:
- apiKeyAuth: []
appKeyAuth: []
tags:
- name: Data
paths:
/api/v2/query/scalar:
post:
description: 'Query scalar values (as seen on Query Value, Table, and Toplist widgets).
Multiple data sources are supported with the ability to
process the data using formulas and functions.'
operationId: QueryScalarData
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ScalarFormulaQueryRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ScalarFormulaQueryResponse'
description: OK
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'403':
$ref: '#/components/responses/ForbiddenResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
security:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ:
- timeseries_query
summary: Datadog Query Scalar Data Across Multiple Products
tags:
- Data
x-codegen-request-body-name: body
x-menu-order: 2
x-permission:
operator: OR
permissions:
- timeseries_query
x-undo:
type: idempotent
x-api-evangelist-processing:
PascalCaseOperationSummaries: true
ChooseTags: true
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/api/v2/query/timeseries:
post:
description: 'Query timeseries data across various data sources and
process the data by applying formulas and functions.'
operationId: QueryTimeseriesData
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TimeseriesFormulaQueryRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TimeseriesFormulaQueryResponse'
description: OK
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'403':
$ref: '#/components/responses/ForbiddenResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
security:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ:
- timeseries_query
summary: Datadog Query Timeseries Data Across Multiple Products
tags:
- Data
x-codegen-request-body-name: body
x-menu-order: 1
x-permission:
operator: OR
permissions:
- timeseries_query
x-undo:
type: idempotent
x-api-evangelist-processing:
PascalCaseOperationSummaries: true
ChooseTags: true
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
TimeseriesResponseTimes:
description: Array of times, 1-1 match with individual values arrays.
items:
description: Start date (inclusive) of the query in seconds since the Unix epoch.
example: 1568899800000
format: int64
type: integer
type: array
TimeseriesResponseSeriesList:
description: Array of response series. The index here corresponds to the index in the `formulas` or `queries` array from the request.
items:
$ref: '#/components/schemas/TimeseriesResponseSeries'
type: array
EventsSortType:
description: The type of sort to use on the calculated value.
enum:
- alphabetical
- measure
type: string
x-enum-varnames:
- ALPHABETICAL
- MEASURE
EventsTimeseriesQuery:
description: An individual timeseries events query.
properties:
compute:
$ref: '#/components/schemas/EventsCompute'
data_source:
$ref: '#/components/schemas/EventsDataSource'
group_by:
$ref: '#/components/schemas/EventsQueryGroupBys'
indexes:
description: The indexes in which to search.
example:
- main
items:
description: The unique index name.
example: main
type: string
type: array
name:
description: The variable name for use in formulas.
type: string
example: Example Monitor
search:
$ref: '#/components/schemas/EventsSearch'
required:
- data_source
- compute
type: object
Unit:
description: Object containing the metric unit family, scale factor, name, and short name.
nullable: true
properties:
family:
description: Unit family, allows for conversion between units of the same family, for scaling.
example: time
type: string
name:
description: Unit name
example: minute
type: string
plural:
description: Plural form of the unit name.
example: minutes
type: string
scale_factor:
description: Factor for scaling between units of the same family.
example: 60
format: double
type: number
short_name:
description: Abbreviation of the unit.
example: min
type: string
type: object
TimeseriesFormulaQueryResponse:
description: A message containing one response to a timeseries query made with timeseries formula query request.
properties:
data:
$ref: '#/components/schemas/TimeseriesResponse'
errors:
description: The error generated by the request.
type: string
example: example_value
type: object
ScalarMeta:
description: Metadata for the resulting numerical values.
properties:
unit:
description: 'Detailed information about the unit.
First element describes the "primary unit" (for example, `bytes` in `bytes per second`).
The second element describes the "per unit" (for example, `second` in `bytes per second`).
If the second element is not present, the API returns null.'
items:
$ref: '#/components/schemas/Unit'
nullable: true
type: array
type: object
ScalarFormulaResponseType:
default: scalar_response
description: The type of the resource. The value should always be scalar_response.
enum:
- scalar_response
example: scalar_response
type: string
x-enum-varnames:
- SCALAR_RESPONSE
ScalarFormulaRequest:
description: A single scalar query to be executed.
properties:
attributes:
$ref: '#/components/schemas/ScalarFormulaRequestAttributes'
type:
$ref: '#/components/schemas/ScalarFormulaRequestType'
required:
- type
- attributes
type: object
EventsSearch:
description: Configuration of the search/filter for an events query.
properties:
query:
description: The search/filter string for an events query.
example: status:warn service:foo
type: string
type: object
GroupTags:
description: List of tags that apply to a single response value.
items:
description: A single tag that applies to a single response value.
example: env:production
type: string
type: array
MetricsTimeseriesQuery:
description: An individual timeseries metrics query.
properties:
data_source:
$ref: '#/components/schemas/MetricsDataSource'
name:
description: The variable name for use in formulas.
type: string
example: Example Monitor
query:
description: A classic metrics query string.
example: avg:system.cpu.user{*} by {env}
type: string
required:
- data_source
- query
type: object
APIErrorResponse:
description: API error response.
properties:
errors:
description: A list of errors.
example:
- Bad Request
items:
description: A list of items.
example: Bad Request
type: string
type: array
required:
- errors
type: object
ScalarFormulaQueryRequest:
description: A wrapper request around one scalar query to be executed.
properties:
data:
$ref: '#/components/schemas/ScalarFormulaRequest'
required:
- data
type: object
ScalarFormulaRequestType:
default: scalar_request
description: The type of the resource. The value should always be scalar_request.
enum:
- scalar_request
example: scalar_request
type: string
x-enum-varnames:
- SCALAR_REQUEST
EventsQueryGroupBys:
description: The list of facets on which to split results.
items:
$ref: '#/components/schemas/EventsGroupBy'
type: array
TimeseriesFormulaRequest:
description: A single timeseries query to be executed.
properties:
attributes:
$ref: '#/components/schemas/TimeseriesFormulaRequestAttributes'
type:
$ref: '#/components/schemas/TimeseriesFormulaRequestType'
required:
- type
- attributes
type: object
EventsDataSource:
default: logs
description: A data source that is powered by the Events Platform.
enum:
- logs
- rum
example: logs
type: string
x-enum-varnames:
- LOGS
- RUM
TimeseriesFormulaRequestQueries:
description: List of queries to be run and used as inputs to the formulas.
example:
- data_source: metrics
query: avg:system.cpu.user{*} by {env}
items:
$ref: '#/components/schemas/TimeseriesQuery'
type: array
TimeseriesResponseValues:
description: Array of values for an individual formula or query.
example:
- 1575317847
- 0.5
items:
description: An individual value for a given time.
format: double
nullable: true
type: number
type: array
ScalarColumnTypeNumber:
default: number
description: The type of column present for numbers.
enum:
- number
example: number
type: string
x-enum-varnames:
- NUMBER
TimeseriesFormulaQueryRequest:
description: A request wrapper around a single timeseries query to be executed.
properties:
data:
$ref: '#/components/schemas/TimeseriesFormulaRequest'
required:
- data
type: object
QuerySortOrder:
default: desc
description: Direction of sort.
enum:
- asc
- desc
type: string
x-enum-varnames:
- ASC
- DESC
ScalarQuery:
description: An individual scalar query to one of the basic Datadog data sources.
example:
aggregator: avg
data_source: metrics
query: avg:system.cpu.user{*} by {env}
oneOf:
- $ref: '#/components/schemas/MetricsScalarQuery'
- $ref: '#/components/schemas/EventsScalarQuery'
ScalarFormulaQueryResponse:
description: A message containing one or more responses to scalar queries.
properties:
data:
$ref: '#/components/schemas/ScalarResponse'
errors:
description: An error generated when processing a request.
type: string
example: example_value
type: object
EventsCompute:
description: The instructions for what to compute for this query.
properties:
aggregation:
$ref: '#/components/schemas/EventsAggregation'
interval:
description: Interval for compute in milliseconds.
example: 60000
format: int64
type: integer
metric:
description: The "measure" attribute on which to perform the computation.
type: string
example: example_value
required:
- aggregation
type: object
TimeseriesFormulaResponseType:
default: timeseries_response
description: The type of the resource. The value should always be timeseries_response.
enum:
- timeseries_response
example: timeseries_response
type: string
x-enum-varnames:
- TIMESERIES_RESPONSE
ScalarResponse:
description: A message containing the response to a scalar query.
properties:
attributes:
$ref: '#/components/schemas/ScalarFormulaResponseAtrributes'
type:
$ref: '#/components/schemas/ScalarFormulaResponseType'
type: object
EventsGroupBySort:
description: The dimension by which to sort a query's results.
properties:
aggregation:
$ref: '#/components/schemas/EventsAggregation'
metric:
description: The metric's calculated value which should be used to define the sort order of a query's results.
example: '@duration'
type: string
order:
$ref: '#/components/schemas/QuerySortOrder'
type:
$ref: '#/components/schemas/EventsSortType'
required:
- aggregation
type: object
TimeseriesQuery:
description: An individual timeseries query to one of the basic Datadog data sources.
example:
data_source: metrics
query: avg:system.cpu.user{*} by {env}
oneOf:
- $ref: '#/components/schemas/MetricsTimeseriesQuery'
- $ref: '#/components/schemas/EventsTimeseriesQuery'
ScalarColumnTypeGroup:
default: group
description: The type of column present for groups.
enum:
- group
example: group
type: string
x-enum-varnames:
- GROUP
GroupScalarColumn:
description: A column containing the tag keys and values in a group.
properties:
name:
description: The name of the tag key or group.
example: env
type: string
type:
$ref: '#/components/schemas/ScalarColumnTypeGroup'
values:
description: The array of tag values for each group found for the results of the formulas or queries.
example:
- - production
- - staging
items:
description: An individual tag value for a given group column.
items:
description: One tag value within a values array.
example: production
type: string
type: array
type: array
type: object
TimeseriesResponseSeries:
description: ''
properties:
group_tags:
$ref: '#/components/schemas/GroupTags'
query_index:
description: The index of the query in the "formulas" array (or "queries" array if no "formulas" was specified).
example: 0
format: int32
maximum: 2147483647
type: integer
unit:
description: 'Detailed information about the unit.
The first element describes the "primary unit" (for example, `bytes` in `bytes per second`).
The second element describes the "per unit" (for example, `second` in `bytes per second`).
If the second element is not present, the API returns null.'
items:
$ref: '#/components/schemas/Unit'
nullable: true
type: array
type: object
ScalarFormulaRequestAttributes:
description: The object describing a scalar formula request.
properties:
formulas:
description: List of formulas to be calculated and returned as responses.
items:
$ref: '#/components/schemas/QueryFormula'
type: array
from:
description: Start date (inclusive) of the query in milliseconds since the Unix epoch.
example: 1568899800000
format: int64
type: integer
queries:
$ref: '#/components/schemas/ScalarFormulaRequestQueries'
to:
description: End date (exclusive) of the query in milliseconds since the Unix epoch.
example: 1568923200000
format: int64
type: integer
required:
- to
- from
- queries
type: object
MetricsAggregator:
default: avg
description: The type of aggregation that can be performed on metrics-based queries.
enum:
- avg
- min
- max
- sum
- last
- percentile
- mean
- l2norm
- area
example: avg
type: string
x-enum-varnames:
- AVG
- MIN
- MAX
- SUM
- LAST
- PERCENTILE
- MEAN
- L2NORM
- AREA
MetricsScalarQuery:
description: An individual scalar metrics query.
properties:
aggregator:
$ref: '#/components/schemas/MetricsAggregator'
data_source:
$ref: '#/components/schemas/MetricsDataSource'
name:
description: The variable name for use in formulas.
type: string
example: Example Monitor
query:
description: A classic metrics query string.
example: avg:system.cpu.user{*} by {env}
type: string
required:
- data_source
- query
- aggregator
type: object
EventsScalarQuery:
description: An individual scalar events query.
properties:
compute:
$ref: '#/components/schemas/EventsCompute'
data_source:
$ref: '#/components/schemas/EventsDataSource'
group_by:
$ref: '#/components/schemas/EventsQueryGroupBys'
indexes:
description: The indexes in which to search.
example:
- main
items:
description: The unique index name.
example: main
type: string
type: array
name:
description: The variable name for use in formulas.
type: string
example: Example Monitor
search:
$ref: '#/components/schemas/EventsSearch'
required:
- data_source
- compute
type: object
ScalarColumn:
description: A single column in a scalar query response.
oneOf:
- $ref: '#/components/schemas/GroupScalarColumn'
- $ref: '#/components/schemas/DataScalarColumn'
TimeseriesResponseValuesList:
description: Array of value-arrays. The index here corresponds to the index in the `formulas` or `queries` array from the request.
items:
$ref: '#/components/schemas/TimeseriesResponseValues'
type: array
DataScalarColumn:
description: A column containing the numerical results for a formula or query.
properties:
meta:
$ref: '#/components/schemas/ScalarMeta'
name:
description: The name referencing the formula or query for this column.
example: a
type: string
type:
$ref: '#/components/schemas/ScalarColumnTypeNumber'
values:
description: The array of numerical values for one formula or query.
example:
- 0.5
items:
description: An individual value for a given column and group-by.
example: 0.5
format: double
nullable: true
type: number
type: array
type: object
TimeseriesResponseAttributes:
description: The object describing a timeseries response.
properties:
series:
$ref: '#/components/schemas/TimeseriesResponseSeriesList'
times:
$ref: '#/components/schemas/TimeseriesResponseTimes'
values:
$ref: '#/components/schemas/TimeseriesResponseValuesList'
type: object
ScalarFormulaResponseAtrributes:
description: The object describing a scalar response.
properties:
columns:
description: List of response columns, each corresponding to an individual formula or query in the request and with values in parallel arrays matching the series list.
items:
$ref: '#/components/schemas/ScalarColumn'
type: array
type: object
EventsGroupBy:
description: A dimension on which to split a query's results.
properties:
facet:
description: The facet by which to split groups.
example: '@error.type'
type: string
limit:
default: 10
description: 'The maximum buckets to return for this group by. Note: at most 10000 buckets are allowed.
If grouping by multiple facets, the product of limits must not exceed 10000.'
example: 10
format: int32
maximum: 10000
type: integer
sort:
$ref: '#/components/schemas/EventsGroupBySort'
required:
- facet
type: object
TimeseriesFormulaRequestAttributes:
description: The object describing a timeseries formula request.
properties:
formulas:
description: List of formulas to be calculated and returned as responses.
items:
$ref: '#/components/schemas/QueryFormula'
type: array
from:
description: Start date (inclusive) of the query in milliseconds since the Unix epoch.
example: 1568899800000
format: int64
type: integer
interval:
description: 'A time interval in milliseconds.
May be overridden by a larger interval if the query would result in
too many points for the specified timeframe.
Defaults to a reasonable interval for the given timeframe.'
example: 5000
format: int64
type: integer
queries:
$ref: '#/components/schemas/TimeseriesFormulaRequestQueries'
to:
description: End date (exclusive) of the query in milliseconds since the Unix epoch.
example: 1568923200000
format: int64
type: integer
required:
- to
- from
- queries
type: object
TimeseriesFormulaRequestType:
default: timeseries_request
description: The type of the resource. The value should always be timeseries_request.
enum:
- timeseries_request
example: timeseries_request
type: string
x-enum-varnames:
- TIMESERIES_REQUEST
ScalarFormulaRequestQueries:
description: List of queries to be run and used as inputs to the formulas.
example:
- aggregator: avg
data_source: metrics
query: avg:system.cpu.user{*} by {env}
items:
$ref: '#/components/schemas/ScalarQuery'
type: array
EventsAggregation:
default: count
description: The type of aggregation that can be performed on events-based queries.
enum:
- count
- cardinality
- pc75
- pc90
- pc95
- pc98
- pc99
- sum
- min
- max
- avg
example: count
type: string
x-enum-varnames:
- COUNT
- CARDINALITY
- PC75
- PC90
- PC95
- PC98
- PC99
- SUM
- MIN
- MAX
- AVG
MetricsDataSource:
default: metrics
description: A data source that is powered by the Metrics platform.
enum:
- metrics
- cloud_cost
example: metrics
type: string
x-enum-varnames:
- METRICS
- CLOUD_COST
TimeseriesResponse:
description: A message containing the response to a timeseries query.
properties:
attributes:
$ref: '#/components/schemas/TimeseriesResponseAttributes'
type:
$ref: '#/components/schemas/TimeseriesFormulaResponseType'
type: object
FormulaLimit:
description: 'Message for specifying limits to the number of values returned by a query.
This limit is only for scalar queries and has no effect on timeseries queries.'
properties:
count:
description: The number of results to which to limit.
example: 10
format: int32
maximum: 2147483647
type: integer
order:
$ref: '#/components/schemas/QuerySortOrder'
type: object
QueryFormula:
description: A formula for calculation based on one or more queries.
properties:
formula:
description: Formula string, referencing one or more queries with their name property.
example: a+b
type: string
limit:
$ref: '#/components/schemas/FormulaLimit'
required:
- formula
type: object
responses:
TooManyRequestsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
description: Too many requests
UnauthorizedResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
description: Unauthorized
BadRequestResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
description: Bad Request
ForbiddenResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
description: Forbidden
securitySchemes:
AuthZ:
description: This API uses OAuth 2 with the implicit grant flow.
flows:
authorizationCode:
authorizationUrl: /oauth2/v1/authorize
scopes:
apm_api_catalog_read: View API catalog and API definitions.
apm_api_catalog_write: Add, modify, and delete API catalog definitions.
apm_read: Read and query APM and Trace Analytics.
apm_service_catalog_read: View service catalog and service definitions.
apm_service_catalog_write: Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog.
appsec_vm_read: View infrastructure, application code, and library vulnerabilities. This does not restrict API or inventory SQL access to the vulnerability data source.
cases_read: View Cases.
cases_write: Create and update cases.
ci_visibility_pipelines_write: Create CI Visibility pipeline spans using the API.
ci_visibility_read: View CI Visibility.
cloud_cost_management_read: View Cloud Cost pages and the cloud cost data source in dashboards and notebooks. For more details, see the Cloud Cost Management docs.
cloud_cost_management_write: Configure cloud cost accounts and global customizations. For more details, see the Cloud Cost Management docs.
code_analysis_read: View Code Analysis.
continuous_profiler_pgo_read: Read and query Continuous Profiler data for Profile-Guided Optimization (PGO).
create_webhooks: Create webhooks integrations.
dashboards_embed_share: Create, modify, and delete shared dashboards with share type 'embed'.
dashboards_invite_share: Create, modify, and delete shared dashboards with share type 'invite'.
dashboards_public_share: Generate public and authenticated links to share dashboards or embeddable graphs externally.
dashboards_read: View dashboards.
dashboards_write: Create and change dashboards.
data_scanner_read: View Data Scanner configurations.
data_scanner_write: Edit Data Scanner configurations.
embeddable_graphs_share: Generate public links to share embeddable graphs externally.
events_read: Read Events data.
hosts_read: List hosts and their attributes.
incident_notification_settings_write: Configure Incidents Notification settings.
incident_read: View incidents in Datadog.
incident_settings_write: Configure Incident Settings.
incident_write: Create, view, and manage incidents in Datadog.
metrics_read: View custom metrics.
monitor_config_policy_write: Edit and delete monitor configuration.
monitors_downtime: Set downtimes to suppress alerts from any monitor in an organization. Mute and unmute monitors. The ability to write monitors is not required to set downtimes.
monitors_read: View monitors.
monitors_write: Edit, delete, and resolve individual monitors.
org_management: Edit org configurations, including authentication and certain security preferences such as configuring SAML, renaming an org, configuring allowed login methods, creating child orgs, subscribing & unsubscribing from apps in the marketplace, and enabling & disabling Remote Configuration for the entire organization.
security_comments_read: Read comments of vulnerabilities.
security_monitoring_filters_read: Read Security Filters.
security_monitoring_filters_write: Create, edit, and delete Security Filters.
security_monitoring_findings_read: View a list of findings that include both misconfigurations and identity risks.
security_monitoring_notification_profiles_read: View Rule Security Notification rules.
security_monitoring_notification_profiles_write: Create, edit, and delete Security Notification rules.
security_monitoring_rules_read: Read Detection Rules.
security_monitoring_rules_write: Create and edit Detection Rules.
security_monitoring_signals_read: View Security Signals.
security_monitoring_suppressions_read: Read Rule Suppressions.
security_monitoring_suppressions_write: Write Rule Suppressions.
security_pipelines_read: View Security Pipelines.
security_pipelines_write: Create, edit, and delete CSM Security Pipelines.
slos_corrections: Apply, edit, and delete SLO status corrections. A user with this permission can make status corrections, even if they do not have permission to edit those SLOs.
slos_read: View SLOs and status corrections.
slos_write: Create, edit, and delete SLOs.
synthetics_global_variable_read: View, search, and use Synthetics global variables.
synthetics_global_variable_write: Create, edit, and delete global variables for Synthetics.
synthetics_private_location_read: View, search, and use Synthetics private locations.
synthetics_private_location_write: Create and delete private locations in addition to having access to the associated installation guidelines.
synthetics_read: List and view configured Synthetic tests and test results.
synthetics_write: Create, edit, and delete Synthetic tests.
teams_manage: Manage Teams. Create, delete, rename, and edit metadata of all Teams. To control Team membership across all Teams, use the User Access Manage permission.
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/datadog/refs/heads/main/openapi/datadog-data-api-openapi.yml