{"openapi":"3.1.0","info":{"title":"Datadog Cloud Cost (BYOK) API","version":"0.1.0","description":"Datadog Cloud Cost (BYOK) lets an AI assistant read your own Datadog Cloud Cost data through the Datadog Cloud Cost API with a key you supply (Datadog API key (US1 site, datadoghq.com)). Read-only: 10 tools (list_budgets, get_budget, list_cost_anomalies, list_cloud_accounts, list_unit_costs, list_custom_allocation_rules, list_cost_tag_keys, list_cost_metrics, get_cost_currency,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-datadog-cloud-cost.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-datadog-cloud-cost/docs"},"termsOfService":"https://connectorbay.com/byok-datadog-cloud-cost/terms"},"servers":[{"url":"https://byok-datadog-cloud-cost.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-datadog-cloud-cost/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_budgets":{"post":{"operationId":"list_budgets","summary":"List Cloud Cost Management budgets with name, month range, total amount, metrics query, tags and the monthly entries. Us","description":"List Cloud Cost Management budgets with name, month range, total amount, metrics query, tags and the monthly entries. Use for \"What cloud cost budgets do we have in Datadog and how much are they\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_budgetsArguments","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_budget":{"post":{"operationId":"get_budget","summary":"Get one budget by id. Optionally include actual and forecast cost for a time window (start and end must be given togethe","description":"Get one budget by id. Optionally include actual and forecast cost for a time window (start and end must be given together as epoch milliseconds). Use for \"How is Datadog budget b1 tracking against actual spend\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"budget_id":{"description":"Budget id from list_budgets.","maxLength":100,"title":"Budget Id","type":"string"},"include_actual":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include actual cost figures.","title":"Include Actual"},"include_forecast":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include forecast cost figures.","title":"Include Forecast"},"start":{"anyOf":[{"maximum":9999999999999,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the cost window in epoch milliseconds (use together with end).","title":"Start"},"end":{"anyOf":[{"maximum":9999999999999,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"End of the cost window in epoch milliseconds (use together with start).","title":"End"}},"required":["budget_id"],"title":"get_budgetArguments","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_cost_anomalies":{"post":{"operationId":"list_cost_anomalies","summary":"List detected cloud cost anomalies in a time window with provider, actual cost, anomalous cost change, dimensions and di","description":"List detected cloud cost anomalies in a time window with provider, actual cost, anomalous cost change, dimensions and dismissal state, plus window totals. Use for \"Which cloud cost anomalies has Datadog detected this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start":{"anyOf":[{"maximum":9999999999999,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Window start in epoch milliseconds (default: start of the latest stable seven-day window).","title":"Start"},"end":{"anyOf":[{"maximum":9999999999999,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Window end in epoch milliseconds.","title":"End"},"dismissal_cause":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Resolution filter: none for unresolved, all for resolved, or a comma-separated list of causes.","title":"Dismissal Cause"},"order_by":{"anyOf":[{"enum":["start_date","end_date","duration","max_cost","anomalous_cost"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field: start_date, end_date, duration, max_cost or anomalous_cost.","title":"Order By"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Sort direction.","title":"Order"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum number of anomalies (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Offset for paging.","title":"Offset"}},"title":"list_cost_anomaliesArguments","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_cloud_accounts":{"post":{"operationId":"list_cloud_accounts","summary":"List the cloud accounts (AWS CUR 2.0 and OCI) connected to Cloud Cost Management with account id, status, last status up","description":"List the cloud accounts (AWS CUR 2.0 and OCI) connected to Cloud Cost Management with account id, status, last status update and error messages. Use for \"Which cloud accounts are connected to Datadog Cloud Cost Management and are they healthy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cloud":{"anyOf":[{"enum":["aws_cur2","oci"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this cloud: aws_cur2 or oci.","title":"Cloud"}},"title":"list_cloud_accountsArguments","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_unit_costs":{"post":{"operationId":"list_unit_costs","summary":"List unit cost (ROI) metrics: name, unit label, description, numerator and denominator queries. Use for \"What unit cost ","description":"List unit cost (ROI) metrics: name, unit label, description, numerator and denominator queries. Use for \"What unit cost metrics are defined in Datadog Cloud Cost Management\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_unit_costsArguments","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_custom_allocation_rules":{"post":{"operationId":"list_custom_allocation_rules","summary":"List custom cost allocation rules with name, providers, enabled flag, order, processing status and allocation strategy. ","description":"List custom cost allocation rules with name, providers, enabled flag, order, processing status and allocation strategy. Use for \"Which custom cost allocation rules are active in Datadog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_custom_allocation_rulesArguments","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_cost_tag_keys":{"post":{"operationId":"list_cost_tag_keys","summary":"List the tag keys available in Cloud Cost Management (for grouping and filtering), with their sources and description. O","description":"List the tag keys available in Cloud Cost Management (for grouping and filtering), with their sources and description. Optionally scope to one cost metric. Use for \"Which tag keys can I group Datadog cloud costs by\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"metric":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cost metric to scope the tag keys to, from list_cost_metrics.","title":"Metric"}},"title":"list_cost_tag_keysArguments","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_cost_metrics":{"post":{"operationId":"list_cost_metrics","summary":"List the cost metrics that have data in a month, optionally for one provider. Use for \"Which cloud cost metrics have dat","description":"List the cost metrics that have data in a month, optionally for one provider. Use for \"Which cloud cost metrics have data in Datadog for September 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"month":{"description":"Month to look at in YYYY-MM format, for example 2026-09.","maxLength":7,"title":"Month","type":"string"},"provider":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only this provider, for example aws, azure, gcp, Oracle or datadog.","title":"Provider"}},"required":["month"],"title":"list_cost_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_cost_currency":{"post":{"operationId":"get_cost_currency","summary":"Get the dominant billing currency seen in Cloud Cost Management data for a month, optionally for one provider. Use for \"","description":"Get the dominant billing currency seen in Cloud Cost Management data for a month, optionally for one provider. Use for \"What currency is our Datadog cloud cost data billed in for September 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"month":{"description":"Month to look at in YYYY-MM format, for example 2026-09.","maxLength":7,"title":"Month","type":"string"},"provider":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only this provider, for example aws, azure, gcp, Oracle or datadog.","title":"Provider"}},"required":["month"],"title":"get_cost_currencyArguments","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_custom_cost_files":{"post":{"operationId":"list_custom_cost_files","summary":"List uploaded Custom Costs files with name, status, provider names, billed cost, currency and upload time (no uploader d","description":"List uploaded Custom Costs files with name, status, provider names, billed cost, currency and upload time (no uploader details). Use for \"Which custom cost files have been uploaded to Datadog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Items per page (default 100).","title":"Page Size"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number.","title":"Page Number"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring of the file name.","title":"Name"},"status":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only files with this status.","title":"Status"}},"title":"list_custom_cost_filesArguments","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}}}}