curl --request POST \
--url 'https://analytics.us.algolia.com/3/patterns/timeseries?index=lorem' \
--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 '
{
"domain": "core",
"metrics": [
{
"domain": "core",
"kind": "searchesCount"
}
],
"groupBy": [
{
"domain": "core",
"kind": "searchesCount"
}
],
"filters": [
{
"domain": "lorem",
"kind": "country",
"operator": "=",
"parameter": {
"domain": "core",
"kind": "country"
}
}
],
"parameters": [
{
"domain": "lorem",
"kind": "indices",
"value": "lorem"
}
],
"limit": 100,
"offset": 0
}
'// 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.QueryPatternsTimeseriesAsync(
new TimeseriesPayload
{
Metrics = new List<FieldReference> { new FieldReference { Kind = "searchesCount" } },
Parameters = new List<ParameterDefinition>
{
new ParameterDefinition
{
Kind = "indices",
Value = new ParameterValue(new List<string> { "index" }),
},
},
},
"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.QueryPatternsTimeseries(client.NewApiQueryPatternsTimeseriesRequest(
analytics.NewEmptyTimeseriesPayload().SetMetrics(
[]analytics.FieldReference{*analytics.NewEmptyFieldReference().SetKind("searchesCount")}).SetParameters(
[]analytics.ParameterDefinition{
*analytics.NewEmptyParameterDefinition().SetKind("indices").SetValue(analytics.ArrayOfStringAsParameterValue(
[]string{"index"})),
}),
).WithIndex("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
TimeseriesResponse response = client.queryPatternsTimeseries(
new TimeseriesPayload()
.setMetrics(Arrays.asList(new FieldReference().setKind("searchesCount")))
.setParameters(Arrays.asList(new ParameterDefinition().setKind("indices").setValue(ParameterValue.of(Arrays.asList("index"))))),
"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.queryPatternsTimeseries({
timeseriesPayload: { metrics: [{ kind: 'searchesCount' }], parameters: [{ kind: 'indices', value: ['index'] }] },
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.queryPatternsTimeseries(
timeseriesPayload =
TimeseriesPayload(
metrics = listOf(FieldReference(kind = "searchesCount")),
parameters =
listOf(
ParameterDefinition(kind = "indices", value = ParameterValue.of(listOf("index")))
),
),
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->queryPatternsTimeseries(
['metrics' => [
['kind' => 'searchesCount',
],
],
'parameters' => [
['kind' => 'indices',
'value' => [
'index',
],
],
],
],
'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.query_patterns_timeseries(
timeseries_payload={
"metrics": [
{
"kind": "searchesCount",
},
],
"parameters": [
{
"kind": "indices",
"value": [
"index",
],
},
],
},
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.query_patterns_timeseries(
Algolia::Analytics::TimeseriesPayload.new(
metrics: [Algolia::Analytics::FieldReference.new(kind: "searchesCount")],
parameters: [Algolia::Analytics::ParameterDefinition.new(kind: "indices", value: ["index"])]
),
"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.queryPatternsTimeseries(
timeseriesPayload = TimeseriesPayload(
metrics = Seq(
FieldReference(
kind = "searchesCount"
)
),
parameters = Seq(
ParameterDefinition(
kind = "indices",
value = ParameterValue(Seq("index"))
)
)
),
index = Some("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.queryPatternsTimeseries(
timeseriesPayload: TimeseriesPayload(
metrics: [FieldReference(kind: "searchesCount")],
parameters: [ParameterDefinition(
kind: "indices",
value: ParameterValue.arrayOfString(["index"])
)]
),
index: "index"
)
// print the response
print(response){
"series": [
{
"dates": [
{
"date": "<string>",
"metrics": {}
}
],
"totals": {},
"key": {}
}
]
}{
"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"
}(Beta) Query a metrics time series
Beta: this endpoint is under active development and may change without notice.
curl --request POST \
--url 'https://analytics.us.algolia.com/3/patterns/timeseries?index=lorem' \
--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 '
{
"domain": "core",
"metrics": [
{
"domain": "core",
"kind": "searchesCount"
}
],
"groupBy": [
{
"domain": "core",
"kind": "searchesCount"
}
],
"filters": [
{
"domain": "lorem",
"kind": "country",
"operator": "=",
"parameter": {
"domain": "core",
"kind": "country"
}
}
],
"parameters": [
{
"domain": "lorem",
"kind": "indices",
"value": "lorem"
}
],
"limit": 100,
"offset": 0
}
'// 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.QueryPatternsTimeseriesAsync(
new TimeseriesPayload
{
Metrics = new List<FieldReference> { new FieldReference { Kind = "searchesCount" } },
Parameters = new List<ParameterDefinition>
{
new ParameterDefinition
{
Kind = "indices",
Value = new ParameterValue(new List<string> { "index" }),
},
},
},
"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.QueryPatternsTimeseries(client.NewApiQueryPatternsTimeseriesRequest(
analytics.NewEmptyTimeseriesPayload().SetMetrics(
[]analytics.FieldReference{*analytics.NewEmptyFieldReference().SetKind("searchesCount")}).SetParameters(
[]analytics.ParameterDefinition{
*analytics.NewEmptyParameterDefinition().SetKind("indices").SetValue(analytics.ArrayOfStringAsParameterValue(
[]string{"index"})),
}),
).WithIndex("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
TimeseriesResponse response = client.queryPatternsTimeseries(
new TimeseriesPayload()
.setMetrics(Arrays.asList(new FieldReference().setKind("searchesCount")))
.setParameters(Arrays.asList(new ParameterDefinition().setKind("indices").setValue(ParameterValue.of(Arrays.asList("index"))))),
"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.queryPatternsTimeseries({
timeseriesPayload: { metrics: [{ kind: 'searchesCount' }], parameters: [{ kind: 'indices', value: ['index'] }] },
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.queryPatternsTimeseries(
timeseriesPayload =
TimeseriesPayload(
metrics = listOf(FieldReference(kind = "searchesCount")),
parameters =
listOf(
ParameterDefinition(kind = "indices", value = ParameterValue.of(listOf("index")))
),
),
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->queryPatternsTimeseries(
['metrics' => [
['kind' => 'searchesCount',
],
],
'parameters' => [
['kind' => 'indices',
'value' => [
'index',
],
],
],
],
'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.query_patterns_timeseries(
timeseries_payload={
"metrics": [
{
"kind": "searchesCount",
},
],
"parameters": [
{
"kind": "indices",
"value": [
"index",
],
},
],
},
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.query_patterns_timeseries(
Algolia::Analytics::TimeseriesPayload.new(
metrics: [Algolia::Analytics::FieldReference.new(kind: "searchesCount")],
parameters: [Algolia::Analytics::ParameterDefinition.new(kind: "indices", value: ["index"])]
),
"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.queryPatternsTimeseries(
timeseriesPayload = TimeseriesPayload(
metrics = Seq(
FieldReference(
kind = "searchesCount"
)
),
parameters = Seq(
ParameterDefinition(
kind = "indices",
value = ParameterValue(Seq("index"))
)
)
),
index = Some("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.queryPatternsTimeseries(
timeseriesPayload: TimeseriesPayload(
metrics: [FieldReference(kind: "searchesCount")],
parameters: [ParameterDefinition(
kind: "indices",
value: ParameterValue.arrayOfString(["index"])
)]
),
index: "index"
)
// print the response
print(response){
"series": [
{
"dates": [
{
"date": "<string>",
"metrics": {}
}
],
"totals": {},
"key": {}
}
]
}{
"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"
}groupBy combination, each with period totals and a per-day metric
breakdown. metrics and parameters are required; groupBy and filters are optional. Discover
valid field kinds per domain with /3/patterns/fields.
Required ACL: analyticsAuthorizations
Your Algolia application ID.
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.
Query Parameters
Comma-separated list of indices the request runs on, used for authorization. Required for index-restricted API keys and must match the indices supplied in the request body's indices parameter; optional for unrestricted keys.
Body
Fields to aggregate.
Show child attributes
Show child attributes
Literal values referenced by the query.
Show child attributes
Show child attributes
Default domain propagated to entries that omit their own.
"core"
Filter conditions.
Show child attributes
Show child attributes
Fields to split the series by.
Show child attributes
Show child attributes
Maximum number of series (groupBy values) to return.
1 <= x <= 100Number of series to skip.
x >= 0Response
OK
One entry per groupBy combination. null when the query matched no data.
Show child attributes
Show child attributes
Was this page helpful?