{"openapi":"3.1.0","info":{"title":"Datadog Logs Config (BYOK) API","version":"0.1.0","description":"Datadog Logs Config (BYOK) lets an AI assistant read your own Datadog Logs Config data through the Datadog Logs Config API with a key you supply (Datadog API key (US1 site, datadoghq.com)). Read-only: 10 tools (list_log_indexes, get_log_index, get_log_index_order, list_log_pipelines, get_log_pipeline, list_log_archives, get_log_archive, list_log_based_metrics, get_log_based_metric,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-datadog-logs-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-datadog-logs-config/docs"},"termsOfService":"https://connectorbay.com/byok-datadog-logs-config/terms"},"servers":[{"url":"https://byok-datadog-logs-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-datadog-logs-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/list_log_indexes":{"post":{"operationId":"list_log_indexes","summary":"List log indexes with filter query, retention days, daily limit and rate-limit flag. Needs both the API key and an appli","description":"List log indexes with filter query, retention days, daily limit and rate-limit flag. Needs both the API key and an application key. Use for \"Which log indexes do I have in Datadog and how long do they keep logs\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_log_indexesArguments","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_log_index":{"post":{"operationId":"get_log_index","summary":"Get one log index by name: filter query, retention, flex-logs retention, daily limit and rate-limit flag. Use for \"Show ","description":"Get one log index by name: filter query, retention, flex-logs retention, daily limit and rate-limit flag. Use for \"Show the main log index in Datadog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"Log index name from list_log_indexes, for example 'main'.","maxLength":100,"title":"Name","type":"string"}},"required":["name"],"title":"get_log_indexArguments","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_log_index_order":{"post":{"operationId":"get_log_index_order","summary":"Show the order in which logs are matched against indexes (first match wins). Use for \"In what order does Datadog check m","description":"Show the order in which logs are matched against indexes (first match wins). Use for \"In what order does Datadog check my log indexes\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_log_index_orderArguments","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_log_pipelines":{"post":{"operationId":"list_log_pipelines","summary":"List log processing pipelines in execution order with name, filter query, enabled and read-only flags. Processor definit","description":"List log processing pipelines in execution order with name, filter query, enabled and read-only flags. Processor definitions are left out; use get_log_pipeline for one. Use for \"Which log pipelines are enabled in Datadog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_log_pipelinesArguments","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_log_pipeline":{"post":{"operationId":"get_log_pipeline","summary":"Get one log pipeline by id with its filter query, description, tags and enabled flag. Use for \"Show Datadog log pipeline","description":"Get one log pipeline by id with its filter query, description, tags and enabled flag. Use for \"Show Datadog log pipeline abc123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pipeline_id":{"description":"Pipeline id from list_log_pipelines.","maxLength":100,"title":"Pipeline Id","type":"string"}},"required":["pipeline_id"],"title":"get_log_pipelineArguments","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_log_archives":{"post":{"operationId":"list_log_archives","summary":"List log archives with name, query, state (UNKNOWN, WORKING, FAILING, WORKING_AUTH_LEGACY), tag and rehydration settings","description":"List log archives with name, query, state (UNKNOWN, WORKING, FAILING, WORKING_AUTH_LEGACY), tag and rehydration settings. Destination secrets are not returned by Datadog. Use for \"Which Datadog log archives are working\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_log_archivesArguments","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_log_archive":{"post":{"operationId":"get_log_archive","summary":"Get one log archive by id: name, query, state, include-tags flag, rehydration limits and compression. Use for \"Show Data","description":"Get one log archive by id: name, query, state, include-tags flag, rehydration limits and compression. Use for \"Show Datadog log archive a1b2c3\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"archive_id":{"description":"Archive id from list_log_archives.","maxLength":100,"title":"Archive Id","type":"string"}},"required":["archive_id"],"title":"get_log_archiveArguments","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_log_based_metrics":{"post":{"operationId":"list_log_based_metrics","summary":"List metrics generated from logs: id (metric name), aggregation type, measure path, percentile flag and filter query. Us","description":"List metrics generated from logs: id (metric name), aggregation type, measure path, percentile flag and filter query. Use for \"Which log-based metrics exist in Datadog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_log_based_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_log_based_metric":{"post":{"operationId":"get_log_based_metric","summary":"Get one log-based metric by name with its compute definition and filter query. Use for \"Show the web.errors log-based me","description":"Get one log-based metric by name with its compute definition and filter query. Use for \"Show the web.errors log-based metric in Datadog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"metric_id":{"description":"Name of the log-based metric from list_log_based_metrics.","maxLength":200,"title":"Metric Id","type":"string"}},"required":["metric_id"],"title":"get_log_based_metricArguments","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_restriction_queries":{"post":{"operationId":"list_restriction_queries","summary":"List log restriction queries (access filters) with query text, role and user counts and last change time. Editor names a","description":"List log restriction queries (access filters) with query text, role and user counts and last change time. Editor names and emails are left out. Use for \"Which log restriction queries does my Datadog org have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Restriction queries per page (1 to 100, default 10).","title":"Page Size"},"page_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page Number"}},"title":"list_restriction_queriesArguments","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}}}}