{"openapi":"3.1.0","info":{"title":"DataDome (BYOK) API","version":"0.1.0","description":"DataDome (BYOK) lets an AI assistant read your own DataDome data through the DataDome API with a key you supply (DataDome management API key). Read-only: 11 tools (get_account_settings, get_account_protect_settings, list_account_endpoints, list_endpoints, get_endpoint, get_account_usage, get_usage_by_endpoint, list_custom_rules, list_trusted_proxies, list_verified_models, list_ai_agents). The...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-datadome.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-datadome/docs"},"termsOfService":"https://connectorbay.com/byok-datadome/terms"},"servers":[{"url":"https://byok-datadome.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-datadome/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/get_account_settings":{"post":{"operationId":"get_account_settings","summary":"Show the account name and whether Bot Protect protection is switched on. Use for \"Is DataDome protection enabled on our ","description":"Show the account name and whether Bot Protect protection is switched on. Use for \"Is DataDome protection enabled on our account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_account_settingsArguments","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_account_protect_settings":{"post":{"operationId":"get_account_protect_settings","summary":"Show whether Account Protect (fraud and takeover protection) is switched on. Use for \"Is DataDome Account Protect enable","description":"Show whether Account Protect (fraud and takeover protection) is switched on. Use for \"Is DataDome Account Protect enabled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_account_protect_settingsArguments","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_account_endpoints":{"post":{"operationId":"list_account_endpoints","summary":"List the endpoints (protected traffic definitions) with source, type, domain, path filters, and whether detection and pr","description":"List the endpoints (protected traffic definitions) with source, type, domain, path filters, and whether detection and protection are on. Use for \"Which DataDome endpoints are configured and are they in protection mode\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_account_endpointsArguments","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_endpoints":{"post":{"operationId":"list_endpoints","summary":"List endpoints with their order, source, traffic type, domain, path filters and detection and protection flags. Use for ","description":"List endpoints with their order, source, traffic type, domain, path filters and detection and protection flags. Use for \"Show our DataDome endpoint definitions in order\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_endpointsArguments","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_endpoint":{"post":{"operationId":"get_endpoint","summary":"Get one endpoint by ID: name, source, traffic type, domain, path filters and detection and protection flags. Use for \"Wh","description":"Get one endpoint by ID: name, source, traffic type, domain, path filters and detection and protection flags. Use for \"What does the DataDome endpoint with a given ID match and protect\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Endpoint ID from list_endpoints.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_endpointArguments","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_account_usage":{"post":{"operationId":"get_account_usage","summary":"Count the requests DataDome handled in a period, optionally for one endpoint or domain. Use for \"How many requests did D","description":"Count the requests DataDome handled in a period, optionally for one endpoint or domain. Use for \"How many requests did DataDome process since the first of this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start":{"description":"Start of the period as an ISO 8601 date-time, for example 2026-10-01T00:00:00Z.","maxLength":40,"title":"Start","type":"string"},"end":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the period as an ISO 8601 date-time. Defaults to now.","title":"End"},"endpoint_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only count this endpoint (ID from list_endpoints).","title":"Endpoint Id"},"domain":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":null,"description":"Only count this domain.","title":"Domain"}},"required":["start"],"title":"get_account_usageArguments","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_usage_by_endpoint":{"post":{"operationId":"get_usage_by_endpoint","summary":"Break down DataDome request counts per endpoint for a period. Use for \"Which DataDome endpoint handled the most requests","description":"Break down DataDome request counts per endpoint for a period. Use for \"Which DataDome endpoint handled the most requests this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start":{"description":"Start of the period as an ISO 8601 date-time, for example 2026-10-01T00:00:00Z.","maxLength":40,"title":"Start","type":"string"},"end":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the period as an ISO 8601 date-time. Defaults to now.","title":"End"}},"required":["start"],"title":"get_usage_by_endpointArguments","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_rules":{"post":{"operationId":"list_custom_rules","summary":"List custom rules with name, response (allow, captcha, block...), priority, query, enabled flag, schedule and 24-hour hi","description":"List custom rules with name, response (allow, captcha, block...), priority, query, enabled flag, schedule and 24-hour hit count. Use for \"Which DataDome custom rules are active and how often did they match\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"without_traffic":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to leave out the 24-hour hit counts, which makes the call faster.","title":"Without Traffic"}},"title":"list_custom_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_trusted_proxies":{"post":{"operationId":"list_trusted_proxies","summary":"List trusted proxy IP ranges with title, start and end address and update time. Use for \"Which proxy IP ranges does Data","description":"List trusted proxy IP ranges with title, start and end address and update time. Use for \"Which proxy IP ranges does DataDome trust for us\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_trusted_proxiesArguments","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_verified_models":{"post":{"operationId":"list_verified_models","summary":"List the verified AI models DataDome recognises, with UUID and name. Use for \"Which verified AI models does DataDome kno","description":"List the verified AI models DataDome recognises, with UUID and name. Use for \"Which verified AI models does DataDome know about\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_verified_modelsArguments","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_ai_agents":{"post":{"operationId":"list_ai_agents","summary":"List the AI agents DataDome recognises, with UUID and name. Use for \"Which AI agents can I allow or block in DataDome\".","description":"List the AI agents DataDome recognises, with UUID and name. Use for \"Which AI agents can I allow or block in DataDome\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_ai_agentsArguments","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}}}}