Skip to main content
POST
/
1
/
indexes
/
{indexName}
/
facets
/
{facetName}
/
query
curl
curl --request POST \
  --url https://algolia_application_id.algolia.net/1/indexes/ALGOLIA_INDEX_NAME/facets/lorem/query \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'x-algolia-api-key: ALGOLIA_API_KEY' \
  --header 'x-algolia-application-id: ALGOLIA_APPLICATION_ID' \
  --data '
{
  "params": "hitsPerPage=2&getRankingInfo=1",
  "facetQuery": "george",
  "maxFacetHits": 10
}
'
// Initialize the client
var client = new SearchClient(new SearchConfig("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY"));

// Call the API
var response = await client.SearchForFacetValuesAsync("<YOUR_INDEX_NAME>", "facetName");

// print the response
Console.WriteLine(response);
// Initialize the client
final client =
SearchClient(appId: 'ALGOLIA_APPLICATION_ID', apiKey: 'ALGOLIA_API_KEY');

// Call the API
final response = await client.searchForFacetValues(
indexName: "<YOUR_INDEX_NAME>",
facetName: "facetName",
);

// print the response
print(response);
// Initialize the client
client, err := search.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(
"<YOUR_INDEX_NAME>", "facetName"))
if err != nil {
// handle the eventual error
panic(err)
}


// print the response
print(response)
// Initialize the client
SearchClient client = new SearchClient("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY");

// Call the API
SearchForFacetValuesResponse response = client.searchForFacetValues("<YOUR_INDEX_NAME>", "facetName");

// print the response
System.out.println(response);
// Initialize the client
const client = algoliasearch('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY');

// Call the API
const response = await client.searchForFacetValues({ indexName: 'indexName', facetName: 'facetName' });


// print the response
console.log(response);
// Initialize the client
val client = SearchClient(appId = "ALGOLIA_APPLICATION_ID", apiKey = "ALGOLIA_API_KEY")

// Call the API
var response =
client.searchForFacetValues(indexName = "<YOUR_INDEX_NAME>", facetName = "facetName")


// print the response
println(response)
// Initialize the client
$client = SearchClient::create('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY');

// Call the API
$response = $client->searchForFacetValues(
'<YOUR_INDEX_NAME>',
'facetName',
);


// print the response
var_dump($response);
# Initialize the client
# In an asynchronous context, you can use SearchClient instead, which exposes the exact same methods.
client = SearchClientSync("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")

# Call the API
response = client.search_for_facet_values(
index_name="<YOUR_INDEX_NAME>",
facet_name="facetName",
)


# print the response
print(response)
# Initialize the client
client = Algolia::SearchClient.create("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")

# Call the API
response = client.search_for_facet_values("<YOUR_INDEX_NAME>", "facetName")


# print the response
puts(response)
// Initialize the client
val client = SearchClient(appId = "ALGOLIA_APPLICATION_ID", apiKey = "ALGOLIA_API_KEY")

// Call the API
val response = Await.result(
client.searchForFacetValues(
indexName = "<YOUR_INDEX_NAME>",
facetName = "facetName"
),
Duration(100, "sec")
)

// print the response
println(response)
// Initialize the client
let client = try SearchClient(appID: "ALGOLIA_APPLICATION_ID", apiKey: "ALGOLIA_API_KEY")

// Call the API
let response = try await client.searchForFacetValues(indexName: "<YOUR_INDEX_NAME>", facetName: "facetName")

// print the response
print(response)
{
  "exhaustiveFacetsCount": true,
  "facetHits": [
    {
      "count": 123,
      "highlighted": "<em>George</em> <em>Clo</em>oney",
      "value": "Mobile phone"
    }
  ],
  "processingTimeMS": 20
}
{
"message": "Invalid Application-Id or API-Key"
}
{
"message": "Invalid Application-Id or API-Key"
}
{
"message": "Invalid Application-Id or API-Key"
}
{
"message": "Invalid Application-Id or API-Key"
}
  • 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.
Required ACL: search

Authorizations

x-algolia-application-id
string
header
required

Your Algolia application ID.

x-algolia-api-key
string
header
required

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.

Path Parameters

facetName
string
required

Facet attribute in which to search for values.

This attribute must be included in the attributesForFaceting index setting with the searchable() modifier.

indexName
string
required

Name of the index on which to perform the operation.

Example:

"ALGOLIA_INDEX_NAME"

Body

application/json
facetQuery
string
default:""

Text to search inside the facet's values.

Example:

"george"

maxFacetHits
integer
default:10

Maximum number of facet values to return when searching for facet values.

Required range: x <= 100
params
string
default:""

Search parameters as a URL-encoded query string.

Example:

"hitsPerPage=2&getRankingInfo=1"

Response

OK

exhaustiveFacetsCount
boolean
required

Whether the facet count is exhaustive (true) or approximate (false). For more information, see Why are my facet and hit counts not accurate.

facetHits
facetHits Β· object[]
required

Matching facet values.

processingTimeMS
integer

Time the server took to process the request, in milliseconds.

Example:

20

Last modified on March 23, 2026