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

# Update a configuration

> Updates a QuerySuggestions configuration.

**Required ACL:** `editSettings`

## Usage

<CodeGroup>
  ```cs C# theme={"system"}
  // Initialize the client
  var client = new QuerySuggestionsClient(
    new QuerySuggestionsConfig(
      "ALGOLIA_APPLICATION_ID",
      "ALGOLIA_API_KEY",
      "ALGOLIA_APPLICATION_REGION"
    )
  );

  // Call the API
  var response = await client.UpdateConfigAsync(
    "<YOUR_INDEX_NAME>",
    new Configuration
    {
      SourceIndices = new List<SourceIndex>
      {
        new SourceIndex
        {
          IndexName = "<YOUR_INDEX_NAME>",
          Facets = new List<Facet> { new Facet { Attribute = "test" } },
          Generate = new List<List<string>>
          {
            new List<string> { "facetA", "facetB" },
            new List<string> { "facetC" },
          },
        },
      },
      Languages = new Languages(new List<string> { "french" }),
      Exclude = new List<string> { "test" },
    }
  );

  // print the response
  Console.WriteLine(response);
  ```

  ```go Go theme={"system"}
  // Initialize the client with your application region, eg. suggestions.ALGOLIA_APPLICATION_REGION
  client, err := suggestions.NewClient("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY", suggestions.US)
  if err != nil {
    // The client can fail to initialize if you pass an invalid parameter.
    panic(err)
  }

  // Call the API
  response, err := client.UpdateConfig(client.NewApiUpdateConfigRequest(
    "<YOUR_INDEX_NAME>",
    suggestions.NewEmptyConfiguration().SetSourceIndices(
      []suggestions.SourceIndex{*suggestions.NewEmptySourceIndex().SetIndexName("<YOUR_INDEX_NAME>").SetFacets(
        []suggestions.Facet{*suggestions.NewEmptyFacet().SetAttribute("test")}).SetGenerate(
        [][]string{
          {"facetA", "facetB"},
          {"facetC"},
        })}).SetLanguages(suggestions.ArrayOfStringAsLanguages(
      []string{"french"})).SetExclude(
      []string{"test"})))
  if err != nil {
    // handle the eventual error
    panic(err)
  }


  // print the response
  print(response)
  ```

  ```java Java theme={"system"}
  // Initialize the client
  QuerySuggestionsClient client = new QuerySuggestionsClient("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY", "ALGOLIA_APPLICATION_REGION");

  // Call the API
  BaseResponse response = client.updateConfig(
    "<YOUR_INDEX_NAME>",
    new Configuration()
      .setSourceIndices(
        Arrays.asList(
          new SourceIndex()
            .setIndexName("<YOUR_INDEX_NAME>")
            .setFacets(Arrays.asList(new Facet().setAttribute("test")))
            .setGenerate(Arrays.asList(Arrays.asList("facetA", "facetB"), Arrays.asList("facetC")))
        )
      )
      .setLanguages(Languages.of(Arrays.asList("french")))
      .setExclude(Arrays.asList("test"))
  );

  // print the response
  System.out.println(response);
  ```

  ```js JavaScript theme={"system"}
  // Initialize the client
  // Replace 'us' with your Algolia Application Region
  const client = algoliasearch('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY').initQuerySuggestions({ region: 'us' });

  // Call the API
  const response = await client.updateConfig({
    indexName: 'theIndexName',
    configuration: {
      sourceIndices: [
        { indexName: 'testIndex', facets: [{ attribute: 'test' }], generate: [['facetA', 'facetB'], ['facetC']] },
      ],
      languages: ['french'],
      exclude: ['test'],
    },
  });


  // print the response
  console.log(response);
  ```

  ```kotlin Kotlin theme={"system"}
  // Initialize the client
  val client =
    QuerySuggestionsClient(
      appId = "ALGOLIA_APPLICATION_ID",
      apiKey = "ALGOLIA_API_KEY",
      region = "ALGOLIA_APPLICATION_REGION",
    )

  // Call the API
  var response =
    client.updateConfig(
      indexName = "<YOUR_INDEX_NAME>",
      configuration =
        Configuration(
          sourceIndices =
            listOf(
              SourceIndex(
                indexName = "<YOUR_INDEX_NAME>",
                facets = listOf(Facet(attribute = "test")),
                generate = listOf(listOf("facetA", "facetB"), listOf("facetC")),
              )
            ),
          languages = Languages.of(listOf("french")),
          exclude = listOf("test"),
        ),
    )


  // print the response
  println(response)
  ```

  ```php PHP theme={"system"}
  // Initialize the client
  $client = QuerySuggestionsClient::create('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY', 'ALGOLIA_APPLICATION_REGION');

  // Call the API
  $response = $client->updateConfig(
      '<YOUR_INDEX_NAME>',
      ['sourceIndices' => [
          ['indexName' => '<YOUR_INDEX_NAME>',
              'facets' => [
                  ['attribute' => 'test',
                  ],
              ],
              'generate' => [
                  [
                      'facetA',

                      'facetB',
                  ],

                  [
                      'facetC',
                  ],
              ],
          ],
      ],
          'languages' => [
              'french',
          ],
          'exclude' => [
              'test',
          ],
      ],
  );


  // print the response
  var_dump($response);
  ```

  ```python Python theme={"system"}
  # Initialize the client
  # In an asynchronous context, you can use QuerySuggestionsClient instead, which exposes the exact same methods.
  client = QuerySuggestionsClientSync(
      "ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY", "ALGOLIA_APPLICATION_REGION"
  )

  # Call the API
  response = client.update_config(
      index_name="<YOUR_INDEX_NAME>",
      configuration={
          "sourceIndices": [
              {
                  "indexName": "<YOUR_INDEX_NAME>",
                  "facets": [
                      {
                          "attribute": "test",
                      },
                  ],
                  "generate": [
                      [
                          "facetA",
                          "facetB",
                      ],
                      [
                          "facetC",
                      ],
                  ],
              },
          ],
          "languages": [
              "french",
          ],
          "exclude": [
              "test",
          ],
      },
  )


  # print the response
  print(response)
  ```

  ```ruby Ruby theme={"system"}
  # Initialize the client
  client = Algolia::QuerySuggestionsClient.create(
    "ALGOLIA_APPLICATION_ID",
    "ALGOLIA_API_KEY",
    "ALGOLIA_APPLICATION_REGION"
  )

  # Call the API
  response = client.update_config(
    "<YOUR_INDEX_NAME>",
    Algolia::QuerySuggestions::Configuration.new(
      source_indices: [
        Algolia::QuerySuggestions::SourceIndex.new(
          index_name: "<YOUR_INDEX_NAME>",
          facets: [Algolia::QuerySuggestions::Facet.new(attribute: "test")],
          generate: [["facetA", "facetB"], ["facetC"]]
        )
      ],
      languages: ["french"],
      exclude: ["test"]
    )
  )


  # print the response
  puts(response)
  ```

  ```scala Scala theme={"system"}
  // Initialize the client
  val client = QuerySuggestionsClient(
    appId = "ALGOLIA_APPLICATION_ID",
    apiKey = "ALGOLIA_API_KEY",
    region = "ALGOLIA_APPLICATION_REGION"
  )

  // Call the API
  val response = Await.result(
    client.updateConfig(
      indexName = "<YOUR_INDEX_NAME>",
      configuration = Configuration(
        sourceIndices = Seq(
          SourceIndex(
            indexName = "<YOUR_INDEX_NAME>",
            facets = Some(
              Seq(
                Facet(
                  attribute = Some("test")
                )
              )
            ),
            generate = Some(Seq(Seq("facetA", "facetB"), Seq("facetC")))
          )
        ),
        languages = Some(Languages(Seq("french"))),
        exclude = Some(Seq("test"))
      )
    ),
    Duration(100, "sec")
  )

  // print the response
  println(response)
  ```

  ```swift Swift theme={"system"}
  // Initialize the client
  let client = try QuerySuggestionsClient(appID: "ALGOLIA_APPLICATION_ID", apiKey: "ALGOLIA_API_KEY", region: .us)

  // Call the API
  let response = try await client.updateConfig(
      indexName: "<YOUR_INDEX_NAME>",
      configuration: QuerySuggestionsConfiguration(
          sourceIndices: [SourceIndex(
              indexName: "<YOUR_INDEX_NAME>",
              facets: [Facet(attribute: "test")],
              generate: [["facetA", "facetB"], ["facetC"]]
          )],
          languages: QuerySuggestionsLanguages.arrayOfString(["french"]),
          exclude: ["test"]
      )
  )

  // print the response
  print(response)
  ```
</CodeGroup>

<Card icon="folder-code" horizontal="true" title="See the full API reference" arrow="true" href="/doc/rest-api/query-suggestions/update-config">
  For more details about input parameters
  and response fields.
</Card>
