Equinix Metrics API

Metrics

OpenAPI Specification

equinix-metrics-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Equinix API Authentication Metrics API
  description: 'Equinix APIs use the OAuth 2.0 for authentication and authorization. Equinix supports the resource owner password and the client credentials flow.

    To begin, obtain OAuth 2.0 client credentials from the Equinix Developer Console under "My Apps". Then your client application  requests an access token from the Equinix API Authorization endpoint, extracts the access_token from the response, and sends the Bearer token to the API that you want to access'
  termsOfService: https://www.equinix.com/about/legal/terms
  contact:
    name: Equinix API Support
    url: https://docs.equinix.com/api-support.htm
  version: '1.2'
servers:
- url: https://api.equinix.com
tags:
- name: Metrics
  description: Metrics
paths:
  /fabric/v4/{asset}/{assetId}/metrics:
    get:
      tags:
      - Metrics
      summary: Get Metrics by Asset Id
      description: This API provides capability to retrieve Metrics of an asset id
      operationId: getMetricByAssetId
      parameters:
      - name: asset
        in: path
        description: asset
        required: true
        schema:
          $ref: '#/components/schemas/MetricAssetType'
      - name: assetId
        in: path
        description: asset UUID
        required: true
        schema:
          $ref: '#/components/schemas/AssetId'
      - name: name
        in: query
        description: "Name of the metric types: \n- `equinix.fabric.connection.bandwidth_rx.usage`\n- `equinix.fabric.connection.bandwidth_tx.usage`\n- `equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count`\n- `equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count`\n- `equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count`\n- `equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count`\n- `equinix.fabric.port.bandwidth_rx.usage`\n- `equinix.fabric.port.bandwidth_tx.usage`\n- `equinix.fabric.port.packets_dropped_rx.count`\n- `equinix.fabric.port.packets_dropped_tx.count`\n- `equinix.fabric.port.packets_erred_rx.count`\n- `equinix.fabric.port.packets_erred_tx.count`\n- `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.latency`\n- `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.jitter_avg`\n"
        required: true
        schema:
          pattern: ^equinix\.fabric\.(connection|port|metro)\..+
          type: string
        examples:
          connectionRxUsageExample:
            value: equinix.fabric.connection.bandwidth_rx.usage
          connectionTxUsageExample:
            value: equinix.fabric.connection.bandwidth_tx.usage
          connectionRxPacketAsideDroppedExample:
            value: equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count
          connectionTxPacketAsideDroppedExample:
            value: equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count
          connectionRxPacketZsideDroppedExample:
            value: equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count
          connectionTxPacketZsideDroppedExample:
            value: equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count
          portRxUsageExample:
            value: equinix.fabric.port.bandwidth_rx.usage
          portTxUsageExample:
            value: equinix.fabric.port.bandwidth_tx.usage
          portRxPacketDroppedExample:
            value: equinix.fabric.port.packets_dropped_rx.count
          portTxPacketDroppedExample:
            value: equinix.fabric.port.packets_dropped_tx.count
          portRxPacketErredExample:
            value: equinix.fabric.port.packets_erred_rx.count
          portTxPacketErredExample:
            value: equinix.fabric.port.packets_erred_tx.count
          metroLatencyExample:
            value: equinix.fabric.metro.sv_dc.latency
          metroJitterExample:
            value: equinix.fabric.metro.sv_dc.jitter_avg
      - name: fromDateTime
        in: query
        description: Start date and time
        required: false
        schema:
          $ref: '#/components/schemas/StartDateTime'
      - name: toDateTime
        in: query
        description: End date and time
        required: false
        schema:
          $ref: '#/components/schemas/EndDateTime'
      - name: offset
        in: query
        description: offset
        required: false
        schema:
          $ref: '#/components/schemas/Offset'
      - name: limit
        in: query
        description: limit
        required: false
        schema:
          $ref: '#/components/schemas/Limit_1'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMetricsByAssetResponse'
              examples:
                Example:
                  $ref: '#/components/examples/get-metrics-by-asset-id'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
  /fabric/v4/metrics:
    get:
      tags:
      - Metrics
      summary: Get Metrics by Name
      description: This API provides capability to retrieve Metrics by specific wildcard metric types
      operationId: getMetricByName
      parameters:
      - name: name
        in: query
        description: "Name of the metric types with wildcard: \n- `equinix.fabric.metro.*.latency`\n- `equinix.fabric.metro.*.jitter_avg`\n"
        required: true
        schema:
          pattern: ^equinix\.fabric\.metro\.\*\..+
          type: string
        examples:
          metroLatencyExample:
            value: equinix.fabric.metro.*.latency
          metroJitterExample:
            value: equinix.fabric.metro.*.jitter_avg
      - name: value
        in: query
        description: value
        required: true
        schema:
          $ref: '#/components/schemas/Value'
      - name: offset
        in: query
        description: offset
        required: false
        schema:
          $ref: '#/components/schemas/Offset'
      - name: limit
        in: query
        description: limit
        required: false
        schema:
          $ref: '#/components/schemas/Limit_1'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMetricsByNameResponse'
              examples:
                Example:
                  $ref: '#/components/examples/get-metrics-by-name'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
  /fabric/v4/metrics/search:
    post:
      tags:
      - Metrics
      summary: Search Metrics
      description: This API provides capability to search metrics from a filtered query
      operationId: searchMetrics
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsSearchRequest'
            examples:
              MetricSearchRequestExample:
                $ref: '#/components/examples/search-metrics'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMetricsByAssetResponse'
              examples:
                Example:
                  $ref: '#/components/examples/get-metrics-by-asset-id'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
components:
  schemas:
    Value:
      type: string
      description: Which value to retrieve
      example: last
    PriceError_additionalInfo:
      type: object
      properties:
        property:
          type: string
        reason:
          type: string
    GetMetricsByNameResponse:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        data:
          type: array
          description: Data returned from the API call.
          items:
            $ref: '#/components/schemas/Metric'
    EndDateTime:
      type: string
      description: End date and time
      format: date-time
      example: 2024-07-11 18:06:21+00:00
    Pagination:
      required:
      - limit
      - total
      type: object
      properties:
        offset:
          minimum: 0
          type: integer
          description: Index of the first item returned in the response. The default is 0.
          default: 0
        limit:
          minimum: 0
          type: integer
          description: Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20.
          default: 20
        total:
          minimum: 0
          type: integer
          description: Total number of elements returned.
        next:
          type: string
          description: URL relative to the next item in the response.
        previous:
          type: string
          description: URL relative to the previous item in the response.
      description: Pagination response information
    StartDateTime:
      type: string
      description: Start date and time
      format: date-time
      example: 2024-07-11 18:06:21+00:00
    ErrorList:
      type: array
      description: List of Error Message
      items:
        $ref: '#/components/schemas/Error'
    AssetId:
      type: string
      description: Asset UUID
      format: uuid
      example: 757400f8-d360-11e9-bb65-2a2ae2dbcce6
    MetricAssetType:
      type: string
      enum:
      - ports
      - connections
      - metros
    GetMetricsByAssetResponse:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        data:
          type: array
          description: Data returned from the API call.
          items:
            $ref: '#/components/schemas/Metric'
    MetricSimpleExpression:
      type: object
      properties:
        property:
          type: string
          description: "Possible field names to use on filters:\n * `/subject` - Metric subject description (required and limited to 1 value)\n * `/name` - Metric names (required)\n * `/dataPoints/endDateTime` - Time of Metrics\n"
          example: /subject
        operator:
          type: string
          description: "Possible operators to use on filters:\n * `=` - equal\n * `>` - greater than\n * `>=` - greater than or equal to\n * `<` - less than\n * `<=` - less than or equal to\n * `BETWEEN` - between\n * `IN` - in\n"
          example: '='
        values:
          type: array
          items:
            type: string
            example: equinix.fabric.port.bandwidth_rx.usage
    Metric_resource:
      type: object
      properties:
        href:
          type: string
          description: Metric resource href
        uuid:
          type: string
          description: Metric resource UUID
        type:
          type: string
          description: Metric resource type
        state:
          type: string
          description: Metric resource state
        name:
          type: string
          description: Metric resource name
        description:
          type: string
          description: Metric resource description
      description: Metric resource
    MetricFilter:
      type: object
      anyOf:
      - $ref: '#/components/schemas/MetricSimpleExpression'
    MetricsSearchRequest:
      required:
      - filter
      type: object
      properties:
        filter:
          $ref: '#/components/schemas/MetricFilters'
        pagination:
          $ref: '#/components/schemas/PaginationRequest'
      description: Search requests containing criteria
    Metric:
      type: object
      properties:
        type:
          type: string
          description: Equinix supported metric type
        name:
          type: string
          description: Metric name
        unit:
          type: string
          description: Metric unit
        interval:
          type: string
          description: Metric interval (set automatically based on search range)
        resource:
          $ref: '#/components/schemas/Metric_resource'
        summary:
          type: string
          description: Metric summary
        datapoints:
          type: array
          description: Metric data points
          items:
            $ref: '#/components/schemas/Metric_datapoints'
      description: Metric object
    MetricFilters:
      type: object
      properties:
        and:
          type: array
          items:
            $ref: '#/components/schemas/MetricFilter'
    Error:
      required:
      - errorCode
      - errorMessage
      type: object
      properties:
        errorCode:
          pattern: ^EQ-\d{7}$
          type: string
        errorMessage:
          type: string
        correlationId:
          type: string
        details:
          type: string
        help:
          type: string
        additionalInfo:
          type: array
          items:
            $ref: '#/components/schemas/PriceError_additionalInfo'
      description: Error Response with details
    Limit_1:
      type: integer
      description: Pagination limit
      example: 20
      default: 20
    Offset:
      type: integer
      description: Pagination offset
      example: 0
      default: 0
    Metric_datapoints:
      type: object
      properties:
        endDateTime:
          type: string
          description: Datapoint end date and time
          format: date-time
        startDateTime:
          type: string
          description: Datapoint start date and time
          format: date-time
        value:
          type: number
          description: Datapoint value
    PaginationRequest:
      type: object
      properties:
        offset:
          minimum: 0
          type: integer
          description: Index of the first element.
          default: 0
        limit:
          minimum: 1
          type: integer
          description: Number of elements to be requested per page. Number must be between 1 and 100, and the default is 20.
          default: 20
      description: Pagination request information
  examples:
    '404':
      value:
      - errorCode: EQ-3045811
        errorMessage: uuid not found
        correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
        details: uuid not found
    get-metrics-by-name:
      value:
        pagination:
          offset: 0
          limit: 5000
          total: 3
        data:
        - type: GAUGE
          name: equinix.fabric.metro.at_am.latency
          unit: ms
          resource:
            href: https://uatapi.equinix.com/fabric/v4/metros/AT
            type: XF_METRO
            code: AT
            description: Atlanta to Amsterdam intermetro latency, average in milliseconds
          datapoints:
          - endDateTime: 2026-02-03 23:05:04+00:00
            value: 94.8
        - type: GAUGE
          name: equinix.fabric.metro.at_ba.latency
          unit: ms
          resource:
            href: https://uatapi.equinix.com/fabric/v4/metros/AT
            type: XF_METRO
            code: AT
            description: Atlanta to Barcelona intermetro latency, average in milliseconds
          datapoints:
          - endDateTime: 2026-02-03 23:05:04+00:00
            value: 111
        - type: GAUGE
          name: equinix.fabric.metro.at_bg.latency
          unit: ms
          resource:
            href: https://uatapi.equinix.com/fabric/v4/metros/AT
            type: XF_METRO
            code: AT
            description: Atlanta to Bogota intermetro latency, average in milliseconds
          datapoints:
          - endDateTime: 2026-02-03 23:05:04+00:00
            value: 69.8
    get-metrics-by-asset-id:
      value:
        pagination:
          offset: 0
          limit: 10
          total: 2
          next: null
          previous: null
        data:
        - type: GAUGE
          name: equinix.fabric.port.bandwidth_rx.usage
          unit: bit/s
          interval: PT5M
          resource:
            href: https://api.equinix.com/fabric/v4/ports/0689734d-25c6-40d1-a9ff-3e4edea07a72
            uuid: 0689734d-25c6-40d1-a9ff-3e4edea07a72
            type: XF_PORT
            state: PROVISIONED
            name: my-port-name
          summary:
            mean: 102.15384615384616
            max: 107
          datapoints:
          - endDateTime: 2025-05-14 13:57:56+00:00
            value: 107
          - endDateTime: 2025-05-14 14:02:48+00:00
            value: 97
          - endDateTime: 2025-05-14 14:07:58+00:00
            value: 105
          - endDateTime: 2025-05-14 14:12:36+00:00
            value: 102
          - endDateTime: 2025-05-14 14:18:00+00:00
            value: 96
          - endDateTime: 2025-05-14 14:23:03+00:00
            value: 106
          - endDateTime: 2025-05-14 14:27:59+00:00
            value: 104
          - endDateTime: 2025-05-14 14:32:56+00:00
            value: 104
          - endDateTime: 2025-05-14 14:37:51+00:00
            value: 103
          - endDateTime: 2025-05-14 14:42:59+00:00
            value: 100
          - endDateTime: 2025-05-14 14:47:58+00:00
            value: 105
          - endDateTime: 2025-05-14 14:53:08+00:00
            value: 94
          - endDateTime: 2025-05-14 14:57:46+00:00
            value: 105
        - type: GAUGE
          name: equinix.fabric.port.bandwidth_tx.usage
          unit: bit/s
          interval: PT5M
          resource:
            href: https://api.equinix.com/fabric/v4/ports/0689734d-25c6-40d1-a9ff-3e4edea07a72
            uuid: 0689734d-25c6-40d1-a9ff-3e4edea07a72
          summary:
            mean: 255.92307692307693
            max: 295
          datapoints:
          - endDateTime: 2025-05-14 13:57:56+00:00
            value: 259
          - endDateTime: 2025-05-14 14:02:48+00:00
            value: 234
          - endDateTime: 2025-05-14 14:07:58+00:00
            value: 242
          - endDateTime: 2025-05-14 14:12:36+00:00
            value: 280
          - endDateTime: 2025-05-14 14:18:00+00:00
            value: 243
          - endDateTime: 2025-05-14 14:23:03+00:00
            value: 262
          - endDateTime: 2025-05-14 14:27:59+00:00
            value: 247
          - endDateTime: 2025-05-14 14:32:56+00:00
            value: 295
          - endDateTime: 2025-05-14 14:37:51+00:00
            value: 284
          - endDateTime: 2025-05-14 14:42:59+00:00
            value: 227
          - endDateTime: 2025-05-14 14:47:58+00:00
            value: 260
          - endDateTime: 2025-05-14 14:53:08+00:00
            value: 251
          - endDateTime: 2025-05-14 14:57:46+00:00
            value: 243
    '403':
      value:
      - errorCode: EQ-3045003
        errorMessage: Operation not allowed
        correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
        details: Operation not allowed for current user
    '401':
      value:
      - errorCode: EQ-3000039
        errorMessage: User not found in request or invalid.
        correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
    '500':
      value:
      - errorCode: EQ-3045004
        errorMessage: Internal Server Error
        correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
        details: Internal Server Error
    search-metrics:
      value:
        filter:
          and:
          - property: /subject
            operator: '='
            values:
            - /fabric/v4/ports/8ac8ecfe-c7cb-4def-9f77-5ce93c19d83d
          - property: /name
            operator: IN
            values:
            - equinix.fabric.port.bandwidth_rx.usage
            - equinix.fabric.port.bandwidth_tx.usage
            - equinix.fabric.port.operation.status
          - property: /dataPoints/endDateTime
            operator: BETWEEN
            values:
            - 2025-09-01 19:19:50+00:00
            - 2025-09-03 19:19:50+00:00
        pagination:
          offset: 0
          limit: 10
x-eqx-api-linter-skip-rules:
- 3
- 38