Skip to main content
Required ACL: analytics If you set the clickAnalytics query parameter to true, the response also includes:
  • Tracked searches count. Tracked searches are Search API requests with clickAnalytics set to true. This differs from the response’s count, which includes searches where clickAnalytics is false.
  • Click count
  • Click-through rate (CTR)
  • Conversion count
  • Conversion rate (CR)
  • Average click position
If you set the revenueAnalytics parameter to true, the response also includes:
  • Add-to-cart count
  • Add-to-cart rate (ATCR)
  • Purchase count
  • Purchase rate
  • Revenue details for each currency
There’s a difference between 0% rates and null rates:
  • Null means there were no queries. Algolia didn’t receive any events, so rates are null.
  • 0% rates mean there were queries but no click or conversion events were received.

Usage

// Initialize the client
var client = new AnalyticsClient(
  new AnalyticsConfig("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY", "ALGOLIA_APPLICATION_REGION")
);

// Call the API
var response = await client.GetTopHitsAsync("index");

// print the response
Console.WriteLine(response);
// Initialize the client with your application region, eg. analytics.ALGOLIA_APPLICATION_REGION
client, err := analytics.NewClient("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY", analytics.US)
if err != nil {
  // The client can fail to initialize if you pass an invalid parameter.
  panic(err)
}

// Call the API
response, err := client.GetTopHits(client.NewApiGetTopHitsRequest(
  "index"))
if err != nil {
  // handle the eventual error
  panic(err)
}


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

// Call the API
GetTopHitsResponse response = client.getTopHits("index");

// print the response
System.out.println(response);
// Initialize the client
// Replace 'us' with your Algolia Application Region
const client = algoliasearch('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY').initAnalytics({ region: 'us' });

// Call the API
const response = await client.getTopHits({ index: 'index' });


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

// Call the API
var response = client.getTopHits(index = "index")


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

// Call the API
$response = $client->getTopHits(
    'index',
);


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

# Call the API
response = client.get_top_hits(
    index="index",
)


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

# Call the API
response = client.get_top_hits("index")


# print the response
puts(response)
// Initialize the client
val client = AnalyticsClient(
  appId = "ALGOLIA_APPLICATION_ID",
  apiKey = "ALGOLIA_API_KEY",
  region = Option("ALGOLIA_APPLICATION_REGION")
)

// Call the API
val response = Await.result(
  client.getTopHits(
    index = "index"
  ),
  Duration(100, "sec")
)

// print the response
println(response)
// Initialize the client
let client = try AnalyticsClient(appID: "ALGOLIA_APPLICATION_ID", apiKey: "ALGOLIA_API_KEY", region: .us)

// Call the API
let response = try await client.getTopHits(index: "index")

// print the response
print(response)

See the full API reference

For more details about input parameters and response fields.
Last modified on March 25, 2026