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

# Search for facet values

> Searches for values of a specified facet attribute on the composition's main source's index.

**Required ACL:** `search`

* By default, facet values are sorted by decreasing count.
  You can adjust this with the `sortFacetValueBy` parameter.
* Searching for facet values doesn't work if you have **more than 65 searchable facets and searchable attributes combined**.

## Usage

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

  // Call the API
  var response = await client.SearchForFacetValuesAsync(
    "foo",
    "brand",
    new SearchForFacetValuesRequest
    {
      Params = new SearchForFacetValuesParams { MaxFacetHits = 10 },
    }
  );

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

  ```dart Dart theme={"system"}
  // Initialize the client
  final client = CompositionClient(
      appId: 'ALGOLIA_APPLICATION_ID', apiKey: 'ALGOLIA_API_KEY');

  // Call the API
  final response = await client.searchForFacetValues(
    compositionID: "foo",
    facetName: "brand",
    searchForFacetValuesRequest: SearchForFacetValuesRequest(
      params: SearchForFacetValuesParams(
        maxFacetHits: 10,
      ),
    ),
  );

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

  ```go Go theme={"system"}
  // Initialize the client
  client, err := composition.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.SearchForFacetValues(client.NewApiSearchForFacetValuesRequest(
    "foo", "brand").WithSearchForFacetValuesRequest(
    composition.NewEmptySearchForFacetValuesRequest().SetParams(
      composition.NewEmptySearchForFacetValuesParams().SetMaxFacetHits(10))))
  if err != nil {
    // handle the eventual error
    panic(err)
  }


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

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

  // Call the API
  SearchForFacetValuesResponse response = client.searchForFacetValues(
    "foo",
    "brand",
    new SearchForFacetValuesRequest().setParams(new SearchForFacetValuesParams().setMaxFacetHits(10))
  );

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

  ```js JavaScript theme={"system"}
  // Initialize the client
  const client = compositionClient('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY');

  // Call the API
  const response = await client.searchForFacetValues({
    compositionID: 'foo',
    facetName: 'brand',
    searchForFacetValuesRequest: { params: { maxFacetHits: 10 } },
  });


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

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

  // Call the API
  var response =
    client.searchForFacetValues(
      compositionID = "foo",
      facetName = "brand",
      searchForFacetValuesRequest =
        SearchForFacetValuesRequest(params = SearchForFacetValuesParams(maxFacetHits = 10)),
    )


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

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

  // Call the API
  $response = $client->searchForFacetValues(
      'foo',
      'brand',
      ['params' => ['maxFacetHits' => 10,
      ],
      ],
  );


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

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

  # Call the API
  response = client.search_for_facet_values(
      composition_id="foo",
      facet_name="brand",
      search_for_facet_values_request={
          "params": {
              "maxFacetHits": 10,
          },
      },
  )


  # print the response
  print(response)
  ```

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

  # Call the API
  response = client.search_for_facet_values(
    "foo",
    "brand",
    Algolia::Composition::SearchForFacetValuesRequest.new(
      params: Algolia::Composition::SearchForFacetValuesParams.new(max_facet_hits: 10)
    )
  )


  # print the response
  puts(response)
  ```

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

  // Call the API
  val response = Await.result(
    client.searchForFacetValues(
      compositionID = "foo",
      facetName = "brand",
      searchForFacetValuesRequest = Some(
        SearchForFacetValuesRequest(
          params = Some(
            SearchForFacetValuesParams(
              maxFacetHits = Some(10)
            )
          )
        )
      )
    ),
    Duration(100, "sec")
  )

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

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

  // Call the API
  let response = try await client.searchForFacetValues(
      compositionID: "foo",
      facetName: "brand",
      searchForFacetValuesRequest: CompositionSearchForFacetValuesRequest(
          params: SearchForFacetValuesParams(maxFacetHits: 10)
      )
  )

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

<Card icon="folder-code" horizontal="true" title="See the full API reference" arrow="true" href="/doc/rest-api/composition/search-for-facet-values">
  For more details about input parameters
  and response fields.
</Card>
