Skip to content
Start here

Create a new Gateway

client.AIGateway.New(ctx, params) (*AIGatewayNewResponse, error)
POST/accounts/{account_id}/ai-gateway/gateways

Creates a new AI Gateway.

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
params AIGatewayNewParams
AccountID param.Field[string]

Path param

ID param.Field[string]

Body param: gateway id

maxLength64
minLength1
CacheInvalidateOnUpdate param.Field[bool]

Body param

CacheTTL param.Field[int64]

Body param

minimum0
CollectLogs param.Field[bool]

Body param

RateLimitingInterval param.Field[int64]

Body param

minimum0
RateLimitingLimit param.Field[int64]

Body param

minimum0
Authentication param.Field[bool]optional

Body param

LogManagement param.Field[int64]optional

Body param

maximum10000000
minimum10000
LogManagementStrategy param.Field[AIGatewayNewParamsLogManagementStrategy]optional

Body param

const AIGatewayNewParamsLogManagementStrategyStopInserting AIGatewayNewParamsLogManagementStrategy = "STOP_INSERTING"
const AIGatewayNewParamsLogManagementStrategyDeleteOldest AIGatewayNewParamsLogManagementStrategy = "DELETE_OLDEST"
Logpush param.Field[bool]optional

Body param

LogpushPublicKey param.Field[string]optional

Body param

maxLength1024
minLength16
RateLimitingTechnique param.Field[AIGatewayNewParamsRateLimitingTechnique]optional

Body param

const AIGatewayNewParamsRateLimitingTechniqueFixed AIGatewayNewParamsRateLimitingTechnique = "fixed"
const AIGatewayNewParamsRateLimitingTechniqueSliding AIGatewayNewParamsRateLimitingTechnique = "sliding"
RetryBackoff param.Field[AIGatewayNewParamsRetryBackoff]optional

Body param: Backoff strategy for retry delays

const AIGatewayNewParamsRetryBackoffConstant AIGatewayNewParamsRetryBackoff = "constant"
const AIGatewayNewParamsRetryBackoffLinear AIGatewayNewParamsRetryBackoff = "linear"
const AIGatewayNewParamsRetryBackoffExponential AIGatewayNewParamsRetryBackoff = "exponential"
RetryDelay param.Field[int64]optional

Body param: Delay between retry attempts in milliseconds (0-5000)

maximum5000
minimum0
RetryMaxAttempts param.Field[int64]optional

Body param: Maximum number of retry attempts for failed requests (1-5)

maximum5
minimum1
WorkersAIBillingMode param.Field[AIGatewayNewParamsWorkersAIBillingMode]optional

Body param: Controls how Workers AI inference calls routed through this gateway are billed. Only 'postpaid' is currently supported.

const AIGatewayNewParamsWorkersAIBillingModePostpaid AIGatewayNewParamsWorkersAIBillingMode = "postpaid"
Zdr param.Field[bool]optional

Body param

ReturnsExpand Collapse
type AIGatewayNewResponse struct{…}
ID string

gateway id

maxLength64
minLength1
CacheInvalidateOnUpdate bool
CacheTTL int64
minimum0
CollectLogs bool
CreatedAt Time
formatdate-time
ModifiedAt Time
formatdate-time
RateLimitingInterval int64
minimum0
RateLimitingLimit int64
minimum0
Authentication booloptional
DLP AIGatewayNewResponseDLPoptional
One of the following:
type AIGatewayNewResponseDLPObject struct{…}
Action AIGatewayNewResponseDLPObjectAction
One of the following:
const AIGatewayNewResponseDLPObjectActionBlock AIGatewayNewResponseDLPObjectAction = "BLOCK"
const AIGatewayNewResponseDLPObjectActionFlag AIGatewayNewResponseDLPObjectAction = "FLAG"
Enabled bool
Profiles []string
type AIGatewayNewResponseDLPObject struct{…}
Enabled bool
Policies []AIGatewayNewResponseDLPObjectPolicy
ID string
Action AIGatewayNewResponseDLPObjectPoliciesAction
One of the following:
const AIGatewayNewResponseDLPObjectPoliciesActionFlag AIGatewayNewResponseDLPObjectPoliciesAction = "FLAG"
const AIGatewayNewResponseDLPObjectPoliciesActionBlock AIGatewayNewResponseDLPObjectPoliciesAction = "BLOCK"
Check []AIGatewayNewResponseDLPObjectPoliciesCheck
One of the following:
const AIGatewayNewResponseDLPObjectPoliciesCheckRequest AIGatewayNewResponseDLPObjectPoliciesCheck = "REQUEST"
const AIGatewayNewResponseDLPObjectPoliciesCheckResponse AIGatewayNewResponseDLPObjectPoliciesCheck = "RESPONSE"
Enabled bool
Profiles []string
IsDefault booloptional
LogManagement int64optional
maximum10000000
minimum10000
LogManagementStrategy AIGatewayNewResponseLogManagementStrategyoptional
One of the following:
const AIGatewayNewResponseLogManagementStrategyStopInserting AIGatewayNewResponseLogManagementStrategy = "STOP_INSERTING"
const AIGatewayNewResponseLogManagementStrategyDeleteOldest AIGatewayNewResponseLogManagementStrategy = "DELETE_OLDEST"
Logpush booloptional
LogpushPublicKey stringoptional
maxLength1024
minLength16
Otel []AIGatewayNewResponseOteloptional
Authorization string
Headers map[string, string]
URL string
ContentType AIGatewayNewResponseOtelContentTypeoptional
One of the following:
const AIGatewayNewResponseOtelContentTypeJson AIGatewayNewResponseOtelContentType = "json"
const AIGatewayNewResponseOtelContentTypeProtobuf AIGatewayNewResponseOtelContentType = "protobuf"
RateLimitingTechnique AIGatewayNewResponseRateLimitingTechniqueoptional
One of the following:
const AIGatewayNewResponseRateLimitingTechniqueFixed AIGatewayNewResponseRateLimitingTechnique = "fixed"
const AIGatewayNewResponseRateLimitingTechniqueSliding AIGatewayNewResponseRateLimitingTechnique = "sliding"
RetryBackoff AIGatewayNewResponseRetryBackoffoptional

Backoff strategy for retry delays

One of the following:
const AIGatewayNewResponseRetryBackoffConstant AIGatewayNewResponseRetryBackoff = "constant"
const AIGatewayNewResponseRetryBackoffLinear AIGatewayNewResponseRetryBackoff = "linear"
const AIGatewayNewResponseRetryBackoffExponential AIGatewayNewResponseRetryBackoff = "exponential"
RetryDelay int64optional

Delay between retry attempts in milliseconds (0-5000)

maximum5000
minimum0
RetryMaxAttempts int64optional

Maximum number of retry attempts for failed requests (1-5)

maximum5
minimum1
StoreID stringoptional
Stripe AIGatewayNewResponseStripeoptional
Authorization string
UsageEvents []AIGatewayNewResponseStripeUsageEvent
Payload string
WorkersAIBillingMode AIGatewayNewResponseWorkersAIBillingModeoptional

Controls how Workers AI inference calls routed through this gateway are billed. Only 'postpaid' is currently supported.

Zdr booloptional

Create a new Gateway

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/ai_gateway"
  "github.com/cloudflare/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  aiGateway, err := client.AIGateway.New(context.TODO(), ai_gateway.AIGatewayNewParams{
    AccountID: cloudflare.F("3ebbcb006d4d46d7bb6a8c7f14676cb0"),
    ID: cloudflare.F("my-gateway"),
    CacheInvalidateOnUpdate: cloudflare.F(true),
    CacheTTL: cloudflare.F(int64(0)),
    CollectLogs: cloudflare.F(true),
    RateLimitingInterval: cloudflare.F(int64(0)),
    RateLimitingLimit: cloudflare.F(int64(0)),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", aiGateway.ID)
}
{
  "result": {
    "id": "my-gateway",
    "cache_invalidate_on_update": true,
    "cache_ttl": 0,
    "collect_logs": true,
    "created_at": "2019-12-27T18:11:19.117Z",
    "modified_at": "2019-12-27T18:11:19.117Z",
    "rate_limiting_interval": 0,
    "rate_limiting_limit": 0,
    "authentication": true,
    "dlp": {
      "action": "BLOCK",
      "enabled": true,
      "profiles": [
        "string"
      ]
    },
    "is_default": true,
    "log_management": 10000,
    "log_management_strategy": "STOP_INSERTING",
    "logpush": true,
    "logpush_public_key": "xxxxxxxxxxxxxxxx",
    "otel": [
      {
        "authorization": "authorization",
        "headers": {
          "foo": "string"
        },
        "url": "url",
        "content_type": "json"
      }
    ],
    "rate_limiting_technique": "fixed",
    "retry_backoff": "constant",
    "retry_delay": 0,
    "retry_max_attempts": 1,
    "store_id": "store_id",
    "stripe": {
      "authorization": "authorization",
      "usage_events": [
        {
          "payload": "payload"
        }
      ]
    },
    "workers_ai_billing_mode": "postpaid",
    "zdr": true
  },
  "success": true
}
Returns Examples
{
  "result": {
    "id": "my-gateway",
    "cache_invalidate_on_update": true,
    "cache_ttl": 0,
    "collect_logs": true,
    "created_at": "2019-12-27T18:11:19.117Z",
    "modified_at": "2019-12-27T18:11:19.117Z",
    "rate_limiting_interval": 0,
    "rate_limiting_limit": 0,
    "authentication": true,
    "dlp": {
      "action": "BLOCK",
      "enabled": true,
      "profiles": [
        "string"
      ]
    },
    "is_default": true,
    "log_management": 10000,
    "log_management_strategy": "STOP_INSERTING",
    "logpush": true,
    "logpush_public_key": "xxxxxxxxxxxxxxxx",
    "otel": [
      {
        "authorization": "authorization",
        "headers": {
          "foo": "string"
        },
        "url": "url",
        "content_type": "json"
      }
    ],
    "rate_limiting_technique": "fixed",
    "retry_backoff": "constant",
    "retry_delay": 0,
    "retry_max_attempts": 1,
    "store_id": "store_id",
    "stripe": {
      "authorization": "authorization",
      "usage_events": [
        {
          "payload": "payload"
        }
      ]
    },
    "workers_ai_billing_mode": "postpaid",
    "zdr": true
  },
  "success": true
}