Algolia Monitoring API
Exposes server status, latency, indexing and reachability metrics for a specific application's Algolia infrastructure. More than a status page: an agent can query the health of its own cluster rather than the global service.
Exposes server status, latency, indexing and reachability metrics for a specific application's Algolia infrastructure. More than a status page: an agent can query the health of its own cluster rather than the global service.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/algolia-monitoring-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Algolia Monitoring API
summary: The Monitoring API lets you check the status of your Algolia infrastructure
description: 'The metrics exposed by this API are based on results from external monitoring probes checking Algolia’s infrastructure.
These metrics **reflect the overall infrastructure status and don’t represent the performance of the specific APPID** used for authentication.
## Base URLs
Base URL for the Monitoring API:
- `https://status.algolia.com`
**All requests must use HTTPS.**
## Availability and authentication
Access to the Infrastructure endpoints
is available as part of the [Premium or Elevate plans](https://www.algolia.com/pricing).
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](https://dashboard.algolia.com/account/api-keys).
Other endpoints don''t require authentication.
## Response status and errors
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 `2xx` statuses. Client errors return `4xx` statuses. Server errors return `5xx` statuses.
Error responses have a `message` property with more information.
## Version
The current version of the Monitoring API is version 1, indicated by the `/1/` in each endpoint''s URL.
'
version: 1.0.0
servers:
- url: https://status.algolia.com
tags:
- name: monitoring
paths:
/{path}:
get:
operationId: customGet
summary: Send requests to the Algolia REST API
description: This method lets you send requests to the Algolia REST API.
parameters:
- $ref: '#/components/parameters/PathInPath'
- $ref: '#/components/parameters/Parameters'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/FeatureNotEnabled'
'403':
$ref: '#/components/responses/MethodNotAllowed'
'404':
$ref: '#/components/responses/IndexNotFound'
tags:
- monitoring
post:
operationId: customPost
requestBody:
description: Parameters to send with the custom request.
content:
application/json:
schema:
type: object
summary: Send requests to the Algolia REST API
description: This method lets you send requests to the Algolia REST API.
parameters:
- $ref: '#/components/parameters/PathInPath'
- $ref: '#/components/parameters/Parameters'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/FeatureNotEnabled'
'403':
$ref: '#/components/responses/MethodNotAllowed'
'404':
$ref: '#/components/responses/IndexNotFound'
tags:
- monitoring
put:
operationId: customPut
requestBody:
description: Parameters to send with the custom request.
content:
application/json:
schema:
type: object
summary: Send requests to the Algolia REST API
description: This method lets you send requests to the Algolia REST API.
parameters:
- $ref: '#/components/parameters/PathInPath'
- $ref: '#/components/parameters/Parameters'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/FeatureNotEnabled'
'403':
$ref: '#/components/responses/MethodNotAllowed'
'404':
$ref: '#/components/responses/IndexNotFound'
tags:
- monitoring
delete:
operationId: customDelete
summary: Send requests to the Algolia REST API
description: This method lets you send requests to the Algolia REST API.
parameters:
- $ref: '#/components/parameters/PathInPath'
- $ref: '#/components/parameters/Parameters'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/FeatureNotEnabled'
'403':
$ref: '#/components/responses/MethodNotAllowed'
'404':
$ref: '#/components/responses/IndexNotFound'
tags:
- monitoring
/1/status:
get:
operationId: getStatus
summary: Retrieve status of all clusters
security: []
tags:
- monitoring
description: Retrieves the status of all Algolia clusters and instances.
responses:
'200':
$ref: '#/components/responses/StatusResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
/1/status/{clusters}:
get:
summary: Retrieve cluster status
description: Retrieves the status of selected clusters.
operationId: getClusterStatus
x-mcp-tool: true
tags:
- monitoring
security: []
parameters:
- $ref: '#/components/parameters/Clusters'
responses:
'200':
$ref: '#/components/responses/StatusResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
/1/incidents:
get:
summary: Retrieve all incidents
description: Retrieves known incidents for all clusters.
operationId: getIncidents
x-mcp-tool: true
security: []
tags:
- monitoring
responses:
'200':
$ref: '#/components/responses/IncidentsResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
/1/incidents/{clusters}:
get:
summary: Retrieve cluster incidents
description: Retrieves known incidents for the selected clusters.
operationId: getClusterIncidents
tags:
- monitoring
security: []
parameters:
- $ref: '#/components/parameters/Clusters'
responses:
'200':
$ref: '#/components/responses/IncidentsResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
/1/inventory/servers:
get:
summary: Retrieve servers
operationId: getServers
security:
- appId: []
- apiKey: []
description: '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.
'
tags:
- monitoring
responses:
'200':
$ref: '#/components/responses/InventoryResponse'
'403':
$ref: '#/components/responses/ForbiddenResponse'
/1/latency/{clusters}:
get:
summary: Retrieve search latency times
description: Retrieves the average latency for search requests for selected clusters.
operationId: getLatency
security: []
tags:
- monitoring
parameters:
- $ref: '#/components/parameters/Clusters'
responses:
'200':
$ref: '#/components/responses/LatencyResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
/1/indexing/{clusters}:
get:
summary: Retrieve indexing monitoring latency
description: 'Retrieves indexing latency metrics for selected clusters.
This endpoint is intended for infrastructure-level monitoring and availability checks.
The returned value reflects latency measured on Algolia''s internal monitoring index
and is reported in milliseconds.
This metric isn''t intended to represent the indexing performance of an individual
application or index. To measure when an indexing operation has completed for your
application, use the `waitTask` method.
'
operationId: getIndexingTime
security: []
tags:
- monitoring
parameters:
- $ref: '#/components/parameters/Clusters'
responses:
'200':
$ref: '#/components/responses/IndexingResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
/1/reachability/{clusters}/probes:
get:
summary: Test the reachability of clusters
description: Test whether clusters are reachable or not.
operationId: getReachability
security: []
tags:
- monitoring
parameters:
- $ref: '#/components/parameters/Clusters'
responses:
'200':
$ref: '#/components/responses/ReachabilityResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
/1/infrastructure/{metric}/period/{period}:
get:
summary: Retrieve metrics
description: '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](https://www.algolia.com/pricing).
You must authenticate requests with the `x-algolia-application-id` and `x-algolia-api-key` headers (using the Monitoring API key).
'
operationId: getMetrics
tags:
- monitoring
parameters:
- $ref: '#/components/parameters/MetricInPath'
- $ref: '#/components/parameters/PeriodInPath'
responses:
'200':
$ref: '#/components/responses/InfrastructureResponse'
'401':
$ref: '#/components/responses/InfrastructureAPIUnauthorized'
/setClientApiKey:
get:
x-helper: true
x-asynchronous-helper: false
x-acl: []
tags:
- monitoring
operationId: setClientApiKey
summary: Switch the API key used to authenticate requests
description: 'Switch the API key used to authenticate requests.
'
parameters:
- in: query
name: apiKey
description: API key to use for subsequent requests.
required: true
schema:
type: string
responses:
'204':
description: No content.
components:
responses:
LatencyResponse:
description: OK
content:
application/json:
schema:
title: latencyResponse
type: object
properties:
metrics:
title: latencyMetric
type: object
additionalProperties: false
properties:
latency:
additionalProperties:
x-additionalPropertiesName: latencies
$ref: '#/components/schemas/Time'
examples:
Success:
value:
metrics:
latency:
c16-de:
- t: 1688056200000
v: 64
- t: 1688056800000
v: 59
- t: 1688057400000
v: 55
BadRequestResponse:
description: Bad Request.
content:
application/json:
schema:
title: badRequest
type: object
additionalProperties: false
properties:
reason:
type: string
examples:
BadRequest:
value:
reason: Unknown servers
IndexingResponse:
description: OK
content:
application/json:
schema:
title: indexingTimeResponse
type: object
properties:
metrics:
title: indexingMetric
type: object
additionalProperties: false
properties:
indexing:
additionalProperties:
x-additionalPropertiesName: cluster
$ref: '#/components/schemas/Time'
examples:
Success:
value:
metrics:
indexing:
c16-de:
- t: 1688056200000
v: 1562
- t: 1688056800000
v: 1637
- t: 1688057400000
v: 1754
UnauthorizedResponse:
description: Unauthorized
content:
text/plain:
schema:
type: string
examples:
Unauthorized:
summary: Invalid credentials
description: Use the Monitoring API key.
value: Invalid credentials
StatusResponse:
description: OK
content:
application/json:
schema:
title: statusResponse
type: object
properties:
status:
type: object
additionalProperties:
x-additionalPropertiesName: cluster
$ref: '#/components/schemas/Status'
examples:
Success:
value:
status:
c16-de: operational
IncidentsResponse:
description: OK
content:
application/json:
schema:
title: incidentsResponse
type: object
properties:
incidents:
type: object
additionalProperties:
x-additionalPropertiesName: cluster
$ref: '#/components/schemas/Incidents'
examples:
success:
value:
incidents:
m134-de:
- t: 1687441685000
v:
title: 'Incident on cluster m134-de: Everything operating normally.
'
status: operational
- t: 1687441579000
v:
title: 'Incident on cluster m134-de: We are encountering a major
issue that impact all API calls.
'
status: major_outage
NotFoundResponse:
description: Not Found.
content:
text/plain:
schema:
type: string
examples:
NotFound:
value: Unknown cluster "test"
ForbiddenResponse:
description: Forbidden
content:
application/json:
schema:
title: forbidden
type: object
additionalProperties: false
properties:
reason:
type: string
examples:
Forbidden:
value:
reason: invalid credentials
MethodNotAllowed:
description: Method not allowed with this API key.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorBase'
ReachabilityResponse:
description: OK
content:
application/json:
schema:
title: reachabilityResponse
type: object
additionalProperties:
x-additionalPropertiesName: cluster
$ref: '#/components/schemas/Probes'
examples:
Success:
value:
c16-de:
sdn-probe-frankfurt: false
monitoring-2: false
sdn-probe-awswest1: false
IndexNotFound:
description: Index not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorBase'
BadRequest:
description: Bad request or request arguments.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorBase'
InfrastructureResponse:
description: OK
content:
application/json:
schema:
title: infrastructureResponse
type: object
additionalProperties: false
properties:
metrics:
title: metrics
type: object
additionalProperties: false
properties:
cpu_usage:
type: object
description: CPU idleness in %.
additionalProperties:
x-additionalPropertiesName: probes
$ref: '#/components/schemas/InfraProbes'
ram_indexing_usage:
type: object
description: RAM used for indexing in MB.
additionalProperties:
x-additionalPropertiesName: probes
$ref: '#/components/schemas/InfraProbes'
ram_search_usage:
type: object
description: RAM used for search in MB.
additionalProperties:
x-additionalPropertiesName: probes
$ref: '#/components/schemas/InfraProbes'
ssd_usage:
type: object
description: "Solid-state disk (SSD) usage expressed as % of RAM. \n0% means no SSD usage. A value of 50% indicates 32 GB SSD usage for a machine with 64 RAM.\n"
additionalProperties:
x-additionalPropertiesName: probes
$ref: '#/components/schemas/InfraProbes'
avg_build_time:
type: object
description: Average build time of the indices in seconds.
additionalProperties:
x-additionalPropertiesName: probes
$ref: '#/components/schemas/InfraProbes'
examples:
success:
value:
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
InfrastructureAPIUnauthorized:
description: Unauthorized
content:
application/json:
schema:
title: unauthorized
type: object
additionalProperties: false
properties:
reason:
type: string
examples:
Unauthorized:
value:
reason: The infrastructure usage API is only available on Enterprise plans. Please contact enterprise@algolia.com for more detail.
InventoryResponse:
description: OK
content:
application/json:
schema:
title: inventoryResponse
type: object
properties:
inventory:
type: array
items:
$ref: '#/components/schemas/Server'
examples:
Success:
value:
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
FeatureNotEnabled:
description: This feature is not enabled on your Algolia account.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorBase'
schemas:
Metric:
type: string
enum:
- avg_build_time
- ssd_usage
- ram_search_usage
- ram_indexing_usage
- cpu_usage
- '*'
example: '*'
Timestamp:
type: integer
format: int64
description: Timestamp, measured in milliseconds since the Unix epoch.
Type:
title: type
type: string
enum:
- cluster
ServerStatus:
title: status
type: string
enum:
- PRODUCTION
Time:
title: times
description: Time measured by a probe.
type: array
items:
title: timeEntry
type: object
additionalProperties: false
properties:
t:
$ref: '#/components/schemas/Timestamp'
v:
type: integer
description: Time in ms.
ProbesMetric:
title: metric
type: object
additionalProperties: false
properties:
t:
$ref: '#/components/schemas/Timestamp'
v:
type: integer
description: Value of the metric.
Incidents:
title: incidents
description: Key-value pairs with the cluster names as keys and the list of incidents reported for this cluster as values.
type: array
items:
title: incidentEntry
type: object
properties:
t:
$ref: '#/components/schemas/Timestamp'
v:
$ref: '#/components/schemas/Incident'
Server:
title: server
type: object
additionalProperties: false
properties:
name:
type: string
description: Server name.
example: c16-de-1
region:
$ref: '#/components/schemas/Region'
is_slave:
type: boolean
default: false
deprecated: true
description: 'Included to support legacy applications.
Use `is_replica` instead.
'
example: false
is_replica:
type: boolean
default: false
description: Whether this server is a replica of another server.
example: false
cluster:
type: string
description: Name of the cluster to which this server belongs.
example: c16-de
status:
$ref: '#/components/schemas/ServerStatus'
type:
$ref: '#/components/schemas/Type'
Incident:
title: incident
description: Incident details.
type: object
properties:
title:
type: string
description: Description of the incident.
status:
$ref: '#/components/schemas/Status'
Status:
title: status
type: string
description: Status of the cluster.
enum:
- operational
- degraded_performance
- partial_outage
- major_outage
InfraProbes:
title: probes
type: array
items:
$ref: '#/components/schemas/ProbesMetric'
Region:
title: region
type: string
description: Region where the cluster is located.
enum:
- au
- br
- ca
- de
- eu
- hk
- in
- jp
- sg
- uae
- uk
- usc
- use
- usw
- za
example: de
Period:
type: string
enum:
- minute
- hour
- day
- week
- month
example: week
ErrorBase:
description: Error.
type: object
x-keep-model: true
additionalProperties: true
properties:
message:
type: string
example: Invalid Application-Id or API-Key
Probes:
title: probes
description: Probes and their response.
type: object
additionalProperties:
x-additionalPropertiesName: probe
type: boolean
description: Key-value pair with the probe name as the key and the reachability status as the value.
parameters:
PathInPath:
name: path
in: path
description: Path of the endpoint, for example `1/newFeature`.
required: true
schema:
type: string
example: /keys
Parameters:
name: parameters
in: query
description: Query parameters to apply to the current query.
schema:
type: object
additionalProperties: true
PeriodInPath:
name: period
in: path
required: true
description: 'Period over which to aggregate the metrics:
- `minute`. Aggregate the last minute. 1 data point per 10 seconds.
- `hour`. Aggregate the last hour. 1 data point per minute.
- `day`. Aggregate the last day. 1 data point per 10 minutes.
- `week`. Aggregate the last week. 1 data point per hour.
- `month`. Aggregate the last month. 1 data point per day.
'
schema:
$ref: '#/components/schemas/Period'
MetricInPath:
name: metric
in: path
required: true
description: 'Metric to report.
For more information about the individual metrics, see the description of the API response.
To include all metrics, use `*`.
'
schema:
$ref: '#/components/schemas/Metric'
Clusters:
name: clusters
in: path
required: true
description: Subset of clusters, separated by commas.
schema:
type: string
example: c1-de,c2-de,c3-de
securitySchemes:
appId:
type: apiKey
in: header
name: X-Algolia-Application-Id
description: Your Algolia application ID.
apiKey:
type: apiKey
in: header
name: X-Algolia-API-Key
description: Your Algolia Monitoring API key.
x-tagGroups:
- name: General
tags:
- status
- incidents
- infrastructure
- monitoring-tag