# AI Search # Instances ## List instances. `client.AISearch.Instances.List(ctx, params) (*V4PagePaginationArray[InstanceListResponse], error)` **get** `/accounts/{account_id}/ai-search/instances` List instances. ### Parameters - `params InstanceListParams` - `AccountID param.Field[string]` Path param - `Namespace param.Field[string]` Query param - `OrderBy param.Field[InstanceListParamsOrderBy]` Query param: Order By Column Name - `const InstanceListParamsOrderByCreatedAt InstanceListParamsOrderBy = "created_at"` - `OrderByDirection param.Field[InstanceListParamsOrderByDirection]` Query param: Order By Direction - `const InstanceListParamsOrderByDirectionAsc InstanceListParamsOrderByDirection = "asc"` - `const InstanceListParamsOrderByDirectionDesc InstanceListParamsOrderByDirection = "desc"` - `Page param.Field[int64]` Query param - `PerPage param.Field[int64]` Query param - `Search param.Field[string]` Query param: Search by id ### Returns - `type InstanceListResponse struct{…}` - `ID string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `CreatedAt Time` - `ModifiedAt Time` - `AIGatewayID string` - `AISearchModel InstanceListResponseAISearchModel` - `const InstanceListResponseAISearchModelCfMetaLlama3_3_70bInstructFp8Fast InstanceListResponseAISearchModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceListResponseAISearchModelCfZaiOrgGlm4_7Flash InstanceListResponseAISearchModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceListResponseAISearchModelCfMetaLlama3_1_8bInstructFast InstanceListResponseAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceListResponseAISearchModelCfMetaLlama3_1_8bInstructFp8 InstanceListResponseAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceListResponseAISearchModelCfMetaLlama4Scout17b16eInstruct InstanceListResponseAISearchModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceListResponseAISearchModelCfQwenQwen3_30bA3bFp8 InstanceListResponseAISearchModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceListResponseAISearchModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceListResponseAISearchModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceListResponseAISearchModelCfMoonshotaiKimiK2Instruct InstanceListResponseAISearchModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceListResponseAISearchModelCfGoogleGemma3_12bIt InstanceListResponseAISearchModel = "@cf/google/gemma-3-12b-it"` - `const InstanceListResponseAISearchModelAnthropicClaude3_7Sonnet InstanceListResponseAISearchModel = "anthropic/claude-3-7-sonnet"` - `const InstanceListResponseAISearchModelAnthropicClaudeSonnet4 InstanceListResponseAISearchModel = "anthropic/claude-sonnet-4"` - `const InstanceListResponseAISearchModelAnthropicClaudeOpus4 InstanceListResponseAISearchModel = "anthropic/claude-opus-4"` - `const InstanceListResponseAISearchModelAnthropicClaude3_5Haiku InstanceListResponseAISearchModel = "anthropic/claude-3-5-haiku"` - `const InstanceListResponseAISearchModelCerebrasQwen3_235bA22bInstruct InstanceListResponseAISearchModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceListResponseAISearchModelCerebrasQwen3_235bA22bThinking InstanceListResponseAISearchModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceListResponseAISearchModelCerebrasLlama3_3_70b InstanceListResponseAISearchModel = "cerebras/llama-3.3-70b"` - `const InstanceListResponseAISearchModelCerebrasLlama4Maverick17b128eInstruct InstanceListResponseAISearchModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceListResponseAISearchModelCerebrasLlama4Scout17b16eInstruct InstanceListResponseAISearchModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceListResponseAISearchModelCerebrasGptOSs120b InstanceListResponseAISearchModel = "cerebras/gpt-oss-120b"` - `const InstanceListResponseAISearchModelGoogleAIStudioGemini2_5Flash InstanceListResponseAISearchModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceListResponseAISearchModelGoogleAIStudioGemini2_5Pro InstanceListResponseAISearchModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceListResponseAISearchModelGrokGrok4 InstanceListResponseAISearchModel = "grok/grok-4"` - `const InstanceListResponseAISearchModelGroqLlama3_3_70bVersatile InstanceListResponseAISearchModel = "groq/llama-3.3-70b-versatile"` - `const InstanceListResponseAISearchModelGroqLlama3_1_8bInstant InstanceListResponseAISearchModel = "groq/llama-3.1-8b-instant"` - `const InstanceListResponseAISearchModelOpenAIGpt5 InstanceListResponseAISearchModel = "openai/gpt-5"` - `const InstanceListResponseAISearchModelOpenAIGpt5Mini InstanceListResponseAISearchModel = "openai/gpt-5-mini"` - `const InstanceListResponseAISearchModelOpenAIGpt5Nano InstanceListResponseAISearchModel = "openai/gpt-5-nano"` - `const InstanceListResponseAISearchModelEmpty InstanceListResponseAISearchModel = ""` - `Cache bool` - `CacheThreshold InstanceListResponseCacheThreshold` - `const InstanceListResponseCacheThresholdSuperStrictMatch InstanceListResponseCacheThreshold = "super_strict_match"` - `const InstanceListResponseCacheThresholdCloseEnough InstanceListResponseCacheThreshold = "close_enough"` - `const InstanceListResponseCacheThresholdFlexibleFriend InstanceListResponseCacheThreshold = "flexible_friend"` - `const InstanceListResponseCacheThresholdAnythingGoes InstanceListResponseCacheThreshold = "anything_goes"` - `ChunkOverlap int64` - `ChunkSize int64` - `CreatedBy string` - `CustomMetadata []InstanceListResponseCustomMetadata` - `DataType InstanceListResponseCustomMetadataDataType` - `const InstanceListResponseCustomMetadataDataTypeText InstanceListResponseCustomMetadataDataType = "text"` - `const InstanceListResponseCustomMetadataDataTypeNumber InstanceListResponseCustomMetadataDataType = "number"` - `const InstanceListResponseCustomMetadataDataTypeBoolean InstanceListResponseCustomMetadataDataType = "boolean"` - `const InstanceListResponseCustomMetadataDataTypeDatetime InstanceListResponseCustomMetadataDataType = "datetime"` - `FieldName string` - `EmbeddingModel InstanceListResponseEmbeddingModel` - `const InstanceListResponseEmbeddingModelCfQwenQwen3Embedding0_6b InstanceListResponseEmbeddingModel = "@cf/qwen/qwen3-embedding-0.6b"` - `const InstanceListResponseEmbeddingModelCfBaaiBgeM3 InstanceListResponseEmbeddingModel = "@cf/baai/bge-m3"` - `const InstanceListResponseEmbeddingModelCfBaaiBgeLargeEnV1_5 InstanceListResponseEmbeddingModel = "@cf/baai/bge-large-en-v1.5"` - `const InstanceListResponseEmbeddingModelCfGoogleEmbeddinggemma300m InstanceListResponseEmbeddingModel = "@cf/google/embeddinggemma-300m"` - `const InstanceListResponseEmbeddingModelGoogleAIStudioGeminiEmbedding001 InstanceListResponseEmbeddingModel = "google-ai-studio/gemini-embedding-001"` - `const InstanceListResponseEmbeddingModelGoogleAIStudioGeminiEmbedding2Preview InstanceListResponseEmbeddingModel = "google-ai-studio/gemini-embedding-2-preview"` - `const InstanceListResponseEmbeddingModelOpenAITextEmbedding3Small InstanceListResponseEmbeddingModel = "openai/text-embedding-3-small"` - `const InstanceListResponseEmbeddingModelOpenAITextEmbedding3Large InstanceListResponseEmbeddingModel = "openai/text-embedding-3-large"` - `const InstanceListResponseEmbeddingModelEmpty InstanceListResponseEmbeddingModel = ""` - `Enable bool` - `EngineVersion float64` - `FusionMethod InstanceListResponseFusionMethod` - `const InstanceListResponseFusionMethodMax InstanceListResponseFusionMethod = "max"` - `const InstanceListResponseFusionMethodRrf InstanceListResponseFusionMethod = "rrf"` - `HybridSearchEnabled bool` - `IndexingOptions InstanceListResponseIndexingOptions` - `KeywordTokenizer InstanceListResponseIndexingOptionsKeywordTokenizer` 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. - `const InstanceListResponseIndexingOptionsKeywordTokenizerPorter InstanceListResponseIndexingOptionsKeywordTokenizer = "porter"` - `const InstanceListResponseIndexingOptionsKeywordTokenizerTrigram InstanceListResponseIndexingOptionsKeywordTokenizer = "trigram"` - `LastActivity Time` - `MaxNumResults int64` - `Metadata InstanceListResponseMetadata` - `CreatedFromAISearchWizard bool` - `WorkerDomain string` - `ModifiedBy string` - `Namespace string` - `Paused bool` - `PublicEndpointID string` - `PublicEndpointParams InstanceListResponsePublicEndpointParams` - `AuthorizedHosts []string` - `ChatCompletionsEndpoint InstanceListResponsePublicEndpointParamsChatCompletionsEndpoint` - `Disabled bool` Disable chat completions endpoint for this public endpoint - `Enabled bool` - `Mcp InstanceListResponsePublicEndpointParamsMcp` - `Description string` - `Disabled bool` Disable MCP endpoint for this public endpoint - `RateLimit InstanceListResponsePublicEndpointParamsRateLimit` - `PeriodMs int64` - `Requests int64` - `Technique InstanceListResponsePublicEndpointParamsRateLimitTechnique` - `const InstanceListResponsePublicEndpointParamsRateLimitTechniqueFixed InstanceListResponsePublicEndpointParamsRateLimitTechnique = "fixed"` - `const InstanceListResponsePublicEndpointParamsRateLimitTechniqueSliding InstanceListResponsePublicEndpointParamsRateLimitTechnique = "sliding"` - `SearchEndpoint InstanceListResponsePublicEndpointParamsSearchEndpoint` - `Disabled bool` Disable search endpoint for this public endpoint - `Reranking bool` - `RerankingModel InstanceListResponseRerankingModel` - `const InstanceListResponseRerankingModelCfBaaiBgeRerankerBase InstanceListResponseRerankingModel = "@cf/baai/bge-reranker-base"` - `const InstanceListResponseRerankingModelEmpty InstanceListResponseRerankingModel = ""` - `RetrievalOptions InstanceListResponseRetrievalOptions` - `BoostBy []InstanceListResponseRetrievalOptionsBoostBy` Metadata fields to boost search results by. Each entry specifies a metadata field and an optional direction. Direction defaults to 'asc' for numeric 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 asc/desc directions; text/boolean fields support exists/not_exists. - `Direction InstanceListResponseRetrievalOptionsBoostByDirection` 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. - `const InstanceListResponseRetrievalOptionsBoostByDirectionAsc InstanceListResponseRetrievalOptionsBoostByDirection = "asc"` - `const InstanceListResponseRetrievalOptionsBoostByDirectionDesc InstanceListResponseRetrievalOptionsBoostByDirection = "desc"` - `const InstanceListResponseRetrievalOptionsBoostByDirectionExists InstanceListResponseRetrievalOptionsBoostByDirection = "exists"` - `const InstanceListResponseRetrievalOptionsBoostByDirectionNotExists InstanceListResponseRetrievalOptionsBoostByDirection = "not_exists"` - `KeywordMatchMode InstanceListResponseRetrievalOptionsKeywordMatchMode` 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'. Legacy values 'exact_match' and 'fuzzy_match' are accepted and map to 'and' and 'or' respectively. - `const InstanceListResponseRetrievalOptionsKeywordMatchModeAnd InstanceListResponseRetrievalOptionsKeywordMatchMode = "and"` - `const InstanceListResponseRetrievalOptionsKeywordMatchModeOr InstanceListResponseRetrievalOptionsKeywordMatchMode = "or"` - `RewriteModel InstanceListResponseRewriteModel` - `const InstanceListResponseRewriteModelCfMetaLlama3_3_70bInstructFp8Fast InstanceListResponseRewriteModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceListResponseRewriteModelCfZaiOrgGlm4_7Flash InstanceListResponseRewriteModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceListResponseRewriteModelCfMetaLlama3_1_8bInstructFast InstanceListResponseRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceListResponseRewriteModelCfMetaLlama3_1_8bInstructFp8 InstanceListResponseRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceListResponseRewriteModelCfMetaLlama4Scout17b16eInstruct InstanceListResponseRewriteModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceListResponseRewriteModelCfQwenQwen3_30bA3bFp8 InstanceListResponseRewriteModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceListResponseRewriteModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceListResponseRewriteModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceListResponseRewriteModelCfMoonshotaiKimiK2Instruct InstanceListResponseRewriteModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceListResponseRewriteModelCfGoogleGemma3_12bIt InstanceListResponseRewriteModel = "@cf/google/gemma-3-12b-it"` - `const InstanceListResponseRewriteModelAnthropicClaude3_7Sonnet InstanceListResponseRewriteModel = "anthropic/claude-3-7-sonnet"` - `const InstanceListResponseRewriteModelAnthropicClaudeSonnet4 InstanceListResponseRewriteModel = "anthropic/claude-sonnet-4"` - `const InstanceListResponseRewriteModelAnthropicClaudeOpus4 InstanceListResponseRewriteModel = "anthropic/claude-opus-4"` - `const InstanceListResponseRewriteModelAnthropicClaude3_5Haiku InstanceListResponseRewriteModel = "anthropic/claude-3-5-haiku"` - `const InstanceListResponseRewriteModelCerebrasQwen3_235bA22bInstruct InstanceListResponseRewriteModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceListResponseRewriteModelCerebrasQwen3_235bA22bThinking InstanceListResponseRewriteModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceListResponseRewriteModelCerebrasLlama3_3_70b InstanceListResponseRewriteModel = "cerebras/llama-3.3-70b"` - `const InstanceListResponseRewriteModelCerebrasLlama4Maverick17b128eInstruct InstanceListResponseRewriteModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceListResponseRewriteModelCerebrasLlama4Scout17b16eInstruct InstanceListResponseRewriteModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceListResponseRewriteModelCerebrasGptOSs120b InstanceListResponseRewriteModel = "cerebras/gpt-oss-120b"` - `const InstanceListResponseRewriteModelGoogleAIStudioGemini2_5Flash InstanceListResponseRewriteModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceListResponseRewriteModelGoogleAIStudioGemini2_5Pro InstanceListResponseRewriteModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceListResponseRewriteModelGrokGrok4 InstanceListResponseRewriteModel = "grok/grok-4"` - `const InstanceListResponseRewriteModelGroqLlama3_3_70bVersatile InstanceListResponseRewriteModel = "groq/llama-3.3-70b-versatile"` - `const InstanceListResponseRewriteModelGroqLlama3_1_8bInstant InstanceListResponseRewriteModel = "groq/llama-3.1-8b-instant"` - `const InstanceListResponseRewriteModelOpenAIGpt5 InstanceListResponseRewriteModel = "openai/gpt-5"` - `const InstanceListResponseRewriteModelOpenAIGpt5Mini InstanceListResponseRewriteModel = "openai/gpt-5-mini"` - `const InstanceListResponseRewriteModelOpenAIGpt5Nano InstanceListResponseRewriteModel = "openai/gpt-5-nano"` - `const InstanceListResponseRewriteModelEmpty InstanceListResponseRewriteModel = ""` - `RewriteQuery bool` - `ScoreThreshold float64` - `Source string` - `SourceParams InstanceListResponseSourceParams` - `ExcludeItems []string` 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 []string` 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 string` - `R2Jurisdiction string` - `WebCrawler InstanceListResponseSourceParamsWebCrawler` - `CrawlOptions InstanceListResponseSourceParamsWebCrawlerCrawlOptions` - `Depth float64` - `IncludeExternalLinks bool` - `IncludeSubdomains bool` - `MaxAge float64` - `Source InstanceListResponseSourceParamsWebCrawlerCrawlOptionsSource` - `const InstanceListResponseSourceParamsWebCrawlerCrawlOptionsSourceAll InstanceListResponseSourceParamsWebCrawlerCrawlOptionsSource = "all"` - `const InstanceListResponseSourceParamsWebCrawlerCrawlOptionsSourceSitemaps InstanceListResponseSourceParamsWebCrawlerCrawlOptionsSource = "sitemaps"` - `const InstanceListResponseSourceParamsWebCrawlerCrawlOptionsSourceLinks InstanceListResponseSourceParamsWebCrawlerCrawlOptionsSource = "links"` - `ParseOptions InstanceListResponseSourceParamsWebCrawlerParseOptions` - `ContentSelector []InstanceListResponseSourceParamsWebCrawlerParseOptionsContentSelector` 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. - `Path string` Glob pattern to match against the page URL path. Uses standard glob syntax: * matches within a segment, ** crosses directories. - `Selector string` CSS selector to extract content from pages matching the path pattern. Supports standard CSS selectors including class, ID, element, and attribute selectors. - `IncludeHeaders map[string, string]` - `IncludeImages bool` - `SpecificSitemaps []string` List of specific sitemap URLs to use for crawling. Only valid when parse_type is 'sitemap'. - `UseBrowserRendering bool` - `ParseType InstanceListResponseSourceParamsWebCrawlerParseType` - `const InstanceListResponseSourceParamsWebCrawlerParseTypeSitemap InstanceListResponseSourceParamsWebCrawlerParseType = "sitemap"` - `const InstanceListResponseSourceParamsWebCrawlerParseTypeFeedRss InstanceListResponseSourceParamsWebCrawlerParseType = "feed-rss"` - `const InstanceListResponseSourceParamsWebCrawlerParseTypeCrawl InstanceListResponseSourceParamsWebCrawlerParseType = "crawl"` - `StoreOptions InstanceListResponseSourceParamsWebCrawlerStoreOptions` - `StorageID string` - `R2Jurisdiction string` - `StorageType Provider` - `const ProviderR2 Provider = "r2"` - `Status string` - `TokenID string` - `Type InstanceListResponseType` - `const InstanceListResponseTypeR2 InstanceListResponseType = "r2"` - `const InstanceListResponseTypeWebCrawler InstanceListResponseType = "web-crawler"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.AISearch.Instances.List(context.TODO(), ai_search.InstanceListParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "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", "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, "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": "x", "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": { "crawl_options": { "depth": 1, "include_external_links": true, "include_subdomains": true, "max_age": 0, "source": "all" }, "parse_options": { "content_selector": [ { "path": "**/blog/**", "selector": "article .post-body" } ], "include_headers": { "foo": "string" }, "include_images": true, "specific_sitemaps": [ "https://example.com/sitemap.xml", "https://example.com/blog-sitemap.xml" ], "use_browser_rendering": true }, "parse_type": "sitemap", "store_options": { "storage_id": "storage_id", "r2_jurisdiction": "r2_jurisdiction", "storage_type": "r2" } } }, "status": "status", "token_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "type": "r2" } ], "success": true } ``` ## Create new instances. `client.AISearch.Instances.New(ctx, params) (*InstanceNewResponse, error)` **post** `/accounts/{account_id}/ai-search/instances` Create a new instances. ### Parameters - `params InstanceNewParams` - `AccountID param.Field[string]` Path param - `ID param.Field[string]` Body param: AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `AIGatewayID param.Field[string]` Body param - `AISearchModel param.Field[InstanceNewParamsAISearchModel]` Body param - `const InstanceNewParamsAISearchModelCfMetaLlama3_3_70bInstructFp8Fast InstanceNewParamsAISearchModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceNewParamsAISearchModelCfZaiOrgGlm4_7Flash InstanceNewParamsAISearchModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceNewParamsAISearchModelCfMetaLlama3_1_8bInstructFast InstanceNewParamsAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceNewParamsAISearchModelCfMetaLlama3_1_8bInstructFp8 InstanceNewParamsAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceNewParamsAISearchModelCfMetaLlama4Scout17b16eInstruct InstanceNewParamsAISearchModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceNewParamsAISearchModelCfQwenQwen3_30bA3bFp8 InstanceNewParamsAISearchModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceNewParamsAISearchModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceNewParamsAISearchModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceNewParamsAISearchModelCfMoonshotaiKimiK2Instruct InstanceNewParamsAISearchModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceNewParamsAISearchModelCfGoogleGemma3_12bIt InstanceNewParamsAISearchModel = "@cf/google/gemma-3-12b-it"` - `const InstanceNewParamsAISearchModelAnthropicClaude3_7Sonnet InstanceNewParamsAISearchModel = "anthropic/claude-3-7-sonnet"` - `const InstanceNewParamsAISearchModelAnthropicClaudeSonnet4 InstanceNewParamsAISearchModel = "anthropic/claude-sonnet-4"` - `const InstanceNewParamsAISearchModelAnthropicClaudeOpus4 InstanceNewParamsAISearchModel = "anthropic/claude-opus-4"` - `const InstanceNewParamsAISearchModelAnthropicClaude3_5Haiku InstanceNewParamsAISearchModel = "anthropic/claude-3-5-haiku"` - `const InstanceNewParamsAISearchModelCerebrasQwen3_235bA22bInstruct InstanceNewParamsAISearchModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceNewParamsAISearchModelCerebrasQwen3_235bA22bThinking InstanceNewParamsAISearchModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceNewParamsAISearchModelCerebrasLlama3_3_70b InstanceNewParamsAISearchModel = "cerebras/llama-3.3-70b"` - `const InstanceNewParamsAISearchModelCerebrasLlama4Maverick17b128eInstruct InstanceNewParamsAISearchModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceNewParamsAISearchModelCerebrasLlama4Scout17b16eInstruct InstanceNewParamsAISearchModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceNewParamsAISearchModelCerebrasGptOSs120b InstanceNewParamsAISearchModel = "cerebras/gpt-oss-120b"` - `const InstanceNewParamsAISearchModelGoogleAIStudioGemini2_5Flash InstanceNewParamsAISearchModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceNewParamsAISearchModelGoogleAIStudioGemini2_5Pro InstanceNewParamsAISearchModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceNewParamsAISearchModelGrokGrok4 InstanceNewParamsAISearchModel = "grok/grok-4"` - `const InstanceNewParamsAISearchModelGroqLlama3_3_70bVersatile InstanceNewParamsAISearchModel = "groq/llama-3.3-70b-versatile"` - `const InstanceNewParamsAISearchModelGroqLlama3_1_8bInstant InstanceNewParamsAISearchModel = "groq/llama-3.1-8b-instant"` - `const InstanceNewParamsAISearchModelOpenAIGpt5 InstanceNewParamsAISearchModel = "openai/gpt-5"` - `const InstanceNewParamsAISearchModelOpenAIGpt5Mini InstanceNewParamsAISearchModel = "openai/gpt-5-mini"` - `const InstanceNewParamsAISearchModelOpenAIGpt5Nano InstanceNewParamsAISearchModel = "openai/gpt-5-nano"` - `const InstanceNewParamsAISearchModelEmpty InstanceNewParamsAISearchModel = ""` - `Cache param.Field[bool]` Body param - `CacheThreshold param.Field[InstanceNewParamsCacheThreshold]` Body param - `const InstanceNewParamsCacheThresholdSuperStrictMatch InstanceNewParamsCacheThreshold = "super_strict_match"` - `const InstanceNewParamsCacheThresholdCloseEnough InstanceNewParamsCacheThreshold = "close_enough"` - `const InstanceNewParamsCacheThresholdFlexibleFriend InstanceNewParamsCacheThreshold = "flexible_friend"` - `const InstanceNewParamsCacheThresholdAnythingGoes InstanceNewParamsCacheThreshold = "anything_goes"` - `Chunk param.Field[bool]` Body param - `ChunkOverlap param.Field[int64]` Body param - `ChunkSize param.Field[int64]` Body param - `CustomMetadata param.Field[[]InstanceNewParamsCustomMetadata]` Body param - `DataType InstanceNewParamsCustomMetadataDataType` - `const InstanceNewParamsCustomMetadataDataTypeText InstanceNewParamsCustomMetadataDataType = "text"` - `const InstanceNewParamsCustomMetadataDataTypeNumber InstanceNewParamsCustomMetadataDataType = "number"` - `const InstanceNewParamsCustomMetadataDataTypeBoolean InstanceNewParamsCustomMetadataDataType = "boolean"` - `const InstanceNewParamsCustomMetadataDataTypeDatetime InstanceNewParamsCustomMetadataDataType = "datetime"` - `FieldName string` - `EmbeddingModel param.Field[InstanceNewParamsEmbeddingModel]` Body param - `const InstanceNewParamsEmbeddingModelCfQwenQwen3Embedding0_6b InstanceNewParamsEmbeddingModel = "@cf/qwen/qwen3-embedding-0.6b"` - `const InstanceNewParamsEmbeddingModelCfBaaiBgeM3 InstanceNewParamsEmbeddingModel = "@cf/baai/bge-m3"` - `const InstanceNewParamsEmbeddingModelCfBaaiBgeLargeEnV1_5 InstanceNewParamsEmbeddingModel = "@cf/baai/bge-large-en-v1.5"` - `const InstanceNewParamsEmbeddingModelCfGoogleEmbeddinggemma300m InstanceNewParamsEmbeddingModel = "@cf/google/embeddinggemma-300m"` - `const InstanceNewParamsEmbeddingModelGoogleAIStudioGeminiEmbedding001 InstanceNewParamsEmbeddingModel = "google-ai-studio/gemini-embedding-001"` - `const InstanceNewParamsEmbeddingModelGoogleAIStudioGeminiEmbedding2Preview InstanceNewParamsEmbeddingModel = "google-ai-studio/gemini-embedding-2-preview"` - `const InstanceNewParamsEmbeddingModelOpenAITextEmbedding3Small InstanceNewParamsEmbeddingModel = "openai/text-embedding-3-small"` - `const InstanceNewParamsEmbeddingModelOpenAITextEmbedding3Large InstanceNewParamsEmbeddingModel = "openai/text-embedding-3-large"` - `const InstanceNewParamsEmbeddingModelEmpty InstanceNewParamsEmbeddingModel = ""` - `FusionMethod param.Field[InstanceNewParamsFusionMethod]` Body param - `const InstanceNewParamsFusionMethodMax InstanceNewParamsFusionMethod = "max"` - `const InstanceNewParamsFusionMethodRrf InstanceNewParamsFusionMethod = "rrf"` - `HybridSearchEnabled param.Field[bool]` Body param - `IndexingOptions param.Field[InstanceNewParamsIndexingOptions]` Body param - `KeywordTokenizer InstanceNewParamsIndexingOptionsKeywordTokenizer` 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. - `const InstanceNewParamsIndexingOptionsKeywordTokenizerPorter InstanceNewParamsIndexingOptionsKeywordTokenizer = "porter"` - `const InstanceNewParamsIndexingOptionsKeywordTokenizerTrigram InstanceNewParamsIndexingOptionsKeywordTokenizer = "trigram"` - `MaxNumResults param.Field[int64]` Body param - `Metadata param.Field[InstanceNewParamsMetadata]` Body param - `CreatedFromAISearchWizard bool` - `WorkerDomain string` - `PublicEndpointParams param.Field[InstanceNewParamsPublicEndpointParams]` Body param - `AuthorizedHosts []string` - `ChatCompletionsEndpoint InstanceNewParamsPublicEndpointParamsChatCompletionsEndpoint` - `Disabled bool` Disable chat completions endpoint for this public endpoint - `Enabled bool` - `Mcp InstanceNewParamsPublicEndpointParamsMcp` - `Description string` - `Disabled bool` Disable MCP endpoint for this public endpoint - `RateLimit InstanceNewParamsPublicEndpointParamsRateLimit` - `PeriodMs int64` - `Requests int64` - `Technique InstanceNewParamsPublicEndpointParamsRateLimitTechnique` - `const InstanceNewParamsPublicEndpointParamsRateLimitTechniqueFixed InstanceNewParamsPublicEndpointParamsRateLimitTechnique = "fixed"` - `const InstanceNewParamsPublicEndpointParamsRateLimitTechniqueSliding InstanceNewParamsPublicEndpointParamsRateLimitTechnique = "sliding"` - `SearchEndpoint InstanceNewParamsPublicEndpointParamsSearchEndpoint` - `Disabled bool` Disable search endpoint for this public endpoint - `Reranking param.Field[bool]` Body param - `RerankingModel param.Field[InstanceNewParamsRerankingModel]` Body param - `const InstanceNewParamsRerankingModelCfBaaiBgeRerankerBase InstanceNewParamsRerankingModel = "@cf/baai/bge-reranker-base"` - `const InstanceNewParamsRerankingModelEmpty InstanceNewParamsRerankingModel = ""` - `RetrievalOptions param.Field[InstanceNewParamsRetrievalOptions]` Body param - `BoostBy []InstanceNewParamsRetrievalOptionsBoostBy` Metadata fields to boost search results by. Each entry specifies a metadata field and an optional direction. Direction defaults to 'asc' for numeric 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 asc/desc directions; text/boolean fields support exists/not_exists. - `Direction InstanceNewParamsRetrievalOptionsBoostByDirection` 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. - `const InstanceNewParamsRetrievalOptionsBoostByDirectionAsc InstanceNewParamsRetrievalOptionsBoostByDirection = "asc"` - `const InstanceNewParamsRetrievalOptionsBoostByDirectionDesc InstanceNewParamsRetrievalOptionsBoostByDirection = "desc"` - `const InstanceNewParamsRetrievalOptionsBoostByDirectionExists InstanceNewParamsRetrievalOptionsBoostByDirection = "exists"` - `const InstanceNewParamsRetrievalOptionsBoostByDirectionNotExists InstanceNewParamsRetrievalOptionsBoostByDirection = "not_exists"` - `KeywordMatchMode InstanceNewParamsRetrievalOptionsKeywordMatchMode` 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'. Legacy values 'exact_match' and 'fuzzy_match' are accepted and map to 'and' and 'or' respectively. - `const InstanceNewParamsRetrievalOptionsKeywordMatchModeAnd InstanceNewParamsRetrievalOptionsKeywordMatchMode = "and"` - `const InstanceNewParamsRetrievalOptionsKeywordMatchModeOr InstanceNewParamsRetrievalOptionsKeywordMatchMode = "or"` - `RewriteModel param.Field[InstanceNewParamsRewriteModel]` Body param - `const InstanceNewParamsRewriteModelCfMetaLlama3_3_70bInstructFp8Fast InstanceNewParamsRewriteModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceNewParamsRewriteModelCfZaiOrgGlm4_7Flash InstanceNewParamsRewriteModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceNewParamsRewriteModelCfMetaLlama3_1_8bInstructFast InstanceNewParamsRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceNewParamsRewriteModelCfMetaLlama3_1_8bInstructFp8 InstanceNewParamsRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceNewParamsRewriteModelCfMetaLlama4Scout17b16eInstruct InstanceNewParamsRewriteModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceNewParamsRewriteModelCfQwenQwen3_30bA3bFp8 InstanceNewParamsRewriteModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceNewParamsRewriteModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceNewParamsRewriteModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceNewParamsRewriteModelCfMoonshotaiKimiK2Instruct InstanceNewParamsRewriteModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceNewParamsRewriteModelCfGoogleGemma3_12bIt InstanceNewParamsRewriteModel = "@cf/google/gemma-3-12b-it"` - `const InstanceNewParamsRewriteModelAnthropicClaude3_7Sonnet InstanceNewParamsRewriteModel = "anthropic/claude-3-7-sonnet"` - `const InstanceNewParamsRewriteModelAnthropicClaudeSonnet4 InstanceNewParamsRewriteModel = "anthropic/claude-sonnet-4"` - `const InstanceNewParamsRewriteModelAnthropicClaudeOpus4 InstanceNewParamsRewriteModel = "anthropic/claude-opus-4"` - `const InstanceNewParamsRewriteModelAnthropicClaude3_5Haiku InstanceNewParamsRewriteModel = "anthropic/claude-3-5-haiku"` - `const InstanceNewParamsRewriteModelCerebrasQwen3_235bA22bInstruct InstanceNewParamsRewriteModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceNewParamsRewriteModelCerebrasQwen3_235bA22bThinking InstanceNewParamsRewriteModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceNewParamsRewriteModelCerebrasLlama3_3_70b InstanceNewParamsRewriteModel = "cerebras/llama-3.3-70b"` - `const InstanceNewParamsRewriteModelCerebrasLlama4Maverick17b128eInstruct InstanceNewParamsRewriteModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceNewParamsRewriteModelCerebrasLlama4Scout17b16eInstruct InstanceNewParamsRewriteModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceNewParamsRewriteModelCerebrasGptOSs120b InstanceNewParamsRewriteModel = "cerebras/gpt-oss-120b"` - `const InstanceNewParamsRewriteModelGoogleAIStudioGemini2_5Flash InstanceNewParamsRewriteModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceNewParamsRewriteModelGoogleAIStudioGemini2_5Pro InstanceNewParamsRewriteModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceNewParamsRewriteModelGrokGrok4 InstanceNewParamsRewriteModel = "grok/grok-4"` - `const InstanceNewParamsRewriteModelGroqLlama3_3_70bVersatile InstanceNewParamsRewriteModel = "groq/llama-3.3-70b-versatile"` - `const InstanceNewParamsRewriteModelGroqLlama3_1_8bInstant InstanceNewParamsRewriteModel = "groq/llama-3.1-8b-instant"` - `const InstanceNewParamsRewriteModelOpenAIGpt5 InstanceNewParamsRewriteModel = "openai/gpt-5"` - `const InstanceNewParamsRewriteModelOpenAIGpt5Mini InstanceNewParamsRewriteModel = "openai/gpt-5-mini"` - `const InstanceNewParamsRewriteModelOpenAIGpt5Nano InstanceNewParamsRewriteModel = "openai/gpt-5-nano"` - `const InstanceNewParamsRewriteModelEmpty InstanceNewParamsRewriteModel = ""` - `RewriteQuery param.Field[bool]` Body param - `ScoreThreshold param.Field[float64]` Body param - `Source param.Field[string]` Body param - `SourceParams param.Field[InstanceNewParamsSourceParams]` Body param - `ExcludeItems []string` 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 []string` 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 string` - `R2Jurisdiction string` - `WebCrawler InstanceNewParamsSourceParamsWebCrawler` - `CrawlOptions InstanceNewParamsSourceParamsWebCrawlerCrawlOptions` - `Depth float64` - `IncludeExternalLinks bool` - `IncludeSubdomains bool` - `MaxAge float64` - `Source InstanceNewParamsSourceParamsWebCrawlerCrawlOptionsSource` - `const InstanceNewParamsSourceParamsWebCrawlerCrawlOptionsSourceAll InstanceNewParamsSourceParamsWebCrawlerCrawlOptionsSource = "all"` - `const InstanceNewParamsSourceParamsWebCrawlerCrawlOptionsSourceSitemaps InstanceNewParamsSourceParamsWebCrawlerCrawlOptionsSource = "sitemaps"` - `const InstanceNewParamsSourceParamsWebCrawlerCrawlOptionsSourceLinks InstanceNewParamsSourceParamsWebCrawlerCrawlOptionsSource = "links"` - `ParseOptions InstanceNewParamsSourceParamsWebCrawlerParseOptions` - `ContentSelector []InstanceNewParamsSourceParamsWebCrawlerParseOptionsContentSelector` 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. - `Path string` Glob pattern to match against the page URL path. Uses standard glob syntax: * matches within a segment, ** crosses directories. - `Selector string` CSS selector to extract content from pages matching the path pattern. Supports standard CSS selectors including class, ID, element, and attribute selectors. - `IncludeHeaders map[string, string]` - `IncludeImages bool` - `SpecificSitemaps []string` List of specific sitemap URLs to use for crawling. Only valid when parse_type is 'sitemap'. - `UseBrowserRendering bool` - `ParseType InstanceNewParamsSourceParamsWebCrawlerParseType` - `const InstanceNewParamsSourceParamsWebCrawlerParseTypeSitemap InstanceNewParamsSourceParamsWebCrawlerParseType = "sitemap"` - `const InstanceNewParamsSourceParamsWebCrawlerParseTypeFeedRss InstanceNewParamsSourceParamsWebCrawlerParseType = "feed-rss"` - `const InstanceNewParamsSourceParamsWebCrawlerParseTypeCrawl InstanceNewParamsSourceParamsWebCrawlerParseType = "crawl"` - `StoreOptions InstanceNewParamsSourceParamsWebCrawlerStoreOptions` - `StorageID string` - `R2Jurisdiction string` - `StorageType Provider` - `const ProviderR2 Provider = "r2"` - `TokenID param.Field[string]` Body param - `Type param.Field[InstanceNewParamsType]` Body param - `const InstanceNewParamsTypeR2 InstanceNewParamsType = "r2"` - `const InstanceNewParamsTypeWebCrawler InstanceNewParamsType = "web-crawler"` ### Returns - `type InstanceNewResponse struct{…}` - `ID string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `CreatedAt Time` - `ModifiedAt Time` - `AIGatewayID string` - `AISearchModel InstanceNewResponseAISearchModel` - `const InstanceNewResponseAISearchModelCfMetaLlama3_3_70bInstructFp8Fast InstanceNewResponseAISearchModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceNewResponseAISearchModelCfZaiOrgGlm4_7Flash InstanceNewResponseAISearchModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceNewResponseAISearchModelCfMetaLlama3_1_8bInstructFast InstanceNewResponseAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceNewResponseAISearchModelCfMetaLlama3_1_8bInstructFp8 InstanceNewResponseAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceNewResponseAISearchModelCfMetaLlama4Scout17b16eInstruct InstanceNewResponseAISearchModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceNewResponseAISearchModelCfQwenQwen3_30bA3bFp8 InstanceNewResponseAISearchModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceNewResponseAISearchModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceNewResponseAISearchModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceNewResponseAISearchModelCfMoonshotaiKimiK2Instruct InstanceNewResponseAISearchModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceNewResponseAISearchModelCfGoogleGemma3_12bIt InstanceNewResponseAISearchModel = "@cf/google/gemma-3-12b-it"` - `const InstanceNewResponseAISearchModelAnthropicClaude3_7Sonnet InstanceNewResponseAISearchModel = "anthropic/claude-3-7-sonnet"` - `const InstanceNewResponseAISearchModelAnthropicClaudeSonnet4 InstanceNewResponseAISearchModel = "anthropic/claude-sonnet-4"` - `const InstanceNewResponseAISearchModelAnthropicClaudeOpus4 InstanceNewResponseAISearchModel = "anthropic/claude-opus-4"` - `const InstanceNewResponseAISearchModelAnthropicClaude3_5Haiku InstanceNewResponseAISearchModel = "anthropic/claude-3-5-haiku"` - `const InstanceNewResponseAISearchModelCerebrasQwen3_235bA22bInstruct InstanceNewResponseAISearchModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceNewResponseAISearchModelCerebrasQwen3_235bA22bThinking InstanceNewResponseAISearchModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceNewResponseAISearchModelCerebrasLlama3_3_70b InstanceNewResponseAISearchModel = "cerebras/llama-3.3-70b"` - `const InstanceNewResponseAISearchModelCerebrasLlama4Maverick17b128eInstruct InstanceNewResponseAISearchModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceNewResponseAISearchModelCerebrasLlama4Scout17b16eInstruct InstanceNewResponseAISearchModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceNewResponseAISearchModelCerebrasGptOSs120b InstanceNewResponseAISearchModel = "cerebras/gpt-oss-120b"` - `const InstanceNewResponseAISearchModelGoogleAIStudioGemini2_5Flash InstanceNewResponseAISearchModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceNewResponseAISearchModelGoogleAIStudioGemini2_5Pro InstanceNewResponseAISearchModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceNewResponseAISearchModelGrokGrok4 InstanceNewResponseAISearchModel = "grok/grok-4"` - `const InstanceNewResponseAISearchModelGroqLlama3_3_70bVersatile InstanceNewResponseAISearchModel = "groq/llama-3.3-70b-versatile"` - `const InstanceNewResponseAISearchModelGroqLlama3_1_8bInstant InstanceNewResponseAISearchModel = "groq/llama-3.1-8b-instant"` - `const InstanceNewResponseAISearchModelOpenAIGpt5 InstanceNewResponseAISearchModel = "openai/gpt-5"` - `const InstanceNewResponseAISearchModelOpenAIGpt5Mini InstanceNewResponseAISearchModel = "openai/gpt-5-mini"` - `const InstanceNewResponseAISearchModelOpenAIGpt5Nano InstanceNewResponseAISearchModel = "openai/gpt-5-nano"` - `const InstanceNewResponseAISearchModelEmpty InstanceNewResponseAISearchModel = ""` - `Cache bool` - `CacheThreshold InstanceNewResponseCacheThreshold` - `const InstanceNewResponseCacheThresholdSuperStrictMatch InstanceNewResponseCacheThreshold = "super_strict_match"` - `const InstanceNewResponseCacheThresholdCloseEnough InstanceNewResponseCacheThreshold = "close_enough"` - `const InstanceNewResponseCacheThresholdFlexibleFriend InstanceNewResponseCacheThreshold = "flexible_friend"` - `const InstanceNewResponseCacheThresholdAnythingGoes InstanceNewResponseCacheThreshold = "anything_goes"` - `ChunkOverlap int64` - `ChunkSize int64` - `CreatedBy string` - `CustomMetadata []InstanceNewResponseCustomMetadata` - `DataType InstanceNewResponseCustomMetadataDataType` - `const InstanceNewResponseCustomMetadataDataTypeText InstanceNewResponseCustomMetadataDataType = "text"` - `const InstanceNewResponseCustomMetadataDataTypeNumber InstanceNewResponseCustomMetadataDataType = "number"` - `const InstanceNewResponseCustomMetadataDataTypeBoolean InstanceNewResponseCustomMetadataDataType = "boolean"` - `const InstanceNewResponseCustomMetadataDataTypeDatetime InstanceNewResponseCustomMetadataDataType = "datetime"` - `FieldName string` - `EmbeddingModel InstanceNewResponseEmbeddingModel` - `const InstanceNewResponseEmbeddingModelCfQwenQwen3Embedding0_6b InstanceNewResponseEmbeddingModel = "@cf/qwen/qwen3-embedding-0.6b"` - `const InstanceNewResponseEmbeddingModelCfBaaiBgeM3 InstanceNewResponseEmbeddingModel = "@cf/baai/bge-m3"` - `const InstanceNewResponseEmbeddingModelCfBaaiBgeLargeEnV1_5 InstanceNewResponseEmbeddingModel = "@cf/baai/bge-large-en-v1.5"` - `const InstanceNewResponseEmbeddingModelCfGoogleEmbeddinggemma300m InstanceNewResponseEmbeddingModel = "@cf/google/embeddinggemma-300m"` - `const InstanceNewResponseEmbeddingModelGoogleAIStudioGeminiEmbedding001 InstanceNewResponseEmbeddingModel = "google-ai-studio/gemini-embedding-001"` - `const InstanceNewResponseEmbeddingModelGoogleAIStudioGeminiEmbedding2Preview InstanceNewResponseEmbeddingModel = "google-ai-studio/gemini-embedding-2-preview"` - `const InstanceNewResponseEmbeddingModelOpenAITextEmbedding3Small InstanceNewResponseEmbeddingModel = "openai/text-embedding-3-small"` - `const InstanceNewResponseEmbeddingModelOpenAITextEmbedding3Large InstanceNewResponseEmbeddingModel = "openai/text-embedding-3-large"` - `const InstanceNewResponseEmbeddingModelEmpty InstanceNewResponseEmbeddingModel = ""` - `Enable bool` - `EngineVersion float64` - `FusionMethod InstanceNewResponseFusionMethod` - `const InstanceNewResponseFusionMethodMax InstanceNewResponseFusionMethod = "max"` - `const InstanceNewResponseFusionMethodRrf InstanceNewResponseFusionMethod = "rrf"` - `HybridSearchEnabled bool` - `IndexingOptions InstanceNewResponseIndexingOptions` - `KeywordTokenizer InstanceNewResponseIndexingOptionsKeywordTokenizer` 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. - `const InstanceNewResponseIndexingOptionsKeywordTokenizerPorter InstanceNewResponseIndexingOptionsKeywordTokenizer = "porter"` - `const InstanceNewResponseIndexingOptionsKeywordTokenizerTrigram InstanceNewResponseIndexingOptionsKeywordTokenizer = "trigram"` - `LastActivity Time` - `MaxNumResults int64` - `Metadata InstanceNewResponseMetadata` - `CreatedFromAISearchWizard bool` - `WorkerDomain string` - `ModifiedBy string` - `Namespace string` - `Paused bool` - `PublicEndpointID string` - `PublicEndpointParams InstanceNewResponsePublicEndpointParams` - `AuthorizedHosts []string` - `ChatCompletionsEndpoint InstanceNewResponsePublicEndpointParamsChatCompletionsEndpoint` - `Disabled bool` Disable chat completions endpoint for this public endpoint - `Enabled bool` - `Mcp InstanceNewResponsePublicEndpointParamsMcp` - `Description string` - `Disabled bool` Disable MCP endpoint for this public endpoint - `RateLimit InstanceNewResponsePublicEndpointParamsRateLimit` - `PeriodMs int64` - `Requests int64` - `Technique InstanceNewResponsePublicEndpointParamsRateLimitTechnique` - `const InstanceNewResponsePublicEndpointParamsRateLimitTechniqueFixed InstanceNewResponsePublicEndpointParamsRateLimitTechnique = "fixed"` - `const InstanceNewResponsePublicEndpointParamsRateLimitTechniqueSliding InstanceNewResponsePublicEndpointParamsRateLimitTechnique = "sliding"` - `SearchEndpoint InstanceNewResponsePublicEndpointParamsSearchEndpoint` - `Disabled bool` Disable search endpoint for this public endpoint - `Reranking bool` - `RerankingModel InstanceNewResponseRerankingModel` - `const InstanceNewResponseRerankingModelCfBaaiBgeRerankerBase InstanceNewResponseRerankingModel = "@cf/baai/bge-reranker-base"` - `const InstanceNewResponseRerankingModelEmpty InstanceNewResponseRerankingModel = ""` - `RetrievalOptions InstanceNewResponseRetrievalOptions` - `BoostBy []InstanceNewResponseRetrievalOptionsBoostBy` Metadata fields to boost search results by. Each entry specifies a metadata field and an optional direction. Direction defaults to 'asc' for numeric 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 asc/desc directions; text/boolean fields support exists/not_exists. - `Direction InstanceNewResponseRetrievalOptionsBoostByDirection` 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. - `const InstanceNewResponseRetrievalOptionsBoostByDirectionAsc InstanceNewResponseRetrievalOptionsBoostByDirection = "asc"` - `const InstanceNewResponseRetrievalOptionsBoostByDirectionDesc InstanceNewResponseRetrievalOptionsBoostByDirection = "desc"` - `const InstanceNewResponseRetrievalOptionsBoostByDirectionExists InstanceNewResponseRetrievalOptionsBoostByDirection = "exists"` - `const InstanceNewResponseRetrievalOptionsBoostByDirectionNotExists InstanceNewResponseRetrievalOptionsBoostByDirection = "not_exists"` - `KeywordMatchMode InstanceNewResponseRetrievalOptionsKeywordMatchMode` 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'. Legacy values 'exact_match' and 'fuzzy_match' are accepted and map to 'and' and 'or' respectively. - `const InstanceNewResponseRetrievalOptionsKeywordMatchModeAnd InstanceNewResponseRetrievalOptionsKeywordMatchMode = "and"` - `const InstanceNewResponseRetrievalOptionsKeywordMatchModeOr InstanceNewResponseRetrievalOptionsKeywordMatchMode = "or"` - `RewriteModel InstanceNewResponseRewriteModel` - `const InstanceNewResponseRewriteModelCfMetaLlama3_3_70bInstructFp8Fast InstanceNewResponseRewriteModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceNewResponseRewriteModelCfZaiOrgGlm4_7Flash InstanceNewResponseRewriteModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceNewResponseRewriteModelCfMetaLlama3_1_8bInstructFast InstanceNewResponseRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceNewResponseRewriteModelCfMetaLlama3_1_8bInstructFp8 InstanceNewResponseRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceNewResponseRewriteModelCfMetaLlama4Scout17b16eInstruct InstanceNewResponseRewriteModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceNewResponseRewriteModelCfQwenQwen3_30bA3bFp8 InstanceNewResponseRewriteModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceNewResponseRewriteModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceNewResponseRewriteModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceNewResponseRewriteModelCfMoonshotaiKimiK2Instruct InstanceNewResponseRewriteModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceNewResponseRewriteModelCfGoogleGemma3_12bIt InstanceNewResponseRewriteModel = "@cf/google/gemma-3-12b-it"` - `const InstanceNewResponseRewriteModelAnthropicClaude3_7Sonnet InstanceNewResponseRewriteModel = "anthropic/claude-3-7-sonnet"` - `const InstanceNewResponseRewriteModelAnthropicClaudeSonnet4 InstanceNewResponseRewriteModel = "anthropic/claude-sonnet-4"` - `const InstanceNewResponseRewriteModelAnthropicClaudeOpus4 InstanceNewResponseRewriteModel = "anthropic/claude-opus-4"` - `const InstanceNewResponseRewriteModelAnthropicClaude3_5Haiku InstanceNewResponseRewriteModel = "anthropic/claude-3-5-haiku"` - `const InstanceNewResponseRewriteModelCerebrasQwen3_235bA22bInstruct InstanceNewResponseRewriteModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceNewResponseRewriteModelCerebrasQwen3_235bA22bThinking InstanceNewResponseRewriteModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceNewResponseRewriteModelCerebrasLlama3_3_70b InstanceNewResponseRewriteModel = "cerebras/llama-3.3-70b"` - `const InstanceNewResponseRewriteModelCerebrasLlama4Maverick17b128eInstruct InstanceNewResponseRewriteModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceNewResponseRewriteModelCerebrasLlama4Scout17b16eInstruct InstanceNewResponseRewriteModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceNewResponseRewriteModelCerebrasGptOSs120b InstanceNewResponseRewriteModel = "cerebras/gpt-oss-120b"` - `const InstanceNewResponseRewriteModelGoogleAIStudioGemini2_5Flash InstanceNewResponseRewriteModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceNewResponseRewriteModelGoogleAIStudioGemini2_5Pro InstanceNewResponseRewriteModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceNewResponseRewriteModelGrokGrok4 InstanceNewResponseRewriteModel = "grok/grok-4"` - `const InstanceNewResponseRewriteModelGroqLlama3_3_70bVersatile InstanceNewResponseRewriteModel = "groq/llama-3.3-70b-versatile"` - `const InstanceNewResponseRewriteModelGroqLlama3_1_8bInstant InstanceNewResponseRewriteModel = "groq/llama-3.1-8b-instant"` - `const InstanceNewResponseRewriteModelOpenAIGpt5 InstanceNewResponseRewriteModel = "openai/gpt-5"` - `const InstanceNewResponseRewriteModelOpenAIGpt5Mini InstanceNewResponseRewriteModel = "openai/gpt-5-mini"` - `const InstanceNewResponseRewriteModelOpenAIGpt5Nano InstanceNewResponseRewriteModel = "openai/gpt-5-nano"` - `const InstanceNewResponseRewriteModelEmpty InstanceNewResponseRewriteModel = ""` - `RewriteQuery bool` - `ScoreThreshold float64` - `Source string` - `SourceParams InstanceNewResponseSourceParams` - `ExcludeItems []string` 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 []string` 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 string` - `R2Jurisdiction string` - `WebCrawler InstanceNewResponseSourceParamsWebCrawler` - `CrawlOptions InstanceNewResponseSourceParamsWebCrawlerCrawlOptions` - `Depth float64` - `IncludeExternalLinks bool` - `IncludeSubdomains bool` - `MaxAge float64` - `Source InstanceNewResponseSourceParamsWebCrawlerCrawlOptionsSource` - `const InstanceNewResponseSourceParamsWebCrawlerCrawlOptionsSourceAll InstanceNewResponseSourceParamsWebCrawlerCrawlOptionsSource = "all"` - `const InstanceNewResponseSourceParamsWebCrawlerCrawlOptionsSourceSitemaps InstanceNewResponseSourceParamsWebCrawlerCrawlOptionsSource = "sitemaps"` - `const InstanceNewResponseSourceParamsWebCrawlerCrawlOptionsSourceLinks InstanceNewResponseSourceParamsWebCrawlerCrawlOptionsSource = "links"` - `ParseOptions InstanceNewResponseSourceParamsWebCrawlerParseOptions` - `ContentSelector []InstanceNewResponseSourceParamsWebCrawlerParseOptionsContentSelector` 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. - `Path string` Glob pattern to match against the page URL path. Uses standard glob syntax: * matches within a segment, ** crosses directories. - `Selector string` CSS selector to extract content from pages matching the path pattern. Supports standard CSS selectors including class, ID, element, and attribute selectors. - `IncludeHeaders map[string, string]` - `IncludeImages bool` - `SpecificSitemaps []string` List of specific sitemap URLs to use for crawling. Only valid when parse_type is 'sitemap'. - `UseBrowserRendering bool` - `ParseType InstanceNewResponseSourceParamsWebCrawlerParseType` - `const InstanceNewResponseSourceParamsWebCrawlerParseTypeSitemap InstanceNewResponseSourceParamsWebCrawlerParseType = "sitemap"` - `const InstanceNewResponseSourceParamsWebCrawlerParseTypeFeedRss InstanceNewResponseSourceParamsWebCrawlerParseType = "feed-rss"` - `const InstanceNewResponseSourceParamsWebCrawlerParseTypeCrawl InstanceNewResponseSourceParamsWebCrawlerParseType = "crawl"` - `StoreOptions InstanceNewResponseSourceParamsWebCrawlerStoreOptions` - `StorageID string` - `R2Jurisdiction string` - `StorageType Provider` - `const ProviderR2 Provider = "r2"` - `Status string` - `TokenID string` - `Type InstanceNewResponseType` - `const InstanceNewResponseTypeR2 InstanceNewResponseType = "r2"` - `const InstanceNewResponseTypeWebCrawler InstanceNewResponseType = "web-crawler"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) instance, err := client.AISearch.Instances.New(context.TODO(), ai_search.InstanceNewParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), ID: cloudflare.F("my-ai-search"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", instance.ID) } ``` #### Response ```json { "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", "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, "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": "x", "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": { "crawl_options": { "depth": 1, "include_external_links": true, "include_subdomains": true, "max_age": 0, "source": "all" }, "parse_options": { "content_selector": [ { "path": "**/blog/**", "selector": "article .post-body" } ], "include_headers": { "foo": "string" }, "include_images": true, "specific_sitemaps": [ "https://example.com/sitemap.xml", "https://example.com/blog-sitemap.xml" ], "use_browser_rendering": true }, "parse_type": "sitemap", "store_options": { "storage_id": "storage_id", "r2_jurisdiction": "r2_jurisdiction", "storage_type": "r2" } } }, "status": "status", "token_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "type": "r2" }, "success": true } ``` ## Read instances. `client.AISearch.Instances.Read(ctx, id, query) (*InstanceReadResponse, error)` **get** `/accounts/{account_id}/ai-search/instances/{id}` Read instances. ### Parameters - `id string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `query InstanceReadParams` - `AccountID param.Field[string]` ### Returns - `type InstanceReadResponse struct{…}` - `ID string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `CreatedAt Time` - `ModifiedAt Time` - `AIGatewayID string` - `AISearchModel InstanceReadResponseAISearchModel` - `const InstanceReadResponseAISearchModelCfMetaLlama3_3_70bInstructFp8Fast InstanceReadResponseAISearchModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceReadResponseAISearchModelCfZaiOrgGlm4_7Flash InstanceReadResponseAISearchModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceReadResponseAISearchModelCfMetaLlama3_1_8bInstructFast InstanceReadResponseAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceReadResponseAISearchModelCfMetaLlama3_1_8bInstructFp8 InstanceReadResponseAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceReadResponseAISearchModelCfMetaLlama4Scout17b16eInstruct InstanceReadResponseAISearchModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceReadResponseAISearchModelCfQwenQwen3_30bA3bFp8 InstanceReadResponseAISearchModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceReadResponseAISearchModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceReadResponseAISearchModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceReadResponseAISearchModelCfMoonshotaiKimiK2Instruct InstanceReadResponseAISearchModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceReadResponseAISearchModelCfGoogleGemma3_12bIt InstanceReadResponseAISearchModel = "@cf/google/gemma-3-12b-it"` - `const InstanceReadResponseAISearchModelAnthropicClaude3_7Sonnet InstanceReadResponseAISearchModel = "anthropic/claude-3-7-sonnet"` - `const InstanceReadResponseAISearchModelAnthropicClaudeSonnet4 InstanceReadResponseAISearchModel = "anthropic/claude-sonnet-4"` - `const InstanceReadResponseAISearchModelAnthropicClaudeOpus4 InstanceReadResponseAISearchModel = "anthropic/claude-opus-4"` - `const InstanceReadResponseAISearchModelAnthropicClaude3_5Haiku InstanceReadResponseAISearchModel = "anthropic/claude-3-5-haiku"` - `const InstanceReadResponseAISearchModelCerebrasQwen3_235bA22bInstruct InstanceReadResponseAISearchModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceReadResponseAISearchModelCerebrasQwen3_235bA22bThinking InstanceReadResponseAISearchModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceReadResponseAISearchModelCerebrasLlama3_3_70b InstanceReadResponseAISearchModel = "cerebras/llama-3.3-70b"` - `const InstanceReadResponseAISearchModelCerebrasLlama4Maverick17b128eInstruct InstanceReadResponseAISearchModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceReadResponseAISearchModelCerebrasLlama4Scout17b16eInstruct InstanceReadResponseAISearchModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceReadResponseAISearchModelCerebrasGptOSs120b InstanceReadResponseAISearchModel = "cerebras/gpt-oss-120b"` - `const InstanceReadResponseAISearchModelGoogleAIStudioGemini2_5Flash InstanceReadResponseAISearchModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceReadResponseAISearchModelGoogleAIStudioGemini2_5Pro InstanceReadResponseAISearchModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceReadResponseAISearchModelGrokGrok4 InstanceReadResponseAISearchModel = "grok/grok-4"` - `const InstanceReadResponseAISearchModelGroqLlama3_3_70bVersatile InstanceReadResponseAISearchModel = "groq/llama-3.3-70b-versatile"` - `const InstanceReadResponseAISearchModelGroqLlama3_1_8bInstant InstanceReadResponseAISearchModel = "groq/llama-3.1-8b-instant"` - `const InstanceReadResponseAISearchModelOpenAIGpt5 InstanceReadResponseAISearchModel = "openai/gpt-5"` - `const InstanceReadResponseAISearchModelOpenAIGpt5Mini InstanceReadResponseAISearchModel = "openai/gpt-5-mini"` - `const InstanceReadResponseAISearchModelOpenAIGpt5Nano InstanceReadResponseAISearchModel = "openai/gpt-5-nano"` - `const InstanceReadResponseAISearchModelEmpty InstanceReadResponseAISearchModel = ""` - `Cache bool` - `CacheThreshold InstanceReadResponseCacheThreshold` - `const InstanceReadResponseCacheThresholdSuperStrictMatch InstanceReadResponseCacheThreshold = "super_strict_match"` - `const InstanceReadResponseCacheThresholdCloseEnough InstanceReadResponseCacheThreshold = "close_enough"` - `const InstanceReadResponseCacheThresholdFlexibleFriend InstanceReadResponseCacheThreshold = "flexible_friend"` - `const InstanceReadResponseCacheThresholdAnythingGoes InstanceReadResponseCacheThreshold = "anything_goes"` - `ChunkOverlap int64` - `ChunkSize int64` - `CreatedBy string` - `CustomMetadata []InstanceReadResponseCustomMetadata` - `DataType InstanceReadResponseCustomMetadataDataType` - `const InstanceReadResponseCustomMetadataDataTypeText InstanceReadResponseCustomMetadataDataType = "text"` - `const InstanceReadResponseCustomMetadataDataTypeNumber InstanceReadResponseCustomMetadataDataType = "number"` - `const InstanceReadResponseCustomMetadataDataTypeBoolean InstanceReadResponseCustomMetadataDataType = "boolean"` - `const InstanceReadResponseCustomMetadataDataTypeDatetime InstanceReadResponseCustomMetadataDataType = "datetime"` - `FieldName string` - `EmbeddingModel InstanceReadResponseEmbeddingModel` - `const InstanceReadResponseEmbeddingModelCfQwenQwen3Embedding0_6b InstanceReadResponseEmbeddingModel = "@cf/qwen/qwen3-embedding-0.6b"` - `const InstanceReadResponseEmbeddingModelCfBaaiBgeM3 InstanceReadResponseEmbeddingModel = "@cf/baai/bge-m3"` - `const InstanceReadResponseEmbeddingModelCfBaaiBgeLargeEnV1_5 InstanceReadResponseEmbeddingModel = "@cf/baai/bge-large-en-v1.5"` - `const InstanceReadResponseEmbeddingModelCfGoogleEmbeddinggemma300m InstanceReadResponseEmbeddingModel = "@cf/google/embeddinggemma-300m"` - `const InstanceReadResponseEmbeddingModelGoogleAIStudioGeminiEmbedding001 InstanceReadResponseEmbeddingModel = "google-ai-studio/gemini-embedding-001"` - `const InstanceReadResponseEmbeddingModelGoogleAIStudioGeminiEmbedding2Preview InstanceReadResponseEmbeddingModel = "google-ai-studio/gemini-embedding-2-preview"` - `const InstanceReadResponseEmbeddingModelOpenAITextEmbedding3Small InstanceReadResponseEmbeddingModel = "openai/text-embedding-3-small"` - `const InstanceReadResponseEmbeddingModelOpenAITextEmbedding3Large InstanceReadResponseEmbeddingModel = "openai/text-embedding-3-large"` - `const InstanceReadResponseEmbeddingModelEmpty InstanceReadResponseEmbeddingModel = ""` - `Enable bool` - `EngineVersion float64` - `FusionMethod InstanceReadResponseFusionMethod` - `const InstanceReadResponseFusionMethodMax InstanceReadResponseFusionMethod = "max"` - `const InstanceReadResponseFusionMethodRrf InstanceReadResponseFusionMethod = "rrf"` - `HybridSearchEnabled bool` - `IndexingOptions InstanceReadResponseIndexingOptions` - `KeywordTokenizer InstanceReadResponseIndexingOptionsKeywordTokenizer` 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. - `const InstanceReadResponseIndexingOptionsKeywordTokenizerPorter InstanceReadResponseIndexingOptionsKeywordTokenizer = "porter"` - `const InstanceReadResponseIndexingOptionsKeywordTokenizerTrigram InstanceReadResponseIndexingOptionsKeywordTokenizer = "trigram"` - `LastActivity Time` - `MaxNumResults int64` - `Metadata InstanceReadResponseMetadata` - `CreatedFromAISearchWizard bool` - `WorkerDomain string` - `ModifiedBy string` - `Namespace string` - `Paused bool` - `PublicEndpointID string` - `PublicEndpointParams InstanceReadResponsePublicEndpointParams` - `AuthorizedHosts []string` - `ChatCompletionsEndpoint InstanceReadResponsePublicEndpointParamsChatCompletionsEndpoint` - `Disabled bool` Disable chat completions endpoint for this public endpoint - `Enabled bool` - `Mcp InstanceReadResponsePublicEndpointParamsMcp` - `Description string` - `Disabled bool` Disable MCP endpoint for this public endpoint - `RateLimit InstanceReadResponsePublicEndpointParamsRateLimit` - `PeriodMs int64` - `Requests int64` - `Technique InstanceReadResponsePublicEndpointParamsRateLimitTechnique` - `const InstanceReadResponsePublicEndpointParamsRateLimitTechniqueFixed InstanceReadResponsePublicEndpointParamsRateLimitTechnique = "fixed"` - `const InstanceReadResponsePublicEndpointParamsRateLimitTechniqueSliding InstanceReadResponsePublicEndpointParamsRateLimitTechnique = "sliding"` - `SearchEndpoint InstanceReadResponsePublicEndpointParamsSearchEndpoint` - `Disabled bool` Disable search endpoint for this public endpoint - `Reranking bool` - `RerankingModel InstanceReadResponseRerankingModel` - `const InstanceReadResponseRerankingModelCfBaaiBgeRerankerBase InstanceReadResponseRerankingModel = "@cf/baai/bge-reranker-base"` - `const InstanceReadResponseRerankingModelEmpty InstanceReadResponseRerankingModel = ""` - `RetrievalOptions InstanceReadResponseRetrievalOptions` - `BoostBy []InstanceReadResponseRetrievalOptionsBoostBy` Metadata fields to boost search results by. Each entry specifies a metadata field and an optional direction. Direction defaults to 'asc' for numeric 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 asc/desc directions; text/boolean fields support exists/not_exists. - `Direction InstanceReadResponseRetrievalOptionsBoostByDirection` 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. - `const InstanceReadResponseRetrievalOptionsBoostByDirectionAsc InstanceReadResponseRetrievalOptionsBoostByDirection = "asc"` - `const InstanceReadResponseRetrievalOptionsBoostByDirectionDesc InstanceReadResponseRetrievalOptionsBoostByDirection = "desc"` - `const InstanceReadResponseRetrievalOptionsBoostByDirectionExists InstanceReadResponseRetrievalOptionsBoostByDirection = "exists"` - `const InstanceReadResponseRetrievalOptionsBoostByDirectionNotExists InstanceReadResponseRetrievalOptionsBoostByDirection = "not_exists"` - `KeywordMatchMode InstanceReadResponseRetrievalOptionsKeywordMatchMode` 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'. Legacy values 'exact_match' and 'fuzzy_match' are accepted and map to 'and' and 'or' respectively. - `const InstanceReadResponseRetrievalOptionsKeywordMatchModeAnd InstanceReadResponseRetrievalOptionsKeywordMatchMode = "and"` - `const InstanceReadResponseRetrievalOptionsKeywordMatchModeOr InstanceReadResponseRetrievalOptionsKeywordMatchMode = "or"` - `RewriteModel InstanceReadResponseRewriteModel` - `const InstanceReadResponseRewriteModelCfMetaLlama3_3_70bInstructFp8Fast InstanceReadResponseRewriteModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceReadResponseRewriteModelCfZaiOrgGlm4_7Flash InstanceReadResponseRewriteModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceReadResponseRewriteModelCfMetaLlama3_1_8bInstructFast InstanceReadResponseRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceReadResponseRewriteModelCfMetaLlama3_1_8bInstructFp8 InstanceReadResponseRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceReadResponseRewriteModelCfMetaLlama4Scout17b16eInstruct InstanceReadResponseRewriteModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceReadResponseRewriteModelCfQwenQwen3_30bA3bFp8 InstanceReadResponseRewriteModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceReadResponseRewriteModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceReadResponseRewriteModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceReadResponseRewriteModelCfMoonshotaiKimiK2Instruct InstanceReadResponseRewriteModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceReadResponseRewriteModelCfGoogleGemma3_12bIt InstanceReadResponseRewriteModel = "@cf/google/gemma-3-12b-it"` - `const InstanceReadResponseRewriteModelAnthropicClaude3_7Sonnet InstanceReadResponseRewriteModel = "anthropic/claude-3-7-sonnet"` - `const InstanceReadResponseRewriteModelAnthropicClaudeSonnet4 InstanceReadResponseRewriteModel = "anthropic/claude-sonnet-4"` - `const InstanceReadResponseRewriteModelAnthropicClaudeOpus4 InstanceReadResponseRewriteModel = "anthropic/claude-opus-4"` - `const InstanceReadResponseRewriteModelAnthropicClaude3_5Haiku InstanceReadResponseRewriteModel = "anthropic/claude-3-5-haiku"` - `const InstanceReadResponseRewriteModelCerebrasQwen3_235bA22bInstruct InstanceReadResponseRewriteModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceReadResponseRewriteModelCerebrasQwen3_235bA22bThinking InstanceReadResponseRewriteModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceReadResponseRewriteModelCerebrasLlama3_3_70b InstanceReadResponseRewriteModel = "cerebras/llama-3.3-70b"` - `const InstanceReadResponseRewriteModelCerebrasLlama4Maverick17b128eInstruct InstanceReadResponseRewriteModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceReadResponseRewriteModelCerebrasLlama4Scout17b16eInstruct InstanceReadResponseRewriteModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceReadResponseRewriteModelCerebrasGptOSs120b InstanceReadResponseRewriteModel = "cerebras/gpt-oss-120b"` - `const InstanceReadResponseRewriteModelGoogleAIStudioGemini2_5Flash InstanceReadResponseRewriteModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceReadResponseRewriteModelGoogleAIStudioGemini2_5Pro InstanceReadResponseRewriteModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceReadResponseRewriteModelGrokGrok4 InstanceReadResponseRewriteModel = "grok/grok-4"` - `const InstanceReadResponseRewriteModelGroqLlama3_3_70bVersatile InstanceReadResponseRewriteModel = "groq/llama-3.3-70b-versatile"` - `const InstanceReadResponseRewriteModelGroqLlama3_1_8bInstant InstanceReadResponseRewriteModel = "groq/llama-3.1-8b-instant"` - `const InstanceReadResponseRewriteModelOpenAIGpt5 InstanceReadResponseRewriteModel = "openai/gpt-5"` - `const InstanceReadResponseRewriteModelOpenAIGpt5Mini InstanceReadResponseRewriteModel = "openai/gpt-5-mini"` - `const InstanceReadResponseRewriteModelOpenAIGpt5Nano InstanceReadResponseRewriteModel = "openai/gpt-5-nano"` - `const InstanceReadResponseRewriteModelEmpty InstanceReadResponseRewriteModel = ""` - `RewriteQuery bool` - `ScoreThreshold float64` - `Source string` - `SourceParams InstanceReadResponseSourceParams` - `ExcludeItems []string` 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 []string` 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 string` - `R2Jurisdiction string` - `WebCrawler InstanceReadResponseSourceParamsWebCrawler` - `CrawlOptions InstanceReadResponseSourceParamsWebCrawlerCrawlOptions` - `Depth float64` - `IncludeExternalLinks bool` - `IncludeSubdomains bool` - `MaxAge float64` - `Source InstanceReadResponseSourceParamsWebCrawlerCrawlOptionsSource` - `const InstanceReadResponseSourceParamsWebCrawlerCrawlOptionsSourceAll InstanceReadResponseSourceParamsWebCrawlerCrawlOptionsSource = "all"` - `const InstanceReadResponseSourceParamsWebCrawlerCrawlOptionsSourceSitemaps InstanceReadResponseSourceParamsWebCrawlerCrawlOptionsSource = "sitemaps"` - `const InstanceReadResponseSourceParamsWebCrawlerCrawlOptionsSourceLinks InstanceReadResponseSourceParamsWebCrawlerCrawlOptionsSource = "links"` - `ParseOptions InstanceReadResponseSourceParamsWebCrawlerParseOptions` - `ContentSelector []InstanceReadResponseSourceParamsWebCrawlerParseOptionsContentSelector` 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. - `Path string` Glob pattern to match against the page URL path. Uses standard glob syntax: * matches within a segment, ** crosses directories. - `Selector string` CSS selector to extract content from pages matching the path pattern. Supports standard CSS selectors including class, ID, element, and attribute selectors. - `IncludeHeaders map[string, string]` - `IncludeImages bool` - `SpecificSitemaps []string` List of specific sitemap URLs to use for crawling. Only valid when parse_type is 'sitemap'. - `UseBrowserRendering bool` - `ParseType InstanceReadResponseSourceParamsWebCrawlerParseType` - `const InstanceReadResponseSourceParamsWebCrawlerParseTypeSitemap InstanceReadResponseSourceParamsWebCrawlerParseType = "sitemap"` - `const InstanceReadResponseSourceParamsWebCrawlerParseTypeFeedRss InstanceReadResponseSourceParamsWebCrawlerParseType = "feed-rss"` - `const InstanceReadResponseSourceParamsWebCrawlerParseTypeCrawl InstanceReadResponseSourceParamsWebCrawlerParseType = "crawl"` - `StoreOptions InstanceReadResponseSourceParamsWebCrawlerStoreOptions` - `StorageID string` - `R2Jurisdiction string` - `StorageType Provider` - `const ProviderR2 Provider = "r2"` - `Status string` - `TokenID string` - `Type InstanceReadResponseType` - `const InstanceReadResponseTypeR2 InstanceReadResponseType = "r2"` - `const InstanceReadResponseTypeWebCrawler InstanceReadResponseType = "web-crawler"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.AISearch.Instances.Read( context.TODO(), "my-ai-search", ai_search.InstanceReadParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.ID) } ``` #### Response ```json { "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", "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, "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": "x", "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": { "crawl_options": { "depth": 1, "include_external_links": true, "include_subdomains": true, "max_age": 0, "source": "all" }, "parse_options": { "content_selector": [ { "path": "**/blog/**", "selector": "article .post-body" } ], "include_headers": { "foo": "string" }, "include_images": true, "specific_sitemaps": [ "https://example.com/sitemap.xml", "https://example.com/blog-sitemap.xml" ], "use_browser_rendering": true }, "parse_type": "sitemap", "store_options": { "storage_id": "storage_id", "r2_jurisdiction": "r2_jurisdiction", "storage_type": "r2" } } }, "status": "status", "token_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "type": "r2" }, "success": true } ``` ## Update instances. `client.AISearch.Instances.Update(ctx, id, params) (*InstanceUpdateResponse, error)` **put** `/accounts/{account_id}/ai-search/instances/{id}` Update instances. ### Parameters - `id string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `params InstanceUpdateParams` - `AccountID param.Field[string]` Path param - `AIGatewayID param.Field[string]` Body param - `AISearchModel param.Field[InstanceUpdateParamsAISearchModel]` Body param - `const InstanceUpdateParamsAISearchModelCfMetaLlama3_3_70bInstructFp8Fast InstanceUpdateParamsAISearchModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceUpdateParamsAISearchModelCfZaiOrgGlm4_7Flash InstanceUpdateParamsAISearchModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceUpdateParamsAISearchModelCfMetaLlama3_1_8bInstructFast InstanceUpdateParamsAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceUpdateParamsAISearchModelCfMetaLlama3_1_8bInstructFp8 InstanceUpdateParamsAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceUpdateParamsAISearchModelCfMetaLlama4Scout17b16eInstruct InstanceUpdateParamsAISearchModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceUpdateParamsAISearchModelCfQwenQwen3_30bA3bFp8 InstanceUpdateParamsAISearchModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceUpdateParamsAISearchModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceUpdateParamsAISearchModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceUpdateParamsAISearchModelCfMoonshotaiKimiK2Instruct InstanceUpdateParamsAISearchModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceUpdateParamsAISearchModelCfGoogleGemma3_12bIt InstanceUpdateParamsAISearchModel = "@cf/google/gemma-3-12b-it"` - `const InstanceUpdateParamsAISearchModelAnthropicClaude3_7Sonnet InstanceUpdateParamsAISearchModel = "anthropic/claude-3-7-sonnet"` - `const InstanceUpdateParamsAISearchModelAnthropicClaudeSonnet4 InstanceUpdateParamsAISearchModel = "anthropic/claude-sonnet-4"` - `const InstanceUpdateParamsAISearchModelAnthropicClaudeOpus4 InstanceUpdateParamsAISearchModel = "anthropic/claude-opus-4"` - `const InstanceUpdateParamsAISearchModelAnthropicClaude3_5Haiku InstanceUpdateParamsAISearchModel = "anthropic/claude-3-5-haiku"` - `const InstanceUpdateParamsAISearchModelCerebrasQwen3_235bA22bInstruct InstanceUpdateParamsAISearchModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceUpdateParamsAISearchModelCerebrasQwen3_235bA22bThinking InstanceUpdateParamsAISearchModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceUpdateParamsAISearchModelCerebrasLlama3_3_70b InstanceUpdateParamsAISearchModel = "cerebras/llama-3.3-70b"` - `const InstanceUpdateParamsAISearchModelCerebrasLlama4Maverick17b128eInstruct InstanceUpdateParamsAISearchModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceUpdateParamsAISearchModelCerebrasLlama4Scout17b16eInstruct InstanceUpdateParamsAISearchModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceUpdateParamsAISearchModelCerebrasGptOSs120b InstanceUpdateParamsAISearchModel = "cerebras/gpt-oss-120b"` - `const InstanceUpdateParamsAISearchModelGoogleAIStudioGemini2_5Flash InstanceUpdateParamsAISearchModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceUpdateParamsAISearchModelGoogleAIStudioGemini2_5Pro InstanceUpdateParamsAISearchModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceUpdateParamsAISearchModelGrokGrok4 InstanceUpdateParamsAISearchModel = "grok/grok-4"` - `const InstanceUpdateParamsAISearchModelGroqLlama3_3_70bVersatile InstanceUpdateParamsAISearchModel = "groq/llama-3.3-70b-versatile"` - `const InstanceUpdateParamsAISearchModelGroqLlama3_1_8bInstant InstanceUpdateParamsAISearchModel = "groq/llama-3.1-8b-instant"` - `const InstanceUpdateParamsAISearchModelOpenAIGpt5 InstanceUpdateParamsAISearchModel = "openai/gpt-5"` - `const InstanceUpdateParamsAISearchModelOpenAIGpt5Mini InstanceUpdateParamsAISearchModel = "openai/gpt-5-mini"` - `const InstanceUpdateParamsAISearchModelOpenAIGpt5Nano InstanceUpdateParamsAISearchModel = "openai/gpt-5-nano"` - `const InstanceUpdateParamsAISearchModelEmpty InstanceUpdateParamsAISearchModel = ""` - `Cache param.Field[bool]` Body param - `CacheThreshold param.Field[InstanceUpdateParamsCacheThreshold]` Body param - `const InstanceUpdateParamsCacheThresholdSuperStrictMatch InstanceUpdateParamsCacheThreshold = "super_strict_match"` - `const InstanceUpdateParamsCacheThresholdCloseEnough InstanceUpdateParamsCacheThreshold = "close_enough"` - `const InstanceUpdateParamsCacheThresholdFlexibleFriend InstanceUpdateParamsCacheThreshold = "flexible_friend"` - `const InstanceUpdateParamsCacheThresholdAnythingGoes InstanceUpdateParamsCacheThreshold = "anything_goes"` - `Chunk param.Field[bool]` Body param - `ChunkOverlap param.Field[int64]` Body param - `ChunkSize param.Field[int64]` Body param - `CustomMetadata param.Field[[]InstanceUpdateParamsCustomMetadata]` Body param - `DataType InstanceUpdateParamsCustomMetadataDataType` - `const InstanceUpdateParamsCustomMetadataDataTypeText InstanceUpdateParamsCustomMetadataDataType = "text"` - `const InstanceUpdateParamsCustomMetadataDataTypeNumber InstanceUpdateParamsCustomMetadataDataType = "number"` - `const InstanceUpdateParamsCustomMetadataDataTypeBoolean InstanceUpdateParamsCustomMetadataDataType = "boolean"` - `const InstanceUpdateParamsCustomMetadataDataTypeDatetime InstanceUpdateParamsCustomMetadataDataType = "datetime"` - `FieldName string` - `EmbeddingModel param.Field[InstanceUpdateParamsEmbeddingModel]` Body param - `const InstanceUpdateParamsEmbeddingModelCfQwenQwen3Embedding0_6b InstanceUpdateParamsEmbeddingModel = "@cf/qwen/qwen3-embedding-0.6b"` - `const InstanceUpdateParamsEmbeddingModelCfBaaiBgeM3 InstanceUpdateParamsEmbeddingModel = "@cf/baai/bge-m3"` - `const InstanceUpdateParamsEmbeddingModelCfBaaiBgeLargeEnV1_5 InstanceUpdateParamsEmbeddingModel = "@cf/baai/bge-large-en-v1.5"` - `const InstanceUpdateParamsEmbeddingModelCfGoogleEmbeddinggemma300m InstanceUpdateParamsEmbeddingModel = "@cf/google/embeddinggemma-300m"` - `const InstanceUpdateParamsEmbeddingModelGoogleAIStudioGeminiEmbedding001 InstanceUpdateParamsEmbeddingModel = "google-ai-studio/gemini-embedding-001"` - `const InstanceUpdateParamsEmbeddingModelGoogleAIStudioGeminiEmbedding2Preview InstanceUpdateParamsEmbeddingModel = "google-ai-studio/gemini-embedding-2-preview"` - `const InstanceUpdateParamsEmbeddingModelOpenAITextEmbedding3Small InstanceUpdateParamsEmbeddingModel = "openai/text-embedding-3-small"` - `const InstanceUpdateParamsEmbeddingModelOpenAITextEmbedding3Large InstanceUpdateParamsEmbeddingModel = "openai/text-embedding-3-large"` - `const InstanceUpdateParamsEmbeddingModelEmpty InstanceUpdateParamsEmbeddingModel = ""` - `FusionMethod param.Field[InstanceUpdateParamsFusionMethod]` Body param - `const InstanceUpdateParamsFusionMethodMax InstanceUpdateParamsFusionMethod = "max"` - `const InstanceUpdateParamsFusionMethodRrf InstanceUpdateParamsFusionMethod = "rrf"` - `HybridSearchEnabled param.Field[bool]` Body param - `IndexingOptions param.Field[InstanceUpdateParamsIndexingOptions]` Body param - `KeywordTokenizer InstanceUpdateParamsIndexingOptionsKeywordTokenizer` 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. - `const InstanceUpdateParamsIndexingOptionsKeywordTokenizerPorter InstanceUpdateParamsIndexingOptionsKeywordTokenizer = "porter"` - `const InstanceUpdateParamsIndexingOptionsKeywordTokenizerTrigram InstanceUpdateParamsIndexingOptionsKeywordTokenizer = "trigram"` - `MaxNumResults param.Field[int64]` Body param - `Metadata param.Field[InstanceUpdateParamsMetadata]` Body param - `CreatedFromAISearchWizard bool` - `WorkerDomain string` - `Paused param.Field[bool]` Body param - `PublicEndpointParams param.Field[InstanceUpdateParamsPublicEndpointParams]` Body param - `AuthorizedHosts []string` - `ChatCompletionsEndpoint InstanceUpdateParamsPublicEndpointParamsChatCompletionsEndpoint` - `Disabled bool` Disable chat completions endpoint for this public endpoint - `Enabled bool` - `Mcp InstanceUpdateParamsPublicEndpointParamsMcp` - `Description string` - `Disabled bool` Disable MCP endpoint for this public endpoint - `RateLimit InstanceUpdateParamsPublicEndpointParamsRateLimit` - `PeriodMs int64` - `Requests int64` - `Technique InstanceUpdateParamsPublicEndpointParamsRateLimitTechnique` - `const InstanceUpdateParamsPublicEndpointParamsRateLimitTechniqueFixed InstanceUpdateParamsPublicEndpointParamsRateLimitTechnique = "fixed"` - `const InstanceUpdateParamsPublicEndpointParamsRateLimitTechniqueSliding InstanceUpdateParamsPublicEndpointParamsRateLimitTechnique = "sliding"` - `SearchEndpoint InstanceUpdateParamsPublicEndpointParamsSearchEndpoint` - `Disabled bool` Disable search endpoint for this public endpoint - `Reranking param.Field[bool]` Body param - `RerankingModel param.Field[InstanceUpdateParamsRerankingModel]` Body param - `const InstanceUpdateParamsRerankingModelCfBaaiBgeRerankerBase InstanceUpdateParamsRerankingModel = "@cf/baai/bge-reranker-base"` - `const InstanceUpdateParamsRerankingModelEmpty InstanceUpdateParamsRerankingModel = ""` - `RetrievalOptions param.Field[InstanceUpdateParamsRetrievalOptions]` Body param - `BoostBy []InstanceUpdateParamsRetrievalOptionsBoostBy` Metadata fields to boost search results by. Each entry specifies a metadata field and an optional direction. Direction defaults to 'asc' for numeric 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 asc/desc directions; text/boolean fields support exists/not_exists. - `Direction InstanceUpdateParamsRetrievalOptionsBoostByDirection` 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. - `const InstanceUpdateParamsRetrievalOptionsBoostByDirectionAsc InstanceUpdateParamsRetrievalOptionsBoostByDirection = "asc"` - `const InstanceUpdateParamsRetrievalOptionsBoostByDirectionDesc InstanceUpdateParamsRetrievalOptionsBoostByDirection = "desc"` - `const InstanceUpdateParamsRetrievalOptionsBoostByDirectionExists InstanceUpdateParamsRetrievalOptionsBoostByDirection = "exists"` - `const InstanceUpdateParamsRetrievalOptionsBoostByDirectionNotExists InstanceUpdateParamsRetrievalOptionsBoostByDirection = "not_exists"` - `KeywordMatchMode InstanceUpdateParamsRetrievalOptionsKeywordMatchMode` 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'. Legacy values 'exact_match' and 'fuzzy_match' are accepted and map to 'and' and 'or' respectively. - `const InstanceUpdateParamsRetrievalOptionsKeywordMatchModeAnd InstanceUpdateParamsRetrievalOptionsKeywordMatchMode = "and"` - `const InstanceUpdateParamsRetrievalOptionsKeywordMatchModeOr InstanceUpdateParamsRetrievalOptionsKeywordMatchMode = "or"` - `RewriteModel param.Field[InstanceUpdateParamsRewriteModel]` Body param - `const InstanceUpdateParamsRewriteModelCfMetaLlama3_3_70bInstructFp8Fast InstanceUpdateParamsRewriteModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceUpdateParamsRewriteModelCfZaiOrgGlm4_7Flash InstanceUpdateParamsRewriteModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceUpdateParamsRewriteModelCfMetaLlama3_1_8bInstructFast InstanceUpdateParamsRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceUpdateParamsRewriteModelCfMetaLlama3_1_8bInstructFp8 InstanceUpdateParamsRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceUpdateParamsRewriteModelCfMetaLlama4Scout17b16eInstruct InstanceUpdateParamsRewriteModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceUpdateParamsRewriteModelCfQwenQwen3_30bA3bFp8 InstanceUpdateParamsRewriteModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceUpdateParamsRewriteModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceUpdateParamsRewriteModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceUpdateParamsRewriteModelCfMoonshotaiKimiK2Instruct InstanceUpdateParamsRewriteModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceUpdateParamsRewriteModelCfGoogleGemma3_12bIt InstanceUpdateParamsRewriteModel = "@cf/google/gemma-3-12b-it"` - `const InstanceUpdateParamsRewriteModelAnthropicClaude3_7Sonnet InstanceUpdateParamsRewriteModel = "anthropic/claude-3-7-sonnet"` - `const InstanceUpdateParamsRewriteModelAnthropicClaudeSonnet4 InstanceUpdateParamsRewriteModel = "anthropic/claude-sonnet-4"` - `const InstanceUpdateParamsRewriteModelAnthropicClaudeOpus4 InstanceUpdateParamsRewriteModel = "anthropic/claude-opus-4"` - `const InstanceUpdateParamsRewriteModelAnthropicClaude3_5Haiku InstanceUpdateParamsRewriteModel = "anthropic/claude-3-5-haiku"` - `const InstanceUpdateParamsRewriteModelCerebrasQwen3_235bA22bInstruct InstanceUpdateParamsRewriteModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceUpdateParamsRewriteModelCerebrasQwen3_235bA22bThinking InstanceUpdateParamsRewriteModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceUpdateParamsRewriteModelCerebrasLlama3_3_70b InstanceUpdateParamsRewriteModel = "cerebras/llama-3.3-70b"` - `const InstanceUpdateParamsRewriteModelCerebrasLlama4Maverick17b128eInstruct InstanceUpdateParamsRewriteModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceUpdateParamsRewriteModelCerebrasLlama4Scout17b16eInstruct InstanceUpdateParamsRewriteModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceUpdateParamsRewriteModelCerebrasGptOSs120b InstanceUpdateParamsRewriteModel = "cerebras/gpt-oss-120b"` - `const InstanceUpdateParamsRewriteModelGoogleAIStudioGemini2_5Flash InstanceUpdateParamsRewriteModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceUpdateParamsRewriteModelGoogleAIStudioGemini2_5Pro InstanceUpdateParamsRewriteModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceUpdateParamsRewriteModelGrokGrok4 InstanceUpdateParamsRewriteModel = "grok/grok-4"` - `const InstanceUpdateParamsRewriteModelGroqLlama3_3_70bVersatile InstanceUpdateParamsRewriteModel = "groq/llama-3.3-70b-versatile"` - `const InstanceUpdateParamsRewriteModelGroqLlama3_1_8bInstant InstanceUpdateParamsRewriteModel = "groq/llama-3.1-8b-instant"` - `const InstanceUpdateParamsRewriteModelOpenAIGpt5 InstanceUpdateParamsRewriteModel = "openai/gpt-5"` - `const InstanceUpdateParamsRewriteModelOpenAIGpt5Mini InstanceUpdateParamsRewriteModel = "openai/gpt-5-mini"` - `const InstanceUpdateParamsRewriteModelOpenAIGpt5Nano InstanceUpdateParamsRewriteModel = "openai/gpt-5-nano"` - `const InstanceUpdateParamsRewriteModelEmpty InstanceUpdateParamsRewriteModel = ""` - `RewriteQuery param.Field[bool]` Body param - `ScoreThreshold param.Field[float64]` Body param - `SourceParams param.Field[InstanceUpdateParamsSourceParams]` Body param - `ExcludeItems []string` 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 []string` 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 string` - `R2Jurisdiction string` - `WebCrawler InstanceUpdateParamsSourceParamsWebCrawler` - `CrawlOptions InstanceUpdateParamsSourceParamsWebCrawlerCrawlOptions` - `Depth float64` - `IncludeExternalLinks bool` - `IncludeSubdomains bool` - `MaxAge float64` - `Source InstanceUpdateParamsSourceParamsWebCrawlerCrawlOptionsSource` - `const InstanceUpdateParamsSourceParamsWebCrawlerCrawlOptionsSourceAll InstanceUpdateParamsSourceParamsWebCrawlerCrawlOptionsSource = "all"` - `const InstanceUpdateParamsSourceParamsWebCrawlerCrawlOptionsSourceSitemaps InstanceUpdateParamsSourceParamsWebCrawlerCrawlOptionsSource = "sitemaps"` - `const InstanceUpdateParamsSourceParamsWebCrawlerCrawlOptionsSourceLinks InstanceUpdateParamsSourceParamsWebCrawlerCrawlOptionsSource = "links"` - `ParseOptions InstanceUpdateParamsSourceParamsWebCrawlerParseOptions` - `ContentSelector []InstanceUpdateParamsSourceParamsWebCrawlerParseOptionsContentSelector` 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. - `Path string` Glob pattern to match against the page URL path. Uses standard glob syntax: * matches within a segment, ** crosses directories. - `Selector string` CSS selector to extract content from pages matching the path pattern. Supports standard CSS selectors including class, ID, element, and attribute selectors. - `IncludeHeaders map[string, string]` - `IncludeImages bool` - `SpecificSitemaps []string` List of specific sitemap URLs to use for crawling. Only valid when parse_type is 'sitemap'. - `UseBrowserRendering bool` - `ParseType InstanceUpdateParamsSourceParamsWebCrawlerParseType` - `const InstanceUpdateParamsSourceParamsWebCrawlerParseTypeSitemap InstanceUpdateParamsSourceParamsWebCrawlerParseType = "sitemap"` - `const InstanceUpdateParamsSourceParamsWebCrawlerParseTypeFeedRss InstanceUpdateParamsSourceParamsWebCrawlerParseType = "feed-rss"` - `const InstanceUpdateParamsSourceParamsWebCrawlerParseTypeCrawl InstanceUpdateParamsSourceParamsWebCrawlerParseType = "crawl"` - `StoreOptions InstanceUpdateParamsSourceParamsWebCrawlerStoreOptions` - `StorageID string` - `R2Jurisdiction string` - `StorageType Provider` - `const ProviderR2 Provider = "r2"` - `Summarization param.Field[bool]` Body param - `SummarizationModel param.Field[InstanceUpdateParamsSummarizationModel]` Body param - `const InstanceUpdateParamsSummarizationModelCfMetaLlama3_3_70bInstructFp8Fast InstanceUpdateParamsSummarizationModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceUpdateParamsSummarizationModelCfZaiOrgGlm4_7Flash InstanceUpdateParamsSummarizationModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceUpdateParamsSummarizationModelCfMetaLlama3_1_8bInstructFast InstanceUpdateParamsSummarizationModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceUpdateParamsSummarizationModelCfMetaLlama3_1_8bInstructFp8 InstanceUpdateParamsSummarizationModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceUpdateParamsSummarizationModelCfMetaLlama4Scout17b16eInstruct InstanceUpdateParamsSummarizationModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceUpdateParamsSummarizationModelCfQwenQwen3_30bA3bFp8 InstanceUpdateParamsSummarizationModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceUpdateParamsSummarizationModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceUpdateParamsSummarizationModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceUpdateParamsSummarizationModelCfMoonshotaiKimiK2Instruct InstanceUpdateParamsSummarizationModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceUpdateParamsSummarizationModelCfGoogleGemma3_12bIt InstanceUpdateParamsSummarizationModel = "@cf/google/gemma-3-12b-it"` - `const InstanceUpdateParamsSummarizationModelAnthropicClaude3_7Sonnet InstanceUpdateParamsSummarizationModel = "anthropic/claude-3-7-sonnet"` - `const InstanceUpdateParamsSummarizationModelAnthropicClaudeSonnet4 InstanceUpdateParamsSummarizationModel = "anthropic/claude-sonnet-4"` - `const InstanceUpdateParamsSummarizationModelAnthropicClaudeOpus4 InstanceUpdateParamsSummarizationModel = "anthropic/claude-opus-4"` - `const InstanceUpdateParamsSummarizationModelAnthropicClaude3_5Haiku InstanceUpdateParamsSummarizationModel = "anthropic/claude-3-5-haiku"` - `const InstanceUpdateParamsSummarizationModelCerebrasQwen3_235bA22bInstruct InstanceUpdateParamsSummarizationModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceUpdateParamsSummarizationModelCerebrasQwen3_235bA22bThinking InstanceUpdateParamsSummarizationModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceUpdateParamsSummarizationModelCerebrasLlama3_3_70b InstanceUpdateParamsSummarizationModel = "cerebras/llama-3.3-70b"` - `const InstanceUpdateParamsSummarizationModelCerebrasLlama4Maverick17b128eInstruct InstanceUpdateParamsSummarizationModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceUpdateParamsSummarizationModelCerebrasLlama4Scout17b16eInstruct InstanceUpdateParamsSummarizationModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceUpdateParamsSummarizationModelCerebrasGptOSs120b InstanceUpdateParamsSummarizationModel = "cerebras/gpt-oss-120b"` - `const InstanceUpdateParamsSummarizationModelGoogleAIStudioGemini2_5Flash InstanceUpdateParamsSummarizationModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceUpdateParamsSummarizationModelGoogleAIStudioGemini2_5Pro InstanceUpdateParamsSummarizationModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceUpdateParamsSummarizationModelGrokGrok4 InstanceUpdateParamsSummarizationModel = "grok/grok-4"` - `const InstanceUpdateParamsSummarizationModelGroqLlama3_3_70bVersatile InstanceUpdateParamsSummarizationModel = "groq/llama-3.3-70b-versatile"` - `const InstanceUpdateParamsSummarizationModelGroqLlama3_1_8bInstant InstanceUpdateParamsSummarizationModel = "groq/llama-3.1-8b-instant"` - `const InstanceUpdateParamsSummarizationModelOpenAIGpt5 InstanceUpdateParamsSummarizationModel = "openai/gpt-5"` - `const InstanceUpdateParamsSummarizationModelOpenAIGpt5Mini InstanceUpdateParamsSummarizationModel = "openai/gpt-5-mini"` - `const InstanceUpdateParamsSummarizationModelOpenAIGpt5Nano InstanceUpdateParamsSummarizationModel = "openai/gpt-5-nano"` - `const InstanceUpdateParamsSummarizationModelEmpty InstanceUpdateParamsSummarizationModel = ""` - `SystemPromptAISearch param.Field[string]` Body param - `SystemPromptIndexSummarization param.Field[string]` Body param - `SystemPromptRewriteQuery param.Field[string]` Body param - `TokenID param.Field[string]` Body param ### Returns - `type InstanceUpdateResponse struct{…}` - `ID string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `CreatedAt Time` - `ModifiedAt Time` - `AIGatewayID string` - `AISearchModel InstanceUpdateResponseAISearchModel` - `const InstanceUpdateResponseAISearchModelCfMetaLlama3_3_70bInstructFp8Fast InstanceUpdateResponseAISearchModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceUpdateResponseAISearchModelCfZaiOrgGlm4_7Flash InstanceUpdateResponseAISearchModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceUpdateResponseAISearchModelCfMetaLlama3_1_8bInstructFast InstanceUpdateResponseAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceUpdateResponseAISearchModelCfMetaLlama3_1_8bInstructFp8 InstanceUpdateResponseAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceUpdateResponseAISearchModelCfMetaLlama4Scout17b16eInstruct InstanceUpdateResponseAISearchModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceUpdateResponseAISearchModelCfQwenQwen3_30bA3bFp8 InstanceUpdateResponseAISearchModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceUpdateResponseAISearchModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceUpdateResponseAISearchModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceUpdateResponseAISearchModelCfMoonshotaiKimiK2Instruct InstanceUpdateResponseAISearchModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceUpdateResponseAISearchModelCfGoogleGemma3_12bIt InstanceUpdateResponseAISearchModel = "@cf/google/gemma-3-12b-it"` - `const InstanceUpdateResponseAISearchModelAnthropicClaude3_7Sonnet InstanceUpdateResponseAISearchModel = "anthropic/claude-3-7-sonnet"` - `const InstanceUpdateResponseAISearchModelAnthropicClaudeSonnet4 InstanceUpdateResponseAISearchModel = "anthropic/claude-sonnet-4"` - `const InstanceUpdateResponseAISearchModelAnthropicClaudeOpus4 InstanceUpdateResponseAISearchModel = "anthropic/claude-opus-4"` - `const InstanceUpdateResponseAISearchModelAnthropicClaude3_5Haiku InstanceUpdateResponseAISearchModel = "anthropic/claude-3-5-haiku"` - `const InstanceUpdateResponseAISearchModelCerebrasQwen3_235bA22bInstruct InstanceUpdateResponseAISearchModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceUpdateResponseAISearchModelCerebrasQwen3_235bA22bThinking InstanceUpdateResponseAISearchModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceUpdateResponseAISearchModelCerebrasLlama3_3_70b InstanceUpdateResponseAISearchModel = "cerebras/llama-3.3-70b"` - `const InstanceUpdateResponseAISearchModelCerebrasLlama4Maverick17b128eInstruct InstanceUpdateResponseAISearchModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceUpdateResponseAISearchModelCerebrasLlama4Scout17b16eInstruct InstanceUpdateResponseAISearchModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceUpdateResponseAISearchModelCerebrasGptOSs120b InstanceUpdateResponseAISearchModel = "cerebras/gpt-oss-120b"` - `const InstanceUpdateResponseAISearchModelGoogleAIStudioGemini2_5Flash InstanceUpdateResponseAISearchModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceUpdateResponseAISearchModelGoogleAIStudioGemini2_5Pro InstanceUpdateResponseAISearchModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceUpdateResponseAISearchModelGrokGrok4 InstanceUpdateResponseAISearchModel = "grok/grok-4"` - `const InstanceUpdateResponseAISearchModelGroqLlama3_3_70bVersatile InstanceUpdateResponseAISearchModel = "groq/llama-3.3-70b-versatile"` - `const InstanceUpdateResponseAISearchModelGroqLlama3_1_8bInstant InstanceUpdateResponseAISearchModel = "groq/llama-3.1-8b-instant"` - `const InstanceUpdateResponseAISearchModelOpenAIGpt5 InstanceUpdateResponseAISearchModel = "openai/gpt-5"` - `const InstanceUpdateResponseAISearchModelOpenAIGpt5Mini InstanceUpdateResponseAISearchModel = "openai/gpt-5-mini"` - `const InstanceUpdateResponseAISearchModelOpenAIGpt5Nano InstanceUpdateResponseAISearchModel = "openai/gpt-5-nano"` - `const InstanceUpdateResponseAISearchModelEmpty InstanceUpdateResponseAISearchModel = ""` - `Cache bool` - `CacheThreshold InstanceUpdateResponseCacheThreshold` - `const InstanceUpdateResponseCacheThresholdSuperStrictMatch InstanceUpdateResponseCacheThreshold = "super_strict_match"` - `const InstanceUpdateResponseCacheThresholdCloseEnough InstanceUpdateResponseCacheThreshold = "close_enough"` - `const InstanceUpdateResponseCacheThresholdFlexibleFriend InstanceUpdateResponseCacheThreshold = "flexible_friend"` - `const InstanceUpdateResponseCacheThresholdAnythingGoes InstanceUpdateResponseCacheThreshold = "anything_goes"` - `ChunkOverlap int64` - `ChunkSize int64` - `CreatedBy string` - `CustomMetadata []InstanceUpdateResponseCustomMetadata` - `DataType InstanceUpdateResponseCustomMetadataDataType` - `const InstanceUpdateResponseCustomMetadataDataTypeText InstanceUpdateResponseCustomMetadataDataType = "text"` - `const InstanceUpdateResponseCustomMetadataDataTypeNumber InstanceUpdateResponseCustomMetadataDataType = "number"` - `const InstanceUpdateResponseCustomMetadataDataTypeBoolean InstanceUpdateResponseCustomMetadataDataType = "boolean"` - `const InstanceUpdateResponseCustomMetadataDataTypeDatetime InstanceUpdateResponseCustomMetadataDataType = "datetime"` - `FieldName string` - `EmbeddingModel InstanceUpdateResponseEmbeddingModel` - `const InstanceUpdateResponseEmbeddingModelCfQwenQwen3Embedding0_6b InstanceUpdateResponseEmbeddingModel = "@cf/qwen/qwen3-embedding-0.6b"` - `const InstanceUpdateResponseEmbeddingModelCfBaaiBgeM3 InstanceUpdateResponseEmbeddingModel = "@cf/baai/bge-m3"` - `const InstanceUpdateResponseEmbeddingModelCfBaaiBgeLargeEnV1_5 InstanceUpdateResponseEmbeddingModel = "@cf/baai/bge-large-en-v1.5"` - `const InstanceUpdateResponseEmbeddingModelCfGoogleEmbeddinggemma300m InstanceUpdateResponseEmbeddingModel = "@cf/google/embeddinggemma-300m"` - `const InstanceUpdateResponseEmbeddingModelGoogleAIStudioGeminiEmbedding001 InstanceUpdateResponseEmbeddingModel = "google-ai-studio/gemini-embedding-001"` - `const InstanceUpdateResponseEmbeddingModelGoogleAIStudioGeminiEmbedding2Preview InstanceUpdateResponseEmbeddingModel = "google-ai-studio/gemini-embedding-2-preview"` - `const InstanceUpdateResponseEmbeddingModelOpenAITextEmbedding3Small InstanceUpdateResponseEmbeddingModel = "openai/text-embedding-3-small"` - `const InstanceUpdateResponseEmbeddingModelOpenAITextEmbedding3Large InstanceUpdateResponseEmbeddingModel = "openai/text-embedding-3-large"` - `const InstanceUpdateResponseEmbeddingModelEmpty InstanceUpdateResponseEmbeddingModel = ""` - `Enable bool` - `EngineVersion float64` - `FusionMethod InstanceUpdateResponseFusionMethod` - `const InstanceUpdateResponseFusionMethodMax InstanceUpdateResponseFusionMethod = "max"` - `const InstanceUpdateResponseFusionMethodRrf InstanceUpdateResponseFusionMethod = "rrf"` - `HybridSearchEnabled bool` - `IndexingOptions InstanceUpdateResponseIndexingOptions` - `KeywordTokenizer InstanceUpdateResponseIndexingOptionsKeywordTokenizer` 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. - `const InstanceUpdateResponseIndexingOptionsKeywordTokenizerPorter InstanceUpdateResponseIndexingOptionsKeywordTokenizer = "porter"` - `const InstanceUpdateResponseIndexingOptionsKeywordTokenizerTrigram InstanceUpdateResponseIndexingOptionsKeywordTokenizer = "trigram"` - `LastActivity Time` - `MaxNumResults int64` - `Metadata InstanceUpdateResponseMetadata` - `CreatedFromAISearchWizard bool` - `WorkerDomain string` - `ModifiedBy string` - `Namespace string` - `Paused bool` - `PublicEndpointID string` - `PublicEndpointParams InstanceUpdateResponsePublicEndpointParams` - `AuthorizedHosts []string` - `ChatCompletionsEndpoint InstanceUpdateResponsePublicEndpointParamsChatCompletionsEndpoint` - `Disabled bool` Disable chat completions endpoint for this public endpoint - `Enabled bool` - `Mcp InstanceUpdateResponsePublicEndpointParamsMcp` - `Description string` - `Disabled bool` Disable MCP endpoint for this public endpoint - `RateLimit InstanceUpdateResponsePublicEndpointParamsRateLimit` - `PeriodMs int64` - `Requests int64` - `Technique InstanceUpdateResponsePublicEndpointParamsRateLimitTechnique` - `const InstanceUpdateResponsePublicEndpointParamsRateLimitTechniqueFixed InstanceUpdateResponsePublicEndpointParamsRateLimitTechnique = "fixed"` - `const InstanceUpdateResponsePublicEndpointParamsRateLimitTechniqueSliding InstanceUpdateResponsePublicEndpointParamsRateLimitTechnique = "sliding"` - `SearchEndpoint InstanceUpdateResponsePublicEndpointParamsSearchEndpoint` - `Disabled bool` Disable search endpoint for this public endpoint - `Reranking bool` - `RerankingModel InstanceUpdateResponseRerankingModel` - `const InstanceUpdateResponseRerankingModelCfBaaiBgeRerankerBase InstanceUpdateResponseRerankingModel = "@cf/baai/bge-reranker-base"` - `const InstanceUpdateResponseRerankingModelEmpty InstanceUpdateResponseRerankingModel = ""` - `RetrievalOptions InstanceUpdateResponseRetrievalOptions` - `BoostBy []InstanceUpdateResponseRetrievalOptionsBoostBy` Metadata fields to boost search results by. Each entry specifies a metadata field and an optional direction. Direction defaults to 'asc' for numeric 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 asc/desc directions; text/boolean fields support exists/not_exists. - `Direction InstanceUpdateResponseRetrievalOptionsBoostByDirection` 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. - `const InstanceUpdateResponseRetrievalOptionsBoostByDirectionAsc InstanceUpdateResponseRetrievalOptionsBoostByDirection = "asc"` - `const InstanceUpdateResponseRetrievalOptionsBoostByDirectionDesc InstanceUpdateResponseRetrievalOptionsBoostByDirection = "desc"` - `const InstanceUpdateResponseRetrievalOptionsBoostByDirectionExists InstanceUpdateResponseRetrievalOptionsBoostByDirection = "exists"` - `const InstanceUpdateResponseRetrievalOptionsBoostByDirectionNotExists InstanceUpdateResponseRetrievalOptionsBoostByDirection = "not_exists"` - `KeywordMatchMode InstanceUpdateResponseRetrievalOptionsKeywordMatchMode` 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'. Legacy values 'exact_match' and 'fuzzy_match' are accepted and map to 'and' and 'or' respectively. - `const InstanceUpdateResponseRetrievalOptionsKeywordMatchModeAnd InstanceUpdateResponseRetrievalOptionsKeywordMatchMode = "and"` - `const InstanceUpdateResponseRetrievalOptionsKeywordMatchModeOr InstanceUpdateResponseRetrievalOptionsKeywordMatchMode = "or"` - `RewriteModel InstanceUpdateResponseRewriteModel` - `const InstanceUpdateResponseRewriteModelCfMetaLlama3_3_70bInstructFp8Fast InstanceUpdateResponseRewriteModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceUpdateResponseRewriteModelCfZaiOrgGlm4_7Flash InstanceUpdateResponseRewriteModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceUpdateResponseRewriteModelCfMetaLlama3_1_8bInstructFast InstanceUpdateResponseRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceUpdateResponseRewriteModelCfMetaLlama3_1_8bInstructFp8 InstanceUpdateResponseRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceUpdateResponseRewriteModelCfMetaLlama4Scout17b16eInstruct InstanceUpdateResponseRewriteModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceUpdateResponseRewriteModelCfQwenQwen3_30bA3bFp8 InstanceUpdateResponseRewriteModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceUpdateResponseRewriteModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceUpdateResponseRewriteModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceUpdateResponseRewriteModelCfMoonshotaiKimiK2Instruct InstanceUpdateResponseRewriteModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceUpdateResponseRewriteModelCfGoogleGemma3_12bIt InstanceUpdateResponseRewriteModel = "@cf/google/gemma-3-12b-it"` - `const InstanceUpdateResponseRewriteModelAnthropicClaude3_7Sonnet InstanceUpdateResponseRewriteModel = "anthropic/claude-3-7-sonnet"` - `const InstanceUpdateResponseRewriteModelAnthropicClaudeSonnet4 InstanceUpdateResponseRewriteModel = "anthropic/claude-sonnet-4"` - `const InstanceUpdateResponseRewriteModelAnthropicClaudeOpus4 InstanceUpdateResponseRewriteModel = "anthropic/claude-opus-4"` - `const InstanceUpdateResponseRewriteModelAnthropicClaude3_5Haiku InstanceUpdateResponseRewriteModel = "anthropic/claude-3-5-haiku"` - `const InstanceUpdateResponseRewriteModelCerebrasQwen3_235bA22bInstruct InstanceUpdateResponseRewriteModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceUpdateResponseRewriteModelCerebrasQwen3_235bA22bThinking InstanceUpdateResponseRewriteModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceUpdateResponseRewriteModelCerebrasLlama3_3_70b InstanceUpdateResponseRewriteModel = "cerebras/llama-3.3-70b"` - `const InstanceUpdateResponseRewriteModelCerebrasLlama4Maverick17b128eInstruct InstanceUpdateResponseRewriteModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceUpdateResponseRewriteModelCerebrasLlama4Scout17b16eInstruct InstanceUpdateResponseRewriteModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceUpdateResponseRewriteModelCerebrasGptOSs120b InstanceUpdateResponseRewriteModel = "cerebras/gpt-oss-120b"` - `const InstanceUpdateResponseRewriteModelGoogleAIStudioGemini2_5Flash InstanceUpdateResponseRewriteModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceUpdateResponseRewriteModelGoogleAIStudioGemini2_5Pro InstanceUpdateResponseRewriteModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceUpdateResponseRewriteModelGrokGrok4 InstanceUpdateResponseRewriteModel = "grok/grok-4"` - `const InstanceUpdateResponseRewriteModelGroqLlama3_3_70bVersatile InstanceUpdateResponseRewriteModel = "groq/llama-3.3-70b-versatile"` - `const InstanceUpdateResponseRewriteModelGroqLlama3_1_8bInstant InstanceUpdateResponseRewriteModel = "groq/llama-3.1-8b-instant"` - `const InstanceUpdateResponseRewriteModelOpenAIGpt5 InstanceUpdateResponseRewriteModel = "openai/gpt-5"` - `const InstanceUpdateResponseRewriteModelOpenAIGpt5Mini InstanceUpdateResponseRewriteModel = "openai/gpt-5-mini"` - `const InstanceUpdateResponseRewriteModelOpenAIGpt5Nano InstanceUpdateResponseRewriteModel = "openai/gpt-5-nano"` - `const InstanceUpdateResponseRewriteModelEmpty InstanceUpdateResponseRewriteModel = ""` - `RewriteQuery bool` - `ScoreThreshold float64` - `Source string` - `SourceParams InstanceUpdateResponseSourceParams` - `ExcludeItems []string` 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 []string` 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 string` - `R2Jurisdiction string` - `WebCrawler InstanceUpdateResponseSourceParamsWebCrawler` - `CrawlOptions InstanceUpdateResponseSourceParamsWebCrawlerCrawlOptions` - `Depth float64` - `IncludeExternalLinks bool` - `IncludeSubdomains bool` - `MaxAge float64` - `Source InstanceUpdateResponseSourceParamsWebCrawlerCrawlOptionsSource` - `const InstanceUpdateResponseSourceParamsWebCrawlerCrawlOptionsSourceAll InstanceUpdateResponseSourceParamsWebCrawlerCrawlOptionsSource = "all"` - `const InstanceUpdateResponseSourceParamsWebCrawlerCrawlOptionsSourceSitemaps InstanceUpdateResponseSourceParamsWebCrawlerCrawlOptionsSource = "sitemaps"` - `const InstanceUpdateResponseSourceParamsWebCrawlerCrawlOptionsSourceLinks InstanceUpdateResponseSourceParamsWebCrawlerCrawlOptionsSource = "links"` - `ParseOptions InstanceUpdateResponseSourceParamsWebCrawlerParseOptions` - `ContentSelector []InstanceUpdateResponseSourceParamsWebCrawlerParseOptionsContentSelector` 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. - `Path string` Glob pattern to match against the page URL path. Uses standard glob syntax: * matches within a segment, ** crosses directories. - `Selector string` CSS selector to extract content from pages matching the path pattern. Supports standard CSS selectors including class, ID, element, and attribute selectors. - `IncludeHeaders map[string, string]` - `IncludeImages bool` - `SpecificSitemaps []string` List of specific sitemap URLs to use for crawling. Only valid when parse_type is 'sitemap'. - `UseBrowserRendering bool` - `ParseType InstanceUpdateResponseSourceParamsWebCrawlerParseType` - `const InstanceUpdateResponseSourceParamsWebCrawlerParseTypeSitemap InstanceUpdateResponseSourceParamsWebCrawlerParseType = "sitemap"` - `const InstanceUpdateResponseSourceParamsWebCrawlerParseTypeFeedRss InstanceUpdateResponseSourceParamsWebCrawlerParseType = "feed-rss"` - `const InstanceUpdateResponseSourceParamsWebCrawlerParseTypeCrawl InstanceUpdateResponseSourceParamsWebCrawlerParseType = "crawl"` - `StoreOptions InstanceUpdateResponseSourceParamsWebCrawlerStoreOptions` - `StorageID string` - `R2Jurisdiction string` - `StorageType Provider` - `const ProviderR2 Provider = "r2"` - `Status string` - `TokenID string` - `Type InstanceUpdateResponseType` - `const InstanceUpdateResponseTypeR2 InstanceUpdateResponseType = "r2"` - `const InstanceUpdateResponseTypeWebCrawler InstanceUpdateResponseType = "web-crawler"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) instance, err := client.AISearch.Instances.Update( context.TODO(), "my-ai-search", ai_search.InstanceUpdateParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", instance.ID) } ``` #### Response ```json { "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", "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, "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": "x", "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": { "crawl_options": { "depth": 1, "include_external_links": true, "include_subdomains": true, "max_age": 0, "source": "all" }, "parse_options": { "content_selector": [ { "path": "**/blog/**", "selector": "article .post-body" } ], "include_headers": { "foo": "string" }, "include_images": true, "specific_sitemaps": [ "https://example.com/sitemap.xml", "https://example.com/blog-sitemap.xml" ], "use_browser_rendering": true }, "parse_type": "sitemap", "store_options": { "storage_id": "storage_id", "r2_jurisdiction": "r2_jurisdiction", "storage_type": "r2" } } }, "status": "status", "token_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "type": "r2" }, "success": true } ``` ## Delete instances. `client.AISearch.Instances.Delete(ctx, id, body) (*InstanceDeleteResponse, error)` **delete** `/accounts/{account_id}/ai-search/instances/{id}` Delete instances. ### Parameters - `id string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `body InstanceDeleteParams` - `AccountID param.Field[string]` ### Returns - `type InstanceDeleteResponse struct{…}` - `ID string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `CreatedAt Time` - `ModifiedAt Time` - `AIGatewayID string` - `AISearchModel InstanceDeleteResponseAISearchModel` - `const InstanceDeleteResponseAISearchModelCfMetaLlama3_3_70bInstructFp8Fast InstanceDeleteResponseAISearchModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceDeleteResponseAISearchModelCfZaiOrgGlm4_7Flash InstanceDeleteResponseAISearchModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceDeleteResponseAISearchModelCfMetaLlama3_1_8bInstructFast InstanceDeleteResponseAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceDeleteResponseAISearchModelCfMetaLlama3_1_8bInstructFp8 InstanceDeleteResponseAISearchModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceDeleteResponseAISearchModelCfMetaLlama4Scout17b16eInstruct InstanceDeleteResponseAISearchModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceDeleteResponseAISearchModelCfQwenQwen3_30bA3bFp8 InstanceDeleteResponseAISearchModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceDeleteResponseAISearchModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceDeleteResponseAISearchModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceDeleteResponseAISearchModelCfMoonshotaiKimiK2Instruct InstanceDeleteResponseAISearchModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceDeleteResponseAISearchModelCfGoogleGemma3_12bIt InstanceDeleteResponseAISearchModel = "@cf/google/gemma-3-12b-it"` - `const InstanceDeleteResponseAISearchModelAnthropicClaude3_7Sonnet InstanceDeleteResponseAISearchModel = "anthropic/claude-3-7-sonnet"` - `const InstanceDeleteResponseAISearchModelAnthropicClaudeSonnet4 InstanceDeleteResponseAISearchModel = "anthropic/claude-sonnet-4"` - `const InstanceDeleteResponseAISearchModelAnthropicClaudeOpus4 InstanceDeleteResponseAISearchModel = "anthropic/claude-opus-4"` - `const InstanceDeleteResponseAISearchModelAnthropicClaude3_5Haiku InstanceDeleteResponseAISearchModel = "anthropic/claude-3-5-haiku"` - `const InstanceDeleteResponseAISearchModelCerebrasQwen3_235bA22bInstruct InstanceDeleteResponseAISearchModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceDeleteResponseAISearchModelCerebrasQwen3_235bA22bThinking InstanceDeleteResponseAISearchModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceDeleteResponseAISearchModelCerebrasLlama3_3_70b InstanceDeleteResponseAISearchModel = "cerebras/llama-3.3-70b"` - `const InstanceDeleteResponseAISearchModelCerebrasLlama4Maverick17b128eInstruct InstanceDeleteResponseAISearchModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceDeleteResponseAISearchModelCerebrasLlama4Scout17b16eInstruct InstanceDeleteResponseAISearchModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceDeleteResponseAISearchModelCerebrasGptOSs120b InstanceDeleteResponseAISearchModel = "cerebras/gpt-oss-120b"` - `const InstanceDeleteResponseAISearchModelGoogleAIStudioGemini2_5Flash InstanceDeleteResponseAISearchModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceDeleteResponseAISearchModelGoogleAIStudioGemini2_5Pro InstanceDeleteResponseAISearchModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceDeleteResponseAISearchModelGrokGrok4 InstanceDeleteResponseAISearchModel = "grok/grok-4"` - `const InstanceDeleteResponseAISearchModelGroqLlama3_3_70bVersatile InstanceDeleteResponseAISearchModel = "groq/llama-3.3-70b-versatile"` - `const InstanceDeleteResponseAISearchModelGroqLlama3_1_8bInstant InstanceDeleteResponseAISearchModel = "groq/llama-3.1-8b-instant"` - `const InstanceDeleteResponseAISearchModelOpenAIGpt5 InstanceDeleteResponseAISearchModel = "openai/gpt-5"` - `const InstanceDeleteResponseAISearchModelOpenAIGpt5Mini InstanceDeleteResponseAISearchModel = "openai/gpt-5-mini"` - `const InstanceDeleteResponseAISearchModelOpenAIGpt5Nano InstanceDeleteResponseAISearchModel = "openai/gpt-5-nano"` - `const InstanceDeleteResponseAISearchModelEmpty InstanceDeleteResponseAISearchModel = ""` - `Cache bool` - `CacheThreshold InstanceDeleteResponseCacheThreshold` - `const InstanceDeleteResponseCacheThresholdSuperStrictMatch InstanceDeleteResponseCacheThreshold = "super_strict_match"` - `const InstanceDeleteResponseCacheThresholdCloseEnough InstanceDeleteResponseCacheThreshold = "close_enough"` - `const InstanceDeleteResponseCacheThresholdFlexibleFriend InstanceDeleteResponseCacheThreshold = "flexible_friend"` - `const InstanceDeleteResponseCacheThresholdAnythingGoes InstanceDeleteResponseCacheThreshold = "anything_goes"` - `ChunkOverlap int64` - `ChunkSize int64` - `CreatedBy string` - `CustomMetadata []InstanceDeleteResponseCustomMetadata` - `DataType InstanceDeleteResponseCustomMetadataDataType` - `const InstanceDeleteResponseCustomMetadataDataTypeText InstanceDeleteResponseCustomMetadataDataType = "text"` - `const InstanceDeleteResponseCustomMetadataDataTypeNumber InstanceDeleteResponseCustomMetadataDataType = "number"` - `const InstanceDeleteResponseCustomMetadataDataTypeBoolean InstanceDeleteResponseCustomMetadataDataType = "boolean"` - `const InstanceDeleteResponseCustomMetadataDataTypeDatetime InstanceDeleteResponseCustomMetadataDataType = "datetime"` - `FieldName string` - `EmbeddingModel InstanceDeleteResponseEmbeddingModel` - `const InstanceDeleteResponseEmbeddingModelCfQwenQwen3Embedding0_6b InstanceDeleteResponseEmbeddingModel = "@cf/qwen/qwen3-embedding-0.6b"` - `const InstanceDeleteResponseEmbeddingModelCfBaaiBgeM3 InstanceDeleteResponseEmbeddingModel = "@cf/baai/bge-m3"` - `const InstanceDeleteResponseEmbeddingModelCfBaaiBgeLargeEnV1_5 InstanceDeleteResponseEmbeddingModel = "@cf/baai/bge-large-en-v1.5"` - `const InstanceDeleteResponseEmbeddingModelCfGoogleEmbeddinggemma300m InstanceDeleteResponseEmbeddingModel = "@cf/google/embeddinggemma-300m"` - `const InstanceDeleteResponseEmbeddingModelGoogleAIStudioGeminiEmbedding001 InstanceDeleteResponseEmbeddingModel = "google-ai-studio/gemini-embedding-001"` - `const InstanceDeleteResponseEmbeddingModelGoogleAIStudioGeminiEmbedding2Preview InstanceDeleteResponseEmbeddingModel = "google-ai-studio/gemini-embedding-2-preview"` - `const InstanceDeleteResponseEmbeddingModelOpenAITextEmbedding3Small InstanceDeleteResponseEmbeddingModel = "openai/text-embedding-3-small"` - `const InstanceDeleteResponseEmbeddingModelOpenAITextEmbedding3Large InstanceDeleteResponseEmbeddingModel = "openai/text-embedding-3-large"` - `const InstanceDeleteResponseEmbeddingModelEmpty InstanceDeleteResponseEmbeddingModel = ""` - `Enable bool` - `EngineVersion float64` - `FusionMethod InstanceDeleteResponseFusionMethod` - `const InstanceDeleteResponseFusionMethodMax InstanceDeleteResponseFusionMethod = "max"` - `const InstanceDeleteResponseFusionMethodRrf InstanceDeleteResponseFusionMethod = "rrf"` - `HybridSearchEnabled bool` - `IndexingOptions InstanceDeleteResponseIndexingOptions` - `KeywordTokenizer InstanceDeleteResponseIndexingOptionsKeywordTokenizer` 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. - `const InstanceDeleteResponseIndexingOptionsKeywordTokenizerPorter InstanceDeleteResponseIndexingOptionsKeywordTokenizer = "porter"` - `const InstanceDeleteResponseIndexingOptionsKeywordTokenizerTrigram InstanceDeleteResponseIndexingOptionsKeywordTokenizer = "trigram"` - `LastActivity Time` - `MaxNumResults int64` - `Metadata InstanceDeleteResponseMetadata` - `CreatedFromAISearchWizard bool` - `WorkerDomain string` - `ModifiedBy string` - `Namespace string` - `Paused bool` - `PublicEndpointID string` - `PublicEndpointParams InstanceDeleteResponsePublicEndpointParams` - `AuthorizedHosts []string` - `ChatCompletionsEndpoint InstanceDeleteResponsePublicEndpointParamsChatCompletionsEndpoint` - `Disabled bool` Disable chat completions endpoint for this public endpoint - `Enabled bool` - `Mcp InstanceDeleteResponsePublicEndpointParamsMcp` - `Description string` - `Disabled bool` Disable MCP endpoint for this public endpoint - `RateLimit InstanceDeleteResponsePublicEndpointParamsRateLimit` - `PeriodMs int64` - `Requests int64` - `Technique InstanceDeleteResponsePublicEndpointParamsRateLimitTechnique` - `const InstanceDeleteResponsePublicEndpointParamsRateLimitTechniqueFixed InstanceDeleteResponsePublicEndpointParamsRateLimitTechnique = "fixed"` - `const InstanceDeleteResponsePublicEndpointParamsRateLimitTechniqueSliding InstanceDeleteResponsePublicEndpointParamsRateLimitTechnique = "sliding"` - `SearchEndpoint InstanceDeleteResponsePublicEndpointParamsSearchEndpoint` - `Disabled bool` Disable search endpoint for this public endpoint - `Reranking bool` - `RerankingModel InstanceDeleteResponseRerankingModel` - `const InstanceDeleteResponseRerankingModelCfBaaiBgeRerankerBase InstanceDeleteResponseRerankingModel = "@cf/baai/bge-reranker-base"` - `const InstanceDeleteResponseRerankingModelEmpty InstanceDeleteResponseRerankingModel = ""` - `RetrievalOptions InstanceDeleteResponseRetrievalOptions` - `BoostBy []InstanceDeleteResponseRetrievalOptionsBoostBy` Metadata fields to boost search results by. Each entry specifies a metadata field and an optional direction. Direction defaults to 'asc' for numeric 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 asc/desc directions; text/boolean fields support exists/not_exists. - `Direction InstanceDeleteResponseRetrievalOptionsBoostByDirection` 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. - `const InstanceDeleteResponseRetrievalOptionsBoostByDirectionAsc InstanceDeleteResponseRetrievalOptionsBoostByDirection = "asc"` - `const InstanceDeleteResponseRetrievalOptionsBoostByDirectionDesc InstanceDeleteResponseRetrievalOptionsBoostByDirection = "desc"` - `const InstanceDeleteResponseRetrievalOptionsBoostByDirectionExists InstanceDeleteResponseRetrievalOptionsBoostByDirection = "exists"` - `const InstanceDeleteResponseRetrievalOptionsBoostByDirectionNotExists InstanceDeleteResponseRetrievalOptionsBoostByDirection = "not_exists"` - `KeywordMatchMode InstanceDeleteResponseRetrievalOptionsKeywordMatchMode` 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'. Legacy values 'exact_match' and 'fuzzy_match' are accepted and map to 'and' and 'or' respectively. - `const InstanceDeleteResponseRetrievalOptionsKeywordMatchModeAnd InstanceDeleteResponseRetrievalOptionsKeywordMatchMode = "and"` - `const InstanceDeleteResponseRetrievalOptionsKeywordMatchModeOr InstanceDeleteResponseRetrievalOptionsKeywordMatchMode = "or"` - `RewriteModel InstanceDeleteResponseRewriteModel` - `const InstanceDeleteResponseRewriteModelCfMetaLlama3_3_70bInstructFp8Fast InstanceDeleteResponseRewriteModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceDeleteResponseRewriteModelCfZaiOrgGlm4_7Flash InstanceDeleteResponseRewriteModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceDeleteResponseRewriteModelCfMetaLlama3_1_8bInstructFast InstanceDeleteResponseRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceDeleteResponseRewriteModelCfMetaLlama3_1_8bInstructFp8 InstanceDeleteResponseRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceDeleteResponseRewriteModelCfMetaLlama4Scout17b16eInstruct InstanceDeleteResponseRewriteModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceDeleteResponseRewriteModelCfQwenQwen3_30bA3bFp8 InstanceDeleteResponseRewriteModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceDeleteResponseRewriteModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceDeleteResponseRewriteModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceDeleteResponseRewriteModelCfMoonshotaiKimiK2Instruct InstanceDeleteResponseRewriteModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceDeleteResponseRewriteModelCfGoogleGemma3_12bIt InstanceDeleteResponseRewriteModel = "@cf/google/gemma-3-12b-it"` - `const InstanceDeleteResponseRewriteModelAnthropicClaude3_7Sonnet InstanceDeleteResponseRewriteModel = "anthropic/claude-3-7-sonnet"` - `const InstanceDeleteResponseRewriteModelAnthropicClaudeSonnet4 InstanceDeleteResponseRewriteModel = "anthropic/claude-sonnet-4"` - `const InstanceDeleteResponseRewriteModelAnthropicClaudeOpus4 InstanceDeleteResponseRewriteModel = "anthropic/claude-opus-4"` - `const InstanceDeleteResponseRewriteModelAnthropicClaude3_5Haiku InstanceDeleteResponseRewriteModel = "anthropic/claude-3-5-haiku"` - `const InstanceDeleteResponseRewriteModelCerebrasQwen3_235bA22bInstruct InstanceDeleteResponseRewriteModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceDeleteResponseRewriteModelCerebrasQwen3_235bA22bThinking InstanceDeleteResponseRewriteModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceDeleteResponseRewriteModelCerebrasLlama3_3_70b InstanceDeleteResponseRewriteModel = "cerebras/llama-3.3-70b"` - `const InstanceDeleteResponseRewriteModelCerebrasLlama4Maverick17b128eInstruct InstanceDeleteResponseRewriteModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceDeleteResponseRewriteModelCerebrasLlama4Scout17b16eInstruct InstanceDeleteResponseRewriteModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceDeleteResponseRewriteModelCerebrasGptOSs120b InstanceDeleteResponseRewriteModel = "cerebras/gpt-oss-120b"` - `const InstanceDeleteResponseRewriteModelGoogleAIStudioGemini2_5Flash InstanceDeleteResponseRewriteModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceDeleteResponseRewriteModelGoogleAIStudioGemini2_5Pro InstanceDeleteResponseRewriteModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceDeleteResponseRewriteModelGrokGrok4 InstanceDeleteResponseRewriteModel = "grok/grok-4"` - `const InstanceDeleteResponseRewriteModelGroqLlama3_3_70bVersatile InstanceDeleteResponseRewriteModel = "groq/llama-3.3-70b-versatile"` - `const InstanceDeleteResponseRewriteModelGroqLlama3_1_8bInstant InstanceDeleteResponseRewriteModel = "groq/llama-3.1-8b-instant"` - `const InstanceDeleteResponseRewriteModelOpenAIGpt5 InstanceDeleteResponseRewriteModel = "openai/gpt-5"` - `const InstanceDeleteResponseRewriteModelOpenAIGpt5Mini InstanceDeleteResponseRewriteModel = "openai/gpt-5-mini"` - `const InstanceDeleteResponseRewriteModelOpenAIGpt5Nano InstanceDeleteResponseRewriteModel = "openai/gpt-5-nano"` - `const InstanceDeleteResponseRewriteModelEmpty InstanceDeleteResponseRewriteModel = ""` - `RewriteQuery bool` - `ScoreThreshold float64` - `Source string` - `SourceParams InstanceDeleteResponseSourceParams` - `ExcludeItems []string` 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 []string` 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 string` - `R2Jurisdiction string` - `WebCrawler InstanceDeleteResponseSourceParamsWebCrawler` - `CrawlOptions InstanceDeleteResponseSourceParamsWebCrawlerCrawlOptions` - `Depth float64` - `IncludeExternalLinks bool` - `IncludeSubdomains bool` - `MaxAge float64` - `Source InstanceDeleteResponseSourceParamsWebCrawlerCrawlOptionsSource` - `const InstanceDeleteResponseSourceParamsWebCrawlerCrawlOptionsSourceAll InstanceDeleteResponseSourceParamsWebCrawlerCrawlOptionsSource = "all"` - `const InstanceDeleteResponseSourceParamsWebCrawlerCrawlOptionsSourceSitemaps InstanceDeleteResponseSourceParamsWebCrawlerCrawlOptionsSource = "sitemaps"` - `const InstanceDeleteResponseSourceParamsWebCrawlerCrawlOptionsSourceLinks InstanceDeleteResponseSourceParamsWebCrawlerCrawlOptionsSource = "links"` - `ParseOptions InstanceDeleteResponseSourceParamsWebCrawlerParseOptions` - `ContentSelector []InstanceDeleteResponseSourceParamsWebCrawlerParseOptionsContentSelector` 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. - `Path string` Glob pattern to match against the page URL path. Uses standard glob syntax: * matches within a segment, ** crosses directories. - `Selector string` CSS selector to extract content from pages matching the path pattern. Supports standard CSS selectors including class, ID, element, and attribute selectors. - `IncludeHeaders map[string, string]` - `IncludeImages bool` - `SpecificSitemaps []string` List of specific sitemap URLs to use for crawling. Only valid when parse_type is 'sitemap'. - `UseBrowserRendering bool` - `ParseType InstanceDeleteResponseSourceParamsWebCrawlerParseType` - `const InstanceDeleteResponseSourceParamsWebCrawlerParseTypeSitemap InstanceDeleteResponseSourceParamsWebCrawlerParseType = "sitemap"` - `const InstanceDeleteResponseSourceParamsWebCrawlerParseTypeFeedRss InstanceDeleteResponseSourceParamsWebCrawlerParseType = "feed-rss"` - `const InstanceDeleteResponseSourceParamsWebCrawlerParseTypeCrawl InstanceDeleteResponseSourceParamsWebCrawlerParseType = "crawl"` - `StoreOptions InstanceDeleteResponseSourceParamsWebCrawlerStoreOptions` - `StorageID string` - `R2Jurisdiction string` - `StorageType Provider` - `const ProviderR2 Provider = "r2"` - `Status string` - `TokenID string` - `Type InstanceDeleteResponseType` - `const InstanceDeleteResponseTypeR2 InstanceDeleteResponseType = "r2"` - `const InstanceDeleteResponseTypeWebCrawler InstanceDeleteResponseType = "web-crawler"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) instance, err := client.AISearch.Instances.Delete( context.TODO(), "my-ai-search", ai_search.InstanceDeleteParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", instance.ID) } ``` #### Response ```json { "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", "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, "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": "x", "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": { "crawl_options": { "depth": 1, "include_external_links": true, "include_subdomains": true, "max_age": 0, "source": "all" }, "parse_options": { "content_selector": [ { "path": "**/blog/**", "selector": "article .post-body" } ], "include_headers": { "foo": "string" }, "include_images": true, "specific_sitemaps": [ "https://example.com/sitemap.xml", "https://example.com/blog-sitemap.xml" ], "use_browser_rendering": true }, "parse_type": "sitemap", "store_options": { "storage_id": "storage_id", "r2_jurisdiction": "r2_jurisdiction", "storage_type": "r2" } } }, "status": "status", "token_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "type": "r2" }, "success": true } ``` ## Stats `client.AISearch.Instances.Stats(ctx, id, query) (*InstanceStatsResponse, error)` **get** `/accounts/{account_id}/ai-search/instances/{id}/stats` Retrieves usage statistics for AI Search instances. ### Parameters - `id string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `query InstanceStatsParams` - `AccountID param.Field[string]` ### Returns - `type InstanceStatsResponse struct{…}` - `Completed int64` - `Error int64` - `FileEmbedErrors map[string, unknown]` - `IndexSourceErrors map[string, unknown]` - `LastActivity Time` - `Outdated int64` - `Queued int64` - `Running int64` - `Skipped int64` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.AISearch.Instances.Stats( context.TODO(), "my-ai-search", ai_search.InstanceStatsParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Completed) } ``` #### Response ```json { "result": { "completed": 0, "error": 0, "file_embed_errors": { "foo": "bar" }, "index_source_errors": { "foo": "bar" }, "last_activity": "2019-12-27T18:11:19.117Z", "outdated": 0, "queued": 0, "running": 0, "skipped": 0 }, "success": true } ``` ## Search `client.AISearch.Instances.Search(ctx, id, params) (*InstanceSearchResponse, error)` **post** `/accounts/{account_id}/ai-search/instances/{id}/search` Executes a semantic search query against an AI Search instance to find relevant indexed content. ### Parameters - `id string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `params InstanceSearchParams` - `AccountID param.Field[string]` Path param - `Messages param.Field[[]InstanceSearchParamsMessage]` Body param - `Content string` - `Role InstanceSearchParamsMessagesRole` - `const InstanceSearchParamsMessagesRoleSystem InstanceSearchParamsMessagesRole = "system"` - `const InstanceSearchParamsMessagesRoleDeveloper InstanceSearchParamsMessagesRole = "developer"` - `const InstanceSearchParamsMessagesRoleUser InstanceSearchParamsMessagesRole = "user"` - `const InstanceSearchParamsMessagesRoleAssistant InstanceSearchParamsMessagesRole = "assistant"` - `const InstanceSearchParamsMessagesRoleTool InstanceSearchParamsMessagesRole = "tool"` - `AISearchOptions param.Field[InstanceSearchParamsAISearchOptions]` Body param - `Cache InstanceSearchParamsAISearchOptionsCache` - `CacheThreshold InstanceSearchParamsAISearchOptionsCacheCacheThreshold` - `const InstanceSearchParamsAISearchOptionsCacheCacheThresholdSuperStrictMatch InstanceSearchParamsAISearchOptionsCacheCacheThreshold = "super_strict_match"` - `const InstanceSearchParamsAISearchOptionsCacheCacheThresholdCloseEnough InstanceSearchParamsAISearchOptionsCacheCacheThreshold = "close_enough"` - `const InstanceSearchParamsAISearchOptionsCacheCacheThresholdFlexibleFriend InstanceSearchParamsAISearchOptionsCacheCacheThreshold = "flexible_friend"` - `const InstanceSearchParamsAISearchOptionsCacheCacheThresholdAnythingGoes InstanceSearchParamsAISearchOptionsCacheCacheThreshold = "anything_goes"` - `Enabled bool` - `QueryRewrite InstanceSearchParamsAISearchOptionsQueryRewrite` - `Enabled bool` - `Model InstanceSearchParamsAISearchOptionsQueryRewriteModel` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCfMetaLlama3_3_70bInstructFp8Fast InstanceSearchParamsAISearchOptionsQueryRewriteModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCfZaiOrgGlm4_7Flash InstanceSearchParamsAISearchOptionsQueryRewriteModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCfMetaLlama3_1_8bInstructFast InstanceSearchParamsAISearchOptionsQueryRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCfMetaLlama3_1_8bInstructFp8 InstanceSearchParamsAISearchOptionsQueryRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCfMetaLlama4Scout17b16eInstruct InstanceSearchParamsAISearchOptionsQueryRewriteModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCfQwenQwen3_30bA3bFp8 InstanceSearchParamsAISearchOptionsQueryRewriteModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceSearchParamsAISearchOptionsQueryRewriteModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCfMoonshotaiKimiK2Instruct InstanceSearchParamsAISearchOptionsQueryRewriteModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCfGoogleGemma3_12bIt InstanceSearchParamsAISearchOptionsQueryRewriteModel = "@cf/google/gemma-3-12b-it"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelAnthropicClaude3_7Sonnet InstanceSearchParamsAISearchOptionsQueryRewriteModel = "anthropic/claude-3-7-sonnet"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelAnthropicClaudeSonnet4 InstanceSearchParamsAISearchOptionsQueryRewriteModel = "anthropic/claude-sonnet-4"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelAnthropicClaudeOpus4 InstanceSearchParamsAISearchOptionsQueryRewriteModel = "anthropic/claude-opus-4"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelAnthropicClaude3_5Haiku InstanceSearchParamsAISearchOptionsQueryRewriteModel = "anthropic/claude-3-5-haiku"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCerebrasQwen3_235bA22bInstruct InstanceSearchParamsAISearchOptionsQueryRewriteModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCerebrasQwen3_235bA22bThinking InstanceSearchParamsAISearchOptionsQueryRewriteModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCerebrasLlama3_3_70b InstanceSearchParamsAISearchOptionsQueryRewriteModel = "cerebras/llama-3.3-70b"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCerebrasLlama4Maverick17b128eInstruct InstanceSearchParamsAISearchOptionsQueryRewriteModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCerebrasLlama4Scout17b16eInstruct InstanceSearchParamsAISearchOptionsQueryRewriteModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelCerebrasGptOSs120b InstanceSearchParamsAISearchOptionsQueryRewriteModel = "cerebras/gpt-oss-120b"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelGoogleAIStudioGemini2_5Flash InstanceSearchParamsAISearchOptionsQueryRewriteModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelGoogleAIStudioGemini2_5Pro InstanceSearchParamsAISearchOptionsQueryRewriteModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelGrokGrok4 InstanceSearchParamsAISearchOptionsQueryRewriteModel = "grok/grok-4"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelGroqLlama3_3_70bVersatile InstanceSearchParamsAISearchOptionsQueryRewriteModel = "groq/llama-3.3-70b-versatile"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelGroqLlama3_1_8bInstant InstanceSearchParamsAISearchOptionsQueryRewriteModel = "groq/llama-3.1-8b-instant"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelOpenAIGpt5 InstanceSearchParamsAISearchOptionsQueryRewriteModel = "openai/gpt-5"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelOpenAIGpt5Mini InstanceSearchParamsAISearchOptionsQueryRewriteModel = "openai/gpt-5-mini"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelOpenAIGpt5Nano InstanceSearchParamsAISearchOptionsQueryRewriteModel = "openai/gpt-5-nano"` - `const InstanceSearchParamsAISearchOptionsQueryRewriteModelEmpty InstanceSearchParamsAISearchOptionsQueryRewriteModel = ""` - `RewritePrompt string` - `Reranking InstanceSearchParamsAISearchOptionsReranking` - `Enabled bool` - `MatchThreshold float64` - `Model InstanceSearchParamsAISearchOptionsRerankingModel` - `const InstanceSearchParamsAISearchOptionsRerankingModelCfBaaiBgeRerankerBase InstanceSearchParamsAISearchOptionsRerankingModel = "@cf/baai/bge-reranker-base"` - `const InstanceSearchParamsAISearchOptionsRerankingModelEmpty InstanceSearchParamsAISearchOptionsRerankingModel = ""` - `Retrieval InstanceSearchParamsAISearchOptionsRetrieval` - `BoostBy []InstanceSearchParamsAISearchOptionsRetrievalBoostBy` Metadata fields to boost search results by. Overrides the instance-level boost_by config. Direction defaults to 'asc' for numeric/datetime fields, '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 asc/desc directions; text/boolean fields support exists/not_exists. - `Direction InstanceSearchParamsAISearchOptionsRetrievalBoostByDirection` 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. - `const InstanceSearchParamsAISearchOptionsRetrievalBoostByDirectionAsc InstanceSearchParamsAISearchOptionsRetrievalBoostByDirection = "asc"` - `const InstanceSearchParamsAISearchOptionsRetrievalBoostByDirectionDesc InstanceSearchParamsAISearchOptionsRetrievalBoostByDirection = "desc"` - `const InstanceSearchParamsAISearchOptionsRetrievalBoostByDirectionExists InstanceSearchParamsAISearchOptionsRetrievalBoostByDirection = "exists"` - `const InstanceSearchParamsAISearchOptionsRetrievalBoostByDirectionNotExists InstanceSearchParamsAISearchOptionsRetrievalBoostByDirection = "not_exists"` - `ContextExpansion int64` - `Filters map[string, unknown]` - `FusionMethod InstanceSearchParamsAISearchOptionsRetrievalFusionMethod` - `const InstanceSearchParamsAISearchOptionsRetrievalFusionMethodMax InstanceSearchParamsAISearchOptionsRetrievalFusionMethod = "max"` - `const InstanceSearchParamsAISearchOptionsRetrievalFusionMethodRrf InstanceSearchParamsAISearchOptionsRetrievalFusionMethod = "rrf"` - `KeywordMatchMode InstanceSearchParamsAISearchOptionsRetrievalKeywordMatchMode` 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'. Legacy values 'exact_match' and 'fuzzy_match' are accepted and map to 'and' and 'or' respectively. - `const InstanceSearchParamsAISearchOptionsRetrievalKeywordMatchModeAnd InstanceSearchParamsAISearchOptionsRetrievalKeywordMatchMode = "and"` - `const InstanceSearchParamsAISearchOptionsRetrievalKeywordMatchModeOr InstanceSearchParamsAISearchOptionsRetrievalKeywordMatchMode = "or"` - `MatchThreshold float64` - `MaxNumResults int64` - `RetrievalType InstanceSearchParamsAISearchOptionsRetrievalRetrievalType` - `const InstanceSearchParamsAISearchOptionsRetrievalRetrievalTypeVector InstanceSearchParamsAISearchOptionsRetrievalRetrievalType = "vector"` - `const InstanceSearchParamsAISearchOptionsRetrievalRetrievalTypeKeyword InstanceSearchParamsAISearchOptionsRetrievalRetrievalType = "keyword"` - `const InstanceSearchParamsAISearchOptionsRetrievalRetrievalTypeHybrid InstanceSearchParamsAISearchOptionsRetrievalRetrievalType = "hybrid"` - `ReturnOnFailure bool` ### Returns - `type InstanceSearchResponse struct{…}` - `Chunks []InstanceSearchResponseChunk` - `ID string` - `Score float64` - `Text string` - `Type string` - `Item InstanceSearchResponseChunksItem` - `Key string` - `Metadata map[string, unknown]` - `Timestamp float64` - `ScoringDetails InstanceSearchResponseChunksScoringDetails` - `FusionMethod InstanceSearchResponseChunksScoringDetailsFusionMethod` - `const InstanceSearchResponseChunksScoringDetailsFusionMethodRrf InstanceSearchResponseChunksScoringDetailsFusionMethod = "rrf"` - `const InstanceSearchResponseChunksScoringDetailsFusionMethodMax InstanceSearchResponseChunksScoringDetailsFusionMethod = "max"` - `KeywordRank float64` - `KeywordScore float64` - `RerankingScore float64` - `VectorRank float64` - `VectorScore float64` - `SearchQuery string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.AISearch.Instances.Search( context.TODO(), "my-ai-search", ai_search.InstanceSearchParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), Messages: cloudflare.F([]ai_search.InstanceSearchParamsMessage{ai_search.InstanceSearchParamsMessage{ Content: cloudflare.F("content"), Role: cloudflare.F(ai_search.InstanceSearchParamsMessagesRoleSystem), }}), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Chunks) } ``` #### Response ```json { "result": { "chunks": [ { "id": "id", "score": 0, "text": "text", "type": "type", "item": { "key": "key", "metadata": { "foo": "bar" }, "timestamp": 0 }, "scoring_details": { "fusion_method": "rrf", "keyword_rank": 0, "keyword_score": 0, "reranking_score": 0, "vector_rank": 0, "vector_score": 0 } } ], "search_query": "search_query" }, "success": true } ``` ## Chat Completions `client.AISearch.Instances.ChatCompletions(ctx, id, params) (*InstanceChatCompletionsResponse, error)` **post** `/accounts/{account_id}/ai-search/instances/{id}/chat/completions` Performs a chat completion request against an AI Search instance, using indexed content as context for generating responses. ### Parameters - `id string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `params InstanceChatCompletionsParams` - `AccountID param.Field[string]` Path param - `Messages param.Field[[]InstanceChatCompletionsParamsMessage]` Body param - `Content string` - `Role InstanceChatCompletionsParamsMessagesRole` - `const InstanceChatCompletionsParamsMessagesRoleSystem InstanceChatCompletionsParamsMessagesRole = "system"` - `const InstanceChatCompletionsParamsMessagesRoleDeveloper InstanceChatCompletionsParamsMessagesRole = "developer"` - `const InstanceChatCompletionsParamsMessagesRoleUser InstanceChatCompletionsParamsMessagesRole = "user"` - `const InstanceChatCompletionsParamsMessagesRoleAssistant InstanceChatCompletionsParamsMessagesRole = "assistant"` - `const InstanceChatCompletionsParamsMessagesRoleTool InstanceChatCompletionsParamsMessagesRole = "tool"` - `AISearchOptions param.Field[InstanceChatCompletionsParamsAISearchOptions]` Body param - `Cache InstanceChatCompletionsParamsAISearchOptionsCache` - `CacheThreshold InstanceChatCompletionsParamsAISearchOptionsCacheCacheThreshold` - `const InstanceChatCompletionsParamsAISearchOptionsCacheCacheThresholdSuperStrictMatch InstanceChatCompletionsParamsAISearchOptionsCacheCacheThreshold = "super_strict_match"` - `const InstanceChatCompletionsParamsAISearchOptionsCacheCacheThresholdCloseEnough InstanceChatCompletionsParamsAISearchOptionsCacheCacheThreshold = "close_enough"` - `const InstanceChatCompletionsParamsAISearchOptionsCacheCacheThresholdFlexibleFriend InstanceChatCompletionsParamsAISearchOptionsCacheCacheThreshold = "flexible_friend"` - `const InstanceChatCompletionsParamsAISearchOptionsCacheCacheThresholdAnythingGoes InstanceChatCompletionsParamsAISearchOptionsCacheCacheThreshold = "anything_goes"` - `Enabled bool` - `QueryRewrite InstanceChatCompletionsParamsAISearchOptionsQueryRewrite` - `Enabled bool` - `Model InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfMetaLlama3_3_70bInstructFp8Fast InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfZaiOrgGlm4_7Flash InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfMetaLlama3_1_8bInstructFast InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfMetaLlama3_1_8bInstructFp8 InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfMetaLlama4Scout17b16eInstruct InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfQwenQwen3_30bA3bFp8 InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfMoonshotaiKimiK2Instruct InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfGoogleGemma3_12bIt InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/google/gemma-3-12b-it"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelAnthropicClaude3_7Sonnet InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "anthropic/claude-3-7-sonnet"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelAnthropicClaudeSonnet4 InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "anthropic/claude-sonnet-4"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelAnthropicClaudeOpus4 InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "anthropic/claude-opus-4"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelAnthropicClaude3_5Haiku InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "anthropic/claude-3-5-haiku"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCerebrasQwen3_235bA22bInstruct InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCerebrasQwen3_235bA22bThinking InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCerebrasLlama3_3_70b InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "cerebras/llama-3.3-70b"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCerebrasLlama4Maverick17b128eInstruct InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCerebrasLlama4Scout17b16eInstruct InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelCerebrasGptOSs120b InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "cerebras/gpt-oss-120b"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelGoogleAIStudioGemini2_5Flash InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelGoogleAIStudioGemini2_5Pro InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelGrokGrok4 InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "grok/grok-4"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelGroqLlama3_3_70bVersatile InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "groq/llama-3.3-70b-versatile"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelGroqLlama3_1_8bInstant InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "groq/llama-3.1-8b-instant"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelOpenAIGpt5 InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "openai/gpt-5"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelOpenAIGpt5Mini InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "openai/gpt-5-mini"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelOpenAIGpt5Nano InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "openai/gpt-5-nano"` - `const InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModelEmpty InstanceChatCompletionsParamsAISearchOptionsQueryRewriteModel = ""` - `RewritePrompt string` - `Reranking InstanceChatCompletionsParamsAISearchOptionsReranking` - `Enabled bool` - `MatchThreshold float64` - `Model InstanceChatCompletionsParamsAISearchOptionsRerankingModel` - `const InstanceChatCompletionsParamsAISearchOptionsRerankingModelCfBaaiBgeRerankerBase InstanceChatCompletionsParamsAISearchOptionsRerankingModel = "@cf/baai/bge-reranker-base"` - `const InstanceChatCompletionsParamsAISearchOptionsRerankingModelEmpty InstanceChatCompletionsParamsAISearchOptionsRerankingModel = ""` - `Retrieval InstanceChatCompletionsParamsAISearchOptionsRetrieval` - `BoostBy []InstanceChatCompletionsParamsAISearchOptionsRetrievalBoostBy` Metadata fields to boost search results by. Overrides the instance-level boost_by config. Direction defaults to 'asc' for numeric/datetime fields, '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 asc/desc directions; text/boolean fields support exists/not_exists. - `Direction InstanceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirection` 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. - `const InstanceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirectionAsc InstanceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirection = "asc"` - `const InstanceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirectionDesc InstanceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirection = "desc"` - `const InstanceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirectionExists InstanceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirection = "exists"` - `const InstanceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirectionNotExists InstanceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirection = "not_exists"` - `ContextExpansion int64` - `Filters map[string, unknown]` - `FusionMethod InstanceChatCompletionsParamsAISearchOptionsRetrievalFusionMethod` - `const InstanceChatCompletionsParamsAISearchOptionsRetrievalFusionMethodMax InstanceChatCompletionsParamsAISearchOptionsRetrievalFusionMethod = "max"` - `const InstanceChatCompletionsParamsAISearchOptionsRetrievalFusionMethodRrf InstanceChatCompletionsParamsAISearchOptionsRetrievalFusionMethod = "rrf"` - `KeywordMatchMode InstanceChatCompletionsParamsAISearchOptionsRetrievalKeywordMatchMode` 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'. Legacy values 'exact_match' and 'fuzzy_match' are accepted and map to 'and' and 'or' respectively. - `const InstanceChatCompletionsParamsAISearchOptionsRetrievalKeywordMatchModeAnd InstanceChatCompletionsParamsAISearchOptionsRetrievalKeywordMatchMode = "and"` - `const InstanceChatCompletionsParamsAISearchOptionsRetrievalKeywordMatchModeOr InstanceChatCompletionsParamsAISearchOptionsRetrievalKeywordMatchMode = "or"` - `MatchThreshold float64` - `MaxNumResults int64` - `RetrievalType InstanceChatCompletionsParamsAISearchOptionsRetrievalRetrievalType` - `const InstanceChatCompletionsParamsAISearchOptionsRetrievalRetrievalTypeVector InstanceChatCompletionsParamsAISearchOptionsRetrievalRetrievalType = "vector"` - `const InstanceChatCompletionsParamsAISearchOptionsRetrievalRetrievalTypeKeyword InstanceChatCompletionsParamsAISearchOptionsRetrievalRetrievalType = "keyword"` - `const InstanceChatCompletionsParamsAISearchOptionsRetrievalRetrievalTypeHybrid InstanceChatCompletionsParamsAISearchOptionsRetrievalRetrievalType = "hybrid"` - `ReturnOnFailure bool` - `Model param.Field[InstanceChatCompletionsParamsModel]` Body param - `const InstanceChatCompletionsParamsModelCfMetaLlama3_3_70bInstructFp8Fast InstanceChatCompletionsParamsModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const InstanceChatCompletionsParamsModelCfZaiOrgGlm4_7Flash InstanceChatCompletionsParamsModel = "@cf/zai-org/glm-4.7-flash"` - `const InstanceChatCompletionsParamsModelCfMetaLlama3_1_8bInstructFast InstanceChatCompletionsParamsModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const InstanceChatCompletionsParamsModelCfMetaLlama3_1_8bInstructFp8 InstanceChatCompletionsParamsModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const InstanceChatCompletionsParamsModelCfMetaLlama4Scout17b16eInstruct InstanceChatCompletionsParamsModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const InstanceChatCompletionsParamsModelCfQwenQwen3_30bA3bFp8 InstanceChatCompletionsParamsModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const InstanceChatCompletionsParamsModelCfDeepseekAIDeepseekR1DistillQwen32b InstanceChatCompletionsParamsModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const InstanceChatCompletionsParamsModelCfMoonshotaiKimiK2Instruct InstanceChatCompletionsParamsModel = "@cf/moonshotai/kimi-k2-instruct"` - `const InstanceChatCompletionsParamsModelCfGoogleGemma3_12bIt InstanceChatCompletionsParamsModel = "@cf/google/gemma-3-12b-it"` - `const InstanceChatCompletionsParamsModelAnthropicClaude3_7Sonnet InstanceChatCompletionsParamsModel = "anthropic/claude-3-7-sonnet"` - `const InstanceChatCompletionsParamsModelAnthropicClaudeSonnet4 InstanceChatCompletionsParamsModel = "anthropic/claude-sonnet-4"` - `const InstanceChatCompletionsParamsModelAnthropicClaudeOpus4 InstanceChatCompletionsParamsModel = "anthropic/claude-opus-4"` - `const InstanceChatCompletionsParamsModelAnthropicClaude3_5Haiku InstanceChatCompletionsParamsModel = "anthropic/claude-3-5-haiku"` - `const InstanceChatCompletionsParamsModelCerebrasQwen3_235bA22bInstruct InstanceChatCompletionsParamsModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const InstanceChatCompletionsParamsModelCerebrasQwen3_235bA22bThinking InstanceChatCompletionsParamsModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const InstanceChatCompletionsParamsModelCerebrasLlama3_3_70b InstanceChatCompletionsParamsModel = "cerebras/llama-3.3-70b"` - `const InstanceChatCompletionsParamsModelCerebrasLlama4Maverick17b128eInstruct InstanceChatCompletionsParamsModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const InstanceChatCompletionsParamsModelCerebrasLlama4Scout17b16eInstruct InstanceChatCompletionsParamsModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const InstanceChatCompletionsParamsModelCerebrasGptOSs120b InstanceChatCompletionsParamsModel = "cerebras/gpt-oss-120b"` - `const InstanceChatCompletionsParamsModelGoogleAIStudioGemini2_5Flash InstanceChatCompletionsParamsModel = "google-ai-studio/gemini-2.5-flash"` - `const InstanceChatCompletionsParamsModelGoogleAIStudioGemini2_5Pro InstanceChatCompletionsParamsModel = "google-ai-studio/gemini-2.5-pro"` - `const InstanceChatCompletionsParamsModelGrokGrok4 InstanceChatCompletionsParamsModel = "grok/grok-4"` - `const InstanceChatCompletionsParamsModelGroqLlama3_3_70bVersatile InstanceChatCompletionsParamsModel = "groq/llama-3.3-70b-versatile"` - `const InstanceChatCompletionsParamsModelGroqLlama3_1_8bInstant InstanceChatCompletionsParamsModel = "groq/llama-3.1-8b-instant"` - `const InstanceChatCompletionsParamsModelOpenAIGpt5 InstanceChatCompletionsParamsModel = "openai/gpt-5"` - `const InstanceChatCompletionsParamsModelOpenAIGpt5Mini InstanceChatCompletionsParamsModel = "openai/gpt-5-mini"` - `const InstanceChatCompletionsParamsModelOpenAIGpt5Nano InstanceChatCompletionsParamsModel = "openai/gpt-5-nano"` - `const InstanceChatCompletionsParamsModelEmpty InstanceChatCompletionsParamsModel = ""` - `Stream param.Field[bool]` Body param ### Returns - `type InstanceChatCompletionsResponse struct{…}` - `Choices []InstanceChatCompletionsResponseChoice` - `Message InstanceChatCompletionsResponseChoicesMessage` - `Content string` - `Role InstanceChatCompletionsResponseChoicesMessageRole` - `const InstanceChatCompletionsResponseChoicesMessageRoleSystem InstanceChatCompletionsResponseChoicesMessageRole = "system"` - `const InstanceChatCompletionsResponseChoicesMessageRoleDeveloper InstanceChatCompletionsResponseChoicesMessageRole = "developer"` - `const InstanceChatCompletionsResponseChoicesMessageRoleUser InstanceChatCompletionsResponseChoicesMessageRole = "user"` - `const InstanceChatCompletionsResponseChoicesMessageRoleAssistant InstanceChatCompletionsResponseChoicesMessageRole = "assistant"` - `const InstanceChatCompletionsResponseChoicesMessageRoleTool InstanceChatCompletionsResponseChoicesMessageRole = "tool"` - `Index int64` - `Chunks []InstanceChatCompletionsResponseChunk` - `ID string` - `Score float64` - `Text string` - `Type string` - `Item InstanceChatCompletionsResponseChunksItem` - `Key string` - `Metadata map[string, unknown]` - `Timestamp float64` - `ScoringDetails InstanceChatCompletionsResponseChunksScoringDetails` - `FusionMethod InstanceChatCompletionsResponseChunksScoringDetailsFusionMethod` - `const InstanceChatCompletionsResponseChunksScoringDetailsFusionMethodRrf InstanceChatCompletionsResponseChunksScoringDetailsFusionMethod = "rrf"` - `const InstanceChatCompletionsResponseChunksScoringDetailsFusionMethodMax InstanceChatCompletionsResponseChunksScoringDetailsFusionMethod = "max"` - `KeywordRank float64` - `KeywordScore float64` - `RerankingScore float64` - `VectorRank float64` - `VectorScore float64` - `ID string` - `Model string` - `Object string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.AISearch.Instances.ChatCompletions( context.TODO(), "my-ai-search", ai_search.InstanceChatCompletionsParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), Messages: cloudflare.F([]ai_search.InstanceChatCompletionsParamsMessage{ai_search.InstanceChatCompletionsParamsMessage{ Content: cloudflare.F("content"), Role: cloudflare.F(ai_search.InstanceChatCompletionsParamsMessagesRoleSystem), }}), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.ID) } ``` #### Response ```json { "choices": [ { "message": { "content": "content", "role": "system" }, "index": 0 } ], "chunks": [ { "id": "id", "score": 0, "text": "text", "type": "type", "item": { "key": "key", "metadata": { "foo": "bar" }, "timestamp": 0 }, "scoring_details": { "fusion_method": "rrf", "keyword_rank": 0, "keyword_score": 0, "reranking_score": 0, "vector_rank": 0, "vector_score": 0 } } ], "id": "id", "model": "model", "object": "object" } ``` # Items # Jobs ## List Jobs `client.AISearch.Instances.Jobs.List(ctx, id, params) (*V4PagePaginationArray[InstanceJobListResponse], error)` **get** `/accounts/{account_id}/ai-search/instances/{id}/jobs` Lists indexing jobs for an AI Search instance. ### Parameters - `id string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `params InstanceJobListParams` - `AccountID param.Field[string]` Path param - `Page param.Field[int64]` Query param - `PerPage param.Field[int64]` Query param ### Returns - `type InstanceJobListResponse struct{…}` - `ID string` - `Source InstanceJobListResponseSource` - `const InstanceJobListResponseSourceUser InstanceJobListResponseSource = "user"` - `const InstanceJobListResponseSourceSchedule InstanceJobListResponseSource = "schedule"` - `Description string` - `EndReason string` - `EndedAt string` - `LastSeenAt string` - `StartedAt string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.AISearch.Instances.Jobs.List( context.TODO(), "my-ai-search", ai_search.InstanceJobListParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "result": [ { "id": "id", "source": "user", "description": "description", "end_reason": "end_reason", "ended_at": "ended_at", "last_seen_at": "last_seen_at", "started_at": "started_at" } ], "result_info": { "count": 0, "page": 0, "per_page": 0, "total_count": 0 }, "success": true } ``` ## Create new job `client.AISearch.Instances.Jobs.New(ctx, id, params) (*InstanceJobNewResponse, error)` **post** `/accounts/{account_id}/ai-search/instances/{id}/jobs` Creates a new indexing job for an AI Search instance. ### Parameters - `id string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `params InstanceJobNewParams` - `AccountID param.Field[string]` Path param - `Description param.Field[string]` Body param ### Returns - `type InstanceJobNewResponse struct{…}` - `ID string` - `Source InstanceJobNewResponseSource` - `const InstanceJobNewResponseSourceUser InstanceJobNewResponseSource = "user"` - `const InstanceJobNewResponseSourceSchedule InstanceJobNewResponseSource = "schedule"` - `Description string` - `EndReason string` - `EndedAt string` - `LastSeenAt string` - `StartedAt string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) job, err := client.AISearch.Instances.Jobs.New( context.TODO(), "my-ai-search", ai_search.InstanceJobNewParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", job.ID) } ``` #### Response ```json { "result": { "id": "id", "source": "user", "description": "description", "end_reason": "end_reason", "ended_at": "ended_at", "last_seen_at": "last_seen_at", "started_at": "started_at" }, "success": true } ``` ## Get a Job Details `client.AISearch.Instances.Jobs.Get(ctx, id, jobID, query) (*InstanceJobGetResponse, error)` **get** `/accounts/{account_id}/ai-search/instances/{id}/jobs/{job_id}` Retrieves details for a specific AI Search indexing job. ### Parameters - `id string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `jobID string` - `query InstanceJobGetParams` - `AccountID param.Field[string]` ### Returns - `type InstanceJobGetResponse struct{…}` - `ID string` - `Source InstanceJobGetResponseSource` - `const InstanceJobGetResponseSourceUser InstanceJobGetResponseSource = "user"` - `const InstanceJobGetResponseSourceSchedule InstanceJobGetResponseSource = "schedule"` - `Description string` - `EndReason string` - `EndedAt string` - `LastSeenAt string` - `StartedAt string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) job, err := client.AISearch.Instances.Jobs.Get( context.TODO(), "my-ai-search", "job_id", ai_search.InstanceJobGetParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", job.ID) } ``` #### Response ```json { "result": { "id": "id", "source": "user", "description": "description", "end_reason": "end_reason", "ended_at": "ended_at", "last_seen_at": "last_seen_at", "started_at": "started_at" }, "success": true } ``` ## List Job Logs `client.AISearch.Instances.Jobs.Logs(ctx, id, jobID, params) (*[]InstanceJobLogsResponse, error)` **get** `/accounts/{account_id}/ai-search/instances/{id}/jobs/{job_id}/logs` Lists log entries for an AI Search indexing job. ### Parameters - `id string` AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores. - `jobID string` - `params InstanceJobLogsParams` - `AccountID param.Field[string]` Path param - `Page param.Field[int64]` Query param - `PerPage param.Field[int64]` Query param ### Returns - `type InstanceJobLogsResponseEnvelopeResult []InstanceJobLogsResponse` - `ID int64` - `CreatedAt float64` - `Message string` - `MessageType int64` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.AISearch.Instances.Jobs.Logs( context.TODO(), "my-ai-search", "job_id", ai_search.InstanceJobLogsParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response) } ``` #### Response ```json { "result": [ { "id": 0, "created_at": 0, "message": "message", "message_type": 0 } ], "result_info": { "count": 0, "page": 0, "per_page": 0, "total_count": 0 }, "success": true } ``` # Tokens ## List tokens. `client.AISearch.Tokens.List(ctx, params) (*V4PagePaginationArray[TokenListResponse], error)` **get** `/accounts/{account_id}/ai-search/tokens` List tokens. ### Parameters - `params TokenListParams` - `AccountID param.Field[string]` Path param - `OrderBy param.Field[TokenListParamsOrderBy]` Query param: Order By Column Name - `const TokenListParamsOrderByCreatedAt TokenListParamsOrderBy = "created_at"` - `OrderByDirection param.Field[TokenListParamsOrderByDirection]` Query param: Order By Direction - `const TokenListParamsOrderByDirectionAsc TokenListParamsOrderByDirection = "asc"` - `const TokenListParamsOrderByDirectionDesc TokenListParamsOrderByDirection = "desc"` - `Page param.Field[int64]` Query param - `PerPage param.Field[int64]` Query param ### Returns - `type TokenListResponse struct{…}` - `ID string` - `CfAPIID string` - `CreatedAt Time` - `ModifiedAt Time` - `Name string` - `CreatedBy string` - `Enabled bool` - `Legacy bool` - `ModifiedBy string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.AISearch.Tokens.List(context.TODO(), ai_search.TokenListParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "result": [ { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "cf_api_id": "cf_api_id", "created_at": "2019-12-27T18:11:19.117Z", "modified_at": "2019-12-27T18:11:19.117Z", "name": "name", "created_by": "created_by", "enabled": true, "legacy": true, "modified_by": "modified_by" } ], "success": true } ``` ## Create new tokens. `client.AISearch.Tokens.New(ctx, params) (*TokenNewResponse, error)` **post** `/accounts/{account_id}/ai-search/tokens` Create a new tokens. ### Parameters - `params TokenNewParams` - `AccountID param.Field[string]` Path param - `CfAPIID param.Field[string]` Body param - `CfAPIKey param.Field[string]` Body param - `Name param.Field[string]` Body param ### Returns - `type TokenNewResponse struct{…}` - `ID string` - `CfAPIID string` - `CreatedAt Time` - `ModifiedAt Time` - `Name string` - `CreatedBy string` - `Enabled bool` - `Legacy bool` - `ModifiedBy string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) token, err := client.AISearch.Tokens.New(context.TODO(), ai_search.TokenNewParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), CfAPIID: cloudflare.F("cf_api_id"), CfAPIKey: cloudflare.F("cf_api_key"), Name: cloudflare.F("name"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", token.ID) } ``` #### Response ```json { "result": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "cf_api_id": "cf_api_id", "created_at": "2019-12-27T18:11:19.117Z", "modified_at": "2019-12-27T18:11:19.117Z", "name": "name", "created_by": "created_by", "enabled": true, "legacy": true, "modified_by": "modified_by" }, "success": true } ``` ## Read tokens. `client.AISearch.Tokens.Read(ctx, id, query) (*TokenReadResponse, error)` **get** `/accounts/{account_id}/ai-search/tokens/{id}` Read tokens. ### Parameters - `id string` - `query TokenReadParams` - `AccountID param.Field[string]` ### Returns - `type TokenReadResponse struct{…}` - `ID string` - `CfAPIID string` - `CreatedAt Time` - `ModifiedAt Time` - `Name string` - `CreatedBy string` - `Enabled bool` - `Legacy bool` - `ModifiedBy string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.AISearch.Tokens.Read( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", ai_search.TokenReadParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.ID) } ``` #### Response ```json { "result": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "cf_api_id": "cf_api_id", "created_at": "2019-12-27T18:11:19.117Z", "modified_at": "2019-12-27T18:11:19.117Z", "name": "name", "created_by": "created_by", "enabled": true, "legacy": true, "modified_by": "modified_by" }, "success": true } ``` ## Update tokens. `client.AISearch.Tokens.Update(ctx, id, params) (*TokenUpdateResponse, error)` **put** `/accounts/{account_id}/ai-search/tokens/{id}` Update tokens. ### Parameters - `id string` - `params TokenUpdateParams` - `AccountID param.Field[string]` Path param - `CfAPIID param.Field[string]` Body param - `CfAPIKey param.Field[string]` Body param - `Name param.Field[string]` Body param ### Returns - `type TokenUpdateResponse struct{…}` - `ID string` - `CfAPIID string` - `CreatedAt Time` - `ModifiedAt Time` - `Name string` - `CreatedBy string` - `Enabled bool` - `Legacy bool` - `ModifiedBy string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) token, err := client.AISearch.Tokens.Update( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", ai_search.TokenUpdateParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), CfAPIID: cloudflare.F("cf_api_id"), CfAPIKey: cloudflare.F("cf_api_key"), Name: cloudflare.F("name"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", token.ID) } ``` #### Response ```json { "result": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "cf_api_id": "cf_api_id", "created_at": "2019-12-27T18:11:19.117Z", "modified_at": "2019-12-27T18:11:19.117Z", "name": "name", "created_by": "created_by", "enabled": true, "legacy": true, "modified_by": "modified_by" }, "success": true } ``` ## Delete tokens. `client.AISearch.Tokens.Delete(ctx, id, body) (*TokenDeleteResponse, error)` **delete** `/accounts/{account_id}/ai-search/tokens/{id}` Delete tokens. ### Parameters - `id string` - `body TokenDeleteParams` - `AccountID param.Field[string]` ### Returns - `type TokenDeleteResponse struct{…}` - `ID string` - `CfAPIID string` - `CreatedAt Time` - `ModifiedAt Time` - `Name string` - `CreatedBy string` - `Enabled bool` - `Legacy bool` - `ModifiedBy string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) token, err := client.AISearch.Tokens.Delete( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", ai_search.TokenDeleteParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", token.ID) } ``` #### Response ```json { "result": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "cf_api_id": "cf_api_id", "created_at": "2019-12-27T18:11:19.117Z", "modified_at": "2019-12-27T18:11:19.117Z", "name": "name", "created_by": "created_by", "enabled": true, "legacy": true, "modified_by": "modified_by" }, "success": true } ```