Skip to content
Start here

Create a new AI Gateway Dynamic Route.

client.aiGateway.dynamicRouting.create(stringgatewayId, DynamicRoutingCreateParams { account_id, elements, name } params, RequestOptionsoptions?): DynamicRoutingCreateResponse { id, created_at, deployment, 5 more }
POST/accounts/{account_id}/ai-gateway/gateways/{gateway_id}/routes

Create a new AI Gateway Dynamic Route.

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
gatewayId: string
params: DynamicRoutingCreateParams { account_id, elements, name }
account_id: string

Path param

elements: Array<UnionMember0 { id, outputs, type } | UnionMember1 { id, outputs, properties, type } | UnionMember2 { id, outputs, type } | 3 more>

Body param

One of the following:
UnionMember0 { id, outputs, type }
id: string
outputs: Outputs { next }
type: "start"
UnionMember1 { id, outputs, properties, type }
id: string
outputs: Outputs { false, true }
false: False { elementId }
elementId: string
true: True { elementId }
elementId: string
properties: Properties { conditions }
conditions?: unknown
type: "conditional"
UnionMember2 { id, outputs, type }
id: string
outputs: Record<string, Outputs>
elementId: string
type: "percentage"
UnionMember3 { id, outputs, properties, type }
id: string
outputs: Outputs { fallback, success }
fallback: Fallback { elementId }
elementId: string
success: Success { elementId }
elementId: string
properties: Properties { key, limit, limitType, window }
key: string
limit: number
limitType: "count" | "cost"
One of the following:
"count"
"cost"
window: number
type: "rate"
UnionMember4 { id, outputs, properties, type }
id: string
outputs: Outputs { fallback, success }
fallback: Fallback { elementId }
elementId: string
success: Success { elementId }
elementId: string
properties: Properties { model, provider, retries, timeout }
model: string
provider: string
retries: number
timeout: number
type: "model"
UnionMember5 { id, outputs, type }
id: string
outputs: Record<string, Outputs>
elementId: string
type: "end"
name: string

Body param

ReturnsExpand Collapse
DynamicRoutingCreateResponse { id, created_at, deployment, 5 more }
id: string
created_at: string
formatdate-time
deployment: Deployment { created_at, deployment_id, version_id }
created_at: string
deployment_id: string
version_id: string
elements: Array<UnionMember0 { id, outputs, type } | UnionMember1 { id, outputs, properties, type } | UnionMember2 { id, outputs, type } | 3 more>
One of the following:
UnionMember0 { id, outputs, type }
id: string
outputs: Outputs { next }
type: "start"
UnionMember1 { id, outputs, properties, type }
id: string
outputs: Outputs { false, true }
false: False { elementId }
elementId: string
true: True { elementId }
elementId: string
properties: Properties { conditions }
conditions?: unknown
type: "conditional"
UnionMember2 { id, outputs, type }
id: string
outputs: Record<string, Outputs>
elementId: string
type: "percentage"
UnionMember3 { id, outputs, properties, type }
id: string
outputs: Outputs { fallback, success }
fallback: Fallback { elementId }
elementId: string
success: Success { elementId }
elementId: string
properties: Properties { key, limit, limitType, window }
key: string
limit: number
limitType: "count" | "cost"
One of the following:
"count"
"cost"
window: number
type: "rate"
UnionMember4 { id, outputs, properties, type }
id: string
outputs: Outputs { fallback, success }
fallback: Fallback { elementId }
elementId: string
success: Success { elementId }
elementId: string
properties: Properties { model, provider, retries, timeout }
model: string
provider: string
retries: number
timeout: number
type: "model"
UnionMember5 { id, outputs, type }
id: string
outputs: Record<string, Outputs>
elementId: string
type: "end"
gateway_id: string
modified_at: string
formatdate-time
name: string
version: Version { active, created_at, data, version_id }
active: "true" | "false"
One of the following:
"true"
"false"
created_at: string
data: string
version_id: string

Create a new AI Gateway Dynamic Route.

import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

const dynamicRouting = await client.aiGateway.dynamicRouting.create('54442216', {
  account_id: '0d37909e38d3e99c29fa2cd343ac421a',
  elements: [
    {
      id: 'id',
      outputs: { next: { elementId: 'elementId' } },
      type: 'start',
    },
  ],
  name: 'name',
});

console.log(dynamicRouting.id);
{
  "result": {
    "id": "id",
    "created_at": "2019-12-27T18:11:19.117Z",
    "deployment": {
      "created_at": "created_at",
      "deployment_id": "deployment_id",
      "version_id": "version_id"
    },
    "elements": [
      {
        "id": "id",
        "outputs": {
          "next": {
            "elementId": "elementId"
          }
        },
        "type": "start"
      }
    ],
    "gateway_id": "gateway_id",
    "modified_at": "2019-12-27T18:11:19.117Z",
    "name": "name",
    "version": {
      "active": "true",
      "created_at": "created_at",
      "data": "data",
      "version_id": "version_id"
    }
  },
  "success": true
}
Returns Examples
{
  "result": {
    "id": "id",
    "created_at": "2019-12-27T18:11:19.117Z",
    "deployment": {
      "created_at": "created_at",
      "deployment_id": "deployment_id",
      "version_id": "version_id"
    },
    "elements": [
      {
        "id": "id",
        "outputs": {
          "next": {
            "elementId": "elementId"
          }
        },
        "type": "start"
      }
    ],
    "gateway_id": "gateway_id",
    "modified_at": "2019-12-27T18:11:19.117Z",
    "name": "name",
    "version": {
      "active": "true",
      "created_at": "created_at",
      "data": "data",
      "version_id": "version_id"
    }
  },
  "success": true
}