# Service Availability
This API allows you to check which broadband services are available at a given address, using a Unique Property Reference Number (UPRN) or other supported address identifiers.
# Service Availability Endpoint
# GET /WholesaleGateway/v1.0/gateway/service-availability
# Description
Checks the availability of broadband services at a specified address. Returns a list of available services, their characteristics, and relevant notes for ordering.
# Headers
X-Request-ID(string, required): Unique request identifier for tracing.X-Conversation-ID(string, required): Conversation/session identifier.Tenant(string, required): Tenant identifier.Authorization(string, required): Bearer token for authentication.
# Query Parameters
address(required): Encoded JSON string specifying the address. Example:{ "id": "<uprn>", "type": "UPRN" }
# Example Request
GET {{baseUrl}}/WholesaleGateway/v1.0/gateway/service-availability?address=%7B"id":"10025559646","type":"UPRN"%7D
X-Request-ID: 123
X-Conversation-ID: conversation-456
Tenant: TENANT-ID
Authorization: Bearer <token>
# Example Response
{
"address": {
"identifier": {
"id": "10025559646",
"type": "UPRN"
},
"name": "Unit H",
"streetNumber": "1",
"streetName": "The Courtyard",
"locality": "Tewkesbury Business Park",
"city": "Tewkesbury",
"postcode": "GL20 8GD",
"country": "UK",
"subAddress": {
"name": "Netomnia",
"unitNumber": "H"
}
},
"serviceSpecifications": [
{
"id": "fttp",
"name": "FTTP",
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"values": ["55/55", "80/20", "100/100"]
},
{
"name": "MINIMUM_SPEED",
"values": ["100", "200", "500"]
}
]
}
],
"siteInformation": {
"newLine": true,
"installationType": "STANDARD",
"constraints": [
{
"code": "SURVEY_REQUIRED",
"text": "Site survey required before installation"
}
],
"serviceReadyDate": "2025-02-15",
"enniId": "ENNI-001",
"siteName": "Tewkesbury POP",
"siteLocation": "Tewkesbury Business Park",
"existingLines": [
{
"enniId": "ENNI-001",
"siteName": "Tewkesbury POP",
"siteLocation": "Tewkesbury Business Park",
"installationType": "STANDARD",
"ont": {
"ontReference": "ONT-123",
"serialNumber": "SN123456789",
"manufacturer": "Huawei",
"floor": "Ground",
"room": "Communications Room",
"position": "Rack A",
"ports": [
{
"portNumber": 1,
"description": "GE Port 1",
"status": "ACTIVE",
"tenantActive": true
}
]
},
"lineId": "LINE-001",
"lineCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "55/55"
}
]
}
]
},
"unavailabilityReasons": []
}
# Field Descriptions
- address:
object— Complete address information including identifier and full address details- identifier:
{ id: string, type: string }— Address identifier (e.g., UPRN) - name:
string— Identifying name of the sub unit (e.g., "Unit H") - streetNumber:
string— Property number on the street - streetName:
string— Name of the street - locality:
string— Area name - city:
string— Town or city name - postcode:
string— Postal code - country:
string— Country name - subAddress:
object— More specific property definition- name:
string— Identifying name of the sub unit - unitNumber:
string— Discriminator for the sub unit
- name:
- identifier:
- serviceSpecifications[]:
array— List of services available at this address- id:
string— Unique identifier for the service specification - name:
string— Name of the service - serviceCharacteristics[]:
array— Service characteristics supported by this service- name:
string— Name of the service characteristic (e.g., LINE_PROFILE, MINIMUM_SPEED) - values[]:
array— Array of possible values for this characteristic
- name:
- id:
- siteInformation:
object— Describes site installation details and constraints- newLine:
boolean— Indicates if a new line can be installed - installationType:
string— Type of installation required (STANDARD, EXTENDED_STANDARD, NON_STANDARD) - constraints[]:
array— Soft constraints that must be satisfied- code:
string— Constraint code (e.g., SURVEY_REQUIRED, WAYLEAVE_REQUIRED) - text:
string— Text explaining the constraint
- code:
- serviceReadyDate:
string— Date service will be/was ready - enniId:
string— Unique identifier of the ENNI - siteName:
string— Point of presence/handover point identifier - siteLocation:
string— Site address for the point of presence - existingLines[]:
array— Existing lines data- enniId:
string— Unique identifier of the ENNI - siteName:
string— Point of presence identifier - siteLocation:
string— Site address - installationType:
string— Type of installation required - ont:
object— Existing ONT device information- ontReference:
string— ONT reference number - serialNumber:
string— ONT serial number - manufacturer:
string— ONT manufacturer - floor:
string— ONT location floor - room:
string— ONT location room - position:
string— ONT location position - ports[]:
array— ONT port information- portNumber:
number— Port number - description:
string— Port description/type - status:
string— Port status (ACTIVE, STOPPED, UNAVAILABLE) - tenantActive:
boolean— Whether port is active on tenant's network
- portNumber:
- ontReference:
- lineId:
string— Unique access identifier for the line - lineCharacteristics[]:
array— Available characteristics of this line- name:
string— Name of the line characteristic - value:
string— Value for this characteristic
- name:
- enniId:
- newLine:
- unavailabilityReasons[]:
array— Reasons why service is unavailable (hard LOC)- code:
string— Reason code (e.g., IN_PLANNING, UNDER_CONSTRUCTION, OUT_OF_OPTIC_RANGE) - text:
string— Text explaining reason for no availability
- code:
# Error Handling
| HTTP Status | Error Code | Description | When it Occurs |
|---|---|---|---|
| 400 | MALFORMED_REQUEST | The request could not be understood by the server due to malformed syntax | Invalid or missing address parameter, malformed JSON |
| 401 | NOT_AUTHORISED | The request was not authorised | Missing or invalid OAuth token |
| 422 | INVALID_REQUEST | The request did not satisfy validation | Invalid address format, missing required fields |
| 500 | SUPPLIER_FAULT | An internal error occurred | Unexpected server error |
| 504 | SUPPLIER_TIMED_OUT | The Netomnia API timed out | Request timeout |
# Example Error Response
{
"uuid": "6caf4987-63db-4d5b-bbce-b7ec14f2dbf9",
"code": "MALFORMED_REQUEST",
"messages": ["Information about malformed request here..."]
}