Zayo Product Catalog API

View available Zayo products and product detials to use in the Quoting API.

OpenAPI Specification

zayo-product-catalog-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: '1.0'
  title: Zayo APIs Maintenance Cases Product Catalog API
  description: 'Zayo offers free APIs to help make doing business with Zayo easier. The world is shifting from user-led interfaces to system-to-system integration through application programming interfaces.  Zayo, your trusted digital transformation partner, is ready to help. Seamless integration to Zayo’s Customer Portal responds to the growing need for automation. Discover how to expand your network, get quotes, order quotes, and manage your network with our Ticketing and Maintenance Cases API.    '
  x-logo:
    url: https://zayo-ui-bucket.s3-us-west-2.amazonaws.com/Common/Logos/zayo-logo-orange.png
    altText: Zayo orange logo
  contact:
    name: Zayo API Team
    email: zayoapi@zayo.com
servers:
- url: https://api.zayo.com
  description: Production server
security:
- BearerToken: []
- OAuthClientCredentials: []
tags:
- name: Product Catalog
  description: View available Zayo products and product detials to use in the Quoting API.
paths:
  /services/quote-management/v3/catalog/product-code:
    get:
      summary: Get product catalog
      description: Get the Zayo product catalog where products are represented as a `productCode`. For each `productCode` get the description and latest version.
      operationId: getProductCatalog
      tags:
      - Product Catalog
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v3
                  data:
                    type: object
                    properties:
                      productCodes:
                        type: array
                        items:
                          type: object
                          properties:
                            productCode:
                              type: string
                              description: Zayo product.
                              example: ETH-ELINE-P2P
                              enum:
                              - WAVES-STD-P2P
                              - ETH-ELINE-UNI
                              - ETH-ELINE-NNI
                              - ETH-ELINE-P2P
                              - IP-DIA
                              - IP-DIA-AGG
                              - IP-VPN
                              - ETH-ELAN-M2M
                              - ETH-PDN-P2P
                            version:
                              type: string
                              description: Semantic version.
                              example: 3.2.0
                            description:
                              type: string
                              description: Description of the product.
                              example: Metro and Intercity Point to Point service configurations provide an Ethernet Layer 2 private line connection between two locations.
              examples:
                Product Catalog v3:
                  value:
                    apiVersion: v3
                    data:
                      productCodes:
                      - productCode: ETH-PDN-P2P
                        version: 3.1.0
                        description: Ethernet connectivity across a completely private managed network operated by Zayo with dedicated fiber and dedicated equipment.
                      - productCode: ETH-ELAN-M2M
                        version: 3.1.0
                        description: A Carrier Ethernet, multipoint to multipoint configuration that allows communications across all locations.  Allows for an aggregated commit across locations.  Provides customers a simple WAN solution that is easier to maintain, support, and scale.
                      - productCode: ETH-ELINE-P2P
                        version: 3.3.0
                        description: Metro and Intercity Point to Point service configurations provide an Ethernet Layer 2 private line connection between two locations.
                      - productCode: ETH-ELINE-NNI
                        version: 3.2.0
                        description: Deliver full connectivity across your network by unifying multiple access points into a single aggregation point.
                      - productCode: ETH-ELINE-UNI
                        version: 3.3.0
                        description: Metro & Intercity Point-to-Multi-Point service provides a hub-and-spoke configuration where multiple locations (UNIs) are homed to a single hub or aggregation point (NNI) at a central location.
                      - productCode: IP-VPN
                        version: 3.3.0
                        description: IPVPN (Virtual Private Network using IP/MPLS backbone).
                      - productCode: IP-DIA
                        version: 3.7.0
                        description: Zayo's high performance Dedicated Internet Access (DIA) service combines essential internet features with global internet reach and scalability for enterprises of all sizes.
                      - productCode: IP-DIA-AGG
                        version: 3.6.0
                        description: Zayo's high performance Aggregated Dedicated Internet Access (DIA) service combines essential internet features with global internet reach and scalability for enterprises of all sizes.
                      - productCode: WAVES-STD-P2P
                        version: 3.0.0
                        description: With Wavelength Point to Point solutions, feel confident with your bandwidth capacity. Zayo offers a range of flexible connectivity options that can be customized to meet your technical specifications. Connect between Tier 1-5 markets across North America.
                Product Catalog v2:
                  value:
                    apiVersion: v2
                    data:
                      productCodes:
                      - productCode: ETH-ELINE-UNI
                        version: 2.1.0
                        description: Metro & Intercity Point-to-Multi-Point service provides a hub-and-spoke configuration where multiple locations (UNIs) are homed to a single hub or aggregation point (NNI) at a central location.
                      - productCode: ETH-ELINE-P2P
                        version: 2.1.0
                        description: Metro and Intercity Point to Point service configurations provide an Ethernet Layer 2 private line connection between two locations.
                      - productCode: ETH-ELINE-NNI
                        version: 2.0.0
                        description: Deliver full connectivity across your network by unifying multiple access points into a single aggregation point.
                      - productCode: ETH-ELAN-M2M
                        version: 2.0.0
                        description: A Carrier Ethernet, multipoint to multipoint configuration that allows communications across all locations.  Allows for an aggregated commit across locations.  Provides customers a simple WAN solution that is easier to maintain, support, and scale.
                      - productCode: ETH-PDN-P2P
                        version: 2.0.0
                        description: Ethernet connectivity across a completely private managed network operated by Zayo with dedicated fiber and dedicated equipment.
                      - productCode: IP-DIA-AGG
                        version: 2.1.0
                        description: Zayo's high performance Aggregated Dedicated Internet Access (DIA) service combines essential internet features with global internet reach and scalability for enterprises of all sizes.
                      - productCode: IP-DIA
                        version: 2.1.0
                        description: Zayo's high performance Dedicated Internet Access (DIA) service combines essential internet features with global internet reach and scalability for enterprises of all sizes.
                      - productCode: IP-VPN
                        version: 2.0.0
                        description: IPVPN (Virtual Private Network using IP/MPLS backbone).
                      - productCode: WAVES-STD-P2P
                        version: 2.0.0
                        description: With Wavelength Point to Point solutions, feel confident with your bandwidth capacity. Zayo offers a range of flexible connectivity options that can be customized to meet your technical specifications. Connect between Tier 1-5 markets across North America.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/quote-management/v3/catalog/product-code-details/{productCode}/{version}:
    get:
      summary: Get product code details
      description: "After you get the latest semantic version from the product catalog route, plug the version and the product code into the product code details route to dynamically receive the latest quote request schema with required and optional attributes needed per product code/version combination. The response of this route is the guide to your quote request. The product code details response and quote request schema includes 3 major components - `attrs` array, `configuration` object, and `preferences` object. \n\nThe `attrs` array is where you can specify your existing `quoteId` to make edits to your quote. \n\nThe `configuration` object is where all of the product-specific attributes are returned. This schema will vary based on the product and version.\n\nThe `preferences` object is where you can specific non-configuration attributes like notes and a unique Id like a corresponding quoteId from your system. This schema is the same for all products and versions."
      operationId: getProductCodeDetails
      tags:
      - Product Catalog
      parameters:
      - name: productCode
        in: path
        required: true
        description: Product code returned from the /product-catalog route.
        schema:
          type: string
          example: IP-DIA
          enum:
          - IP-DIA
          - IP-DIA-AGG
          - ETH-ELINE-UNI
          - ETH-ELINE-NNI
          - ETH-ELINE-P2P
          - WAVES-STD-P2P
          - IP-VPN
          - ETH-ELAN-M2M
          - ETH-PDN-P2P
      - name: version
        in: path
        required: true
        description: Semantic version returned from the /product-catalog route.
        schema:
          type: string
          example: 3.7.0
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v3
                  data:
                    type: object
                    properties:
                      productCodeConfigurations:
                        type: array
                        description: Array that contains attrs array, configuration object, and preferences ojbect.
                        items:
                          type: object
                          properties:
                            attrs:
                              type: array
                              description: Object shows all of the fields that can be passed into the quote request payload at the root level. Attrs objects explain the attributes with a name, displayName, description, criteria, and value or options. Options include value, default value and allowed for controlling fields. These controlling fields will also have a value, and deafult value.
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    example: quoteId
                                    description: Name of the attribute.
                                  displayName:
                                    type: string
                                    example: Quote Id
                                    description: Recommended name if you are exposing this attribute in your own application.
                                  description:
                                    type: string
                                    example: Unique API identifier to be used for subsequent routes.
                                    description: Description of the attribute.
                                  criteria:
                                    type: object
                                    properties:
                                      dataType:
                                        type: string
                                        example: String
                                        description: Data type of the attribute.
                                      isRequired:
                                        type: boolean
                                        example: false
                                        description: Specifies if the attribute or object is required.
                                      anyRequired:
                                        type: array
                                        items:
                                          type: string
                            configuration:
                              type: object
                              description: Object that has its own attrs array with fields that can be passed into the quote request payload within the configuration object. Attrs objects explain the attributes with a name, displayName, description, criteria, and value. Sometimes there are options arrays that show the available picklist values, which can also contain controlling fields. There is also a children array that shows location-based attributes and will explain the number of locations required per quote with the `minCount` and `maxCount` attributes.
                              properties:
                                isRequired:
                                  type: boolean
                                  example: true
                                  description: Specifies if the configuration object is required.
                                attrs:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                        example: quoteId
                                        description: unique identifier of the quote. Pass in this value to the POST quotes/quote route to edit your quote.
                                      displayName:
                                        type: string
                                        example: Quote Id
                                        description: Recommended name if you are exposing this attribute in your own application.
                                      description:
                                        type: string
                                        example: Unique API identifier to be used for subsequent routes.
                                        description: Description of the attribute.
                                      criteria:
                                        type: object
                                        properties:
                                          dataType:
                                            type: string
                                            example: String
                                            description: Data type of the attribute.
                                          isRequired:
                                            type: boolean
                                            example: false
                                            description: Specifies if the attribute is required.
                                          anyRequired:
                                            type: array
                                            description: Array of attribute names that are related in that, at least one of these is required. So, in this case, either locationId or buildingId is required in the quote request payload.
                                            items:
                                              type: string
                                              example: locationA
                                      value:
                                        type: string
                                        example: ETH-ELINE-UNI
                                        description: If a value is specified for this attribute, it will be defined and populated here. Value is returned for `version` and `nodeId`, otherwise you will see `options`.
                                children:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      minCount:
                                        type: integer
                                        example: 1
                                        description: Minimum number of children objects allowed for that product code/version combination.
                                      maxCount:
                                        type: integer
                                        example: 1
                                        description: Maximum number of children objects allowed for that product code/version combination.
                                      attrs:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            name:
                                              type: string
                                              example: quoteId
                                              description: Name of the attribute.
                                            displayName:
                                              type: string
                                              example: Quote Id
                                              description: Recommended name if you are exposing this attribute in your own application.
                                            description:
                                              type: string
                                              example: Unique API identifier to be used for subsequent routes.
                                              description: Description of the attribute.
                                            criteria:
                                              type: object
                                              properties:
                                                dataType:
                                                  type: string
                                                  example: String
                                                  description: Data type of the attribute.
                                                isRequired:
                                                  type: boolean
                                                  example: false
                                                  description: Specifies if the attribute is required.
                                                anyRequired:
                                                  type: array
                                                  items:
                                                    type: string
                                            value:
                                              type: string
                                              example: ETH-ELINE-UNI
                                              description: If a value is specified for this attribute, it will be defined and populated here. Other static values include `version` and `nodeId`.
                                            options:
                                              type: array
                                              description: This is an alternative to the value option. This represents an array of enum values, or potential picklist options. Some of these enum values can be controlled by other values which are defined in this array.
                                              items:
                                                type: object
                                                properties:
                                                  value:
                                                    type: string
                                                    example: 10/100/1000BaseT
                                                    description: This is the enum value for the attribute.
                                                  defaultValue:
                                                    type: boolean
                                                    example: false
                                                    description: Specifies if this value is the default option.
                                                  allowedForControllingFields:
                                                    type: array
                                                    description: Array of controlling fields and field values. Controlling fields are used for attributes which have options that are dependent on another attribute. For example, a port handoff speed of GigE can’t support a bandwidth over 10G, therefore `allowForControllingFields` under that port handoff speed includes `bandwidth` and the supported bandwidth `values`.
                                                    items:
                                                      type: object
                                                      properties:
                                                        controllingField:
                                                          type: string
                                                          example: bandwidth
                                                          description: Name of the field that controls the enum value.
                                                        values:
                                                          type: array
                                                          description: Array of value options for the `controllingField`.
                                                          items:
                                                            type: object
                                                            properties:
                                                              value:
                                                                type: string
                                                                example: 10Mb
                                                                description: Value option for the `controllingField`.
                                                              defaultValue:
                                                                type: boolean
                                                                example: false
                                                                description: Explains if the `controllingField` has a default value.
                            preferences:
                              type: object
                              description: Object that contains attributes not related to the product configuration, like `requestFollowUp`, `notes`, and `quoteNameIedntifier`.
                              properties:
                                isRequired:
                                  type: boolean
                                  example: false
                                  description: Specifies if the properties object is required.
                                attrs:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                        example: requestFollowUp
                                        description: Name of the attribute.
                                      displayName:
                                        type: string
                                        example: Request Follow Up
                                        description: Recommended name if you are exposing this attribute in your own application.
                                      description:
                                        type: string
                                        example: If "Yes" then if the quote does nto have immediate pricing available, then quote is routed to the Tranzact Experts desk for research and further investigation. If "No" then quote is disregarded. If you are setting this value to Yes, please gain approval from zayoapi@zayo.com and provide contact information under Notes for direct follow up.
                                        description: Description of the attribute.
                                      criteria:
                                        type: object
                                        properties:
                                          dataType:
                                            type: string
                                            example: String
                                            description: Data type of the attribute.
                                          isRequired:
                                            type: boolean
                                            example: false
                                            description: Specifies if the attribute is required.
                                      options:
                                        type: array
                                        description: This represents an array of enum values, or potential picklist options. Some of these enum values can be controlled by other values which are defined in this array.
                                        items:
                                          type: object
                                          properties:
                                            value:
                                              type: string
                                              example: true
                                              description: This is the enum value for the attribute.
                                            defaultValue:
                                              type: boolean
                                              example: true
                                              description: Specifies if this value is the default option.
              examples:
                ETH-ELINE-UNI 3.3.0:
                  value:
                    apiVersion: v3
                    data:
                      productCodeConfigurations:
                      - attrs:
                        - name: quoteId
                          displayName: Quote Id
                          description: Unique API identifier to be used for subsequent routes.
                          criteria:
                            dataType: string
                            isRequired: false
                        configuration:
                          isRequired: true
                          attrs:
                          - name: productCode
                            displayName: Product Code
                            description: N/A
                            criteria:
                              dataType: String
                              isRequired: true
                            value: ETH-ELINE-UNI
                          - name: version
                            displayName: Version
                            description: N/A
                            criteria:
                              dataType: String
                              isRequired: true
                            value: 3.3.0
                          - name: nodeId
                            displayName: Node Id
                            description: 36-character UUID
                            criteria:
                              dataType: String
                              isRequired: true
                            value: AAC758F0-F719-470D-B716-E8EC6804810F
                          - name: bandwidth
                            displayName: Bandwidth
                            description: Amount of data capacity for the service
                            criteria:
                              dataType: String
                              isRequired: true
                            options:
                            - value: 10Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 20Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 30Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 40Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 50Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 60Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 70Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 80Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 90Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 100Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 150Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 200Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 250Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 300Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 400Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 500Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 600Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 700Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 800Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 900Mb
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 1G
                              defaultValue: false
                              allowForControllingFields: []
                            - value: 2G
                 

# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zayo/refs/heads/main/openapi/zayo-product-catalog-api-openapi.yml