لوكلاء AI: ملف markdown لهذه الصفحة — /docs-content-en/search/providers.md فهرس التوثيق — /llms.txt

مقالات التوثيق متاحة حاليًا باللغة الإنجليزية فقط.

Provider list

GET /v1/search/providers

Returns all available web-search engines together with the capability matrix and current pricing for the three modes — basic, advanced, research. The list is filtered by the isEnabled flag — only available providers are returned. Which engine is platform-managed, its price, and the default engine vary from instance to instance. The order is fixed: platform-managed engines first, then BYOK providers in the canonical registry order.

Parameters

No parameters.

Examples

curl — personal key

Terminal
curl -H "X-Api-Key: YOUR_API_KEY" \
  https://vibecode.bitrix24.com/v1/search/providers

curl — OAuth application

Terminal
curl \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  https://vibecode.bitrix24.com/v1/search/providers

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/search/providers', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { providers } = await res.json()
providers.forEach((p) => {
  console.log(`${p.name} (${p.slug}) — basic ${p.pricing.basic} Ꝟ / advanced ${p.pricing.advanced} Ꝟ / research ${p.pricing.research} Ꝟ`)
})

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/search/providers', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { providers } = await res.json()

Response fields

Field Type Description
Fieldproviders Typearray DescriptionArray of enabled providers
Fieldproviders[].slug Typestring DescriptionIdentifier for the provider field in POST /v1/search and POST /v1/research. One of: bitrix-search, tavily, brave, exa, you-com, linkup, perplexity, jina, z-ai
Fieldproviders[].name Typestring DescriptionDisplay name
Fieldproviders[].description Typestring DescriptionShort description
Fieldproviders[].requiresCredential Typeboolean DescriptionWhether a BYOK key is required. For platform-managed engines — false, the platform issues the key
Fieldproviders[].capabilities Typeobject DescriptionProvider capability matrix
Fieldproviders[].capabilities.modes.search.basic Typeboolean DescriptionWhether the basic mode is supported in POST /v1/search
Fieldproviders[].capabilities.modes.search.advanced Typeboolean DescriptionWhether the advanced mode is supported in POST /v1/search
Fieldproviders[].capabilities.modes.research Typeboolean DescriptionWhether POST /v1/research is supported
Fieldproviders[].capabilities.modes.streaming Typeboolean DescriptionWhether the provider emits intermediate SSE events (thinking, tool_call, answer_delta). false — the stream is buffered, only start and done arrive
Fieldproviders[].capabilities.filters.includeDomains Typeboolean DescriptionWhether the include_domains filter is accepted
Fieldproviders[].capabilities.filters.excludeDomains Typeboolean DescriptionWhether the exclude_domains filter is accepted
Fieldproviders[].capabilities.filters.timeRange Typeboolean DescriptionWhether the time_range filter is accepted
Fieldproviders[].capabilities.filters.region Typeboolean DescriptionWhether the regional filter is accepted
Fieldproviders[].capabilities.filters.safesearch Typeboolean DescriptionWhether the safe-search filter is accepted
Fieldproviders[].capabilities.output.synthesizedAnswer Typeboolean DescriptionWhether the provider returns a synthesized answer in the answer field by default
Fieldproviders[].capabilities.output.citations Typeboolean DescriptionWhether it places citation markers [N] in the synthesized answer
Fieldproviders[].capabilities.output.relevanceScore Typeboolean DescriptionWhether it fills the score field in results
Fieldproviders[].capabilities.output.publishedDate Typeboolean DescriptionWhether it fills the publishedDate field in results
Fieldproviders[].capabilities.output.fullContent Typeboolean DescriptionWhether it returns the full page text in results[].rawContent when include_raw_content: true
Fieldproviders[].capabilities.output.followUpQuestions Typeboolean DescriptionWhether it returns follow-up questions in research mode
Fieldproviders[].capabilities.verticals.news Typeboolean DescriptionWhether it supports news mode via the topic: "news" parameter. For engines that support it, it populates publishedDate for news results
Fieldproviders[].capabilities.verticals.images Typeboolean DescriptionWhether it supports requesting images via include_images: true. The links arrive in the top-level images array
Fieldproviders[].capabilities.algorithm Typestring DescriptionSearch algorithm: keyword, neural, or hybrid
Fieldproviders[].capabilities.liveData Typeboolean DescriptionWhether the provider performs a fresh web crawl on each request
Fieldproviders[].capabilities.summarizer Typeboolean DescriptionWhether a separate on-demand summarizer is available. For brave the synthesized answer is produced only in advanced mode via this flag, otherwise answer: null
Fieldproviders[].pricing.basic Typenumber DescriptionCost of a single basic-mode request in Ꝟ. 0 for BYOK providers
Fieldproviders[].pricing.advanced Typenumber DescriptionCost of a single advanced-mode request in Ꝟ
Fieldproviders[].pricing.research Typenumber DescriptionCost of a single research-mode request in Ꝟ. 0 for all BYOK providers with research support

Response example

JSON
{
  "providers": [
    {
      "slug": "bitrix-search",
      "name": "Bitrix24 AI Search",
      "description": "Platform AI search with agentic mode",
      "requiresCredential": false,
      "capabilities": {
        "modes": {
          "search": { "basic": true, "advanced": true },
          "research": true,
          "streaming": false
        },
        "filters": { "includeDomains": true, "excludeDomains": true, "timeRange": true, "region": false, "safesearch": false },
        "output": { "synthesizedAnswer": true, "citations": false, "relevanceScore": true, "publishedDate": true, "fullContent": true, "followUpQuestions": false },
        "verticals": { "news": true, "images": true },
        "algorithm": "hybrid",
        "liveData": false,
        "summarizer": false
      },
      "pricing": { "basic": 2, "advanced": 5, "research": 0 }
    },
    {
      "slug": "tavily",
      "name": "Tavily",
      "description": "Tavily web search API — English-language, BYOK",
      "requiresCredential": true,
      "capabilities": {
        "modes": {
          "search": { "basic": true, "advanced": true },
          "research": true,
          "streaming": false
        },
        "filters": { "includeDomains": true, "excludeDomains": true, "timeRange": true, "region": false, "safesearch": false },
        "output": { "synthesizedAnswer": true, "citations": false, "relevanceScore": true, "publishedDate": true, "fullContent": true, "followUpQuestions": false },
        "verticals": { "news": true, "images": true },
        "algorithm": "hybrid",
        "liveData": false,
        "summarizer": false
      },
      "pricing": { "basic": 0, "advanced": 0, "research": 0 }
    },
    {
      "slug": "jina",
      "name": "Jina DeepSearch",
      "description": "Research-only iterative search/read/think loop",
      "requiresCredential": true,
      "capabilities": {
        "modes": {
          "search": { "basic": false, "advanced": false },
          "research": true,
          "streaming": false
        },
        "filters": { "includeDomains": true, "excludeDomains": true, "timeRange": false, "region": false, "safesearch": false },
        "output": { "synthesizedAnswer": true, "citations": true, "relevanceScore": false, "publishedDate": true, "fullContent": true, "followUpQuestions": false },
        "verticals": { "news": false, "images": false },
        "algorithm": "hybrid",
        "liveData": false,
        "summarizer": false
      },
      "pricing": { "basic": 0, "advanced": 0, "research": 0 }
    }
  ]
}

Three representative providers are shown: the platform-managed bitrix-search, the universal BYOK tavily, and research-only jina. The platform engine's capabilities and pricing values depend on the instance — shown here for illustration. The actual ones are returned by this same endpoint. Which engines are platform-managed and which is the default is also determined by the instance configuration. The full list of slugs — bitrix-search, tavily, brave, exa, you-com, linkup, perplexity, jina, z-ai.

Error response example

403 — scope missing:

JSON
{
  "error": {
    "code": "SCOPE_DENIED",
    "message": "vibe:search scope required."
  }
}

Errors

HTTP Code Description
HTTP401 CodeMISSING_API_KEY DescriptionThe X-Api-Key header is missing
HTTP401 CodeINVALID_API_KEY DescriptionThe key is not recognized — no such key exists on the platform
HTTP403 CodeSCOPE_DENIED DescriptionThe key lacks the vibe:search scope
HTTP429 CodeRATE_LIMITED DescriptionThe overall request limit is exceeded
HTTP500 CodeINTERNAL_ERROR DescriptionInternal server error

The full list of common API errors — Errors.

Known specifics

Canonical provider sequence. The order of elements in the array does not depend on which day a provider was added to the platform. Platform-managed engines come first, then BYOK in the fixed registry order. For the UI this allows rendering tiles without additional sorting.

A provider drops out of the list when it becomes unavailable. A client with a cached value will keep passing it in provider, but POST /v1/search and POST /v1/research will return 404 PROVIDER_NOT_FOUND — a signal to re-read the list via this endpoint.

pricing shows only the charge in Vibe credits. The actual cost at a BYOK provider is billed from your own account at the provider's rate and is not reflected in this table. The pricing.research field is zero for all BYOK providers with research support. The platform engine's pricing (pricing.basic / pricing.advanced / pricing.research) varies from instance to instance — rely on the values from this endpoint's response, not on fixed numbers.

The modes.streaming capability reflects the adapter's behavior, not the provider's. On the provider side a native SSE stream with progressive events may work, but if the Vibecode adapter assembles the stream into a single block and returns only start + done, the streaming flag will be false. Which engines deliver the progressive stream with thinking, tool_call, answer_delta is shown by the modes.streaming flag in this endpoint's response — for the platform engine it depends on the instance.

The "has a synthesized answer" marker is output.synthesizedAnswer. For brave the field is false, and the optional summarizer is signaled by a separate summarizer: true flag. This means: by default answer arrives as null, but with search_depth: "advanced" Brave mixes the summarizer into the response.

See also