Skip to content
Start here

Create a gateway

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

Creates an AI Gateway in the account with the specified caching, rate limiting, logging, and authentication settings. The gateway ID appears in request URLs and must be unique within the account.

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: Unique identifier of the AI Gateway within the account.

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

ByokOnly param.Field[bool]Optional

Body param: Requires customer-provided provider credentials and prevents fallback to Unified Billing.

DLP param.Field[AIGatewayNewParamsDLP]Optional

Body param

type AIGatewayNewParamsDLPObject struct{…}
Action AIGatewayNewParamsDLPObjectAction
One of the following:
const AIGatewayNewParamsDLPObjectActionBlock AIGatewayNewParamsDLPObjectAction = "BLOCK"
const AIGatewayNewParamsDLPObjectActionFlag AIGatewayNewParamsDLPObjectAction = "FLAG"
Enabled bool
Profiles []string
type AIGatewayNewParamsDLPObject struct{…}
Enabled bool
Policies []AIGatewayNewParamsDLPObjectPolicy
ID string
Action AIGatewayNewParamsDLPObjectPoliciesAction
One of the following:
const AIGatewayNewParamsDLPObjectPoliciesActionFlag AIGatewayNewParamsDLPObjectPoliciesAction = "FLAG"
const AIGatewayNewParamsDLPObjectPoliciesActionBlock AIGatewayNewParamsDLPObjectPoliciesAction = "BLOCK"
Check []AIGatewayNewParamsDLPObjectPoliciesCheck
One of the following:
const AIGatewayNewParamsDLPObjectPoliciesCheckRequest AIGatewayNewParamsDLPObjectPoliciesCheck = "REQUEST"
const AIGatewayNewParamsDLPObjectPoliciesCheckResponse AIGatewayNewParamsDLPObjectPoliciesCheck = "RESPONSE"
Enabled bool
Profiles []string
Guardrails param.Field[AIGatewayNewParamsGuardrails]Optional

Body param

Prompt AIGatewayNewParamsGuardrailsPrompt
P1 AIGatewayNewParamsGuardrailsPromptP1Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptP1Flag AIGatewayNewParamsGuardrailsPromptP1 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptP1Block AIGatewayNewParamsGuardrailsPromptP1 = "BLOCK"
S1 AIGatewayNewParamsGuardrailsPromptS1Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptS1Flag AIGatewayNewParamsGuardrailsPromptS1 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptS1Block AIGatewayNewParamsGuardrailsPromptS1 = "BLOCK"
S10 AIGatewayNewParamsGuardrailsPromptS10Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptS10Flag AIGatewayNewParamsGuardrailsPromptS10 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptS10Block AIGatewayNewParamsGuardrailsPromptS10 = "BLOCK"
S11 AIGatewayNewParamsGuardrailsPromptS11Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptS11Flag AIGatewayNewParamsGuardrailsPromptS11 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptS11Block AIGatewayNewParamsGuardrailsPromptS11 = "BLOCK"
S12 AIGatewayNewParamsGuardrailsPromptS12Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptS12Flag AIGatewayNewParamsGuardrailsPromptS12 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptS12Block AIGatewayNewParamsGuardrailsPromptS12 = "BLOCK"
S13 AIGatewayNewParamsGuardrailsPromptS13Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptS13Flag AIGatewayNewParamsGuardrailsPromptS13 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptS13Block AIGatewayNewParamsGuardrailsPromptS13 = "BLOCK"
S2 AIGatewayNewParamsGuardrailsPromptS2Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptS2Flag AIGatewayNewParamsGuardrailsPromptS2 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptS2Block AIGatewayNewParamsGuardrailsPromptS2 = "BLOCK"
S3 AIGatewayNewParamsGuardrailsPromptS3Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptS3Flag AIGatewayNewParamsGuardrailsPromptS3 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptS3Block AIGatewayNewParamsGuardrailsPromptS3 = "BLOCK"
S4 AIGatewayNewParamsGuardrailsPromptS4Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptS4Flag AIGatewayNewParamsGuardrailsPromptS4 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptS4Block AIGatewayNewParamsGuardrailsPromptS4 = "BLOCK"
S5 AIGatewayNewParamsGuardrailsPromptS5Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptS5Flag AIGatewayNewParamsGuardrailsPromptS5 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptS5Block AIGatewayNewParamsGuardrailsPromptS5 = "BLOCK"
S6 AIGatewayNewParamsGuardrailsPromptS6Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptS6Flag AIGatewayNewParamsGuardrailsPromptS6 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptS6Block AIGatewayNewParamsGuardrailsPromptS6 = "BLOCK"
S7 AIGatewayNewParamsGuardrailsPromptS7Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptS7Flag AIGatewayNewParamsGuardrailsPromptS7 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptS7Block AIGatewayNewParamsGuardrailsPromptS7 = "BLOCK"
S8 AIGatewayNewParamsGuardrailsPromptS8Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptS8Flag AIGatewayNewParamsGuardrailsPromptS8 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptS8Block AIGatewayNewParamsGuardrailsPromptS8 = "BLOCK"
S9 AIGatewayNewParamsGuardrailsPromptS9Optional
One of the following:
const AIGatewayNewParamsGuardrailsPromptS9Flag AIGatewayNewParamsGuardrailsPromptS9 = "FLAG"
const AIGatewayNewParamsGuardrailsPromptS9Block AIGatewayNewParamsGuardrailsPromptS9 = "BLOCK"
Response AIGatewayNewParamsGuardrailsResponse
P1 AIGatewayNewParamsGuardrailsResponseP1Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseP1Flag AIGatewayNewParamsGuardrailsResponseP1 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseP1Block AIGatewayNewParamsGuardrailsResponseP1 = "BLOCK"
S1 AIGatewayNewParamsGuardrailsResponseS1Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseS1Flag AIGatewayNewParamsGuardrailsResponseS1 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseS1Block AIGatewayNewParamsGuardrailsResponseS1 = "BLOCK"
S10 AIGatewayNewParamsGuardrailsResponseS10Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseS10Flag AIGatewayNewParamsGuardrailsResponseS10 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseS10Block AIGatewayNewParamsGuardrailsResponseS10 = "BLOCK"
S11 AIGatewayNewParamsGuardrailsResponseS11Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseS11Flag AIGatewayNewParamsGuardrailsResponseS11 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseS11Block AIGatewayNewParamsGuardrailsResponseS11 = "BLOCK"
S12 AIGatewayNewParamsGuardrailsResponseS12Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseS12Flag AIGatewayNewParamsGuardrailsResponseS12 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseS12Block AIGatewayNewParamsGuardrailsResponseS12 = "BLOCK"
S13 AIGatewayNewParamsGuardrailsResponseS13Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseS13Flag AIGatewayNewParamsGuardrailsResponseS13 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseS13Block AIGatewayNewParamsGuardrailsResponseS13 = "BLOCK"
S2 AIGatewayNewParamsGuardrailsResponseS2Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseS2Flag AIGatewayNewParamsGuardrailsResponseS2 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseS2Block AIGatewayNewParamsGuardrailsResponseS2 = "BLOCK"
S3 AIGatewayNewParamsGuardrailsResponseS3Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseS3Flag AIGatewayNewParamsGuardrailsResponseS3 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseS3Block AIGatewayNewParamsGuardrailsResponseS3 = "BLOCK"
S4 AIGatewayNewParamsGuardrailsResponseS4Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseS4Flag AIGatewayNewParamsGuardrailsResponseS4 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseS4Block AIGatewayNewParamsGuardrailsResponseS4 = "BLOCK"
S5 AIGatewayNewParamsGuardrailsResponseS5Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseS5Flag AIGatewayNewParamsGuardrailsResponseS5 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseS5Block AIGatewayNewParamsGuardrailsResponseS5 = "BLOCK"
S6 AIGatewayNewParamsGuardrailsResponseS6Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseS6Flag AIGatewayNewParamsGuardrailsResponseS6 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseS6Block AIGatewayNewParamsGuardrailsResponseS6 = "BLOCK"
S7 AIGatewayNewParamsGuardrailsResponseS7Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseS7Flag AIGatewayNewParamsGuardrailsResponseS7 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseS7Block AIGatewayNewParamsGuardrailsResponseS7 = "BLOCK"
S8 AIGatewayNewParamsGuardrailsResponseS8Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseS8Flag AIGatewayNewParamsGuardrailsResponseS8 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseS8Block AIGatewayNewParamsGuardrailsResponseS8 = "BLOCK"
S9 AIGatewayNewParamsGuardrailsResponseS9Optional
One of the following:
const AIGatewayNewParamsGuardrailsResponseS9Flag AIGatewayNewParamsGuardrailsResponseS9 = "FLAG"
const AIGatewayNewParamsGuardrailsResponseS9Block AIGatewayNewParamsGuardrailsResponseS9 = "BLOCK"
LogClassification 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
Otel param.Field[[]AIGatewayNewParamsOtel]Optional

Body param

Headers map[string, string]
URL string
formaturi
maxLength2048
Authorization stringOptional
maxLength256
ContentType AIGatewayNewParamsOtelContentTypeOptional
One of the following:
const AIGatewayNewParamsOtelContentTypeJson AIGatewayNewParamsOtelContentType = "json"
const AIGatewayNewParamsOtelContentTypeProtobuf AIGatewayNewParamsOtelContentType = "protobuf"
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-60000)

maximum60000
minimum0
RetryMaxAttempts param.Field[int64]Optional

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

maximum5
minimum1
SpendLimits param.Field[AIGatewayNewParamsSpendLimits]Optional

Body param

Enabled boolOptional
Rules []AIGatewayNewParamsSpendLimitsRuleOptional
Limit float64
exclusiveMinimum
minimum0
LimitType AIGatewayNewParamsSpendLimitsRulesLimitType
Window int64
exclusiveMinimum
minimum0
ID stringOptional
minLength1
Enabled boolOptional
Metadata map[string, AIGatewayNewParamsSpendLimitsRulesMetadata]Optional
One of the following:
type AIGatewayNewParamsSpendLimitsRulesMetadataMode struct{…}
Mode AIGatewayNewParamsSpendLimitsRulesMetadataModeMode
type AIGatewayNewParamsSpendLimitsRulesMetadataObject struct{…}
Mode AIGatewayNewParamsSpendLimitsRulesMetadataObjectMode
Values []string
Model AIGatewayNewParamsSpendLimitsRulesModelOptional
Mode AIGatewayNewParamsSpendLimitsRulesModelMode
Values []string
Provider AIGatewayNewParamsSpendLimitsRulesProviderOptional
Mode AIGatewayNewParamsSpendLimitsRulesProviderMode
Values []string
Technique AIGatewayNewParamsSpendLimitsRulesTechniqueOptional
One of the following:
const AIGatewayNewParamsSpendLimitsRulesTechniqueFixed AIGatewayNewParamsSpendLimitsRulesTechnique = "fixed"
const AIGatewayNewParamsSpendLimitsRulesTechniqueSliding AIGatewayNewParamsSpendLimitsRulesTechnique = "sliding"
StoreID param.Field[string]Optional

Body param

Stripe param.Field[AIGatewayNewParamsStripe]Optional

Body param

Authorization string
UsageEvents []AIGatewayNewParamsStripeUsageEvent
Payload string
WorkersAIBillingMode param.Field[AIGatewayNewParamsWorkersAIBillingMode]Optional

Body param: Controls how Workers AI inference calls routed through this gateway are billed. ‘postpaid’ bills the account directly through Workers AI; ‘unified’ deducts credits via AI Gateway using neuron-based pricing and delegates billing to AI Gateway.

const AIGatewayNewParamsWorkersAIBillingModePostpaid AIGatewayNewParamsWorkersAIBillingMode = "postpaid"
const AIGatewayNewParamsWorkersAIBillingModeUnified AIGatewayNewParamsWorkersAIBillingMode = "unified"
Zdr param.Field[bool]Optional

Body param

ReturnsExpand Collapse
type AIGatewayNewResponse struct{…}
ID string

Unique identifier of the AI Gateway within the account.

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
ByokOnly boolOptional

Requires customer-provided provider credentials and prevents fallback to Unified Billing.

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
LogClassification 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
Headers map[string, string]
URL string
formaturi
maxLength2048
Authorization stringOptional
maxLength256
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-60000)

maximum60000
minimum0
RetryMaxAttempts int64Optional

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

maximum5
minimum1
SpendLimits AIGatewayNewResponseSpendLimitsOptional
Enabled boolOptional
Rules []AIGatewayNewResponseSpendLimitsRuleOptional
Limit float64
exclusiveMinimum
minimum0
LimitType AIGatewayNewResponseSpendLimitsRulesLimitType
Window int64
exclusiveMinimum
minimum0
ID stringOptional
minLength1
Enabled boolOptional
Metadata map[string, AIGatewayNewResponseSpendLimitsRulesMetadata]Optional
One of the following:
type AIGatewayNewResponseSpendLimitsRulesMetadataMode struct{…}
Mode AIGatewayNewResponseSpendLimitsRulesMetadataModeMode
type AIGatewayNewResponseSpendLimitsRulesMetadataObject struct{…}
Mode AIGatewayNewResponseSpendLimitsRulesMetadataObjectMode
Values []string
Model AIGatewayNewResponseSpendLimitsRulesModelOptional
Mode AIGatewayNewResponseSpendLimitsRulesModelMode
Values []string
Provider AIGatewayNewResponseSpendLimitsRulesProviderOptional
Mode AIGatewayNewResponseSpendLimitsRulesProviderMode
Values []string
Technique AIGatewayNewResponseSpendLimitsRulesTechniqueOptional
One of the following:
const AIGatewayNewResponseSpendLimitsRulesTechniqueFixed AIGatewayNewResponseSpendLimitsRulesTechnique = "fixed"
const AIGatewayNewResponseSpendLimitsRulesTechniqueSliding AIGatewayNewResponseSpendLimitsRulesTechnique = "sliding"
StoreID stringOptional
Stripe AIGatewayNewResponseStripeOptional
Authorization string
UsageEvents []AIGatewayNewResponseStripeUsageEvent
Payload string
WorkersAIBillingMode AIGatewayNewResponseWorkersAIBillingModeOptional

Controls how Workers AI inference calls routed through this gateway are billed. ‘postpaid’ bills the account directly through Workers AI; ‘unified’ deducts credits via AI Gateway using neuron-based pricing and delegates billing to AI Gateway.

One of the following:
const AIGatewayNewResponseWorkersAIBillingModePostpaid AIGatewayNewResponseWorkersAIBillingMode = "postpaid"
const AIGatewayNewResponseWorkersAIBillingModeUnified AIGatewayNewResponseWorkersAIBillingMode = "unified"
Zdr boolOptional

Create a 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,
    "byok_only": 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_classification": true,
    "log_management": 10000,
    "log_management_strategy": "STOP_INSERTING",
    "logpush": true,
    "logpush_public_key": "xxxxxxxxxxxxxxxx",
    "otel": [
      {
        "headers": {
          "foo": "string"
        },
        "url": "https://example.com",
        "authorization": "authorization",
        "content_type": "json"
      }
    ],
    "rate_limiting_technique": "fixed",
    "retry_backoff": "constant",
    "retry_delay": 0,
    "retry_max_attempts": 1,
    "spend_limits": {
      "enabled": true,
      "rules": [
        {
          "limit": 1,
          "limitType": "cost",
          "window": 1,
          "id": "x",
          "enabled": true,
          "metadata": {
            "foo": {
              "mode": "partition"
            }
          },
          "model": {
            "mode": "filter",
            "values": [
              "string"
            ]
          },
          "provider": {
            "mode": "filter",
            "values": [
              "string"
            ]
          },
          "technique": "fixed"
        }
      ]
    },
    "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,
    "byok_only": 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_classification": true,
    "log_management": 10000,
    "log_management_strategy": "STOP_INSERTING",
    "logpush": true,
    "logpush_public_key": "xxxxxxxxxxxxxxxx",
    "otel": [
      {
        "headers": {
          "foo": "string"
        },
        "url": "https://example.com",
        "authorization": "authorization",
        "content_type": "json"
      }
    ],
    "rate_limiting_technique": "fixed",
    "retry_backoff": "constant",
    "retry_delay": 0,
    "retry_max_attempts": 1,
    "spend_limits": {
      "enabled": true,
      "rules": [
        {
          "limit": 1,
          "limitType": "cost",
          "window": 1,
          "id": "x",
          "enabled": true,
          "metadata": {
            "foo": {
              "mode": "partition"
            }
          },
          "model": {
            "mode": "filter",
            "values": [
              "string"
            ]
          },
          "provider": {
            "mode": "filter",
            "values": [
              "string"
            ]
          },
          "technique": "fixed"
        }
      ]
    },
    "store_id": "store_id",
    "stripe": {
      "authorization": "authorization",
      "usage_events": [
        {
          "payload": "payload"
        }
      ]
    },
    "workers_ai_billing_mode": "postpaid",
    "zdr": true
  },
  "success": true
}