{"openapi":"3.1.0","info":{"title":"Datadog Metrics (BYOK) API","version":"0.1.0","description":"Datadog Metrics (BYOK) lets an AI assistant read your own Datadog Metrics data through the Datadog Metrics API with a key you supply (Datadog API key (US1 site, datadoghq.com)). Read-only: 7 tools (list_active_metrics, get_metric_metadata, list_metrics, query_timeseries, list_metric_tags, get_metric_tag_configuration, get_metric_assets). The BYOK key travels with each request, is used for that...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-datadog-metrics.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-datadog-metrics/docs"},"termsOfService":"https://connectorbay.com/byok-datadog-metrics/terms"},"servers":[{"url":"https://byok-datadog-metrics.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-datadog-metrics/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_active_metrics":{"post":{"operationId":"list_active_metrics","summary":"List metric names that reported since a given time, optionally for one host or matching a tag filter (tag_filter cannot ","description":"List metric names that reported since a given time, optionally for one host or matching a tag filter (tag_filter cannot be combined with host). Names only. Use for \"Which metrics has host web-1 reported to Datadog since yesterday\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_time":{"description":"Only metrics reporting since this time, in Unix seconds.","maximum":100000000000,"minimum":0,"title":"From Time","type":"integer"},"host":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only metrics from the host with this name.","title":"Host"},"tag_filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Only metrics submitted with matching tags; supports AND, OR and wildcards, for example 'env:prod AND service:web*'. Cannot be combined with host.","title":"Tag Filter"}},"required":["from_time"],"title":"list_active_metricsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_metric_metadata":{"post":{"operationId":"get_metric_metadata","summary":"Get the metadata of one metric: type (gauge, rate, count), unit, per-unit, description, integration and statsd interval.","description":"Get the metadata of one metric: type (gauge, rate, count), unit, per-unit, description, integration and statsd interval. Use for \"What unit and type is the Datadog metric system.cpu.user\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"metric_name":{"description":"Full metric name, for example 'system.cpu.user'.","maxLength":250,"title":"Metric Name","type":"string"}},"required":["metric_name"],"title":"get_metric_metadataArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_metrics":{"post":{"operationId":"list_metrics","summary":"List metrics reporting in a look-back window with optional tag filter and Metrics Without Limits filters. Returns metric","description":"List metrics reporting in a look-back window with optional tag filter and Metrics Without Limits filters. Returns metric names; page with the cursor from meta.pagination.next_cursor. Use for \"Which custom metrics tagged env:prod are reporting to Datadog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tags":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Only metrics submitted with tags matching this expression, for example 'env IN (prod,staging) AND service:web'.","title":"Tags"},"configured":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return only metrics configured with Metrics Without Limits, false for unconfigured ones.","title":"Configured"},"queried":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for metrics queried in the last 30 days (window cannot be changed here), false for unqueried ones.","title":"Queried"},"window_seconds":{"anyOf":[{"maximum":2592000,"minimum":1,"type":"integer"},{"type":"null"}],"default":3600,"description":"Only metrics actively reporting in the last N seconds (1 to 2592000, default 3600).","title":"Window Seconds"},"page_size":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Maximum metrics per page (1 to 10000).","title":"Page Size"},"page_cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from meta.pagination.next_cursor of the previous answer; leave empty for the first page.","title":"Page Cursor"}},"title":"list_metricsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/query_timeseries":{"post":{"operationId":"query_timeseries","summary":"Run a read-only metrics query over a time range and return the matching series with scope, unit and data points (timesta","description":"Run a read-only metrics query over a time range and return the matching series with scope, unit and data points (timestamp in ms, value). Large answers are cut off. Use for \"What was the average CPU on host web-1 in the last hour in Datadog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_time":{"description":"Start of the range, Unix seconds.","maximum":100000000000,"minimum":0,"title":"From Time","type":"integer"},"to_time":{"description":"End of the range, Unix seconds.","maximum":100000000000,"minimum":0,"title":"To Time","type":"integer"},"query":{"description":"Datadog metrics query, for example 'avg:system.cpu.user{host:web-1}'.","maxLength":1000,"title":"Query","type":"string"}},"required":["from_time","to_time","query"],"title":"query_timeseriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_metric_tags":{"post":{"operationId":"list_metric_tags","summary":"List the tags (and, unless filtered out, tag values) seen on one metric in a look-back window, both queryable and ingest","description":"List the tags (and, unless filtered out, tag values) seen on one metric in a look-back window, both queryable and ingested. Use for \"Which tags does the Datadog metric system.cpu.user carry\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"metric_name":{"description":"Full metric name, for example 'system.cpu.user'.","maxLength":250,"title":"Metric Name","type":"string"},"window_seconds":{"anyOf":[{"maximum":2592000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Look back this many seconds (minimum 14400, the default of 4 hours).","title":"Window Seconds"},"match":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only tags containing this substring.","title":"Match"},"include_tag_values":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"False to return tag keys only. Defaults to true.","title":"Include Tag Values"}},"required":["metric_name"],"title":"list_metric_tagsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_metric_tag_configuration":{"post":{"operationId":"get_metric_tag_configuration","summary":"Get the Metrics Without Limits tag configuration of a metric: metric type, included or excluded tags, aggregations and p","description":"Get the Metrics Without Limits tag configuration of a metric: metric type, included or excluded tags, aggregations and percentiles. Answers 404 when none is set. Use for \"Is Metrics Without Limits configured for the Datadog metric app.requests\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"metric_name":{"description":"Full metric name, for example 'system.cpu.user'.","maxLength":250,"title":"Metric Name","type":"string"}},"required":["metric_name"],"title":"get_metric_tag_configurationArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_metric_assets":{"post":{"operationId":"get_metric_assets","summary":"Show which dashboards, monitors, notebooks and SLOs use a metric (ids only; refreshed by Datadog every 24 hours). Use fo","description":"Show which dashboards, monitors, notebooks and SLOs use a metric (ids only; refreshed by Datadog every 24 hours). Use for \"Which Datadog dashboards and monitors use the metric system.cpu.user\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"metric_name":{"description":"Full metric name, for example 'system.cpu.user'.","maxLength":250,"title":"Metric Name","type":"string"}},"required":["metric_name"],"title":"get_metric_assetsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}