Skip to content
Start here

Create a custom provider

client.AIGateway.CustomProviders.New(ctx, params) (*CustomProviderNewResponse, error)
POST/accounts/{account_id}/ai-gateway/custom-providers

Creates an account-level custom provider that forwards AI Gateway requests to the HTTPS base URL you supply. Requests reference the provider as custom-{slug}, so the slug 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 CustomProviderNewParams
AccountID param.Field[string]

Path param

BaseURL param.Field[string]

Body param

formaturi
Name param.Field[string]

Body param

Slug param.Field[string]

Body param

Beta param.Field[bool]Optional

Body param

CurlExample param.Field[string]Optional

Body param

Description param.Field[string]Optional

Body param

Enable param.Field[bool]Optional

Body param

Headers param.Field[string]Optional

Body param: JSON object of extra HTTP headers that AI Gateway sends to the provider. Values can contain credentials.

maxLength8192
JSExample param.Field[string]Optional

Body param

Position param.Field[int64]Optional

Body param

ReturnsExpand Collapse
type CustomProviderNewResponse struct{…}
ID string
formatuuid
BaseURL string
formaturi
CreatedAt Time
formatdate-time
ModifiedAt Time
formatdate-time
Name string
Slug string
Beta boolOptional
CurlExample stringOptional
Description stringOptional
Enable boolOptional
Headers stringOptional

JSON object of extra HTTP headers that AI Gateway sends to the provider. Values can contain credentials.

maxLength8192
JSExample stringOptional
Position int64Optional

Create a custom provider

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"),
  )
  customProvider, err := client.AIGateway.CustomProviders.New(context.TODO(), ai_gateway.CustomProviderNewParams{
    AccountID: cloudflare.F("3ebbcb006d4d46d7bb6a8c7f14676cb0"),
    BaseURL: cloudflare.F("https://example.com"),
    Name: cloudflare.F("name"),
    Slug: cloudflare.F("slug"),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", customProvider.ID)
}
{
  "result": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "base_url": "https://example.com",
    "created_at": "2019-12-27T18:11:19.117Z",
    "modified_at": "2019-12-27T18:11:19.117Z",
    "name": "name",
    "slug": "slug",
    "beta": true,
    "curl_example": "curl_example",
    "description": "description",
    "enable": true,
    "headers": "headers",
    "js_example": "js_example",
    "link": "link",
    "logo": "logo",
    "position": 0
  },
  "success": true
}
Returns Examples
{
  "result": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "base_url": "https://example.com",
    "created_at": "2019-12-27T18:11:19.117Z",
    "modified_at": "2019-12-27T18:11:19.117Z",
    "name": "name",
    "slug": "slug",
    "beta": true,
    "curl_example": "curl_example",
    "description": "description",
    "enable": true,
    "headers": "headers",
    "js_example": "js_example",
    "link": "link",
    "logo": "logo",
    "position": 0
  },
  "success": true
}