Skip to Content
G360AccessExpressCreate Quote

Create Quote

POST/api/v1/quotes/externalAccessExpress

Initiates a quote request to retrieve available product offerings based on the provided criteria. This is typically the first step in the service provisioning workflow, where you provide location and product details to receive pricing and product offerings. The response behavior varies by product type: Broadband quotes return immediately, while DIA quotes require polling the quote results endpoint to retrieve the final quote details.

Auth Scope
urn:grt:accessexpress
Content-Type
application/json
Rate Limit
60 req/min

Request

Parameters

FieldTypeRequiredDescription
quote_namestringNoA user-defined name for the quote request
customer_namestringNoThe name of the customer for whom the quote is being generated
emailstringYesThe requester's email address. Must be a valid format
business_unitstringYesIdentifies the requesting business unit
requesterstringYesThe name of the person initiating the quote request
granted_tenant_macnumstringNoThe company macnum on whose behalf the action is performed
locationsarrayYesA list of service locations for which product offerings are being requested. Each location includes its own address and product list

Location Object

Each item in the locations list should contain:

FieldTypeRequiredDescription
address1stringYesPrimary street address
address2stringNoSecondary address info (e.g., Suite, Apt)
citystringYesCity name
statestringYesTwo-letter state code (e.g., "TX", "CA")
zip_codestringYesZIP or postal code
productsarrayYesA list of product requirement objects (see Product Object below)

Product Object

Each products item describes preferences and constraints for a product offering:

FieldTypeRequiredDescription
product_typestringYesType of product requested. Valid values: "Broadband" or "DIA"
termstringNoContract term. Valid values: "1", "2", or "3" (representing years)
min_downloadstringNoMinimum download speed. Valid values: "10", "20", "50", "100", "250", "500", "700", "1000"
max_downloadstringNoMaximum download speed. Valid values: Same as min_download. If both are provided, minimum must not exceed maximum
include_carriersarray[string]NoA list of carrier names to explicitly include in the quote
exclude_carriersarray[string]NoA list of carrier names to exclude
preferred_carriersarray[string]NoCarrier names that are preferred over others
ip_typestringNoType of IP service. Valid values: "static" or "dynamic"
ip_blockstringNoSize of the IP address block. Valid values: "/29" or "/30"
include_mnsbooleanNoWhether to include managed network services in the quote

Important Notes

  • The min_download and max_download parameters do not exclude values outside the specified range but instead prioritize those within it.
  • All products within a single quote request must be of the same type (either all Broadband or all DIA).
  • Invalid values for term, product_type, min_download, max_download, ip_type, and ip_block will result in a 400 Bad Request error.

Example Request

Response

Note: Quote options are sorted by priority in ascending order, where a lower number indicates higher priority.

Broadband Response

For Broadband-type products, results will be returned immediately in the response with the following key sections:

  • accounts: This list contains all available accounts associated with the given location, which can be used in the downstream API for ordering services. If no accounts are found, a message will indicate to use the /orders/create/external endpoint to request account creation.

  • quote_request_options: This section includes quote-related data along with the list of products found for each location. The available offerings are nested under the formal_products_offerings key.

  • invalid_addresses: If a provided location cannot be verified by the MelissaData service, it will be included under this key. Each entry will contain the original input data along with a detailed error message explaining why the location was considered invalid.

Success Response (200 OK)

Key Response Fields

  • quote_request_id: Unique identifier for this quote request. Required for subsequent operations including Create Order and Quote Results Retrieval.
  • formal_product_offering_id: Identifier for a specific product offering. Use this value when creating an order to select the desired product.
  • quote_status: Current status of the quote. Values: "Checking availability", "Order services", "Closed", or "Quote expired".
  • accounts: Available accounts for the location. Use the account information when creating orders.

DIA Quote Behavior

For DIA-type products, the response behavior is different. If the request is successfully submitted, a “Checking availability” status will be returned along with the corresponding quote_request_id. To retrieve the results once processing is complete, you must call the /api/v1/quotes/external/{quote_request_id}/results endpoint.

If internal issues occur during processing, the quote will be marked with status “Closed”. In such cases, contact support via g360support@granitenet.com or through the G360 portal.

Code Samples

Validation Rules

Input Constraints

  • State Code: Must be a valid two-letter US state code (e.g., “TX”, “CA”, “NY”)
  • ZIP Code: Must be a valid ZIP or postal code format
  • Product Type: Must be exactly "Broadband" or "DIA" (case-sensitive)
  • Term: Must be "1", "2", or "3" (representing years)
  • Speed Tiers: min_download and max_download must be one of: "10", "20", "50", "100", "250", "500", "700", "1000"
  • IP Type: Must be "static" or "dynamic"
  • IP Block: Must be "/29" or "/30"
  • Email: Must be a valid email address format

Behavioral Rules

  • Product Type Consistency: All products within a single quote request must be of the same type (either all Broadband or all DIA).
  • Speed Range: If both min_download and max_download are provided, the minimum must not exceed the maximum.
  • Speed Prioritization: The min_download and max_download parameters prioritize results within the range but do not exclude values outside it.

Errors

HTTP StatusError DescriptionResolution
400Validation ErrorReview the error response body for specific field validation errors. Ensure all required fields are present, data types are correct, and values meet constraints (e.g., valid state code, ZIP code format, valid product type, term values).
401Authentication FailedVerify your access token is valid and included in the Authorization header with the "Bearer " prefix. Check token expiration and regenerate if necessary.
403Permission DeniedYour access token does not have the required scope (urn:grt:accessexpress). Contact your administrator to request the appropriate permissions.
429Rate Limit ExceededYou have exceeded the rate limit of 60 requests per minute. Check the Retry-After header in the response to determine when to retry. Implement exponential backoff in your integration.
500Internal Server ErrorAn unexpected error occurred on the server. Retry the request after a brief delay. If the issue persists, contact Granite support with the request ID from the error response.

DIA-Type Product Behavior

Important: DIA-Type Products Require Polling

For DIA-type products, product results will not be included in the initial response due to third-party constraints. However, the accounts and invalid_addresses sections will still be present as usual.

If the request is successfully submitted, a “Checking availability” status will be returned along with the corresponding quote_request_id.

To retrieve the results for this quote once processing is complete, you will need to call the endpoint: /api/v1/quotes/external/{quote_request_id}/results (see Get Quote Results for details).

Error Handling for Quote Processing

If internal issues occur during processing, the quote will be marked with the status “Closed”, and no results will be returned. In such cases, please contact our support team via the support email (g360support@granitenet.com) or through the G360 portal for assistance and troubleshooting.

Last updated on