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.

Operations 14

GET /{path} Send requests to the Algolia REST API #
POST /{path} Send requests to the Algolia REST API #
PUT /{path} Send requests to the Algolia REST API #
DELETE /{path} Send requests to the Algolia REST API #
GET /1/status Retrieve status of all clusters #
GET /1/status/{clusters} Retrieve cluster status #
GET /1/incidents Retrieve all incidents #
GET /1/incidents/{clusters} Retrieve cluster incidents #
GET /1/inventory/servers Retrieve servers #
GET /1/latency/{clusters} Retrieve search latency times #
GET /1/indexing/{clusters} Retrieve indexing monitoring latency #
GET /1/reachability/{clusters}/probes Test the reachability of clusters #
GET /1/infrastructure/{metric}/period/{period} Retrieve metrics #
GET /setClientApiKey Switch the API key used to authenticate requests #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/algolia-monitoring-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

algolia-monitoring-api-openapi.yml Raw ↑
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