Skip to content
Start here

Create a dynamic route version

ai_gateway.dynamic_routing.create_version(strid, DynamicRoutingCreateVersionParams**kwargs) -> DynamicRoutingCreateVersionResponse
POST/accounts/{account_id}/ai-gateway/gateways/{gateway_id}/routes/{id}/versions

Creates a new version of a dynamic route from the specified routing elements. The version does not serve traffic until you deploy it.

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)
AI Gateway Write
ParametersExpand Collapse
account_id: str
gateway_id: str
id: str
elements: Iterable[Element]
One of the following:
class ElementUnionMember0: …
id: str
outputs: ElementUnionMember0Outputs
type: Literal["start"]
class ElementUnionMember1: …
id: str
outputs: ElementUnionMember1Outputs
false: ElementUnionMember1OutputsFalse_
element_id: str
true: ElementUnionMember1OutputsTrue_
element_id: str
properties: ElementUnionMember1Properties
conditions: Optional[object]
type: Literal["conditional"]
class ElementUnionMember2: …
id: str
outputs: Dict[str, ElementUnionMember2Outputs]
element_id: str
type: Literal["percentage"]
class ElementUnionMember3: …
id: str
outputs: ElementUnionMember3Outputs
fallback: ElementUnionMember3OutputsFallback
element_id: str
success: ElementUnionMember3OutputsSuccess
element_id: str
properties: ElementUnionMember3Properties
key: str
limit: float
limit_type: Literal["count", "cost"]
One of the following:
"count"
"cost"
window: float
type: Literal["rate"]
class ElementUnionMember4: …
id: str
outputs: ElementUnionMember4Outputs
fallback: ElementUnionMember4OutputsFallback
element_id: str
success: ElementUnionMember4OutputsSuccess
element_id: str
properties: ElementUnionMember4Properties
model: str
provider: str
retries: float
timeout: float
type: Literal["model"]
class ElementUnionMember5: …
id: str
outputs: Dict[str, ElementUnionMember5Outputs]
element_id: str
type: Literal["end"]
ReturnsExpand Collapse
class DynamicRoutingCreateVersionResponse: …
id: str
created_at: datetime
formatdate-time
elements: List[Element]
One of the following:
class ElementUnionMember0: …
id: str
outputs: ElementUnionMember0Outputs
type: Literal["start"]
class ElementUnionMember1: …
id: str
outputs: ElementUnionMember1Outputs
false: ElementUnionMember1OutputsFalse_
element_id: str
true: ElementUnionMember1OutputsTrue_
element_id: str
properties: ElementUnionMember1Properties
conditions: Optional[object]
type: Literal["conditional"]
class ElementUnionMember2: …
id: str
outputs: Dict[str, ElementUnionMember2Outputs]
element_id: str
type: Literal["percentage"]
class ElementUnionMember3: …
id: str
outputs: ElementUnionMember3Outputs
fallback: ElementUnionMember3OutputsFallback
element_id: str
success: ElementUnionMember3OutputsSuccess
element_id: str
properties: ElementUnionMember3Properties
key: str
limit: float
limit_type: Literal["count", "cost"]
One of the following:
"count"
"cost"
window: float
type: Literal["rate"]
class ElementUnionMember4: …
id: str
outputs: ElementUnionMember4Outputs
fallback: ElementUnionMember4OutputsFallback
element_id: str
success: ElementUnionMember4OutputsSuccess
element_id: str
properties: ElementUnionMember4Properties
model: str
provider: str
retries: float
timeout: float
type: Literal["model"]
class ElementUnionMember5: …
id: str
outputs: Dict[str, ElementUnionMember5Outputs]
element_id: str
type: Literal["end"]
gateway_id: str
modified_at: datetime
formatdate-time
name: str
minLength1

Create a dynamic route version

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
response = client.ai_gateway.dynamic_routing.create_version(
    id="54442216",
    account_id="0d37909e38d3e99c29fa2cd343ac421a",
    gateway_id="54442216",
    elements=[{
        "id": "id",
        "outputs": {
            "next": {
                "element_id": "elementId"
            }
        },
        "type": "start",
    }],
)
print(response.id)
{
  "result": {
    "id": "id",
    "created_at": "2019-12-27T18:11:19.117Z",
    "elements": [
      {
        "id": "id",
        "outputs": {
          "next": {
            "elementId": "elementId"
          }
        },
        "type": "start"
      }
    ],
    "gateway_id": "gateway_id",
    "modified_at": "2019-12-27T18:11:19.117Z",
    "name": "x"
  },
  "success": true
}
Returns Examples
{
  "result": {
    "id": "id",
    "created_at": "2019-12-27T18:11:19.117Z",
    "elements": [
      {
        "id": "id",
        "outputs": {
          "next": {
            "elementId": "elementId"
          }
        },
        "type": "start"
      }
    ],
    "gateway_id": "gateway_id",
    "modified_at": "2019-12-27T18:11:19.117Z",
    "name": "x"
  },
  "success": true
}