Algolia Monitoring API (1.0.0)
Download OpenAPI specification:Download
The Monitoring API lets you check the status of your Algolia infrastructure.
The base URL for requests to the Monitoring API is:
https://status.algolia.com
All requests must use HTTPS.
Access to the Infrastructure endpoints is available as part of the Premium or Elevate plans.
To authenticate requests to the Infrastructure endpoints, add these headers:
x-algolia-application-id
. Your Algolia application ID.x-algolia-api-key
. Your Monitoring API key.
You can find your application ID and API key in the Algolia dashboard.
Other endpoints don't require authentication.
The Monitoring API returns JSON responses. Since JSON doesn't guarantee any specific ordering, don't rely on the order of attributes in the API response.
Successful responses return a 2xx
status. Client errors return a 4xx
status. Server errors are indicated by a 5xx
status.
Error responses have a message
property with more information.
The current version of the Monitoring API is version 1, as indicated by the /1/
in each endpoint's URL.
Retrieve status of all clusters
Retrieves the status of all Algolia clusters and instances.
Responses
Request samples
- C#
- Go
- Java
- JavaScript
- Kotlin
- PHP
- Python
- Ruby
- Scala
- Swift
// Initialize the client var client = new MonitoringClient(new MonitoringConfig("YOUR_APP_ID", "YOUR_API_KEY")); // Call the API var response = await client.GetStatusAsync();
Response samples
- 200
- 401
{- "status": {
- "c16-de": "operational"
}
}
Retrieve cluster status
Retrieves the status of selected clusters.
path Parameters
clusters required | string Example: c1-de,c2-de,c3-de Subset of clusters, separated by comma. |
Responses
Request samples
- C#
- Go
- Java
- JavaScript
- Kotlin
- PHP
- Python
- Ruby
- Scala
- Swift
// Initialize the client var client = new MonitoringClient(new MonitoringConfig("YOUR_APP_ID", "YOUR_API_KEY")); // Call the API var response = await client.GetClusterStatusAsync("c1-de");
Response samples
- 200
- 401
- 404
{- "status": {
- "c16-de": "operational"
}
}
Request samples
- C#
- Go
- Java
- JavaScript
- Kotlin
- PHP
- Python
- Ruby
- Scala
- Swift
// Initialize the client var client = new MonitoringClient(new MonitoringConfig("YOUR_APP_ID", "YOUR_API_KEY")); // Call the API var response = await client.GetIncidentsAsync();
Response samples
- 200
- 401
{- "incidents": {
- "m134-de": [
- {
- "t": 1687441685000,
- "v": {
- "title": "Incident on cluster m134-de: Everything operating normally.\n",
- "status": "operational"
}
}, - {
- "t": 1687441579000,
- "v": {
- "title": "Incident on cluster m134-de: We are encountering a major\nissue that impact all API calls.\n",
- "status": "major_outage"
}
}
]
}
}
Retrieve cluster incidents
Retrieves known incidents for the selected clusters.
path Parameters
clusters required | string Example: c1-de,c2-de,c3-de Subset of clusters, separated by comma. |
Responses
Request samples
- C#
- Go
- Java
- JavaScript
- Kotlin
- PHP
- Python
- Ruby
- Scala
- Swift
// Initialize the client var client = new MonitoringClient(new MonitoringConfig("YOUR_APP_ID", "YOUR_API_KEY")); // Call the API var response = await client.GetClusterIncidentsAsync("c1-de");
Response samples
- 200
- 401
- 404
{- "incidents": {
- "m134-de": [
- {
- "t": 1687441685000,
- "v": {
- "title": "Incident on cluster m134-de: Everything operating normally.\n",
- "status": "operational"
}
}, - {
- "t": 1687441579000,
- "v": {
- "title": "Incident on cluster m134-de: We are encountering a major\nissue that impact all API calls.\n",
- "status": "major_outage"
}
}
]
}
}
Retrieve metrics
Retrieves metrics related to your Algolia infrastructure, aggregated over a selected time window.
Access to this API is available as part of the Premium or Elevate plans.
You must authenticate requests with the x-algolia-application-id
and x-algolia-api-key
headers (using the Monitoring API key).
path Parameters
metric required | string Enum: "*" "avg_build_time" "cpu_usage" "ram_indexing_usage" "ram_search_usage" "ssd_usage" Example: * Metric to report. For more information about the individual metrics, see the description of the API response.
To include all metrics, use |
period required | string Enum: "day" "hour" "minute" "month" "week" Example: week Period over which to aggregate the metrics:
|
Responses
Request samples
- C#
- Go
- Java
- JavaScript
- Kotlin
- PHP
- Python
- Ruby
- Scala
- Swift
// Initialize the client var client = new MonitoringClient(new MonitoringConfig("YOUR_APP_ID", "YOUR_API_KEY")); // Call the API var response = await client.GetMetricsAsync( Enum.Parse<Metric>("AvgBuildTime"), Enum.Parse<Period>("Minute") );
Response samples
- 200
- 401
{- "metrics": {
- "cpu_usage": {
- "s4-fr": [
- {
- "t": 1455101280,
- "v": 46
}, - {
- "t": 1455101290,
- "v": 46
}, - {
- "t": 1455101300,
- "v": 46
}
], - "c3-use-1": [
- {
- "t": 1455101280,
- "v": 42
}, - {
- "t": 1455101290,
- "v": 42
}, - {
- "t": 1455101300,
- "v": 42
}, - {
- "t": 1455101310,
- "v": 37
}
], - "c3-use-2": [
- {
- "t": 1455101280,
- "v": 56
}, - {
- "t": 1455101290,
- "v": 56
}, - {
- "t": 1455101300,
- "v": 56
}, - {
- "t": 1455101310,
- "v": 56
}, - {
- "t": 1455101320,
- "v": 51
}
]
}
}
}
Retrieve servers
Retrieves the servers that belong to clusters.
The response depends on whether you authenticate your API request:
With authentication, the response lists the servers assigned to your Algolia application's cluster.
Without authentication, the response lists the servers for all Algolia clusters.
Responses
Request samples
- C#
- Go
- Java
- JavaScript
- Kotlin
- PHP
- Python
- Ruby
- Scala
- Swift
// Initialize the client var client = new MonitoringClient(new MonitoringConfig("YOUR_APP_ID", "YOUR_API_KEY")); // Call the API var response = await client.GetServersAsync();
Response samples
- 200
- 403
{- "inventory": [
- {
- "name": "c16-de-3",
- "region": "de",
- "is_slave": false,
- "is_replica": false,
- "cluster": "c16-de",
- "status": "PRODUCTION",
- "type": "cluster"
}, - {
- "name": "c16-de-2",
- "region": "de",
- "is_slave": false,
- "is_replica": false,
- "cluster": "c16-de",
- "status": "PRODUCTION",
- "type": "cluster"
}, - {
- "name": "c16-de-1",
- "region": "de",
- "is_slave": false,
- "is_replica": false,
- "cluster": "c16-de",
- "status": "PRODUCTION",
- "type": "cluster"
}
]
}
Retrieve search latency times
Retrieves the average latency for search requests for selected clusters.
path Parameters
clusters required | string Example: c1-de,c2-de,c3-de Subset of clusters, separated by comma. |
Responses
Request samples
- C#
- Go
- Java
- JavaScript
- Kotlin
- PHP
- Python
- Ruby
- Scala
- Swift
// Initialize the client var client = new MonitoringClient(new MonitoringConfig("YOUR_APP_ID", "YOUR_API_KEY")); // Call the API var response = await client.GetLatencyAsync("c1-de");
Response samples
- 200
- 400
{- "metrics": {
- "latency": {
- "c16-de": [
- {
- "t": 1688056200000,
- "v": 64
}, - {
- "t": 1688056800000,
- "v": 59
}, - {
- "t": 1688057400000,
- "v": 55
}
]
}
}
}
Retrieve indexing times
Retrieves average times for indexing operations for selected clusters.
path Parameters
clusters required | string Example: c1-de,c2-de,c3-de Subset of clusters, separated by comma. |
Responses
Request samples
- C#
- Go
- Java
- JavaScript
- Kotlin
- PHP
- Python
- Ruby
- Scala
- Swift
// Initialize the client var client = new MonitoringClient(new MonitoringConfig("YOUR_APP_ID", "YOUR_API_KEY")); // Call the API var response = await client.GetIndexingTimeAsync("c1-de");
Response samples
- 200
- 400
{- "metrics": {
- "indexing": {
- "c16-de": [
- {
- "t": 1688056200000,
- "v": 1562
}, - {
- "t": 1688056800000,
- "v": 1637
}, - {
- "t": 1688057400000,
- "v": 1754
}
]
}
}
}
Test the reachability of clusters
Test whether clusters are reachable or not.
path Parameters
clusters required | string Example: c1-de,c2-de,c3-de Subset of clusters, separated by comma. |
Responses
Request samples
- C#
- Go
- Java
- JavaScript
- Kotlin
- PHP
- Python
- Ruby
- Scala
- Swift
// Initialize the client var client = new MonitoringClient(new MonitoringConfig("YOUR_APP_ID", "YOUR_API_KEY")); // Call the API var response = await client.GetReachabilityAsync("c1-de");
Response samples
- 200
- 400
{- "c16-de": {
- "sdn-probe-frankfurt": false,
- "monitoring-2": false,
- "sdn-probe-awswest1": false
}
}