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
Guardrails AIGatewayNewResponseGuardrailsOptional
Prompt AIGatewayNewResponseGuardrailsPrompt
P1 AIGatewayNewResponseGuardrailsPromptP1Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptP1Flag AIGatewayNewResponseGuardrailsPromptP1 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptP1Block AIGatewayNewResponseGuardrailsPromptP1 = "BLOCK"
S1 AIGatewayNewResponseGuardrailsPromptS1Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptS1Flag AIGatewayNewResponseGuardrailsPromptS1 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptS1Block AIGatewayNewResponseGuardrailsPromptS1 = "BLOCK"
S10 AIGatewayNewResponseGuardrailsPromptS10Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptS10Flag AIGatewayNewResponseGuardrailsPromptS10 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptS10Block AIGatewayNewResponseGuardrailsPromptS10 = "BLOCK"
S11 AIGatewayNewResponseGuardrailsPromptS11Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptS11Flag AIGatewayNewResponseGuardrailsPromptS11 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptS11Block AIGatewayNewResponseGuardrailsPromptS11 = "BLOCK"
S12 AIGatewayNewResponseGuardrailsPromptS12Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptS12Flag AIGatewayNewResponseGuardrailsPromptS12 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptS12Block AIGatewayNewResponseGuardrailsPromptS12 = "BLOCK"
S13 AIGatewayNewResponseGuardrailsPromptS13Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptS13Flag AIGatewayNewResponseGuardrailsPromptS13 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptS13Block AIGatewayNewResponseGuardrailsPromptS13 = "BLOCK"
S2 AIGatewayNewResponseGuardrailsPromptS2Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptS2Flag AIGatewayNewResponseGuardrailsPromptS2 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptS2Block AIGatewayNewResponseGuardrailsPromptS2 = "BLOCK"
S3 AIGatewayNewResponseGuardrailsPromptS3Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptS3Flag AIGatewayNewResponseGuardrailsPromptS3 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptS3Block AIGatewayNewResponseGuardrailsPromptS3 = "BLOCK"
S4 AIGatewayNewResponseGuardrailsPromptS4Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptS4Flag AIGatewayNewResponseGuardrailsPromptS4 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptS4Block AIGatewayNewResponseGuardrailsPromptS4 = "BLOCK"
S5 AIGatewayNewResponseGuardrailsPromptS5Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptS5Flag AIGatewayNewResponseGuardrailsPromptS5 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptS5Block AIGatewayNewResponseGuardrailsPromptS5 = "BLOCK"
S6 AIGatewayNewResponseGuardrailsPromptS6Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptS6Flag AIGatewayNewResponseGuardrailsPromptS6 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptS6Block AIGatewayNewResponseGuardrailsPromptS6 = "BLOCK"
S7 AIGatewayNewResponseGuardrailsPromptS7Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptS7Flag AIGatewayNewResponseGuardrailsPromptS7 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptS7Block AIGatewayNewResponseGuardrailsPromptS7 = "BLOCK"
S8 AIGatewayNewResponseGuardrailsPromptS8Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptS8Flag AIGatewayNewResponseGuardrailsPromptS8 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptS8Block AIGatewayNewResponseGuardrailsPromptS8 = "BLOCK"
S9 AIGatewayNewResponseGuardrailsPromptS9Optional
One of the following:
const AIGatewayNewResponseGuardrailsPromptS9Flag AIGatewayNewResponseGuardrailsPromptS9 = "FLAG"
const AIGatewayNewResponseGuardrailsPromptS9Block AIGatewayNewResponseGuardrailsPromptS9 = "BLOCK"
Response AIGatewayNewResponseGuardrailsResponse
P1 AIGatewayNewResponseGuardrailsResponseP1Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseP1Flag AIGatewayNewResponseGuardrailsResponseP1 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseP1Block AIGatewayNewResponseGuardrailsResponseP1 = "BLOCK"
S1 AIGatewayNewResponseGuardrailsResponseS1Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseS1Flag AIGatewayNewResponseGuardrailsResponseS1 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseS1Block AIGatewayNewResponseGuardrailsResponseS1 = "BLOCK"
S10 AIGatewayNewResponseGuardrailsResponseS10Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseS10Flag AIGatewayNewResponseGuardrailsResponseS10 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseS10Block AIGatewayNewResponseGuardrailsResponseS10 = "BLOCK"
S11 AIGatewayNewResponseGuardrailsResponseS11Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseS11Flag AIGatewayNewResponseGuardrailsResponseS11 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseS11Block AIGatewayNewResponseGuardrailsResponseS11 = "BLOCK"
S12 AIGatewayNewResponseGuardrailsResponseS12Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseS12Flag AIGatewayNewResponseGuardrailsResponseS12 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseS12Block AIGatewayNewResponseGuardrailsResponseS12 = "BLOCK"
S13 AIGatewayNewResponseGuardrailsResponseS13Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseS13Flag AIGatewayNewResponseGuardrailsResponseS13 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseS13Block AIGatewayNewResponseGuardrailsResponseS13 = "BLOCK"
S2 AIGatewayNewResponseGuardrailsResponseS2Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseS2Flag AIGatewayNewResponseGuardrailsResponseS2 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseS2Block AIGatewayNewResponseGuardrailsResponseS2 = "BLOCK"
S3 AIGatewayNewResponseGuardrailsResponseS3Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseS3Flag AIGatewayNewResponseGuardrailsResponseS3 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseS3Block AIGatewayNewResponseGuardrailsResponseS3 = "BLOCK"
S4 AIGatewayNewResponseGuardrailsResponseS4Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseS4Flag AIGatewayNewResponseGuardrailsResponseS4 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseS4Block AIGatewayNewResponseGuardrailsResponseS4 = "BLOCK"
S5 AIGatewayNewResponseGuardrailsResponseS5Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseS5Flag AIGatewayNewResponseGuardrailsResponseS5 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseS5Block AIGatewayNewResponseGuardrailsResponseS5 = "BLOCK"
S6 AIGatewayNewResponseGuardrailsResponseS6Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseS6Flag AIGatewayNewResponseGuardrailsResponseS6 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseS6Block AIGatewayNewResponseGuardrailsResponseS6 = "BLOCK"
S7 AIGatewayNewResponseGuardrailsResponseS7Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseS7Flag AIGatewayNewResponseGuardrailsResponseS7 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseS7Block AIGatewayNewResponseGuardrailsResponseS7 = "BLOCK"
S8 AIGatewayNewResponseGuardrailsResponseS8Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseS8Flag AIGatewayNewResponseGuardrailsResponseS8 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseS8Block AIGatewayNewResponseGuardrailsResponseS8 = "BLOCK"
S9 AIGatewayNewResponseGuardrailsResponseS9Optional
One of the following:
const AIGatewayNewResponseGuardrailsResponseS9Flag AIGatewayNewResponseGuardrailsResponseS9 = "FLAG"
const AIGatewayNewResponseGuardrailsResponseS9Block AIGatewayNewResponseGuardrailsResponseS9 = "BLOCK"
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
maxLength256
Headers map[string, string]
URL string
formaturi
maxLength2048
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"
      ]
    },
    "guardrails": {
      "prompt": {
        "P1": "FLAG",
        "S1": "FLAG",
        "S10": "FLAG",
        "S11": "FLAG",
        "S12": "FLAG",
        "S13": "FLAG",
        "S2": "FLAG",
        "S3": "FLAG",
        "S4": "FLAG",
        "S5": "FLAG",
        "S6": "FLAG",
        "S7": "FLAG",
        "S8": "FLAG",
        "S9": "FLAG"
      },
      "response": {
        "P1": "FLAG",
        "S1": "FLAG",
        "S10": "FLAG",
        "S11": "FLAG",
        "S12": "FLAG",
        "S13": "FLAG",
        "S2": "FLAG",
        "S3": "FLAG",
        "S4": "FLAG",
        "S5": "FLAG",
        "S6": "FLAG",
        "S7": "FLAG",
        "S8": "FLAG",
        "S9": "FLAG"
      }
    },
    "is_default": true,
    "log_management": 10000,
    "log_management_strategy": "STOP_INSERTING",
    "logpush": true,
    "logpush_public_key": "xxxxxxxxxxxxxxxx",
    "otel": [
      {
        "authorization": "authorization",
        "headers": {
          "foo": "string"
        },
        "url": "https://example.com",
        "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"
      ]
    },
    "guardrails": {
      "prompt": {
        "P1": "FLAG",
        "S1": "FLAG",
        "S10": "FLAG",
        "S11": "FLAG",
        "S12": "FLAG",
        "S13": "FLAG",
        "S2": "FLAG",
        "S3": "FLAG",
        "S4": "FLAG",
        "S5": "FLAG",
        "S6": "FLAG",
        "S7": "FLAG",
        "S8": "FLAG",
        "S9": "FLAG"
      },
      "response": {
        "P1": "FLAG",
        "S1": "FLAG",
        "S10": "FLAG",
        "S11": "FLAG",
        "S12": "FLAG",
        "S13": "FLAG",
        "S2": "FLAG",
        "S3": "FLAG",
        "S4": "FLAG",
        "S5": "FLAG",
        "S6": "FLAG",
        "S7": "FLAG",
        "S8": "FLAG",
        "S9": "FLAG"
      }
    },
    "is_default": true,
    "log_management": 10000,
    "log_management_strategy": "STOP_INSERTING",
    "logpush": true,
    "logpush_public_key": "xxxxxxxxxxxxxxxx",
    "otel": [
      {
        "authorization": "authorization",
        "headers": {
          "foo": "string"
        },
        "url": "https://example.com",
        "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
}