Skip to content
Start here

Add one operation to a zone

api_gateway.operations.create(OperationCreateParams**kwargs) -> OperationCreateResponse
POST/zones/{zone_id}/api_gateway/operations/item

Add one operation to a zone. Endpoints can contain path variables. Host, method, endpoint will be normalized to a canoncial form when creating an operation and must be unique on the zone. Inserting an operation that matches an existing one will return the record of the already existing operation and update its last_updated date.

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 GatewayDomain API Gateway
ParametersExpand Collapse
zone_id: str

Identifier.

maxLength32
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
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"
ReturnsExpand Collapse
class OperationCreateResponse:
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"

Add one operation to a zone

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.create(
    zone_id="023e105f4ecef8ad9ca31a8372d0c353",
    endpoint="/api/v1/users/{var1}",
    host="www.example.com",
    method="GET",
)
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
}