Skip to content
Start here

Create new instance.

client.AISearch.Namespaces.Instances.New(ctx, name, params) (*NamespaceInstanceNewResponse, error)
POST/accounts/{account_id}/ai-search/namespaces/{name}/instances

Create a new instance.

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
ParametersExpand Collapse
name string
params NamespaceInstanceNewParams
AccountID param.Field[string]

Path param

ID param.Field[string]

Body param: AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.

maxLength64
minLength1
AIGatewayID param.Field[string]Optional

Body param

AISearchModel param.Field[NamespaceInstanceNewParamsAISearchModel]Optional

Body param

const NamespaceInstanceNewParamsAISearchModelCfMetaLlama3_3_70bInstructFp8Fast NamespaceInstanceNewParamsAISearchModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"
const NamespaceInstanceNewParamsAISearchModelCfZaiOrgGlm4_7Flash NamespaceInstanceNewParamsAISearchModel = "@cf/zai-org/glm-4.7-flash"
const NamespaceInstanceNewParamsAISearchModelCfMetaLlama3_1_8bInstructFast NamespaceInstanceNewParamsAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fast"
const NamespaceInstanceNewParamsAISearchModelCfMetaLlama3_1_8bInstructFp8 NamespaceInstanceNewParamsAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fp8"
const NamespaceInstanceNewParamsAISearchModelCfMetaLlama4Scout17b16eInstruct NamespaceInstanceNewParamsAISearchModel = "@cf/meta/llama-4-scout-17b-16e-instruct"
const NamespaceInstanceNewParamsAISearchModelCfQwenQwen3_30bA3bFp8 NamespaceInstanceNewParamsAISearchModel = "@cf/qwen/qwen3-30b-a3b-fp8"
const NamespaceInstanceNewParamsAISearchModelCfDeepseekAIDeepseekR1DistillQwen32b NamespaceInstanceNewParamsAISearchModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"
const NamespaceInstanceNewParamsAISearchModelCfMoonshotaiKimiK2Instruct NamespaceInstanceNewParamsAISearchModel = "@cf/moonshotai/kimi-k2-instruct"
const NamespaceInstanceNewParamsAISearchModelCfGoogleGemma3_12bIt NamespaceInstanceNewParamsAISearchModel = "@cf/google/gemma-3-12b-it"
const NamespaceInstanceNewParamsAISearchModelCfGoogleGemma4_26bA4bIt NamespaceInstanceNewParamsAISearchModel = "@cf/google/gemma-4-26b-a4b-it"
const NamespaceInstanceNewParamsAISearchModelCfMoonshotaiKimiK2_5 NamespaceInstanceNewParamsAISearchModel = "@cf/moonshotai/kimi-k2.5"
const NamespaceInstanceNewParamsAISearchModelAnthropicClaude3_7Sonnet NamespaceInstanceNewParamsAISearchModel = "anthropic/claude-3-7-sonnet"
const NamespaceInstanceNewParamsAISearchModelAnthropicClaudeSonnet4 NamespaceInstanceNewParamsAISearchModel = "anthropic/claude-sonnet-4"
const NamespaceInstanceNewParamsAISearchModelAnthropicClaudeOpus4 NamespaceInstanceNewParamsAISearchModel = "anthropic/claude-opus-4"
const NamespaceInstanceNewParamsAISearchModelAnthropicClaude3_5Haiku NamespaceInstanceNewParamsAISearchModel = "anthropic/claude-3-5-haiku"
const NamespaceInstanceNewParamsAISearchModelCerebrasQwen3_235bA22bInstruct NamespaceInstanceNewParamsAISearchModel = "cerebras/qwen-3-235b-a22b-instruct"
const NamespaceInstanceNewParamsAISearchModelCerebrasQwen3_235bA22bThinking NamespaceInstanceNewParamsAISearchModel = "cerebras/qwen-3-235b-a22b-thinking"
const NamespaceInstanceNewParamsAISearchModelCerebrasLlama3_3_70b NamespaceInstanceNewParamsAISearchModel = "cerebras/llama-3.3-70b"
const NamespaceInstanceNewParamsAISearchModelCerebrasLlama4Maverick17b128eInstruct NamespaceInstanceNewParamsAISearchModel = "cerebras/llama-4-maverick-17b-128e-instruct"
const NamespaceInstanceNewParamsAISearchModelCerebrasLlama4Scout17b16eInstruct NamespaceInstanceNewParamsAISearchModel = "cerebras/llama-4-scout-17b-16e-instruct"
const NamespaceInstanceNewParamsAISearchModelCerebrasGptOSs120b NamespaceInstanceNewParamsAISearchModel = "cerebras/gpt-oss-120b"
const NamespaceInstanceNewParamsAISearchModelGoogleAIStudioGemini2_5Flash NamespaceInstanceNewParamsAISearchModel = "google-ai-studio/gemini-2.5-flash"
const NamespaceInstanceNewParamsAISearchModelGoogleAIStudioGemini2_5Pro NamespaceInstanceNewParamsAISearchModel = "google-ai-studio/gemini-2.5-pro"
const NamespaceInstanceNewParamsAISearchModelGrokGrok4 NamespaceInstanceNewParamsAISearchModel = "grok/grok-4"
const NamespaceInstanceNewParamsAISearchModelGroqLlama3_3_70bVersatile NamespaceInstanceNewParamsAISearchModel = "groq/llama-3.3-70b-versatile"
const NamespaceInstanceNewParamsAISearchModelGroqLlama3_1_8bInstant NamespaceInstanceNewParamsAISearchModel = "groq/llama-3.1-8b-instant"
const NamespaceInstanceNewParamsAISearchModelOpenAIGpt5 NamespaceInstanceNewParamsAISearchModel = "openai/gpt-5"
const NamespaceInstanceNewParamsAISearchModelOpenAIGpt5Mini NamespaceInstanceNewParamsAISearchModel = "openai/gpt-5-mini"
const NamespaceInstanceNewParamsAISearchModelOpenAIGpt5Nano NamespaceInstanceNewParamsAISearchModel = "openai/gpt-5-nano"
const NamespaceInstanceNewParamsAISearchModelEmpty NamespaceInstanceNewParamsAISearchModel = ""
Cache param.Field[bool]Optional

Body param

CacheThreshold param.Field[NamespaceInstanceNewParamsCacheThreshold]Optional

Body param

const NamespaceInstanceNewParamsCacheThresholdSuperStrictMatch NamespaceInstanceNewParamsCacheThreshold = "super_strict_match"
const NamespaceInstanceNewParamsCacheThresholdCloseEnough NamespaceInstanceNewParamsCacheThreshold = "close_enough"
const NamespaceInstanceNewParamsCacheThresholdFlexibleFriend NamespaceInstanceNewParamsCacheThreshold = "flexible_friend"
const NamespaceInstanceNewParamsCacheThresholdAnythingGoes NamespaceInstanceNewParamsCacheThreshold = "anything_goes"
CacheTTL param.Field[NamespaceInstanceNewParamsCacheTTL]Optional

Body param: Cache entry TTL in seconds. Allowed values: 600 (10min), 1800 (30min), 3600 (1h), 7200 (2h), 21600 (6h), 43200 (12h), 86400 (24h), 172800 (48h), 259200 (72h), 518400 (6d).

const NamespaceInstanceNewParamsCacheTTL600 NamespaceInstanceNewParamsCacheTTL = 600
const NamespaceInstanceNewParamsCacheTTL1800 NamespaceInstanceNewParamsCacheTTL = 1800
const NamespaceInstanceNewParamsCacheTTL3600 NamespaceInstanceNewParamsCacheTTL = 3600
const NamespaceInstanceNewParamsCacheTTL7200 NamespaceInstanceNewParamsCacheTTL = 7200
const NamespaceInstanceNewParamsCacheTTL21600 NamespaceInstanceNewParamsCacheTTL = 21600
const NamespaceInstanceNewParamsCacheTTL43200 NamespaceInstanceNewParamsCacheTTL = 43200
const NamespaceInstanceNewParamsCacheTTL86400 NamespaceInstanceNewParamsCacheTTL = 86400
const NamespaceInstanceNewParamsCacheTTL172800 NamespaceInstanceNewParamsCacheTTL = 172800
const NamespaceInstanceNewParamsCacheTTL259200 NamespaceInstanceNewParamsCacheTTL = 259200
const NamespaceInstanceNewParamsCacheTTL518400 NamespaceInstanceNewParamsCacheTTL = 518400
Chunk param.Field[bool]Optional

Body param

ChunkOverlap param.Field[int64]Optional

Body param

maximum30
minimum0
ChunkSize param.Field[int64]Optional

Body param

minimum64
CustomMetadata param.Field[[]NamespaceInstanceNewParamsCustomMetadata]Optional

Body param

DataType NamespaceInstanceNewParamsCustomMetadataDataType
One of the following:
const NamespaceInstanceNewParamsCustomMetadataDataTypeText NamespaceInstanceNewParamsCustomMetadataDataType = "text"
const NamespaceInstanceNewParamsCustomMetadataDataTypeNumber NamespaceInstanceNewParamsCustomMetadataDataType = "number"
const NamespaceInstanceNewParamsCustomMetadataDataTypeBoolean NamespaceInstanceNewParamsCustomMetadataDataType = "boolean"
const NamespaceInstanceNewParamsCustomMetadataDataTypeDatetime NamespaceInstanceNewParamsCustomMetadataDataType = "datetime"
FieldName string
maxLength64
minLength1
EmbeddingModel param.Field[NamespaceInstanceNewParamsEmbeddingModel]Optional

Body param

const NamespaceInstanceNewParamsEmbeddingModelCfQwenQwen3Embedding0_6b NamespaceInstanceNewParamsEmbeddingModel = "@cf/qwen/qwen3-embedding-0.6b"
const NamespaceInstanceNewParamsEmbeddingModelCfQwenQwen3VlEmbedding2b NamespaceInstanceNewParamsEmbeddingModel = "@cf/qwen/qwen3-vl-embedding-2b"
const NamespaceInstanceNewParamsEmbeddingModelCfBaaiBgeM3 NamespaceInstanceNewParamsEmbeddingModel = "@cf/baai/bge-m3"
const NamespaceInstanceNewParamsEmbeddingModelCfBaaiBgeLargeEnV1_5 NamespaceInstanceNewParamsEmbeddingModel = "@cf/baai/bge-large-en-v1.5"
const NamespaceInstanceNewParamsEmbeddingModelCfGoogleEmbeddinggemma300m NamespaceInstanceNewParamsEmbeddingModel = "@cf/google/embeddinggemma-300m"
const NamespaceInstanceNewParamsEmbeddingModelGoogleAIStudioGeminiEmbedding001 NamespaceInstanceNewParamsEmbeddingModel = "google-ai-studio/gemini-embedding-001"
const NamespaceInstanceNewParamsEmbeddingModelGoogleAIStudioGeminiEmbedding2Preview NamespaceInstanceNewParamsEmbeddingModel = "google-ai-studio/gemini-embedding-2-preview"
const NamespaceInstanceNewParamsEmbeddingModelOpenAITextEmbedding3Small NamespaceInstanceNewParamsEmbeddingModel = "openai/text-embedding-3-small"
const NamespaceInstanceNewParamsEmbeddingModelOpenAITextEmbedding3Large NamespaceInstanceNewParamsEmbeddingModel = "openai/text-embedding-3-large"
const NamespaceInstanceNewParamsEmbeddingModelEmpty NamespaceInstanceNewParamsEmbeddingModel = ""
FusionMethod param.Field[NamespaceInstanceNewParamsFusionMethod]Optional

Body param

const NamespaceInstanceNewParamsFusionMethodMax NamespaceInstanceNewParamsFusionMethod = "max"
const NamespaceInstanceNewParamsFusionMethodRrf NamespaceInstanceNewParamsFusionMethod = "rrf"
DeprecatedHybridSearchEnabled param.Field[bool]Optional

Body param: Deprecated — use index_method instead.

IndexMethod param.Field[NamespaceInstanceNewParamsIndexMethod]Optional

Body param: Controls which storage backends are used during indexing. Defaults to vector-only.

Keyword bool

Enable keyword (BM25) storage backend.

Vector bool

Enable vector (embedding) storage backend.

IndexingOptions param.Field[NamespaceInstanceNewParamsIndexingOptions]Optional

Body param

KeywordTokenizer NamespaceInstanceNewParamsIndexingOptionsKeywordTokenizerOptional

Tokenizer used for keyword search indexing. porter provides word-level tokenization with Porter stemming (good for natural language queries). trigram enables character-level substring matching (good for partial matches, code, identifiers). Changing this triggers a full re-index. Defaults to porter.

One of the following:
const NamespaceInstanceNewParamsIndexingOptionsKeywordTokenizerPorter NamespaceInstanceNewParamsIndexingOptionsKeywordTokenizer = "porter"
const NamespaceInstanceNewParamsIndexingOptionsKeywordTokenizerTrigram NamespaceInstanceNewParamsIndexingOptionsKeywordTokenizer = "trigram"
MaxNumResults param.Field[int64]Optional

Body param

maximum50
minimum1
Metadata param.Field[NamespaceInstanceNewParamsMetadata]Optional

Body param

CreatedFromAISearchWizard boolOptional
WorkerDomain stringOptional
PublicEndpointParams param.Field[NamespaceInstanceNewParamsPublicEndpointParams]Optional

Body param

AuthorizedHosts []stringOptional
ChatCompletionsEndpoint NamespaceInstanceNewParamsPublicEndpointParamsChatCompletionsEndpointOptional
Disabled boolOptional

Disable chat completions endpoint for this public endpoint

Enabled boolOptional
Mcp NamespaceInstanceNewParamsPublicEndpointParamsMcpOptional
Description stringOptional
Disabled boolOptional

Disable MCP endpoint for this public endpoint

RateLimit NamespaceInstanceNewParamsPublicEndpointParamsRateLimitOptional
PeriodMs int64Optional
maximum3600000
minimum60000
Requests int64Optional
minimum1
Technique NamespaceInstanceNewParamsPublicEndpointParamsRateLimitTechniqueOptional
One of the following:
const NamespaceInstanceNewParamsPublicEndpointParamsRateLimitTechniqueFixed NamespaceInstanceNewParamsPublicEndpointParamsRateLimitTechnique = "fixed"
const NamespaceInstanceNewParamsPublicEndpointParamsRateLimitTechniqueSliding NamespaceInstanceNewParamsPublicEndpointParamsRateLimitTechnique = "sliding"
SearchEndpoint NamespaceInstanceNewParamsPublicEndpointParamsSearchEndpointOptional
Disabled boolOptional

Disable search endpoint for this public endpoint

Reranking param.Field[bool]Optional

Body param

RerankingModel param.Field[NamespaceInstanceNewParamsRerankingModel]Optional

Body param

const NamespaceInstanceNewParamsRerankingModelCfBaaiBgeRerankerBase NamespaceInstanceNewParamsRerankingModel = "@cf/baai/bge-reranker-base"
const NamespaceInstanceNewParamsRerankingModelEmpty NamespaceInstanceNewParamsRerankingModel = ""
RetrievalOptions param.Field[NamespaceInstanceNewParamsRetrievalOptions]Optional

Body param

BoostBy []NamespaceInstanceNewParamsRetrievalOptionsBoostByOptional

Metadata fields to boost search results by. Each entry specifies a metadata field and an optional direction. Direction defaults to ‘asc’ for numeric/datetime fields and ‘exists’ for text/boolean fields. Fields must match ‘timestamp’ or a defined custom_metadata field.

Field string

Metadata field name to boost by. Use ‘timestamp’ for document freshness, or any custom_metadata field. Numeric and datetime fields support all four directions (asc, desc, exists, not_exists); text/boolean fields only support exists/not_exists.

maxLength64
minLength1
Direction NamespaceInstanceNewParamsRetrievalOptionsBoostByDirectionOptional

Boost direction. ‘desc’ = higher values rank higher (e.g. newer timestamps). ‘asc’ = lower values rank higher. ‘exists’ = boost chunks that have the field. ‘not_exists’ = boost chunks that lack the field. Optional — defaults to ‘asc’ for numeric/datetime fields, ‘exists’ for text/boolean fields.

One of the following:
const NamespaceInstanceNewParamsRetrievalOptionsBoostByDirectionAsc NamespaceInstanceNewParamsRetrievalOptionsBoostByDirection = "asc"
const NamespaceInstanceNewParamsRetrievalOptionsBoostByDirectionDesc NamespaceInstanceNewParamsRetrievalOptionsBoostByDirection = "desc"
const NamespaceInstanceNewParamsRetrievalOptionsBoostByDirectionExists NamespaceInstanceNewParamsRetrievalOptionsBoostByDirection = "exists"
const NamespaceInstanceNewParamsRetrievalOptionsBoostByDirectionNotExists NamespaceInstanceNewParamsRetrievalOptionsBoostByDirection = "not_exists"
KeywordMatchMode NamespaceInstanceNewParamsRetrievalOptionsKeywordMatchModeOptional

Controls which documents are candidates for BM25 scoring. ‘and’ restricts candidates to documents containing all query terms; ‘or’ includes any document containing at least one term, ranked by BM25 relevance. Defaults to ‘and’.

One of the following:
const NamespaceInstanceNewParamsRetrievalOptionsKeywordMatchModeAnd NamespaceInstanceNewParamsRetrievalOptionsKeywordMatchMode = "and"
const NamespaceInstanceNewParamsRetrievalOptionsKeywordMatchModeOr NamespaceInstanceNewParamsRetrievalOptionsKeywordMatchMode = "or"
RewriteModel param.Field[NamespaceInstanceNewParamsRewriteModel]Optional

Body param

const NamespaceInstanceNewParamsRewriteModelCfMetaLlama3_3_70bInstructFp8Fast NamespaceInstanceNewParamsRewriteModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"
const NamespaceInstanceNewParamsRewriteModelCfZaiOrgGlm4_7Flash NamespaceInstanceNewParamsRewriteModel = "@cf/zai-org/glm-4.7-flash"
const NamespaceInstanceNewParamsRewriteModelCfMetaLlama3_1_8bInstructFast NamespaceInstanceNewParamsRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fast"
const NamespaceInstanceNewParamsRewriteModelCfMetaLlama3_1_8bInstructFp8 NamespaceInstanceNewParamsRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fp8"
const NamespaceInstanceNewParamsRewriteModelCfMetaLlama4Scout17b16eInstruct NamespaceInstanceNewParamsRewriteModel = "@cf/meta/llama-4-scout-17b-16e-instruct"
const NamespaceInstanceNewParamsRewriteModelCfQwenQwen3_30bA3bFp8 NamespaceInstanceNewParamsRewriteModel = "@cf/qwen/qwen3-30b-a3b-fp8"
const NamespaceInstanceNewParamsRewriteModelCfDeepseekAIDeepseekR1DistillQwen32b NamespaceInstanceNewParamsRewriteModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"
const NamespaceInstanceNewParamsRewriteModelCfMoonshotaiKimiK2Instruct NamespaceInstanceNewParamsRewriteModel = "@cf/moonshotai/kimi-k2-instruct"
const NamespaceInstanceNewParamsRewriteModelCfGoogleGemma3_12bIt NamespaceInstanceNewParamsRewriteModel = "@cf/google/gemma-3-12b-it"
const NamespaceInstanceNewParamsRewriteModelCfGoogleGemma4_26bA4bIt NamespaceInstanceNewParamsRewriteModel = "@cf/google/gemma-4-26b-a4b-it"
const NamespaceInstanceNewParamsRewriteModelCfMoonshotaiKimiK2_5 NamespaceInstanceNewParamsRewriteModel = "@cf/moonshotai/kimi-k2.5"
const NamespaceInstanceNewParamsRewriteModelAnthropicClaude3_7Sonnet NamespaceInstanceNewParamsRewriteModel = "anthropic/claude-3-7-sonnet"
const NamespaceInstanceNewParamsRewriteModelAnthropicClaudeSonnet4 NamespaceInstanceNewParamsRewriteModel = "anthropic/claude-sonnet-4"
const NamespaceInstanceNewParamsRewriteModelAnthropicClaudeOpus4 NamespaceInstanceNewParamsRewriteModel = "anthropic/claude-opus-4"
const NamespaceInstanceNewParamsRewriteModelAnthropicClaude3_5Haiku NamespaceInstanceNewParamsRewriteModel = "anthropic/claude-3-5-haiku"
const NamespaceInstanceNewParamsRewriteModelCerebrasQwen3_235bA22bInstruct NamespaceInstanceNewParamsRewriteModel = "cerebras/qwen-3-235b-a22b-instruct"
const NamespaceInstanceNewParamsRewriteModelCerebrasQwen3_235bA22bThinking NamespaceInstanceNewParamsRewriteModel = "cerebras/qwen-3-235b-a22b-thinking"
const NamespaceInstanceNewParamsRewriteModelCerebrasLlama3_3_70b NamespaceInstanceNewParamsRewriteModel = "cerebras/llama-3.3-70b"
const NamespaceInstanceNewParamsRewriteModelCerebrasLlama4Maverick17b128eInstruct NamespaceInstanceNewParamsRewriteModel = "cerebras/llama-4-maverick-17b-128e-instruct"
const NamespaceInstanceNewParamsRewriteModelCerebrasLlama4Scout17b16eInstruct NamespaceInstanceNewParamsRewriteModel = "cerebras/llama-4-scout-17b-16e-instruct"
const NamespaceInstanceNewParamsRewriteModelCerebrasGptOSs120b NamespaceInstanceNewParamsRewriteModel = "cerebras/gpt-oss-120b"
const NamespaceInstanceNewParamsRewriteModelGoogleAIStudioGemini2_5Flash NamespaceInstanceNewParamsRewriteModel = "google-ai-studio/gemini-2.5-flash"
const NamespaceInstanceNewParamsRewriteModelGoogleAIStudioGemini2_5Pro NamespaceInstanceNewParamsRewriteModel = "google-ai-studio/gemini-2.5-pro"
const NamespaceInstanceNewParamsRewriteModelGrokGrok4 NamespaceInstanceNewParamsRewriteModel = "grok/grok-4"
const NamespaceInstanceNewParamsRewriteModelGroqLlama3_3_70bVersatile NamespaceInstanceNewParamsRewriteModel = "groq/llama-3.3-70b-versatile"
const NamespaceInstanceNewParamsRewriteModelGroqLlama3_1_8bInstant NamespaceInstanceNewParamsRewriteModel = "groq/llama-3.1-8b-instant"
const NamespaceInstanceNewParamsRewriteModelOpenAIGpt5 NamespaceInstanceNewParamsRewriteModel = "openai/gpt-5"
const NamespaceInstanceNewParamsRewriteModelOpenAIGpt5Mini NamespaceInstanceNewParamsRewriteModel = "openai/gpt-5-mini"
const NamespaceInstanceNewParamsRewriteModelOpenAIGpt5Nano NamespaceInstanceNewParamsRewriteModel = "openai/gpt-5-nano"
const NamespaceInstanceNewParamsRewriteModelEmpty NamespaceInstanceNewParamsRewriteModel = ""
RewriteQuery param.Field[bool]Optional

Body param

ScoreThreshold param.Field[float64]Optional

Body param

maximum1
minimum0
Source param.Field[string]Optional

Body param

SourceParams param.Field[NamespaceInstanceNewParamsSourceParams]Optional

Body param

ExcludeItems []stringOptional

List of path patterns to exclude. Uses micromatch glob syntax: * matches within a path segment, ** matches across path segments (e.g., /admin/** matches /admin/users and /admin/settings/advanced)

IncludeItems []stringOptional

List of path patterns to include. Uses micromatch glob syntax: * matches within a path segment, ** matches across path segments (e.g., /blog/** matches /blog/post and /blog/2024/post)

Prefix stringOptional
R2Jurisdiction stringOptional
WebCrawler NamespaceInstanceNewParamsSourceParamsWebCrawlerOptional
ParseOptions NamespaceInstanceNewParamsSourceParamsWebCrawlerParseOptionsOptional
ContentSelector []NamespaceInstanceNewParamsSourceParamsWebCrawlerParseOptionsContentSelectorOptional

List of path-to-selector mappings for extracting specific content from crawled pages. Each entry pairs a URL glob pattern with a CSS selector. The first matching path wins. Only the matched HTML fragment is stored and indexed. Omit the field to disable content selection — empty arrays are rejected.

Path string

Glob pattern to match against the page URL path. Uses standard glob syntax: * matches within a segment, ** crosses directories.

maxLength200
minLength1
Selector string

CSS selector to extract content from pages matching the path pattern. Must not contain disallowed characters (;, `, $, {, }, ). Must target a single element; if multiple elements match, the selector is ignored and the full page is used.

maxLength200
minLength1
IncludeHeaders map[string, string]Optional

Up to 5 custom HTTP headers sent with each crawl request. Names must be RFC-7230 token characters (no spaces, colons, or control characters); values must be HTAB + printable ASCII (no CR/LF).

IncludeImages boolOptional
SpecificSitemaps []stringOptional

List of specific sitemap URLs to use for crawling. Only valid when parse_type is ‘sitemap’.

UseBrowserRendering boolOptional
ParseType NamespaceInstanceNewParamsSourceParamsWebCrawlerParseTypeOptional
One of the following:
const NamespaceInstanceNewParamsSourceParamsWebCrawlerParseTypeSitemap NamespaceInstanceNewParamsSourceParamsWebCrawlerParseType = "sitemap"
const NamespaceInstanceNewParamsSourceParamsWebCrawlerParseTypeCrawl NamespaceInstanceNewParamsSourceParamsWebCrawlerParseType = "crawl"
SyncInterval param.Field[NamespaceInstanceNewParamsSyncInterval]Optional

Body param: Interval between automatic syncs, in seconds. Allowed values: 900 (15min), 1800 (30min), 3600 (1h), 7200 (2h), 14400 (4h), 21600 (6h), 43200 (12h), 86400 (24h).

const NamespaceInstanceNewParamsSyncInterval900 NamespaceInstanceNewParamsSyncInterval = 900
const NamespaceInstanceNewParamsSyncInterval1800 NamespaceInstanceNewParamsSyncInterval = 1800
const NamespaceInstanceNewParamsSyncInterval3600 NamespaceInstanceNewParamsSyncInterval = 3600
const NamespaceInstanceNewParamsSyncInterval7200 NamespaceInstanceNewParamsSyncInterval = 7200
const NamespaceInstanceNewParamsSyncInterval14400 NamespaceInstanceNewParamsSyncInterval = 14400
const NamespaceInstanceNewParamsSyncInterval21600 NamespaceInstanceNewParamsSyncInterval = 21600
const NamespaceInstanceNewParamsSyncInterval43200 NamespaceInstanceNewParamsSyncInterval = 43200
const NamespaceInstanceNewParamsSyncInterval86400 NamespaceInstanceNewParamsSyncInterval = 86400
TokenID param.Field[string]Optional

Body param

formatuuid
Type param.Field[NamespaceInstanceNewParamsType]Optional

Body param

const NamespaceInstanceNewParamsTypeR2 NamespaceInstanceNewParamsType = "r2"
const NamespaceInstanceNewParamsTypeWebCrawler NamespaceInstanceNewParamsType = "web-crawler"
ReturnsExpand Collapse
type NamespaceInstanceNewResponse struct{…}
ID string

AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.

maxLength64
minLength1
CreatedAt Time
formatdate-time
ModifiedAt Time
formatdate-time
AIGatewayID stringOptional
AISearchModel NamespaceInstanceNewResponseAISearchModelOptional
One of the following:
const NamespaceInstanceNewResponseAISearchModelCfMetaLlama3_3_70bInstructFp8Fast NamespaceInstanceNewResponseAISearchModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"
const NamespaceInstanceNewResponseAISearchModelCfZaiOrgGlm4_7Flash NamespaceInstanceNewResponseAISearchModel = "@cf/zai-org/glm-4.7-flash"
const NamespaceInstanceNewResponseAISearchModelCfMetaLlama3_1_8bInstructFast NamespaceInstanceNewResponseAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fast"
const NamespaceInstanceNewResponseAISearchModelCfMetaLlama3_1_8bInstructFp8 NamespaceInstanceNewResponseAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fp8"
const NamespaceInstanceNewResponseAISearchModelCfMetaLlama4Scout17b16eInstruct NamespaceInstanceNewResponseAISearchModel = "@cf/meta/llama-4-scout-17b-16e-instruct"
const NamespaceInstanceNewResponseAISearchModelCfQwenQwen3_30bA3bFp8 NamespaceInstanceNewResponseAISearchModel = "@cf/qwen/qwen3-30b-a3b-fp8"
const NamespaceInstanceNewResponseAISearchModelCfDeepseekAIDeepseekR1DistillQwen32b NamespaceInstanceNewResponseAISearchModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"
const NamespaceInstanceNewResponseAISearchModelCfMoonshotaiKimiK2Instruct NamespaceInstanceNewResponseAISearchModel = "@cf/moonshotai/kimi-k2-instruct"
const NamespaceInstanceNewResponseAISearchModelCfGoogleGemma3_12bIt NamespaceInstanceNewResponseAISearchModel = "@cf/google/gemma-3-12b-it"
const NamespaceInstanceNewResponseAISearchModelCfGoogleGemma4_26bA4bIt NamespaceInstanceNewResponseAISearchModel = "@cf/google/gemma-4-26b-a4b-it"
const NamespaceInstanceNewResponseAISearchModelCfMoonshotaiKimiK2_5 NamespaceInstanceNewResponseAISearchModel = "@cf/moonshotai/kimi-k2.5"
const NamespaceInstanceNewResponseAISearchModelAnthropicClaude3_7Sonnet NamespaceInstanceNewResponseAISearchModel = "anthropic/claude-3-7-sonnet"
const NamespaceInstanceNewResponseAISearchModelAnthropicClaudeSonnet4 NamespaceInstanceNewResponseAISearchModel = "anthropic/claude-sonnet-4"
const NamespaceInstanceNewResponseAISearchModelAnthropicClaudeOpus4 NamespaceInstanceNewResponseAISearchModel = "anthropic/claude-opus-4"
const NamespaceInstanceNewResponseAISearchModelAnthropicClaude3_5Haiku NamespaceInstanceNewResponseAISearchModel = "anthropic/claude-3-5-haiku"
const NamespaceInstanceNewResponseAISearchModelCerebrasQwen3_235bA22bInstruct NamespaceInstanceNewResponseAISearchModel = "cerebras/qwen-3-235b-a22b-instruct"
const NamespaceInstanceNewResponseAISearchModelCerebrasQwen3_235bA22bThinking NamespaceInstanceNewResponseAISearchModel = "cerebras/qwen-3-235b-a22b-thinking"
const NamespaceInstanceNewResponseAISearchModelCerebrasLlama3_3_70b NamespaceInstanceNewResponseAISearchModel = "cerebras/llama-3.3-70b"
const NamespaceInstanceNewResponseAISearchModelCerebrasLlama4Maverick17b128eInstruct NamespaceInstanceNewResponseAISearchModel = "cerebras/llama-4-maverick-17b-128e-instruct"
const NamespaceInstanceNewResponseAISearchModelCerebrasLlama4Scout17b16eInstruct NamespaceInstanceNewResponseAISearchModel = "cerebras/llama-4-scout-17b-16e-instruct"
const NamespaceInstanceNewResponseAISearchModelCerebrasGptOSs120b NamespaceInstanceNewResponseAISearchModel = "cerebras/gpt-oss-120b"
const NamespaceInstanceNewResponseAISearchModelGoogleAIStudioGemini2_5Flash NamespaceInstanceNewResponseAISearchModel = "google-ai-studio/gemini-2.5-flash"
const NamespaceInstanceNewResponseAISearchModelGoogleAIStudioGemini2_5Pro NamespaceInstanceNewResponseAISearchModel = "google-ai-studio/gemini-2.5-pro"
const NamespaceInstanceNewResponseAISearchModelGrokGrok4 NamespaceInstanceNewResponseAISearchModel = "grok/grok-4"
const NamespaceInstanceNewResponseAISearchModelGroqLlama3_3_70bVersatile NamespaceInstanceNewResponseAISearchModel = "groq/llama-3.3-70b-versatile"
const NamespaceInstanceNewResponseAISearchModelGroqLlama3_1_8bInstant NamespaceInstanceNewResponseAISearchModel = "groq/llama-3.1-8b-instant"
const NamespaceInstanceNewResponseAISearchModelOpenAIGpt5 NamespaceInstanceNewResponseAISearchModel = "openai/gpt-5"
const NamespaceInstanceNewResponseAISearchModelOpenAIGpt5Mini NamespaceInstanceNewResponseAISearchModel = "openai/gpt-5-mini"
const NamespaceInstanceNewResponseAISearchModelOpenAIGpt5Nano NamespaceInstanceNewResponseAISearchModel = "openai/gpt-5-nano"
const NamespaceInstanceNewResponseAISearchModelEmpty NamespaceInstanceNewResponseAISearchModel = ""
Cache boolOptional
CacheThreshold NamespaceInstanceNewResponseCacheThresholdOptional
One of the following:
const NamespaceInstanceNewResponseCacheThresholdSuperStrictMatch NamespaceInstanceNewResponseCacheThreshold = "super_strict_match"
const NamespaceInstanceNewResponseCacheThresholdCloseEnough NamespaceInstanceNewResponseCacheThreshold = "close_enough"
const NamespaceInstanceNewResponseCacheThresholdFlexibleFriend NamespaceInstanceNewResponseCacheThreshold = "flexible_friend"
const NamespaceInstanceNewResponseCacheThresholdAnythingGoes NamespaceInstanceNewResponseCacheThreshold = "anything_goes"
CacheTTL NamespaceInstanceNewResponseCacheTTLOptional

Cache entry TTL in seconds. Allowed values: 600 (10min), 1800 (30min), 3600 (1h), 7200 (2h), 21600 (6h), 43200 (12h), 86400 (24h), 172800 (48h), 259200 (72h), 518400 (6d).

One of the following:
const NamespaceInstanceNewResponseCacheTTL600 NamespaceInstanceNewResponseCacheTTL = 600
const NamespaceInstanceNewResponseCacheTTL1800 NamespaceInstanceNewResponseCacheTTL = 1800
const NamespaceInstanceNewResponseCacheTTL3600 NamespaceInstanceNewResponseCacheTTL = 3600
const NamespaceInstanceNewResponseCacheTTL7200 NamespaceInstanceNewResponseCacheTTL = 7200
const NamespaceInstanceNewResponseCacheTTL21600 NamespaceInstanceNewResponseCacheTTL = 21600
const NamespaceInstanceNewResponseCacheTTL43200 NamespaceInstanceNewResponseCacheTTL = 43200
const NamespaceInstanceNewResponseCacheTTL86400 NamespaceInstanceNewResponseCacheTTL = 86400
const NamespaceInstanceNewResponseCacheTTL172800 NamespaceInstanceNewResponseCacheTTL = 172800
const NamespaceInstanceNewResponseCacheTTL259200 NamespaceInstanceNewResponseCacheTTL = 259200
const NamespaceInstanceNewResponseCacheTTL518400 NamespaceInstanceNewResponseCacheTTL = 518400
ChunkOverlap int64Optional
maximum30
minimum0
ChunkSize int64Optional
minimum64
CreatedBy stringOptional
CustomMetadata []NamespaceInstanceNewResponseCustomMetadataOptional
DataType NamespaceInstanceNewResponseCustomMetadataDataType
One of the following:
const NamespaceInstanceNewResponseCustomMetadataDataTypeText NamespaceInstanceNewResponseCustomMetadataDataType = "text"
const NamespaceInstanceNewResponseCustomMetadataDataTypeNumber NamespaceInstanceNewResponseCustomMetadataDataType = "number"
const NamespaceInstanceNewResponseCustomMetadataDataTypeBoolean NamespaceInstanceNewResponseCustomMetadataDataType = "boolean"
const NamespaceInstanceNewResponseCustomMetadataDataTypeDatetime NamespaceInstanceNewResponseCustomMetadataDataType = "datetime"
FieldName string
maxLength64
minLength1
EmbeddingModel NamespaceInstanceNewResponseEmbeddingModelOptional
One of the following:
const NamespaceInstanceNewResponseEmbeddingModelCfQwenQwen3Embedding0_6b NamespaceInstanceNewResponseEmbeddingModel = "@cf/qwen/qwen3-embedding-0.6b"
const NamespaceInstanceNewResponseEmbeddingModelCfQwenQwen3VlEmbedding2b NamespaceInstanceNewResponseEmbeddingModel = "@cf/qwen/qwen3-vl-embedding-2b"
const NamespaceInstanceNewResponseEmbeddingModelCfBaaiBgeM3 NamespaceInstanceNewResponseEmbeddingModel = "@cf/baai/bge-m3"
const NamespaceInstanceNewResponseEmbeddingModelCfBaaiBgeLargeEnV1_5 NamespaceInstanceNewResponseEmbeddingModel = "@cf/baai/bge-large-en-v1.5"
const NamespaceInstanceNewResponseEmbeddingModelCfGoogleEmbeddinggemma300m NamespaceInstanceNewResponseEmbeddingModel = "@cf/google/embeddinggemma-300m"
const NamespaceInstanceNewResponseEmbeddingModelGoogleAIStudioGeminiEmbedding001 NamespaceInstanceNewResponseEmbeddingModel = "google-ai-studio/gemini-embedding-001"
const NamespaceInstanceNewResponseEmbeddingModelGoogleAIStudioGeminiEmbedding2Preview NamespaceInstanceNewResponseEmbeddingModel = "google-ai-studio/gemini-embedding-2-preview"
const NamespaceInstanceNewResponseEmbeddingModelOpenAITextEmbedding3Small NamespaceInstanceNewResponseEmbeddingModel = "openai/text-embedding-3-small"
const NamespaceInstanceNewResponseEmbeddingModelOpenAITextEmbedding3Large NamespaceInstanceNewResponseEmbeddingModel = "openai/text-embedding-3-large"
const NamespaceInstanceNewResponseEmbeddingModelEmpty NamespaceInstanceNewResponseEmbeddingModel = ""
Enable boolOptional
EngineVersion float64Optional
FusionMethod NamespaceInstanceNewResponseFusionMethodOptional
One of the following:
const NamespaceInstanceNewResponseFusionMethodMax NamespaceInstanceNewResponseFusionMethod = "max"
const NamespaceInstanceNewResponseFusionMethodRrf NamespaceInstanceNewResponseFusionMethod = "rrf"
DeprecatedHybridSearchEnabled boolOptional

Deprecated — use index_method instead.

IndexMethod NamespaceInstanceNewResponseIndexMethodOptional

Controls which storage backends are used during indexing. Defaults to vector-only.

Keyword bool

Enable keyword (BM25) storage backend.

Vector bool

Enable vector (embedding) storage backend.

IndexingOptions NamespaceInstanceNewResponseIndexingOptionsOptional
KeywordTokenizer NamespaceInstanceNewResponseIndexingOptionsKeywordTokenizerOptional

Tokenizer used for keyword search indexing. porter provides word-level tokenization with Porter stemming (good for natural language queries). trigram enables character-level substring matching (good for partial matches, code, identifiers). Changing this triggers a full re-index. Defaults to porter.

One of the following:
const NamespaceInstanceNewResponseIndexingOptionsKeywordTokenizerPorter NamespaceInstanceNewResponseIndexingOptionsKeywordTokenizer = "porter"
const NamespaceInstanceNewResponseIndexingOptionsKeywordTokenizerTrigram NamespaceInstanceNewResponseIndexingOptionsKeywordTokenizer = "trigram"
LastActivity TimeOptional
formatdate-time
MaxNumResults int64Optional
maximum50
minimum1
Metadata NamespaceInstanceNewResponseMetadataOptional
CreatedFromAISearchWizard boolOptional
WorkerDomain stringOptional
ModifiedBy stringOptional
Namespace stringOptional
Paused boolOptional
PublicEndpointID stringOptional
PublicEndpointParams NamespaceInstanceNewResponsePublicEndpointParamsOptional
AuthorizedHosts []stringOptional
ChatCompletionsEndpoint NamespaceInstanceNewResponsePublicEndpointParamsChatCompletionsEndpointOptional
Disabled boolOptional

Disable chat completions endpoint for this public endpoint

Enabled boolOptional
Mcp NamespaceInstanceNewResponsePublicEndpointParamsMcpOptional
Description stringOptional
Disabled boolOptional

Disable MCP endpoint for this public endpoint

RateLimit NamespaceInstanceNewResponsePublicEndpointParamsRateLimitOptional
PeriodMs int64Optional
maximum3600000
minimum60000
Requests int64Optional
minimum1
Technique NamespaceInstanceNewResponsePublicEndpointParamsRateLimitTechniqueOptional
One of the following:
const NamespaceInstanceNewResponsePublicEndpointParamsRateLimitTechniqueFixed NamespaceInstanceNewResponsePublicEndpointParamsRateLimitTechnique = "fixed"
const NamespaceInstanceNewResponsePublicEndpointParamsRateLimitTechniqueSliding NamespaceInstanceNewResponsePublicEndpointParamsRateLimitTechnique = "sliding"
SearchEndpoint NamespaceInstanceNewResponsePublicEndpointParamsSearchEndpointOptional
Disabled boolOptional

Disable search endpoint for this public endpoint

Reranking boolOptional
RerankingModel NamespaceInstanceNewResponseRerankingModelOptional
One of the following:
const NamespaceInstanceNewResponseRerankingModelCfBaaiBgeRerankerBase NamespaceInstanceNewResponseRerankingModel = "@cf/baai/bge-reranker-base"
const NamespaceInstanceNewResponseRerankingModelEmpty NamespaceInstanceNewResponseRerankingModel = ""
RetrievalOptions NamespaceInstanceNewResponseRetrievalOptionsOptional
BoostBy []NamespaceInstanceNewResponseRetrievalOptionsBoostByOptional

Metadata fields to boost search results by. Each entry specifies a metadata field and an optional direction. Direction defaults to ‘asc’ for numeric/datetime fields and ‘exists’ for text/boolean fields. Fields must match ‘timestamp’ or a defined custom_metadata field.

Field string

Metadata field name to boost by. Use ‘timestamp’ for document freshness, or any custom_metadata field. Numeric and datetime fields support all four directions (asc, desc, exists, not_exists); text/boolean fields only support exists/not_exists.

maxLength64
minLength1
Direction NamespaceInstanceNewResponseRetrievalOptionsBoostByDirectionOptional

Boost direction. ‘desc’ = higher values rank higher (e.g. newer timestamps). ‘asc’ = lower values rank higher. ‘exists’ = boost chunks that have the field. ‘not_exists’ = boost chunks that lack the field. Optional — defaults to ‘asc’ for numeric/datetime fields, ‘exists’ for text/boolean fields.

One of the following:
const NamespaceInstanceNewResponseRetrievalOptionsBoostByDirectionAsc NamespaceInstanceNewResponseRetrievalOptionsBoostByDirection = "asc"
const NamespaceInstanceNewResponseRetrievalOptionsBoostByDirectionDesc NamespaceInstanceNewResponseRetrievalOptionsBoostByDirection = "desc"
const NamespaceInstanceNewResponseRetrievalOptionsBoostByDirectionExists NamespaceInstanceNewResponseRetrievalOptionsBoostByDirection = "exists"
const NamespaceInstanceNewResponseRetrievalOptionsBoostByDirectionNotExists NamespaceInstanceNewResponseRetrievalOptionsBoostByDirection = "not_exists"
KeywordMatchMode NamespaceInstanceNewResponseRetrievalOptionsKeywordMatchModeOptional

Controls which documents are candidates for BM25 scoring. ‘and’ restricts candidates to documents containing all query terms; ‘or’ includes any document containing at least one term, ranked by BM25 relevance. Defaults to ‘and’.

One of the following:
const NamespaceInstanceNewResponseRetrievalOptionsKeywordMatchModeAnd NamespaceInstanceNewResponseRetrievalOptionsKeywordMatchMode = "and"
const NamespaceInstanceNewResponseRetrievalOptionsKeywordMatchModeOr NamespaceInstanceNewResponseRetrievalOptionsKeywordMatchMode = "or"
RewriteModel NamespaceInstanceNewResponseRewriteModelOptional
One of the following:
const NamespaceInstanceNewResponseRewriteModelCfMetaLlama3_3_70bInstructFp8Fast NamespaceInstanceNewResponseRewriteModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"
const NamespaceInstanceNewResponseRewriteModelCfZaiOrgGlm4_7Flash NamespaceInstanceNewResponseRewriteModel = "@cf/zai-org/glm-4.7-flash"
const NamespaceInstanceNewResponseRewriteModelCfMetaLlama3_1_8bInstructFast NamespaceInstanceNewResponseRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fast"
const NamespaceInstanceNewResponseRewriteModelCfMetaLlama3_1_8bInstructFp8 NamespaceInstanceNewResponseRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fp8"
const NamespaceInstanceNewResponseRewriteModelCfMetaLlama4Scout17b16eInstruct NamespaceInstanceNewResponseRewriteModel = "@cf/meta/llama-4-scout-17b-16e-instruct"
const NamespaceInstanceNewResponseRewriteModelCfQwenQwen3_30bA3bFp8 NamespaceInstanceNewResponseRewriteModel = "@cf/qwen/qwen3-30b-a3b-fp8"
const NamespaceInstanceNewResponseRewriteModelCfDeepseekAIDeepseekR1DistillQwen32b NamespaceInstanceNewResponseRewriteModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"
const NamespaceInstanceNewResponseRewriteModelCfMoonshotaiKimiK2Instruct NamespaceInstanceNewResponseRewriteModel = "@cf/moonshotai/kimi-k2-instruct"
const NamespaceInstanceNewResponseRewriteModelCfGoogleGemma3_12bIt NamespaceInstanceNewResponseRewriteModel = "@cf/google/gemma-3-12b-it"
const NamespaceInstanceNewResponseRewriteModelCfGoogleGemma4_26bA4bIt NamespaceInstanceNewResponseRewriteModel = "@cf/google/gemma-4-26b-a4b-it"
const NamespaceInstanceNewResponseRewriteModelCfMoonshotaiKimiK2_5 NamespaceInstanceNewResponseRewriteModel = "@cf/moonshotai/kimi-k2.5"
const NamespaceInstanceNewResponseRewriteModelAnthropicClaude3_7Sonnet NamespaceInstanceNewResponseRewriteModel = "anthropic/claude-3-7-sonnet"
const NamespaceInstanceNewResponseRewriteModelAnthropicClaudeSonnet4 NamespaceInstanceNewResponseRewriteModel = "anthropic/claude-sonnet-4"
const NamespaceInstanceNewResponseRewriteModelAnthropicClaudeOpus4 NamespaceInstanceNewResponseRewriteModel = "anthropic/claude-opus-4"
const NamespaceInstanceNewResponseRewriteModelAnthropicClaude3_5Haiku NamespaceInstanceNewResponseRewriteModel = "anthropic/claude-3-5-haiku"
const NamespaceInstanceNewResponseRewriteModelCerebrasQwen3_235bA22bInstruct NamespaceInstanceNewResponseRewriteModel = "cerebras/qwen-3-235b-a22b-instruct"
const NamespaceInstanceNewResponseRewriteModelCerebrasQwen3_235bA22bThinking NamespaceInstanceNewResponseRewriteModel = "cerebras/qwen-3-235b-a22b-thinking"
const NamespaceInstanceNewResponseRewriteModelCerebrasLlama3_3_70b NamespaceInstanceNewResponseRewriteModel = "cerebras/llama-3.3-70b"
const NamespaceInstanceNewResponseRewriteModelCerebrasLlama4Maverick17b128eInstruct NamespaceInstanceNewResponseRewriteModel = "cerebras/llama-4-maverick-17b-128e-instruct"
const NamespaceInstanceNewResponseRewriteModelCerebrasLlama4Scout17b16eInstruct NamespaceInstanceNewResponseRewriteModel = "cerebras/llama-4-scout-17b-16e-instruct"
const NamespaceInstanceNewResponseRewriteModelCerebrasGptOSs120b NamespaceInstanceNewResponseRewriteModel = "cerebras/gpt-oss-120b"
const NamespaceInstanceNewResponseRewriteModelGoogleAIStudioGemini2_5Flash NamespaceInstanceNewResponseRewriteModel = "google-ai-studio/gemini-2.5-flash"
const NamespaceInstanceNewResponseRewriteModelGoogleAIStudioGemini2_5Pro NamespaceInstanceNewResponseRewriteModel = "google-ai-studio/gemini-2.5-pro"
const NamespaceInstanceNewResponseRewriteModelGrokGrok4 NamespaceInstanceNewResponseRewriteModel = "grok/grok-4"
const NamespaceInstanceNewResponseRewriteModelGroqLlama3_3_70bVersatile NamespaceInstanceNewResponseRewriteModel = "groq/llama-3.3-70b-versatile"
const NamespaceInstanceNewResponseRewriteModelGroqLlama3_1_8bInstant NamespaceInstanceNewResponseRewriteModel = "groq/llama-3.1-8b-instant"
const NamespaceInstanceNewResponseRewriteModelOpenAIGpt5 NamespaceInstanceNewResponseRewriteModel = "openai/gpt-5"
const NamespaceInstanceNewResponseRewriteModelOpenAIGpt5Mini NamespaceInstanceNewResponseRewriteModel = "openai/gpt-5-mini"
const NamespaceInstanceNewResponseRewriteModelOpenAIGpt5Nano NamespaceInstanceNewResponseRewriteModel = "openai/gpt-5-nano"
const NamespaceInstanceNewResponseRewriteModelEmpty NamespaceInstanceNewResponseRewriteModel = ""
RewriteQuery boolOptional
ScoreThreshold float64Optional
maximum1
minimum0
Source stringOptional
SourceParams NamespaceInstanceNewResponseSourceParamsOptional
ExcludeItems []stringOptional

List of path patterns to exclude. Uses micromatch glob syntax: * matches within a path segment, ** matches across path segments (e.g., /admin/** matches /admin/users and /admin/settings/advanced)

IncludeItems []stringOptional

List of path patterns to include. Uses micromatch glob syntax: * matches within a path segment, ** matches across path segments (e.g., /blog/** matches /blog/post and /blog/2024/post)

Prefix stringOptional
R2Jurisdiction stringOptional
WebCrawler NamespaceInstanceNewResponseSourceParamsWebCrawlerOptional
ParseOptions NamespaceInstanceNewResponseSourceParamsWebCrawlerParseOptionsOptional
ContentSelector []NamespaceInstanceNewResponseSourceParamsWebCrawlerParseOptionsContentSelectorOptional

List of path-to-selector mappings for extracting specific content from crawled pages. Each entry pairs a URL glob pattern with a CSS selector. The first matching path wins. Only the matched HTML fragment is stored and indexed. Omit the field to disable content selection — empty arrays are rejected.

Path string

Glob pattern to match against the page URL path. Uses standard glob syntax: * matches within a segment, ** crosses directories.

maxLength200
minLength1
Selector string

CSS selector to extract content from pages matching the path pattern. Must not contain disallowed characters (;, `, $, {, }, ). Must target a single element; if multiple elements match, the selector is ignored and the full page is used.

maxLength200
minLength1
IncludeHeaders map[string, string]Optional

Up to 5 custom HTTP headers sent with each crawl request. Names must be RFC-7230 token characters (no spaces, colons, or control characters); values must be HTAB + printable ASCII (no CR/LF).

IncludeImages boolOptional
SpecificSitemaps []stringOptional

List of specific sitemap URLs to use for crawling. Only valid when parse_type is ‘sitemap’.

UseBrowserRendering boolOptional
ParseType NamespaceInstanceNewResponseSourceParamsWebCrawlerParseTypeOptional
One of the following:
const NamespaceInstanceNewResponseSourceParamsWebCrawlerParseTypeSitemap NamespaceInstanceNewResponseSourceParamsWebCrawlerParseType = "sitemap"
const NamespaceInstanceNewResponseSourceParamsWebCrawlerParseTypeCrawl NamespaceInstanceNewResponseSourceParamsWebCrawlerParseType = "crawl"
Status stringOptional
SyncInterval NamespaceInstanceNewResponseSyncIntervalOptional

Interval between automatic syncs, in seconds. Allowed values: 900 (15min), 1800 (30min), 3600 (1h), 7200 (2h), 14400 (4h), 21600 (6h), 43200 (12h), 86400 (24h).

One of the following:
const NamespaceInstanceNewResponseSyncInterval900 NamespaceInstanceNewResponseSyncInterval = 900
const NamespaceInstanceNewResponseSyncInterval1800 NamespaceInstanceNewResponseSyncInterval = 1800
const NamespaceInstanceNewResponseSyncInterval3600 NamespaceInstanceNewResponseSyncInterval = 3600
const NamespaceInstanceNewResponseSyncInterval7200 NamespaceInstanceNewResponseSyncInterval = 7200
const NamespaceInstanceNewResponseSyncInterval14400 NamespaceInstanceNewResponseSyncInterval = 14400
const NamespaceInstanceNewResponseSyncInterval21600 NamespaceInstanceNewResponseSyncInterval = 21600
const NamespaceInstanceNewResponseSyncInterval43200 NamespaceInstanceNewResponseSyncInterval = 43200
const NamespaceInstanceNewResponseSyncInterval86400 NamespaceInstanceNewResponseSyncInterval = 86400
TokenID stringOptional
formatuuid
Type NamespaceInstanceNewResponseTypeOptional
One of the following:
const NamespaceInstanceNewResponseTypeR2 NamespaceInstanceNewResponseType = "r2"
const NamespaceInstanceNewResponseTypeWebCrawler NamespaceInstanceNewResponseType = "web-crawler"

Create new instance.

package main

import (
  "context"
  "fmt"

  "github.com/stainless-sdks/cloudflare-go"
  "github.com/stainless-sdks/cloudflare-go/ai_search"
  "github.com/stainless-sdks/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  instance, err := client.AISearch.Namespaces.Instances.New(
    context.TODO(),
    "my-namespace",
    ai_search.NamespaceInstanceNewParams{
      AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"),
      ID: cloudflare.F("my-ai-search"),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", instance.ID)
}
{
  "result": {
    "id": "my-ai-search",
    "created_at": "2019-12-27T18:11:19.117Z",
    "modified_at": "2019-12-27T18:11:19.117Z",
    "ai_gateway_id": "ai_gateway_id",
    "ai_search_model": "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
    "cache": true,
    "cache_threshold": "super_strict_match",
    "cache_ttl": 600,
    "chunk_overlap": 0,
    "chunk_size": 64,
    "created_by": "created_by",
    "custom_metadata": [
      {
        "data_type": "text",
        "field_name": "x"
      }
    ],
    "embedding_model": "@cf/qwen/qwen3-embedding-0.6b",
    "enable": true,
    "engine_version": 0,
    "fusion_method": "max",
    "hybrid_search_enabled": true,
    "index_method": {
      "keyword": true,
      "vector": true
    },
    "indexing_options": {
      "keyword_tokenizer": "porter"
    },
    "last_activity": "2019-12-27T18:11:19.117Z",
    "max_num_results": 1,
    "metadata": {
      "created_from_aisearch_wizard": true,
      "worker_domain": "worker_domain"
    },
    "modified_by": "modified_by",
    "namespace": "namespace",
    "paused": true,
    "public_endpoint_id": "public_endpoint_id",
    "public_endpoint_params": {
      "authorized_hosts": [
        "string"
      ],
      "chat_completions_endpoint": {
        "disabled": true
      },
      "enabled": true,
      "mcp": {
        "description": "description",
        "disabled": true
      },
      "rate_limit": {
        "period_ms": 60000,
        "requests": 1,
        "technique": "fixed"
      },
      "search_endpoint": {
        "disabled": true
      }
    },
    "reranking": true,
    "reranking_model": "@cf/baai/bge-reranker-base",
    "retrieval_options": {
      "boost_by": [
        {
          "field": "timestamp",
          "direction": "desc"
        }
      ],
      "keyword_match_mode": "and"
    },
    "rewrite_model": "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
    "rewrite_query": true,
    "score_threshold": 0,
    "source": "source",
    "source_params": {
      "exclude_items": [
        "/admin/**",
        "/private/**",
        "**\\temp\\**"
      ],
      "include_items": [
        "/blog/**",
        "/docs/**/*.html",
        "**\\blog\\**.html"
      ],
      "prefix": "prefix",
      "r2_jurisdiction": "r2_jurisdiction",
      "web_crawler": {
        "parse_options": {
          "content_selector": [
            {
              "path": "**/blog/**",
              "selector": "article div.post-body"
            },
            {
              "path": "**/docs/**",
              "selector": "main"
            }
          ],
          "include_headers": {
            "cache-control": "no-cache, no-store"
          },
          "include_images": true,
          "specific_sitemaps": [
            "https://example.com/sitemap.xml",
            "https://example.com/blog-sitemap.xml"
          ],
          "use_browser_rendering": true
        },
        "parse_type": "sitemap"
      }
    },
    "status": "status",
    "sync_interval": 900,
    "token_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "type": "r2"
  },
  "success": true
}
Returns Examples
{
  "result": {
    "id": "my-ai-search",
    "created_at": "2019-12-27T18:11:19.117Z",
    "modified_at": "2019-12-27T18:11:19.117Z",
    "ai_gateway_id": "ai_gateway_id",
    "ai_search_model": "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
    "cache": true,
    "cache_threshold": "super_strict_match",
    "cache_ttl": 600,
    "chunk_overlap": 0,
    "chunk_size": 64,
    "created_by": "created_by",
    "custom_metadata": [
      {
        "data_type": "text",
        "field_name": "x"
      }
    ],
    "embedding_model": "@cf/qwen/qwen3-embedding-0.6b",
    "enable": true,
    "engine_version": 0,
    "fusion_method": "max",
    "hybrid_search_enabled": true,
    "index_method": {
      "keyword": true,
      "vector": true
    },
    "indexing_options": {
      "keyword_tokenizer": "porter"
    },
    "last_activity": "2019-12-27T18:11:19.117Z",
    "max_num_results": 1,
    "metadata": {
      "created_from_aisearch_wizard": true,
      "worker_domain": "worker_domain"
    },
    "modified_by": "modified_by",
    "namespace": "namespace",
    "paused": true,
    "public_endpoint_id": "public_endpoint_id",
    "public_endpoint_params": {
      "authorized_hosts": [
        "string"
      ],
      "chat_completions_endpoint": {
        "disabled": true
      },
      "enabled": true,
      "mcp": {
        "description": "description",
        "disabled": true
      },
      "rate_limit": {
        "period_ms": 60000,
        "requests": 1,
        "technique": "fixed"
      },
      "search_endpoint": {
        "disabled": true
      }
    },
    "reranking": true,
    "reranking_model": "@cf/baai/bge-reranker-base",
    "retrieval_options": {
      "boost_by": [
        {
          "field": "timestamp",
          "direction": "desc"
        }
      ],
      "keyword_match_mode": "and"
    },
    "rewrite_model": "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
    "rewrite_query": true,
    "score_threshold": 0,
    "source": "source",
    "source_params": {
      "exclude_items": [
        "/admin/**",
        "/private/**",
        "**\\temp\\**"
      ],
      "include_items": [
        "/blog/**",
        "/docs/**/*.html",
        "**\\blog\\**.html"
      ],
      "prefix": "prefix",
      "r2_jurisdiction": "r2_jurisdiction",
      "web_crawler": {
        "parse_options": {
          "content_selector": [
            {
              "path": "**/blog/**",
              "selector": "article div.post-body"
            },
            {
              "path": "**/docs/**",
              "selector": "main"
            }
          ],
          "include_headers": {
            "cache-control": "no-cache, no-store"
          },
          "include_images": true,
          "specific_sitemaps": [
            "https://example.com/sitemap.xml",
            "https://example.com/blog-sitemap.xml"
          ],
          "use_browser_rendering": true
        },
        "parse_type": "sitemap"
      }
    },
    "status": "status",
    "sync_interval": 900,
    "token_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "type": "r2"
  },
  "success": true
}