{"openapi":"3.1.0","info":{"title":"Datadog Synthetics (BYOK) API","version":"0.1.0","description":"Datadog Synthetics (BYOK) lets an AI assistant read your own Datadog Synthetics data through the Datadog Synthetics API with a key you supply (Datadog API key (US1 site, datadoghq.com)). Read-only: 8 tools (list_tests, search_tests, get_test, get_api_test_results, get_browser_test_results, list_locations, get_default_locations, list_global_variables). The BYOK key travels with each request, is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-datadog-synthetics.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-datadog-synthetics/docs"},"termsOfService":"https://connectorbay.com/byok-datadog-synthetics/terms"},"servers":[{"url":"https://byok-datadog-synthetics.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-datadog-synthetics/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_tests":{"post":{"operationId":"list_tests","summary":"List Synthetic tests with name, type (api, browser, mobile, network), subtype, live or paused status, locations, check i","description":"List Synthetic tests with name, type (api, browser, mobile, network), subtype, live or paused status, locations, check interval and target URL or host. Request headers, bodies and credentials are left out. Use for \"Which Datadog Synthetic tests are paused\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Tests per page (default 100).","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_testsArguments","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_tests":{"post":{"operationId":"search_tests","summary":"Search Synthetic tests by text, for example a name, tag or 'type:browser'. Returns the same summary fields as list_tests","description":"Search Synthetic tests by text, for example a name, tag or 'type:browser'. Returns the same summary fields as list_tests. Use for \"Find Datadog Synthetic tests about checkout\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"text":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search text, for example 'checkout' or 'tag:env:prod'.","title":"Text"},"count":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many tests to return (default 50).","title":"Count"},"start":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Offset to start from.","title":"Start"},"sort":{"anyOf":[{"enum":["name,asc","name,desc"],"type":"string"},{"type":"null"}],"default":"name,asc","description":"Sort order such as 'name,asc' or 'name,desc'.","title":"Sort"}},"title":"search_testsArguments","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_test":{"post":{"operationId":"get_test","summary":"Get one Synthetic test by public id: type, status, locations, interval, failure thresholds, notification monitor id and ","description":"Get one Synthetic test by public id: type, status, locations, interval, failure thresholds, notification monitor id and target. Assertions, headers and variables are not returned. Use for \"Show the details of Datadog Synthetic test abc-def-ghi\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"public_id":{"description":"Public id of the Synthetic test (format 'abc-def-ghi') from list_tests or search_tests.","maxLength":50,"title":"Public Id","type":"string"}},"required":["public_id"],"title":"get_testArguments","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_api_test_results":{"post":{"operationId":"get_api_test_results","summary":"Get the latest results (up to 150) of a Synthetic API test: check time, location, pass or fail and total timing in milli","description":"Get the latest results (up to 150) of a Synthetic API test: check time, location, pass or fail and total timing in milliseconds. Use for \"Did Datadog Synthetic test abc-def-ghi pass recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"public_id":{"description":"Public id of the Synthetic test (format 'abc-def-ghi') from list_tests or search_tests.","maxLength":50,"title":"Public Id","type":"string"},"from_ts":{"anyOf":[{"maximum":100000000000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only results after this time, in Unix milliseconds.","title":"From Ts"},"to_ts":{"anyOf":[{"maximum":100000000000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only results before this time, in Unix milliseconds.","title":"To Ts"}},"required":["public_id"],"title":"get_api_test_resultsArguments","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_browser_test_results":{"post":{"operationId":"get_browser_test_results","summary":"Get the latest results (up to 150) of a Synthetic browser test: check time, location, device, duration, error count and ","description":"Get the latest results (up to 150) of a Synthetic browser test: check time, location, device, duration, error count and step counts. Use for \"How did Datadog browser test abc-def-ghi run recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"public_id":{"description":"Public id of the Synthetic test (format 'abc-def-ghi') from list_tests or search_tests.","maxLength":50,"title":"Public Id","type":"string"},"from_ts":{"anyOf":[{"maximum":100000000000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only results after this time, in Unix milliseconds.","title":"From Ts"},"to_ts":{"anyOf":[{"maximum":100000000000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only results before this time, in Unix milliseconds.","title":"To Ts"}},"required":["public_id"],"title":"get_browser_test_resultsArguments","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_locations":{"post":{"operationId":"list_locations","summary":"List public and private Synthetic locations with their ids and names. Use for \"Which Synthetic locations can I run Datad","description":"List public and private Synthetic locations with their ids and names. Use for \"Which Synthetic locations can I run Datadog tests from\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_locationsArguments","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_default_locations":{"post":{"operationId":"get_default_locations","summary":"List the location ids new Synthetic tests use by default. Use for \"What are the default Datadog Synthetic locations\".","description":"List the location ids new Synthetic tests use by default. Use for \"What are the default Datadog Synthetic locations\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_default_locationsArguments","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_global_variables":{"post":{"operationId":"list_global_variables","summary":"List Synthetic global variables with id, name, description and tags. Variable values are not returned by this tool. Use ","description":"List Synthetic global variables with id, name, description and tags. Variable values are not returned by this tool. Use for \"Which global variables do my Datadog Synthetic tests use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_global_variablesArguments","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}}}}