{"openapi":"3.1.0","info":{"title":"Datadog Monitor Config (BYOK) API","version":"0.1.0","description":"Datadog Monitor Config (BYOK) lets an AI assistant read your own Datadog Monitor Config data through the Datadog Monitor Config API with a key you supply (Datadog API key (US1 site, datadoghq.com)). Read-only: 10 tools (search_monitors, search_monitor_groups, list_notification_rules, get_notification_rule, list_config_policies, list_monitor_templates, get_monitor_template, list_downtimes,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-datadog-monitor-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-datadog-monitor-config/docs"},"termsOfService":"https://connectorbay.com/byok-datadog-monitor-config/terms"},"servers":[{"url":"https://byok-datadog-monitor-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-datadog-monitor-config/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/search_monitors":{"post":{"operationId":"search_monitors","summary":"Search monitors with Datadog's monitor search syntax. Returns name, type, status, query, tags, last triggered time and s","description":"Search monitors with Datadog's monitor search syntax. Returns name, type, status, query, tags, last triggered time and status counts (no creator details). Use for \"Which Datadog monitors are currently in alert status\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Monitor search query as on the Manage Monitors page, for example 'status:alert tag:team:web' or free text.","title":"Query"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Sort as field,direction, for example status,asc or name,desc.","title":"Sort"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"per_page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Monitors per page (1 to 1000).","title":"Per Page"}},"title":"search_monitorsArguments","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/search_monitor_groups":{"post":{"operationId":"search_monitor_groups","summary":"Search triggered monitor groups (one row per alerting group such as a host) with monitor id and name, group, status and ","description":"Search triggered monitor groups (one row per alerting group such as a host) with monitor id and name, group, status and last trigger time. Use for \"Which hosts are currently triggering Datadog monitors\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Monitor search query as on the Manage Monitors page, for example 'status:alert tag:team:web' or free text.","title":"Query"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Sort as field,direction, for example status,asc.","title":"Sort"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"per_page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Monitors per page (1 to 1000).","title":"Per Page"}},"title":"search_monitor_groupsArguments","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_notification_rules":{"post":{"operationId":"list_notification_rules","summary":"List monitor notification rules (routing rules applied to monitors by tag): name, tag filter, bundling duration and date","description":"List monitor notification rules (routing rules applied to monitors by tag): name, tag filter, bundling duration and dates. Recipients are not returned. Use for \"Which monitor notification rules exist in Datadog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number to start from (default 0).","title":"Page"},"per_page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Rules per page (1 to 1000).","title":"Per Page"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Sort as field:direction using name or created_at, for example name:asc.","title":"Sort"}},"title":"list_notification_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/get_notification_rule":{"post":{"operationId":"get_notification_rule","summary":"Get one monitor notification rule by id: name, tag filter, bundling duration and dates. Use for \"Show Datadog monitor no","description":"Get one monitor notification rule by id: name, tag filter, bundling duration and dates. Use for \"Show Datadog monitor notification rule r1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"rule_id":{"description":"Notification rule id (UUID) from list_notification_rules.","maxLength":60,"title":"Rule Id","type":"string"}},"required":["rule_id"],"title":"get_notification_ruleArguments","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_config_policies":{"post":{"operationId":"list_config_policies","summary":"List monitor configuration policies (required tags or downtime limits) with their policy type and definition. Use for \"W","description":"List monitor configuration policies (required tags or downtime limits) with their policy type and definition. Use for \"Which monitor configuration policies are enforced in Datadog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_config_policiesArguments","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_monitor_templates":{"post":{"operationId":"list_monitor_templates","summary":"List monitor user templates with title, description, tags, version, template variables and the monitor definition. Use f","description":"List monitor user templates with title, description, tags, version, template variables and the monitor definition. Use for \"Which monitor templates exist in Datadog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_monitor_templatesArguments","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_monitor_template":{"post":{"operationId":"get_monitor_template","summary":"Get one monitor user template by id with its monitor definition and template variables. Use for \"Show Datadog monitor te","description":"Get one monitor user template by id with its monitor definition and template variables. Use for \"Show Datadog monitor template t1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"template_id":{"description":"Monitor template id (UUID) from list_monitor_templates.","maxLength":60,"title":"Template Id","type":"string"}},"required":["template_id"],"title":"get_monitor_templateArguments","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_downtimes":{"post":{"operationId":"list_downtimes","summary":"List scheduled downtimes (v2) with scope, status, schedule, message and the monitor they apply to. Optionally only those","description":"List scheduled downtimes (v2) with scope, status, schedule, message and the monitor they apply to. Optionally only those active now. Use for \"Which Datadog downtimes are active right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"current_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to return only downtimes active at request time.","title":"Current Only"},"page_limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Downtimes per page (1 to 100).","title":"Page Limit"},"page_offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Offset to start from.","title":"Page Offset"}},"title":"list_downtimesArguments","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_downtime":{"post":{"operationId":"get_downtime","summary":"Get one downtime (v2) by id with scope, status, schedule, message and monitor identifier. Use for \"Show the Datadog down","description":"Get one downtime (v2) by id with scope, status, schedule, message and monitor identifier. Use for \"Show the Datadog downtime d1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"downtime_id":{"description":"Downtime id (UUID) from list_downtimes.","maxLength":60,"title":"Downtime Id","type":"string"}},"required":["downtime_id"],"title":"get_downtimeArguments","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_monitor_active_downtimes":{"post":{"operationId":"list_monitor_active_downtimes","summary":"List the downtimes currently muting one monitor, with matched scope, groups, start and end. Use for \"Is Datadog monitor ","description":"List the downtimes currently muting one monitor, with matched scope, groups, start and end. Use for \"Is Datadog monitor 1 muted by a downtime\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"monitor_id":{"description":"Numeric monitor id.","maximum":9999999999,"minimum":1,"title":"Monitor Id","type":"integer"},"page_limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Downtimes per page (1 to 100).","title":"Page Limit"},"page_offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Offset to start from.","title":"Page Offset"}},"required":["monitor_id"],"title":"list_monitor_active_downtimesArguments","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}}}}