> ## Documentation Index
> Fetch the complete documentation index at: https://algolia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Unpublish Agent

> Unpublish the specified agent.

<Callout icon="flask-conical" color="#14b8a6">
  This is a **beta feature** according to [Algolia's Terms of Service ("Beta Services")](https://www.algolia.com/policies/terms/).
</Callout>

**Required ACL:** `editSettings`


## OpenAPI

````yaml specs/agent-studio.yml post /1/agents/{agentId}/unpublish
openapi: 3.1.0
info:
  title: Agent Studio API
  description: >
    The Agent Studio API lets you build and operate generative AI agents that
    use Algolia data, tools, and your chosen LLM provider.


    Use it to create, configure, publish, and update agents, then generate chat
    completions grounded in live data from your Algolia indices. You can manage
    LLM providers, Agent Studio tools, conversations, feedback, secret keys,
    user data, caching, and application settings for your AI experiences.


    ## Client libraries


    Use Algolia's API clients and libraries to reliably integrate Algolia's APIs
    with your apps.


    For more information, see [Algolia's
    ecosystem](https://www.algolia.com/doc/libraries).


    ## Base URL


    Base URL for the Agent Studio API:


    - `https://{APPLICATION_ID}.algolia.net/agent-studio`


    **All requests must use HTTPS.**


    ## Authentication


    Add these headers to authenticate requests:


    - `x-algolia-application-id`. Your Algolia application ID.

    - `x-algolia-api-key`. An API key with the necessary permissions to make the
    request.
      The required access control list (ACL) to make a request is listed in each endpoint's reference.

    You can find your application ID and API key in the [Algolia
    dashboard](https://dashboard.algolia.com/account/api-keys).


    ## Request format


    Request bodies must be JSON objects.


    ## Response status and errors


    The Agent Studio API returns JSON responses. Since JSON doesn't guarantee
    any specific ordering, don't rely on the order of attributes in the API
    response.


    Successful responses return `2xx` statuses. Client errors return `4xx`
    statuses. Server errors return `5xx` statuses.

    Error responses have a `message` property with more information.


    ## Version


    The current version of the Agent Studio API is version 1, indicated by the
    `/1/` in each endpoint's URL.
  version: 0.1.0
servers:
  - url: https://{APPLICATION_ID}.algolia.net/agent-studio
    description: Agent Studio API.
    variables:
      APPLICATION_ID:
        default: EXAMPLE
        description: Your Algolia application ID.
security:
  - appId: []
    apiKey: []
tags:
  - name: Agents
    description: Manage your agents.
  - name: Allowed Domains
    description: Restrict where an agent's API key may be used.
  - name: Completions
    description: Generate completions.
  - name: Configurations
    description: Manage Agent Studio related application configurations.
  - name: Conversations
    description: View, export, and delete conversation history.
  - name: Feedback
    description: Capture user feedback on agent responses.
  - name: Internal
    description: Endpoints that are needed for internal or integration logic.
  - name: Providers
    description: Manage your LLM providers.
  - name: Secret Keys
    description: Manage secret keys used to authenticate requests.
  - name: User Data
    description: Manage end-user data associated with conversations.
paths:
  /1/agents/{agentId}/unpublish:
    post:
      tags:
        - Agents
      summary: Unpublish Agent
      description: Unpublish the specified agent.
      operationId: unpublishAgent
      parameters:
        - name: agentId
          in: path
          required: true
          schema:
            type: string
            title: agentId
          description: The agentId.
      responses:
        '200':
          description: Successful Response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentWithVersionResponse'
        '422':
          description: Validation Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
        - lang: csharp
          label: C#
          source: >-
            // Initialize the client

            var client = new AgentStudioClient(
              new AgentStudioConfig("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")
            );


            // Call the API

            var response = await
            client.UnpublishAgentAsync("76710f1b-8231-42e5-b0d1-f43aac618e15");


            // print the response

            Console.WriteLine(response);
        - lang: dart
          label: Dart
          source: |-
            // Initialize the client
            final client = AgentStudioClient(
                appId: 'ALGOLIA_APPLICATION_ID', apiKey: 'ALGOLIA_API_KEY');

            // Call the API
            final response = await client.unpublishAgent(
              agentId: "76710f1b-8231-42e5-b0d1-f43aac618e15",
            );

            // print the response
            print(response);
        - lang: go
          label: Go
          source: >-
            // Initialize the client

            client, err := agentStudio.NewClient("ALGOLIA_APPLICATION_ID",
            "ALGOLIA_API_KEY")

            if err != nil {
              // The client can fail to initialize if you pass an invalid parameter.
              panic(err)
            }


            // Call the API

            response, err :=
            client.UnpublishAgent(client.NewApiUnpublishAgentRequest(
              "76710f1b-8231-42e5-b0d1-f43aac618e15"))
            if err != nil {
              // handle the eventual error
              panic(err)
            }



            // print the response

            print(response)
        - lang: java
          label: Java
          source: >-
            // Initialize the client

            AgentStudioClient client = new
            AgentStudioClient("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY");


            // Call the API

            AgentWithVersionResponse response =
            client.unpublishAgent("76710f1b-8231-42e5-b0d1-f43aac618e15");


            // print the response

            System.out.println(response);
        - lang: javascript
          label: JavaScript
          source: >-
            // Initialize the client

            const client = agentStudioClient('ALGOLIA_APPLICATION_ID',
            'ALGOLIA_API_KEY');


            // Call the API

            const response = await client.unpublishAgent({ agentId:
            '76710f1b-8231-42e5-b0d1-f43aac618e15' });



            // print the response

            console.log(response);
        - lang: kotlin
          label: Kotlin
          source: >-
            // Initialize the client

            val client = AgentStudioClient(appId = "ALGOLIA_APPLICATION_ID",
            apiKey = "ALGOLIA_API_KEY")


            // Call the API

            var response = client.unpublishAgent(agentId =
            "76710f1b-8231-42e5-b0d1-f43aac618e15")



            // print the response

            println(response)
        - lang: php
          label: PHP
          source: >-
            // Initialize the client

            $client = AgentStudioClient::create('ALGOLIA_APPLICATION_ID',
            'ALGOLIA_API_KEY');


            // Call the API

            $response = $client->unpublishAgent(
                '76710f1b-8231-42e5-b0d1-f43aac618e15',
            );



            // print the response

            var_dump($response);
        - lang: python
          label: Python
          source: >-
            # Initialize the client

            # In an asynchronous context, you can use AgentStudioClient instead,
            which exposes the exact same methods.

            client = AgentStudioClientSync("ALGOLIA_APPLICATION_ID",
            "ALGOLIA_API_KEY")


            # Call the API

            response = client.unpublish_agent(
                agent_id="76710f1b-8231-42e5-b0d1-f43aac618e15",
            )



            # print the response

            print(response)
        - lang: ruby
          label: Ruby
          source: >-
            # Initialize the client

            client = Algolia::AgentStudioClient.create("ALGOLIA_APPLICATION_ID",
            "ALGOLIA_API_KEY")


            # Call the API

            response =
            client.unpublish_agent("76710f1b-8231-42e5-b0d1-f43aac618e15")



            # print the response

            puts(response)
        - lang: scala
          label: Scala
          source: >-
            // Initialize the client

            val client = AgentStudioClient(appId = "ALGOLIA_APPLICATION_ID",
            apiKey = "ALGOLIA_API_KEY")


            // Call the API

            val response = Await.result(
              client.unpublishAgent(
                agentId = "76710f1b-8231-42e5-b0d1-f43aac618e15"
              ),
              Duration(100, "sec")
            )


            // print the response

            println(response)
        - lang: swift
          label: Swift
          source: >-
            // Initialize the client

            let client = try AgentStudioClient(appID: "ALGOLIA_APPLICATION_ID",
            apiKey: "ALGOLIA_API_KEY")


            // Call the API

            let response = try await client.unpublishAgent(agentId:
            "76710f1b-8231-42e5-b0d1-f43aac618e15")


            // print the response

            print(response)
        - lang: cURL
          label: curl
          source: |-
            curl --request POST \
              --url https://example.algolia.net/agent-studio/1/agents/lorem/unpublish \
              --header 'accept: application/json' \
              --header 'x-algolia-api-key: ALGOLIA_API_KEY' \
              --header 'x-algolia-application-id: ALGOLIA_APPLICATION_ID'
components:
  schemas:
    AgentWithVersionResponse:
      properties:
        config:
          additionalProperties: true
          type: object
          title: config
        createdAt:
          type: string
          title: createdat
        description:
          oneOf:
            - type: string
            - type: 'null'
          title: description
        id:
          type: string
          title: id
        instructions:
          type: string
          title: instructions
        lastUsedAt:
          oneOf:
            - type: string
            - type: 'null'
          title: lastusedat
        name:
          type: string
          title: name
        providerId:
          oneOf:
            - type: string
            - type: 'null'
          title: providerid
        status:
          $ref: '#/components/schemas/AgentStatus'
        updatedAt:
          oneOf:
            - type: string
            - type: 'null'
          title: updatedat
        model:
          oneOf:
            - type: string
            - type: 'null'
          title: model
        systemPrompt:
          oneOf:
            - type: string
            - type: 'null'
          title: systemprompt
        templateType:
          oneOf:
            - type: string
            - type: 'null'
          title: templatetype
        tools:
          items:
            $ref: '#/components/schemas/ToolConfigInput'
          type: array
          title: tools
      type: object
      required:
        - id
        - name
        - description
        - status
        - providerId
        - instructions
        - config
        - createdAt
        - updatedAt
        - lastUsedAt
      title: agentWithVersionResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: detail
      type: object
      title: hTTPValidationError
    AgentStatus:
      type: string
      enum:
        - draft
        - published
    ToolConfigInput:
      oneOf:
        - $ref: '#/components/schemas/ClientSideToolConfig'
        - $ref: '#/components/schemas/AlgoliaSearchToolConfig'
        - $ref: '#/components/schemas/AlgoliaRecommendToolConfig-Input'
        - $ref: '#/components/schemas/AlgoliaDisplayResultsToolConfig'
        - $ref: '#/components/schemas/McpServerToolConfig'
        - $ref: '#/components/schemas/UnknownToolConfig'
      discriminator:
        propertyName: type
        mapping:
          algolia_display_results:
            $ref: '#/components/schemas/AlgoliaDisplayResultsToolConfig'
          algolia_recommend:
            $ref: '#/components/schemas/AlgoliaRecommendToolConfig-Input'
          algolia_search_index:
            $ref: '#/components/schemas/AlgoliaSearchToolConfig'
          client_side:
            $ref: '#/components/schemas/ClientSideToolConfig'
          mcp_tools:
            $ref: '#/components/schemas/McpServerToolConfig'
          unknown:
            $ref: '#/components/schemas/UnknownToolConfig'
    ValidationError:
      properties:
        loc:
          items:
            $ref: '#/components/schemas/LocationItemUnion'
          type: array
          title: location
        msg:
          type: string
          title: message
        type:
          type: string
          title: errorType
        ctx:
          type: object
          title: context
        input:
          title: input
      type: object
      required:
        - loc
        - msg
        - type
      title: validationError
    ClientSideToolConfig:
      properties:
        description:
          type: string
          maxLength: 200
          minLength: 1
          title: description
        inputSchema:
          $ref: '#/components/schemas/ClientToolsArgsSchema'
        name:
          type: string
          maxLength: 32
          minLength: 3
          title: name
        type:
          type: string
          const: client_side
          title: type
          default: client_side
      type: object
      required:
        - type
        - name
        - description
        - inputSchema
      title: clientSideToolConfig
    AlgoliaSearchToolConfig:
      properties:
        indices:
          items:
            $ref: '#/components/schemas/AlgoliaSearchToolIndexConfig'
          type: array
          title: indices
        name:
          type: string
          maxLength: 32
          minLength: 3
          title: name
        type:
          type: string
          const: algolia_search_index
          title: type
          default: algolia_search_index
      type: object
      required:
        - type
        - name
        - indices
      title: algoliaSearchToolConfig
    AlgoliaRecommendToolConfig-Input:
      properties:
        name:
          type: string
          maxLength: 32
          minLength: 3
          title: name
        type:
          type: string
          const: algolia_recommend
          title: type
          default: algolia_recommend
        allowedConfigs:
          items:
            $ref: '#/components/schemas/AlgoliaRecommendToolIndexConfig'
          type: array
          title: allowedconfigs
          default: []
        predefinedRecommendParameters:
          additionalProperties: true
          type: object
          title: predefinedrecommendparameters
      type: object
      required:
        - type
        - name
      title: algoliaRecommendToolConfig
      description: |-
        Configuration for the Algolia Recommend tool.
        Allows specifying recommend models and related parameters.
    AlgoliaDisplayResultsToolConfig:
      properties:
        type:
          type: string
          const: algolia_display_results
          title: type
          default: algolia_display_results
        maxGroups:
          type: integer
          minimum: 1
          title: maxgroups
          default: 3
        maxResultsPerGroup:
          type: integer
          minimum: 1
          title: maxresultspergroup
          default: 6
        minGroups:
          type: integer
          minimum: 1
          title: mingroups
          default: 1
        minResultsPerGroup:
          type: integer
          minimum: 1
          title: minresultspergroup
          default: 3
        name:
          type: string
          const: algolia_display_results
          title: name
          default: algolia_display_results
      type: object
      title: algoliaDisplayResultsToolConfig
      description: Configuration for the algolia_display_results tool.
      required:
        - type
    McpServerToolConfig:
      properties:
        headers:
          additionalProperties:
            type: string
          type: object
          title: headers
        name:
          type: string
          maxLength: 32
          minLength: 3
          title: name
        type:
          type: string
          const: mcp_tools
          title: type
          default: mcp_tools
        url:
          type: string
          maxLength: 512
          minLength: 1
          title: url
        allowedTools:
          $ref: '#/components/schemas/AllowedToolsUnion'
        id:
          oneOf:
            - type: string
            - type: 'null'
          title: id
          description: Stable unique identifier for this MCP tool.
        transport:
          type: string
          const: streamable_http
          title: transport
          default: streamable_http
      type: object
      required:
        - type
        - url
        - headers
        - name
      title: mcpServerToolConfig
    UnknownToolConfig:
      properties:
        name:
          type: string
          maxLength: 32
          minLength: 3
          title: name
        type:
          type: string
          const: unknown
          title: type
          default: unknown
      additionalProperties: true
      type: object
      required:
        - type
        - name
      title: unknownToolConfig
      description: >-
        Exists only to ensure that when you change branch from toolX to
        feat/toolY, your config stays valid.
    LocationItemUnion:
      oneOf:
        - type: string
        - type: integer
    ClientToolsArgsSchema:
      properties:
        properties:
          additionalProperties: true
          type: object
          title: properties
        required:
          items:
            type: string
          type: array
          title: required
        type:
          type: string
          const: object
          title: type
          default: object
      type: object
      title: clientToolsArgsSchema
    AlgoliaSearchToolIndexConfig:
      properties:
        description:
          type: string
          maxLength: 3000
          minLength: 1
          title: description
        index:
          type: string
          maxLength: 100
          minLength: 1
          title: index
        enhancedDescription:
          type: string
          title: enhanceddescription
          default: ''
        searchControls:
          oneOf:
            - $ref: '#/components/schemas/IndexSearchParameters'
            - type: 'null'
        searchParameters:
          oneOf:
            - $ref: '#/components/schemas/SearchParameters'
            - type: 'null'
      type: object
      required:
        - index
        - description
      title: algoliaSearchToolIndexConfig
    AlgoliaRecommendToolIndexConfig:
      properties:
        index:
          type: string
          maxLength: 100
          minLength: 1
          title: index
        modelName:
          type: string
          maxLength: 100
          minLength: 1
          title: modelname
        description:
          type: string
          title: description
          default: ''
      type: object
      required:
        - index
        - modelName
      title: algoliaRecommendToolIndexConfig
    AllowedToolsUnion:
      oneOf:
        - additionalProperties:
            $ref: '#/components/schemas/ToolConfig'
          type: object
        - type: 'null'
    IndexSearchParameters:
      properties:
        attributesToRetrieve:
          $ref: '#/components/schemas/StringArrayParam'
        custom:
          oneOf:
            - type: object
              additionalProperties: true
            - type: 'null'
          title: custom
        facets:
          oneOf:
            - $ref: '#/components/schemas/FacetsParam'
            - type: 'null'
        hitsPerPage:
          $ref: '#/components/schemas/NumberParam'
        page:
          $ref: '#/components/schemas/NumberParam'
        query:
          oneOf:
            - $ref: '#/components/schemas/TextParam'
            - type: 'null'
        responseFields:
          $ref: '#/components/schemas/StringArrayParam'
      type: object
      title: indexSearchParameters
      description: >-
        Structured search parameters configuration for an Algolia index.


        Each parameter controls whether it is exposed to the LLM, its default
        value,

        optional constraints, and merge behavior.
    SearchParameters:
      properties:
        advancedSyntax:
          oneOf:
            - type: boolean
            - type: 'null'
          title: advancedsyntax
        advancedSyntaxFeatures:
          $ref: '#/components/schemas/AdvancedSyntaxFeaturesUnion'
        allowTyposOnNumericTokens:
          oneOf:
            - type: boolean
            - type: 'null'
          title: allowtyposonnumerictokens
        alternativesAsExact:
          $ref: '#/components/schemas/AlternativesAsExactUnion'
        analytics:
          oneOf:
            - type: boolean
            - type: 'null'
          title: analytics
        analyticsTags:
          oneOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: analyticstags
        aroundLatLng:
          oneOf:
            - type: string
            - type: 'null'
          title: aroundlatlng
        aroundLatLngViaIp:
          oneOf:
            - type: boolean
            - type: 'null'
          title: aroundlatlngviaip
        aroundPrecision:
          $ref: '#/components/schemas/AroundPrecisionUnion'
        aroundRadius:
          $ref: '#/components/schemas/AroundRadiusUnion'
        attributeCriteriaComputedByMinProximity:
          oneOf:
            - type: boolean
            - type: 'null'
          title: attributecriteriacomputedbyminproximity
        attributesToRetrieve:
          oneOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: attributestoretrieve
        attributesToSnippet:
          oneOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: attributestosnippet
        clickAnalytics:
          oneOf:
            - type: boolean
            - type: 'null'
          title: clickanalytics
        decompoundQuery:
          oneOf:
            - type: boolean
            - type: 'null'
          title: decompoundquery
        disableExactOnAttributes:
          oneOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: disableexactonattributes
        disableTypoToleranceOnAttributes:
          oneOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: disabletypotoleranceonattributes
        distinct:
          $ref: '#/components/schemas/DistinctUnion'
        enableAbTest:
          oneOf:
            - type: boolean
            - type: 'null'
          title: enableabtest
        enablePersonalization:
          oneOf:
            - type: boolean
            - type: 'null'
          title: enablepersonalization
        enableReRanking:
          oneOf:
            - type: boolean
            - type: 'null'
          title: enablereranking
        enableRules:
          oneOf:
            - type: boolean
            - type: 'null'
          title: enablerules
        exactOnSingleWordQuery:
          oneOf:
            - $ref: '#/components/schemas/ExactOnSingleWordQuery'
            - type: 'null'
        explain:
          oneOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: explain
        facetFilters:
          oneOf:
            - $ref: '#/components/schemas/FacetFiltersUnion'
            - type: 'null'
        facetingAfterDistinct:
          oneOf:
            - type: boolean
            - type: 'null'
          title: facetingafterdistinct
        facets:
          $ref: '#/components/schemas/FacetsUnion'
        filters:
          oneOf:
            - type: string
            - type: 'null'
          title: filters
        getRankingInfo:
          oneOf:
            - type: boolean
            - type: 'null'
          title: getrankinginfo
        hitsPerPage:
          oneOf:
            - type: integer
            - type: 'null'
          title: hitsperpage
        ignorePlurals:
          $ref: '#/components/schemas/IgnorePluralsUnion'
        insideBoundingBox:
          $ref: '#/components/schemas/InsideBoundingBoxUnion'
        insidePolygon:
          $ref: '#/components/schemas/InsidePolygonUnion'
        length:
          oneOf:
            - type: integer
            - type: 'null'
          title: length
        maxFacetHits:
          oneOf:
            - type: integer
            - type: 'null'
          title: maxfacethits
        maxValuesPerFacet:
          oneOf:
            - type: integer
            - type: 'null'
          title: maxvaluesperfacet
        minimumAroundRadius:
          oneOf:
            - type: integer
            - type: 'null'
          title: minimumaroundradius
        minProximity:
          oneOf:
            - type: integer
            - type: 'null'
          title: minproximity
        minWordSizeFor1Typo:
          oneOf:
            - type: integer
            - type: 'null'
          title: minwordsizefor1Typo
        minWordSizeFor2Typos:
          oneOf:
            - type: integer
            - type: 'null'
          title: minwordsizefor2Typos
        naturalLanguages:
          $ref: '#/components/schemas/NaturalLanguagesUnion'
        numericFilters:
          $ref: '#/components/schemas/NumericFiltersUnion'
        offset:
          oneOf:
            - type: integer
            - type: 'null'
          title: offset
        optionalFilters:
          $ref: '#/components/schemas/OptionalFiltersUnion'
        optionalWords:
          $ref: '#/components/schemas/OptionalWordsUnion'
        page:
          oneOf:
            - type: integer
            - type: 'null'
          title: page
        percentileComputation:
          oneOf:
            - type: boolean
            - type: 'null'
          title: percentilecomputation
        personalizationImpact:
          oneOf:
            - type: integer
            - type: 'null'
          title: personalizationimpact
        queryLanguages:
          $ref: '#/components/schemas/QueryLanguagesUnion'
        queryType:
          oneOf:
            - $ref: '#/components/schemas/QueryType'
            - type: 'null'
        relevancyStrictness:
          oneOf:
            - type: integer
            - type: 'null'
          title: relevancystrictness
        removeStopWords:
          $ref: '#/components/schemas/RemoveStopWordsUnion'
        removeWordsIfNoResults:
          oneOf:
            - $ref: '#/components/schemas/RemoveWordsIfNoResults'
            - type: 'null'
        replaceSynonymsInHighlight:
          oneOf:
            - type: boolean
            - type: 'null'
          title: replacesynonymsinhighlight
        reRankingApplyFilter:
          $ref: '#/components/schemas/ReRankingApplyFilterUnion'
        restrictHighlightAndSnippetArrays:
          oneOf:
            - type: boolean
            - type: 'null'
          title: restricthighlightandsnippetarrays
        restrictSearchableAttributes:
          oneOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: restrictsearchableattributes
        ruleContexts:
          oneOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: rulecontexts
        similarQuery:
          oneOf:
            - type: string
            - type: 'null'
          title: similarquery
        snippetEllipsisText:
          oneOf:
            - type: string
            - type: 'null'
          title: snippetellipsistext
        sortFacetValuesBy:
          oneOf:
            - type: string
            - type: 'null'
          title: sortfacetvaluesby
        sumOrFiltersScores:
          oneOf:
            - type: boolean
            - type: 'null'
          title: sumorfiltersscores
        synonyms:
          oneOf:
            - type: boolean
            - type: 'null'
          title: synonyms
        tagFilters:
          $ref: '#/components/schemas/TagFiltersUnion'
        typoTolerance:
          $ref: '#/components/schemas/TypoToleranceUnion'
        userToken:
          oneOf:
            - type: string
            - type: 'null'
          title: usertoken
      type: object
      title: searchParameters
      description: >-
        Algolia Search API parameters that can be predefined for the search
        tool.

        Reference:
        https://www.algolia.com/doc/api-reference/search-api-parameters/


        The parameters that seemed irrelevant for the search tool have been
        commented out.

        Uses types from algoliasearch.search.models for better type safety.
    ToolConfig:
      oneOf:
        - $ref: '#/components/schemas/McpToolConfig'
        - type: boolean
    StringArrayParam:
      properties:
        exposed:
          type: boolean
          title: exposed
        constraint:
          oneOf:
            - $ref: '#/components/schemas/StringArrayParamConstraint'
            - type: 'null'
        default:
          oneOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: default
        merge:
          oneOf:
            - type: boolean
            - type: 'null'
          title: merge
      type: object
      required:
        - exposed
      title: stringArrayParam
      description: >-
        A string array search parameter with exposure control, constraints, and
        merge behavior.
    FacetsParam:
      properties:
        default:
          oneOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: default
        exposed:
          type: boolean
          const: false
          title: exposed
          default: false
      type: object
      title: facetsParam
      description: A facets parameter that is always hidden from the LLM.
    NumberParam:
      properties:
        exposed:
          type: boolean
          title: exposed
        constraint:
          oneOf:
            - $ref: '#/components/schemas/NumberParamConstraint'
            - type: 'null'
        default:
          oneOf:
            - type: integer
            - type: 'null'
          title: default
      type: object
      required:
        - exposed
      title: numberParam
      description: >-
        A number search parameter with exposure control and optional
        constraints.
    TextParam:
      properties:
        exposed:
          type: boolean
          title: exposed
        default:
          oneOf:
            - type: string
            - type: 'null'
          title: default
      type: object
      required:
        - exposed
      title: textParam
      description: A text search parameter with exposure control.
    AdvancedSyntaxFeaturesUnion:
      oneOf:
        - items:
            $ref: '#/components/schemas/AdvancedSyntaxFeatures'
          type: array
        - type: 'null'
    AlternativesAsExactUnion:
      oneOf:
        - items:
            $ref: '#/components/schemas/AlternativesAsExact'
          type: array
        - type: 'null'
    AroundPrecisionUnion:
      oneOf:
        - type: integer
        - items:
            additionalProperties:
              type: integer
            type: object
          type: array
        - type: 'null'
    AroundRadiusUnion:
      oneOf:
        - type: integer
        - type: string
        - type: 'null'
    DistinctUnion:
      oneOf:
        - type: boolean
        - type: integer
        - type: 'null'
    ExactOnSingleWordQuery:
      type: string
      enum:
        - attribute
        - none
        - word
      title: exactOnSingleWordQuery
      description: >-
        Determines how the [Exact ranking
        criterion](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/adjust-exact-settings/#turn-off-exact-for-some-attributes)
        is computed when the search query has only one word.  - `attribute`.  
        The Exact ranking criterion is 1 if the query word and attribute value
        are the same.   For example, a search for "road" will match the value
        "road", but not "road trip".  - `none`.   The Exact ranking criterion is
        ignored on single-word searches.  - `word`.   The Exact ranking
        criterion is 1 if the query word is found in the attribute value.   The
        query word must have at least 3 characters and must not be a stop
        word.   Only exact matches will be highlighted,   partial and prefix
        matches won't.
    FacetFiltersUnion:
      oneOf:
        - items:
            $ref: '#/components/schemas/FacetFiltersUnion'
          type: array
        - type: string
    FacetsUnion:
      oneOf:
        - items:
            type: string
          type: array
        - $ref: '#/components/schemas/Facets'
        - type: 'null'
    IgnorePluralsUnion:
      oneOf:
        - type: boolean
        - items:
            $ref: '#/components/schemas/SupportedLanguage'
          type: array
        - type: 'null'
    InsideBoundingBoxUnion:
      oneOf:
        - type: string
        - items:
            items:
              type: number
            type: array
          type: array
        - type: 'null'
    InsidePolygonUnion:
      oneOf:
        - type: string
        - items:
            items:
              type: number
            type: array
          type: array
        - type: 'null'
    NaturalLanguagesUnion:
      oneOf:
        - items:
            $ref: '#/components/schemas/SupportedLanguage'
          type: array
        - type: 'null'
    NumericFiltersUnion:
      oneOf:
        - type: string
        - type: array
          items:
            $ref: '#/components/schemas/NumericFiltersUnion'
        - type: 'null'
    OptionalFiltersUnion:
      oneOf:
        - type: string
        - type: array
          items:
            $ref: '#/components/schemas/OptionalFiltersUnion'
        - type: 'null'
    OptionalWordsUnion:
      oneOf:
        - type: string
        - items:
            type: string
          type: array
        - type: 'null'
    QueryLanguagesUnion:
      oneOf:
        - items:
            $ref: '#/components/schemas/SupportedLanguage'
          type: array
        - type: 'null'
    QueryType:
      type: string
      enum:
        - prefixLast
        - prefixAll
        - prefixNone
      title: queryType
      description: >-
        Determines if and how query words are interpreted as prefixes.  By
        default, only the last query word is treated as a prefix (`prefixLast`).
        To turn off prefix search, use `prefixNone`. Avoid `prefixAll`, which
        treats all query words as prefixes. This might lead to counterintuitive
        results and makes your search slower.  For more information, see [Prefix
        searching](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/prefix-searching).
    RemoveStopWordsUnion:
      oneOf:
        - type: boolean
        - items:
            $ref: '#/components/schemas/SupportedLanguage'
          type: array
        - type: 'null'
    RemoveWordsIfNoResults:
      type: string
      enum:
        - none
        - lastWords
        - firstWords
        - allOptional
      title: removeWordsIfNoResults
      description: >-
        Strategy for removing words from the query when it doesn't return any
        results. This helps to avoid returning empty search results.  -
        `none`.   No words are removed when a query doesn't return results.  -
        `lastWords`.   Treat the last (then second to last, then third to last)
        word as optional,   until there are results or at most 5 words have been
        removed.  - `firstWords`.   Treat the first (then second, then third)
        word as optional,   until there are results or at most 5 words have been
        removed.  - `allOptional`.   Treat all words as optional.  For more
        information, see [Remove words to improve
        results](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/in-depth/why-use-remove-words-if-no-results).
    ReRankingApplyFilterUnion:
      oneOf:
        - type: string
        - items:
            type: object
            additionalProperties: true
          type: array
        - type: 'null'
    TagFiltersUnion:
      oneOf:
        - type: string
        - type: array
          items:
            $ref: '#/components/schemas/TagFiltersUnion'
        - type: 'null'
    TypoToleranceUnion:
      oneOf:
        - type: boolean
        - $ref: '#/components/schemas/TypoToleranceEnum'
        - type: 'null'
    McpToolConfig:
      properties:
        alias:
          oneOf:
            - type: string
              maxLength: 32
              minLength: 3
            - type: 'null'
          title: alias
        requiresApproval:
          oneOf:
            - type: boolean
            - type: 'null'
          title: requiresapproval
          default: false
      type: object
      title: mcpToolConfig
    StringArrayParamConstraint:
      properties:
        values:
          oneOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: values
      type: object
      title: stringArrayParamConstraint
      description: Constraints for a string array parameter.
    NumberParamConstraint:
      properties:
        max:
          oneOf:
            - type: integer
            - type: 'null'
          title: max
        min:
          oneOf:
            - type: integer
            - type: 'null'
          title: min
      type: object
      title: numberParamConstraint
      description: Constraints for a number parameter.
    AdvancedSyntaxFeatures:
      type: string
      enum:
        - exactPhrase
        - excludeWords
      title: advancedSyntaxFeatures
      description: AdvancedSyntaxFeatures.
    AlternativesAsExact:
      type: string
      enum:
        - ignorePlurals
        - singleWordSynonym
        - multiWordsSynonym
        - ignoreConjugations
      title: alternativesAsExact
      description: AlternativesAsExact.
    Facets:
      properties:
        order:
          oneOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: order
      additionalProperties: true
      type: object
      title: facets
      description: Order of facet names.
    SupportedLanguage:
      type: string
      enum:
        - af
        - ar
        - az
        - bg
        - bn
        - ca
        - cs
        - cy
        - da
        - de
        - el
        - en
        - eo
        - es
        - et
        - eu
        - fa
        - fi
        - fo
        - fr
        - ga
        - gl
        - he
        - hi
        - hu
        - hy
        - id
        - is
        - it
        - ja
        - ka
        - kk
        - ko
        - ku
        - ky
        - lt
        - lv
        - mi
        - mn
        - mr
        - ms
        - mt
        - nb
        - nl
        - 'no'
        - ns
        - pl
        - ps
        - pt
        - pt-br
        - qu
        - ro
        - ru
        - sk
        - sq
        - sv
        - sw
        - ta
        - te
        - th
        - tl
        - tn
        - tr
        - tt
        - uk
        - ur
        - uz
        - zh
      title: supportedLanguage
      description: ISO code for a supported language.
    TypoToleranceEnum:
      type: string
      enum:
        - min
        - strict
        - 'true'
        - 'false'
      title: typoToleranceEnum
      description: >-
        - `min`. Return matches with the lowest number of typos.   For example,
        if you have matches without typos, only include those.   But if there
        are no matches without typos (with 1 typo), include matches with 1 typo
        (2 typos). - `strict`. Return matches with the two lowest numbers of
        typos.   With `strict`, the Typo ranking criterion is applied first in
        the `ranking` setting.
  securitySchemes:
    appId:
      type: apiKey
      in: header
      name: x-algolia-application-id
      description: Your Algolia application ID.
    apiKey:
      type: apiKey
      in: header
      name: x-algolia-api-key
      description: >
        Your Algolia API key with the necessary permissions to make the request.

        Permissions are controlled through access control lists (ACL) and access
        restrictions.

        The required ACL to make a request is listed in each endpoint's
        reference.

````