This endpoint is used to obtain an Access Token using the Client Credentials Grant flow. This flow is typically used for machine-to-machine (M2M) communication where a specific user’s consent is not required, and the client application is acting on its own behalf.

Get offer details

Retrieves the detailed configuration, pricing references, and metadata for a specific service Offer identified by its namespace and name.

FeatureDetails
MethodGET
Endpoint/apis/v1alpha/namespaces/{namespace}/offer/{name}

Path parameters

ParameterTypeRequiredDescription
namespaceStringYesThe unique identifier for the namespace. (e.g., 7 in the example)
nameStringYesThe unique resource name of the offer (e.g., telr-test-001)

Headers

HeaderValueRequiredDescription
AuthorizationBearer <TOKEN>YesA valid API Bearer token for authentication

Response body schema

The response returns a JSON object representing the Offer resource.

FieldNESTED PROPERTYTypeDescription
kindStringThe type of resource (offer)
versionStringAPI version (e.g., v1alpha)
metadataObjectContains timestamps, labels, and geo-spatial data (lat/long coordinates and Plus Codes)
specObjectContains the core business logic and configuration for the offer
**quoteRef / siteRef**References to the parent Quote and associated Site objects
termsArrayContract durations (e.g., 36 months) and their validity status
addressFull geographic details of the service location, including normalized street data and UK-specific fields (if applicable)
**gaa / litBldgs**Pricing reference blocks for different connectivity types (DIA, Broadband, Ethernet)
networkConfigurationDefines HA options and LAN interface types (e.g., copper)
templateSelectionHardware/Software constraints such as firewall requirements, max bandwidth (e.g., 200 Mbps), and circuit limits
state.phaseThe current lifecycle stage of the offer (e.g., design)
dateExpiredEpoch timestamp indicating when the offer pricing/validity expires

Example response analysis

In the provided sample, the offer “telr-test-001” is for a site in Seattle, WA.

  • Pricing: The offer has successful pricing hits (hasOfferings: true) for DIA and Ethernet via GAA, but no Broadband offerings under the “Lit Buildings” category.
  • Hardware: It is configured for a maximum of 200 Mbps bandwidth and 2 WAN circuits.
  • Lifecycle: The offer is currently in the design phase.

Update offer configuration

This endpoint updates an existing Offer resource within a specific namespace. It is primarily used during the Design phase of a quote to refine technical specifications, select hardware templates, or adjust product attributes like speed and subnets.

FeatureDetails
MethodPUT
Endpoint/apis/v1alpha/namespaces/{namespace}/offer/{name}

Path parameters

ParameterTypeRequiredDescription
namespaceStringYesThe unique identifier for the tenant environment (e.g., 142034)
nameStringYesThe unique resource name of the offer (e.g., telr-test-001)

Headers

HeaderValueRequiredDescription
AuthorizationBearer <TOKEN>YesA valid API Bearer token for authentication
Content-Typeapplication/jsonYesSpecifies the media type of the resource (standard for JSON APIs)

Request body

The payload is a structured JSON representing the full state of the Offer resource. Key sections include:

FieldNESTED PROPERTYTypeDescription
kindStringThe type of resource (offer)
versionStringAPI version (e.g., v1alpha)
annotationsContains a checksum. This is often used for Optimistic Concurrency Control; the update may fail if the checksum doesn’t match the current server state to prevent overwriting intermediate changes.
geoLocationDefines the physical delivery point using GeoJSON coordinates and Google Plus Codes
specObjectTechnical requirements are defined
productsDefines the connectivity service
typedia (Dedicated Internet Access)
speed100 (Mbps)
ipSuffix/29 (Subnet mask for the IP handoff)
templateSelectionMaps the service to specific hardware or virtual platforms
platformEnvisionEDGE (The selected vendor/platform)
max_bandwidth_mbps2750 (The capacity limit of the selected template)
addressThe granular location details, including street number, route, and UK-specific exchange codes if applicable.
**gaa / litBldgs**References to pre-calculated pricing objects for different access technologies (Broadband, Ethernet, DIA)
state.phaseIndicates the current lifecycle stage. In this request, it is set to design.

Sample request payload

{
    "kind": "offer",
    "version": "v1alpha",
    "namespace": "142034",
    "name": "telr-test-001",
    "metadata": {
        "dateCreated": 1770659951657,
        "dateUpdated": 1770661506547,
        "annotations": [
            "net.gtt.offer/checksum/2e096aa3a1c836fadb745251d0665770c1a7c57d215e784a6c43ac657e62ea0f"
        ]
    },
    "spec": {
        "products": [
            {
                "productSpecification": {
                    "externalId": "access",
                    "productCategory": "connect"
                },
                "attributes": {
                    "type": "dia",
                    "speed": 100,
                    "ipSuffix": "/29"
                }
            }
        ],
        "templateSelection": {
            "highAvailability": 1,
            "firewall": 1,
            "platform": 1,
            "availableTemplates": [
                {
                    "id": "31",
                    "name": "EnvisionEDGE Virtual Router",
                    "platform": "EnvisionEDGE",
                    "max_bandwidth_mbps": 2750
                }
            ]
        },
        "state": {
            "phase": "design"
        }
    }
}

Expected response

  • 200 OK: Returns the fully updated Offer object, including a refreshed dateUpdated timestamp.
  • 400 Bad Request: Occurs if the payload violates schema constraints (e.g., speed exceeds template limits).
  • 409 Conflict: Occurs if the checksum in annotations does not match the current version on the server.

Partial update (PATCH) offer

This endpoint performs a partial update to an existing Offer resource using the JSON Patch (RFC 6902) standard. Unlike a PUT request, which requires sending the entire resource, PATCH allows you to modify specific fields—in this case, updating the product configuration without touching other metadata or site details.

FeatureDetails
MethodPATCH
Endpoint/apis/v1alpha/namespaces/{namespace}/offer/{name}

Path parameters

ParameterTypeRequiredDescription
namespaceStringYesThe unique identifier for the tenant environment (e.g., 142034)
nameStringYesThe unique resource name of the offer (e.g., telr-test-001)

Headers

HeaderValueRequiredDescription
AuthorizationBearer <TOKEN>YesA valid API Bearer token for authentication
Content-Typeapplication/jsonYesSpecifies the media type of the resource (standard for JSON APIs)

JSON patch operations

The request body uses a list of operation objects. This is a powerful way to ensure atomicity and precision when updating complex nested resources.

Update payload analysis

[
  {
    "op": "replace",
    "path": "/spec/products",
    "value": [ ... ]
  }
]
FieldTypeRequiredDescription
opStringYesThe operation type (replace)The operation type (replace)
pathStringYesThe JSON pointer to the target field (/spec/products)
valueStringYesThe new array of product objects to be injected. In this example, it sets a DIA 100 Mbps service with a /29 IP suffix

Response highlights

A successful PATCH returns the fully updated resource.

  • Timestamps: The metadata.dateUpdated is refreshed to reflect the patch time (e.g., 1770918180746).
  • Integrity: A new net.gtt.offer/checksum is generated in the annotations field. You must use this new checksum for any subsequent PUT or PATCH operations to avoid version conflicts.
  • Side Effects: Updating the product configuration may trigger backend recalculations. Notice in the sample response that templateSelection.maxBandwidthMbps has been updated to 100 to align with the new product speed.

Comparison: PUT vs. PATCH

FeaturePUTPATCH (JSON Patch)
PayloadFull resource object.Array of specific operations.
Use CaseOverwriting a resource or full-state sync.Precise updates to specific nested fields.
RiskCan accidentally nullify fields if not sent.High precision; only touches what is specified.

Sample request body

[
  {
    "op": "replace",
    "path": "/spec/products",
    "value": [
      {
        "productSpecification": {
          "externalId": "access",
          "productCategory": "connect"
        },
        "attributes": {
          "type": "dia",
          "speed": 100,
          "ipSuffix": "/29"
        }
      }
    ]
  }
]

Product specification documentation (JSON Patch)

This documentation covers the various configurations for the /spec/products array within the GTT Offer API. These payloads utilize the JSON Patch (RFC 6902) standard to replace existing product configurations with specific connectivity types, ranging from wireline Dedicated Internet Access (DIA) to wireless 5G solutions.

Wireline connectivity (DIA)

Used for standard Dedicated Internet Access over fiber or copper. These specifications require defined bandwidth speeds and IP allocation details.

FeatureDIA 100M ConfigurationDIA 500M Configuration
externalIdaccessaccess
typediadia
speed100 Mbps500 Mbps
IP Subnet/29/29

Business Logic: Upgrading speed via PATCH allows for rapid re-quoting of a site without re-entering geographic or site-specific metadata.

Wireless connectivity (5G solutions)

Wireless products are categorized by their Role (Primary vs. Backup) and their Mounting Environment (Indoor vs. Outdoor). Unlike DIA, wireless specifications include an outdoor boolean to determine the necessary hardware and installation type.

5G primary access

Designed for sites where 5G is the main circuit. It typically includes a speed attribute.

  • Indoor Primary: Used for standard office environments where the 5G gateway is placed inside.
    • outdoor: false, role: primary, speed: “100”
  • Outdoor Primary: Used for sites requiring an external antenna or enclosure to ensure signal integrity.
    • outdoor: true, role: primary, speed: “100”

5G backup access

Designed for failover redundancy. These configurations typically omit the speed attribute as they rely on “Best Effort” wireless delivery during primary circuit outages.

  • Indoor Backup: outdoor: false, role: backup
  • Outdoor Backup: outdoor: true, role: backup

Attribute dictionary

The following table defines the key fields within the attributes object for all product types:

AttributeTypeDescription
typeStringThe specific technology type (e.g., dia, 5G primary, 5G backup).
speedString/IntThe provisioned bandwidth. (Note: Wireline uses Integer; Wireless often uses String).
ipSuffixStringThe CIDR notation for the IP handoff (e.g., /29 for 5 usable IPs).
outdoorBooleantrue if outdoor hardware/mounting is required for signal optimization.
roleStringDefines the circuit hierarchy: primary or backup.

Implementation example (JSON patch)

To update an offer to an Outdoor 5G Primary configuration, use the following operation:

[
    {
        "op": "replace",
        "path": "/spec/products",
        "value": [
            {
                "productSpecification": {
                    "productCategory": "connect"
                },
                "attributes": {
                    "type": "5G primary",
                    "outdoor": true,
                    "speed": "100",
                    "role": "primary"
                }
            }
        ]
    }
]