Skip to content
Start here

Retrieve information about an operation

api_gateway.operations.get(stroperation_id, OperationGetParams**kwargs) -> OperationGetResponse
GET/zones/{zone_id}/api_gateway/operations/{operation_id}

Gets detailed information about a specific API operation in API Shield, including its schema validation settings and traffic statistics.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Account API GatewayAccount API Gateway ReadDomain API GatewayDomain API Gateway Read
ParametersExpand Collapse
zone_id: str

Identifier.

maxLength32
operation_id: str

UUID.

maxLength36
feature: Optional[List[Literal["thresholds", "parameter_schemas", "schema_info"]]]

Add feature(s) to the results. The feature name that is given here corresponds to the resulting feature object. Have a look at the top-level object description for more details on the specific meaning.

One of the following:
"thresholds"
"parameter_schemas"
"schema_info"
ReturnsExpand Collapse
class OperationGetResponse:
endpoint: str

The endpoint which can contain path parameter templates in curly braces, each will be replaced from left to right with {varN}, starting with {var1}, during insertion. This will further be Cloudflare-normalized upon insertion. See: https://developers.cloudflare.com/rules/normalization/how-it-works/.

formaturi-template
maxLength4096
host: str

RFC3986-compliant host.

formathostname
maxLength255
last_updated: datetime
formatdate-time
method: Literal["GET", "POST", "HEAD", 6 more]

The HTTP method used to access the endpoint.

One of the following:
"GET"
"POST"
"HEAD"
"OPTIONS"
"PUT"
"DELETE"
"CONNECT"
"PATCH"
"TRACE"
operation_id: str

UUID.

maxLength36
minLength36
features: Optional[Features]
One of the following:
class FeaturesAPIShieldOperationFeatureThresholds:
thresholds: Optional[FeaturesAPIShieldOperationFeatureThresholdsThresholds]
auth_id_tokens: Optional[int]

The total number of auth-ids seen across this calculation.

data_points: Optional[int]

The number of data points used for the threshold suggestion calculation.

last_updated: Optional[datetime]
formatdate-time
p50: Optional[int]

The p50 quantile of requests (in period_seconds).

p90: Optional[int]

The p90 quantile of requests (in period_seconds).

p99: Optional[int]

The p99 quantile of requests (in period_seconds).

period_seconds: Optional[int]

The period over which this threshold is suggested.

requests: Optional[int]

The estimated number of requests covered by these calculations.

suggested_threshold: Optional[int]

The suggested threshold in requests done by the same auth_id or period_seconds.

class FeaturesAPIShieldOperationFeatureParameterSchemas:
parameter_schemas: FeaturesAPIShieldOperationFeatureParameterSchemasParameterSchemas
last_updated: Optional[datetime]
formatdate-time
parameter_schemas: Optional[FeaturesAPIShieldOperationFeatureParameterSchemasParameterSchemasParameterSchemas]

An operation schema object containing a response.

parameters: Optional[List[object]]

An array containing the learned parameter schemas.

responses: Optional[object]

An empty response object. This field is required to yield a valid operation schema.

class FeaturesAPIShieldOperationFeatureAPIRouting:
api_routing: Optional[FeaturesAPIShieldOperationFeatureAPIRoutingAPIRouting]

API Routing settings on endpoint.

last_updated: Optional[datetime]
formatdate-time
route: Optional[str]

Target route.

class FeaturesAPIShieldOperationFeatureConfidenceIntervals:
confidence_intervals: Optional[FeaturesAPIShieldOperationFeatureConfidenceIntervalsConfidenceIntervals]
last_updated: Optional[datetime]
formatdate-time
suggested_threshold: Optional[FeaturesAPIShieldOperationFeatureConfidenceIntervalsConfidenceIntervalsSuggestedThreshold]
confidence_intervals: Optional[FeaturesAPIShieldOperationFeatureConfidenceIntervalsConfidenceIntervalsSuggestedThresholdConfidenceIntervals]
p90: Optional[FeaturesAPIShieldOperationFeatureConfidenceIntervalsConfidenceIntervalsSuggestedThresholdConfidenceIntervalsP90]

Upper and lower bound for percentile estimate

lower: Optional[float]

Lower bound for percentile estimate

upper: Optional[float]

Upper bound for percentile estimate

p95: Optional[FeaturesAPIShieldOperationFeatureConfidenceIntervalsConfidenceIntervalsSuggestedThresholdConfidenceIntervalsP95]

Upper and lower bound for percentile estimate

lower: Optional[float]

Lower bound for percentile estimate

upper: Optional[float]

Upper bound for percentile estimate

p99: Optional[FeaturesAPIShieldOperationFeatureConfidenceIntervalsConfidenceIntervalsSuggestedThresholdConfidenceIntervalsP99]

Upper and lower bound for percentile estimate

lower: Optional[float]

Lower bound for percentile estimate

upper: Optional[float]

Upper bound for percentile estimate

mean: Optional[float]

Suggested threshold.

class FeaturesAPIShieldOperationFeatureSchemaInfo:
schema_info: Optional[FeaturesAPIShieldOperationFeatureSchemaInfoSchemaInfo]
active_schema: Optional[FeaturesAPIShieldOperationFeatureSchemaInfoSchemaInfoActiveSchema]

Schema active on endpoint.

id: Optional[str]

UUID.

maxLength36
minLength36
created_at: Optional[datetime]
formatdate-time
is_learned: Optional[bool]

True if schema is Cloudflare-provided.

name: Optional[str]

Schema file name.

learned_available: Optional[bool]

True if a Cloudflare-provided learned schema is available for this endpoint.

mitigation_action: Optional[Literal["none", "log", "block"]]

Action taken on requests failing validation.

One of the following:
"none"
"log"
"block"

Retrieve information about an operation

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
operation = client.api_gateway.operations.get(
    operation_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
    zone_id="023e105f4ecef8ad9ca31a8372d0c353",
)
print(operation.operation_id)
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "endpoint": "/api/v1/users/{var1}",
    "host": "www.example.com",
    "last_updated": "2014-01-01T05:20:00.12345Z",
    "method": "GET",
    "operation_id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
    "features": {
      "thresholds": {
        "auth_id_tokens": 0,
        "data_points": 0,
        "last_updated": "2014-01-01T05:20:00.12345Z",
        "p50": 0,
        "p90": 0,
        "p99": 0,
        "period_seconds": 0,
        "requests": 0,
        "suggested_threshold": 0
      }
    }
  },
  "success": true
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "endpoint": "/api/v1/users/{var1}",
    "host": "www.example.com",
    "last_updated": "2014-01-01T05:20:00.12345Z",
    "method": "GET",
    "operation_id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
    "features": {
      "thresholds": {
        "auth_id_tokens": 0,
        "data_points": 0,
        "last_updated": "2014-01-01T05:20:00.12345Z",
        "p50": 0,
        "p90": 0,
        "p99": 0,
        "period_seconds": 0,
        "requests": 0,
        "suggested_threshold": 0
      }
    }
  },
  "success": true
}