{"openapi":"3.1.0","info":{"title":"Cloudflare API Shield (BYOK) API","version":"0.1.0","description":"Cloudflare API Shield (BYOK) lets an AI assistant read your own Cloudflare API Shield data through the Cloudflare API Shield API with a key you supply (Cloudflare API token with API Gateway read permission). Read-only: 10 tools (list_operations, get_operation, list_discovered_operations, list_labels, get_session_identifier_settings, list_schemas, list_schema_hosts, list_schema_operations,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-cloudflare-api-shield.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-cloudflare-api-shield/docs"},"termsOfService":"https://connectorbay.com/byok-cloudflare-api-shield/terms"},"servers":[{"url":"https://byok-cloudflare-api-shield.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-cloudflare-api-shield/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_operations":{"post":{"operationId":"list_operations","summary":"List the API operations (host, method, endpoint) saved in a zone's API Shield endpoint management, 50 per page at most. ","description":"List the API operations (host, method, endpoint) saved in a zone's API Shield endpoint management, 50 per page at most. Use for \"Which API endpoints does API Shield track on my zone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"},"endpoint":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only operations whose endpoint path contains this text, for example '/api/v1/users'.","title":"Endpoint"},"order":{"anyOf":[{"enum":["method","host","endpoint"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field.","title":"Order"},"direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Direction"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["zone_id"],"title":"list_operationsArguments","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_operation":{"post":{"operationId":"get_operation","summary":"Get one saved API operation with its host, method, endpoint and last update time. Use for \"Show API Shield operation f17","description":"Get one saved API operation with its host, method, endpoint and last update time. Use for \"Show API Shield operation f174e90a-fafe-4643-bbbc-4a0ed4fc8415\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"},"operation_id":{"description":"API Shield operation id (UUID), as returned by list_operations.","maxLength":64,"title":"Operation Id","type":"string"}},"required":["zone_id","operation_id"],"title":"get_operationArguments","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_discovered_operations":{"post":{"operationId":"list_discovered_operations","summary":"List operations API Discovery found in the zone's traffic, with review state (review, saved, ignored) and how they were ","description":"List operations API Discovery found in the zone's traffic, with review state (review, saved, ignored) and how they were found. Use for \"Which new API endpoints did API Discovery find on my zone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"},"endpoint":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only operations whose endpoint path contains this text, for example '/api/v1/users'.","title":"Endpoint"},"state":{"anyOf":[{"enum":["review","saved","ignored"],"type":"string"},{"type":"null"}],"default":null,"description":"Only operations in this review state.","title":"State"},"origin":{"anyOf":[{"enum":["ML","SessionIdentifier","LabelDiscovery"],"type":"string"},{"type":"null"}],"default":null,"description":"Only operations found by this method.","title":"Origin"},"diff":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return only operations that differ from the saved inventory.","title":"Diff"},"order":{"anyOf":[{"enum":["host","method","endpoint","traffic_stats.requests","traffic_stats.last_updated"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field.","title":"Order"},"direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Direction"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["zone_id"],"title":"list_discovered_operationsArguments","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_labels":{"post":{"operationId":"list_labels","summary":"List API Shield operation labels (managed and user-defined) with description, source and dates. Use for \"Which API Shiel","description":"List API Shield operation labels (managed and user-defined) with description, source and dates. Use for \"Which API Shield labels exist on my zone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"},"source":{"anyOf":[{"enum":["user","managed"],"type":"string"},{"type":"null"}],"default":null,"description":"Only labels from this source.","title":"Source"},"filter":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only labels whose name or description contains this text.","title":"Filter"},"order":{"anyOf":[{"enum":["name","description","created_at","last_updated"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field.","title":"Order"},"direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Direction"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["zone_id"],"title":"list_labelsArguments","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_session_identifier_settings":{"post":{"operationId":"get_session_identifier_settings","summary":"Show which headers, cookies or JWT claims API Shield uses to identify sessions (names only, not values). Use for \"How do","description":"Show which headers, cookies or JWT claims API Shield uses to identify sessions (names only, not values). Use for \"How does API Shield identify sessions on my zone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"}},"required":["zone_id"],"title":"get_session_identifier_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_schemas":{"post":{"operationId":"list_schemas","summary":"List the OpenAPI schemas uploaded for schema validation, with name, kind and whether validation is enabled. The schema s","description":"List the OpenAPI schemas uploaded for schema validation, with name, kind and whether validation is enabled. The schema source text is left out. Use for \"Which OpenAPI schemas are uploaded to API Shield\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"},"validation_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True or false: only schemas with validation enabled or disabled.","title":"Validation Enabled"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["zone_id"],"title":"list_schemasArguments","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_schema_hosts":{"post":{"operationId":"list_schema_hosts","summary":"List the hostnames covered by each uploaded schema. Use for \"Which hosts do my uploaded API schemas cover\".","description":"List the hostnames covered by each uploaded schema. Use for \"Which hosts do my uploaded API schemas cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["zone_id"],"title":"list_schema_hostsArguments","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_schema_operations":{"post":{"operationId":"list_schema_operations","summary":"List the operations (host, method, endpoint) contained in one uploaded schema. Use for \"Which operations does schema f17","description":"List the operations (host, method, endpoint) contained in one uploaded schema. Use for \"Which operations does schema f174e90a-fafe-4643-bbbc-4a0ed4fc8415 define\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"},"schema_id":{"description":"Uploaded schema id (UUID), as returned by list_schemas.","maxLength":64,"title":"Schema Id","type":"string"},"endpoint":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only operations whose endpoint path contains this text, for example '/api/v1/users'.","title":"Endpoint"},"operation_status":{"anyOf":[{"enum":["new","existing"],"type":"string"},{"type":"null"}],"default":null,"description":"Only operations that are new or already existing in endpoint management.","title":"Operation Status"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["zone_id","schema_id"],"title":"list_schema_operationsArguments","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_schema_validation_settings":{"post":{"operationId":"get_schema_validation_settings","summary":"Show the zone-wide schema validation actions: the default action and the override action (none, log or block). Use for \"","description":"Show the zone-wide schema validation actions: the default action and the override action (none, log or block). Use for \"What does schema validation do by default on my zone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"}},"required":["zone_id"],"title":"get_schema_validation_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_operation_schema_validation":{"post":{"operationId":"get_operation_schema_validation","summary":"Show the schema validation action (none, log or block) set for one operation. Use for \"What schema validation action app","description":"Show the schema validation action (none, log or block) set for one operation. Use for \"What schema validation action applies to operation f174e90a-fafe-4643-bbbc-4a0ed4fc8415\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"},"operation_id":{"description":"API Shield operation id (UUID), as returned by list_operations.","maxLength":64,"title":"Operation Id","type":"string"}},"required":["zone_id","operation_id"],"title":"get_operation_schema_validationArguments","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}}}}