Equinix Metros API

Metro Management. Check out the product docs to learn more about [Metros](https://metal.equinix.com/developers/docs/locations/metros/).

OpenAPI Specification

equinix-metros-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Equinix API Authentication Metros 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:
- description: Metro Management. Check out the product docs to learn more about [Metros](https://metal.equinix.com/developers/docs/locations/metros/).
  externalDocs:
    url: https://metal.equinix.com/developers/docs/locations/metros/
  name: Metros
paths:
  /locations/metros:
    get:
      description: Provides a listing of available metros
      operationId: findMetros
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetroList'
          description: ok
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: unauthorized
      summary: Retrieve all metros
      tags:
      - Metros
  /locations/metros/{id}:
    get:
      description: Show the details for a metro, including name, code, and country.
      operationId: getMetro
      parameters:
      - description: Metro UUID
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metro'
          description: ok
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: not found
      summary: Retrieve a specific Metro's details
      tags:
      - Metros
  /fabric/v4/metros:
    get:
      tags:
      - Metros
      summary: Get all Metros
      description: GET All Subscriber Metros with an option query parameter to return all Equinix Fabric metros in which the customer has a presence, as well as latency data for each location.
      operationId: getMetros
      parameters:
      - name: presence
        in: query
        description: User On Boarded Metros based on Fabric resource availability
        required: false
        schema:
          $ref: '#/components/schemas/Presence'
      - name: offset
        in: query
        description: offset
        required: false
        schema:
          type: integer
        example: 1
      - name: limit
        in: query
        description: number of records to fetch
        required: false
        schema:
          type: integer
        example: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetroResponse'
              examples:
                metroExample:
                  $ref: '#/components/examples/metro'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetroErrorList'
              examples:
                example:
                  $ref: '#/components/examples/400_metros'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetroErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401_metros'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetroErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500_metros'
  /fabric/v4/metros/{metroCode}:
    get:
      tags:
      - Metros
      summary: Get Metro by Code
      description: GET Metros retrieves all Equinix Fabric metros, as well as latency data between each metro location.
      operationId: getMetroByCode
      parameters:
      - name: metroCode
        in: path
        description: Metro Code
        required: true
        schema:
          $ref: '#/components/schemas/MetroCode'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metro_2'
              examples:
                metroExample:
                  $ref: '#/components/examples/metroByCode'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetroErrorList'
              examples:
                example:
                  $ref: '#/components/examples/400_metroCode'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetroErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401_metros'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetroErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500_metros'
components:
  schemas:
    MetroList:
      example:
        metros:
        - country: country
          code: code
          name: name
          id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
        - country: country
          code: code
          name: name
          id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
      properties:
        metros:
          items:
            $ref: '#/components/schemas/Metro'
          type: array
      type: object
    Error:
      description: Error responses are included with 4xx and 5xx HTTP responses from the API service. Either "error" or "errors" will be set.
      properties:
        error:
          description: A description of the error that caused the request to fail.
          type: string
        errors:
          description: A list of errors that contributed to the request failing.
          items:
            description: An error message that contributed to the request failing.
            type: string
          type: array
      type: object
    Metro:
      example:
        country: country
        code: code
        name: name
        id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
      properties:
        code:
          type: string
        country:
          type: string
        id:
          format: uuid
          type: string
        name:
          type: string
      type: object
    Metro_2:
      type: object
      properties:
        href:
          type: string
          description: The Canonical URL at which the resource resides.
        type:
          type: string
          description: Indicator of a Fabric Metro
        code:
          type: string
          description: Code Assigned to an Equinix IBX data center in a specified metropolitan area.
        region:
          type: string
          description: Board geographic area in which the data center is located
        name:
          type: string
          description: Name of the region in which the data center is located.
        country:
          type: string
          description: Country code in which the data center is located.
        equinixAsn:
          type: integer
          description: Autonomous system number (ASN) for a specified Fabric metro. The ASN is a unique identifier that carries the network routing protocol and exchanges that data with other internal systems via border gateway protocol.
          format: int64
        localVCBandwidthMax:
          type: integer
          description: This field holds Max Connection speed with in the metro
          format: int64
        geoCoordinates:
          $ref: '#/components/schemas/GeoCoordinates'
        connectedMetros:
          type: array
          items:
            $ref: '#/components/schemas/ConnectedMetro'
        services:
          type: array
          items:
            $ref: '#/components/schemas/services'
        geoScopes:
          type: array
          description: List of supported geographic boundaries of a Fabric Metro.
          items:
            $ref: '#/components/schemas/GeoScopeType'
      description: GET Metros retrieves all Equinix? Fabric? metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
    PriceError_additionalInfo:
      type: object
      properties:
        property:
          type: string
        reason:
          type: string
    GeoScopeType:
      type: string
      description: Geographic boundary types
      enum:
      - CANADA
      - CONUS
      - JAPAN
      - UK
      - AUSTRALIA
      - BRAZIL
      - SWITZERLAND
    GeoCoordinates:
      type: object
      properties:
        latitude:
          type: number
          description: Latitude of a Fabric Metro
          format: double
        longitude:
          type: number
          description: Longitude of a Fabric Metro
          format: double
      description: Geographic location data of Fabric Metro
    Presence:
      type: string
      description: Presence
      enum:
      - MY_PORTS
    MetroErrorList:
      type: array
      items:
        $ref: '#/components/schemas/MetroError'
    MetroResponse:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        data:
          type: array
          description: List of Fabric Metros.
          items:
            $ref: '#/components/schemas/Metro_2'
      description: GET Metros retrieves all Equinix? Fabric? metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
    MetroCode:
      type: string
      description: Metro Code
    ConnectedMetro:
      type: object
      properties:
        href:
          type: string
          description: The Canonical URL at which the resource resides.
        code:
          type: string
          description: Code assigned to an Equinix International Business Exchange (IBX) data center in a specified metropolitan area.
        avgLatency:
          type: number
          description: Average latency (in milliseconds[ms]) between two specified metros.
        remoteVCBandwidthMax:
          type: integer
          description: This field holds the Max Connection speed with connected metros
          format: int64
      description: Arrays of objects containing latency data for the specified metros
    MetroError:
      required:
      - errorCode
      - errorMessage
      type: object
      properties:
        errorCode:
          type: string
          enum:
          - EQ-3036001
          - EQ-3036013
          - EQ-3036030
          - EQ-3036100
        errorMessage:
          type: string
          enum:
          - Unauthorized
          - Invalid Query Parameter
          - Invalid Path Parameter
          - Invalid Query or Path Parameter
          - Internal Server Error
          - Metro Not Found
        correlationId:
          type: string
        details:
          type: string
        help:
          type: string
        additionalInfo:
          type: array
          items:
            $ref: '#/components/schemas/PriceError_additionalInfo'
      description: Error with details
      discriminator:
        propertyName: errorCode
    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
    services:
      type: object
      properties:
        type:
          type: string
          description: Type of Service
      description: Arrays of objects containing type of services supported in the specified metros
  examples:
    500_metros:
      value:
      - errorCode: EQ-3036030
        errorMessage: Internal Server Error
        correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
        additionalInfo:
        - reason: An Internal Server Error occured
    401_metros:
      value:
      - errorCode: EQ-3036001
        errorMessage: Unauthorized
        correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
        additionalInfo:
        - reason: You are unauthorized to perform this operation
    metro:
      value:
        pagination:
          offset: 0
          limit: 75
          total: 1
        data:
        - href: https://api.equinix.com/v4/fabric/metros/AM
          type: XF_METRO
          code: AM
          name: Amsterdam
          region: EMEA
          equinixAsn: 60000
          localVCBandwidthMax: 10000
          geoCoordinates:
            latitude: 52.30049
            longitude: 4.942603
          connectedMetros:
          - href: https://api.equinix.com/v4/fabric/metros/MX
            code: MX
            avgLatency: 132
            remoteVCBandwidthMax: 10000
          - href: https://api.equinix.com/v4/fabric/metros/AM
            code: HH
            avgLatency: 8.62
            remoteVCBandwidthMax: 10000
          - href: https://api.equinix.com/v4/fabric/metros/SL
            code: SL
            avgLatency: 229
            remoteVCBandwidthMax: 10000
          - href: https://api.equinix.com/v4/fabric/metros/SO
            code: SO
            avgLatency: 36.3
            remoteVCBandwidthMax: 50000
          - href: https://api.equinix.com/v4/fabric/metros/IL
            code: IL
            avgLatency: 44.8
            remoteVCBandwidthMax: 50000
          - href: https://api.equinix.com/v4/fabric/metros/LS
            code: LS
            avgLatency: 36.6
            remoteVCBandwidthMax: 50000
          - href: https://api.equinix.com/v4/fabric/metros/BA
            code: BA
            avgLatency: 32.6
            remoteVCBandwidthMax: 50000
          - href: https://api.equinix.com/v4/fabric/metros/BL
            code: BL
            avgLatency: 3.28
            remoteVCBandwidthMax: 50000
          - href: https://api.equinix.com/v4/fabric/metros/GV
            code: GV
            avgLatency: 15.3
            remoteVCBandwidthMax: 50000
          - href: https://api.equinix.com/v4/fabric/metros/LD
            code: LD
            avgLatency: 5.85
            remoteVCBandwidthMax: 50000
          services:
          - type: ETHERNET_IP_SERVICE
          - type: TIME_SERVICE
          geoScopes:
          - CANADA
          - CONUS
          - JAPAN
          - UK
          - AUSTRALIA
          - BRAZIL
          - SWITZERLAND
    400_metros:
      value:
      - errorCode: EQ-3036013
        errorMessage: Invalid Query Parameter
        correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
        additionalInfo:
        - property: presence
          reason: Allowed value for presence is MY_PORTS
    400_metroCode:
      value:
      - errorCode: EQ-3036013
        errorMessage: Invalid Path Parameter
        correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
        additionalInfo:
        - property: pathparameter-metroCode
          reason: Provide valid metro code
    metroByCode:
      value:
        href: https://api.equinix.com/v4/fabric/metros/AM
        type: XF_METRO
        code: AM
        region: EMEA
        name: Amsterdam
        equinixAsn: 60000
        localVCBandwidthMax: 50000
        geoCoordinates:
          latitude: 52.30049
          longitude: 4.942603
        connectedMetros:
        - href: https://api.equinix.com/v4/fabric/metros/MX
          code: MX
          avgLatency: 132
          remoteVCBandwidthMax: 50000
        - href: https://api.equinix.com/v4/fabric/metros/HH
          code: HH
          avgLatency: 8.62
          remoteVCBandwidthMax: 50000
        - href: https://api.equinix.com/v4/fabric/metros/SL
          code: SL
          avgLatency: 229
          remoteVCBandwidthMax: 50000
        - href: https://api.equinix.com/v4/fabric/metros/SO
          code: SO
          avgLatency: 36.3
          remoteVCBandwidthMax: 10000
        - href: https://api.equinix.com/v4/fabric/metros/IL
          code: IL
          avgLatency: 44.8
          remoteVCBandwidthMax: 10000
        - href: https://api.equinix.com/v4/fabric/metros/LS
          code: LS
          avgLatency: 36.6
          remoteVCBandwidthMax: 10000
        - href: https://api.equinix.com/v4/fabric/metros/AM
          code: BA
          avgLatency: 32.6
          remoteVCBandwidthMax: 10000
        - href: https://api.equinix.com/v4/fabric/metros/BL
          code: BL
          avgLatency: 3.28
          remoteVCBandwidthMax: 10000
        - href: https://api.equinix.com/v4/fabric/metros/GV
          code: GV
          avgLatency: 15.3
          remoteVCBandwidthMax: 10000
        - href: https://api.equinix.com/v4/fabric/metros/LD
          code: LD
          avgLatency: 5.85
          remoteVCBandwidthMax: 10000
        services:
        - type: ETHERNET_IP_SERVICE
        - type: TIME_SERVICE
        geoScopes:
        - CANADA
        - CONUS
        - JAPAN
        - UK
        - AUSTRALIA
        - BRAZIL
        - SWITZERLAND
x-eqx-api-linter-skip-rules:
- 3
- 38