Introduction
Use these endpoints to create an appointment-request for an order and the starting date you are interested in and to retrieve the slots available from that date.
Request Lifecycle
To create an appointment-request, you must send a POST request to /api/connect/orders/appointment-requests/request
with the body of the request containing the order id and the starting date from
which available slots will be retrieved. Slots for on or after the provided date will be retrieved.
The response’s http status
will be 201
with a blank response body. There will be a Location
response header with a URL. This URL is where the request outcome can be obtained.
Make a GET
request to this URL to retrieve the results. While the request is in progress, the response’s http status
will be 202
. This means that the request has not finished yet, but will in a moment.
Request Specifications
Version | Header | Changes |
---|---|---|
1 (Deprecated) |
X-API-VERSION=1 |
Initial Version |
2 (Deprecated) |
X-API-VERSION=2 |
No change |
3 |
X-API-VERSION=3 |
No change |
4 |
X-API-VERSION=4 |
No change |
5 |
X-API-VERSION=5 |
No change |
6 |
X-API-VERSION=6 |
No change |
7 |
X-API-VERSION=7 |
No change |
API Version 1, 2, 3, 4,5, 6 and 7 - POST
POST Request
Verb |
POST |
URI |
/api/connect/orders/appointment-requests/request |
Name | Description |
---|---|
|
The OAuth bearer access token |
|
The version of the endpoint you are accessing |
Path | Type | Description | Required |
---|---|---|---|
|
|
The date from which to request the appointment slots. |
Required |
|
|
The id of the order. |
Required |
POST Response
Status Code | Meaning |
---|---|
201 |
The request was created successfully |
401 |
Bearer token is missing or invalid |
404 |
You do not have permission to perform this task |
422 |
There are validation errors on the request you made. Check the response body to see what fields had issues |
500 |
There was an unexpected error processing the request |
502 |
There was an unexpected error with one or more of the upstream services |
Name | Description |
---|---|
|
The URL of the newly created appointment slots request. |
API Version 1, 2, 3, 4, 5, 6 and 7 - GET
GET Request
Note
|
The URI will be given to you in the Location header of the POST request. |
Verb |
GET |
URI |
api/connect/orders/appointment-requests/requests/{id} |
Path Variable |
Purpose |
|
The id of the appointment-request to poll for a list of slots |
Name | Description |
---|---|
|
The OAuth bearer access token |
|
The version of the endpoint you are accessing |
GET Response
Status Code | Meaning |
---|---|
200 |
The request is complete. The body contains the results |
202 |
The request is in progress |
401 |
Bearer token is missing or invalid |
404 |
You are not authorised or The id (of the appointment-request) provided does not exist |
500 |
There was an unexpected error processing the request |
502 |
There was an unexpected error with one or more of the upstream services |
Path | Type | Description |
---|---|---|
|
|
List of available appointment slots. |
|
|
The NBN identifier of the appointment slot. |
|
|
For typical AVC connections only AM or PM should be selected. Other options may incur additional charges.Possible values are: |
|
|
The date/time, including UTC offset, appointment start time. |
|
|
The date/time, including UTC offset, appointment end time. |
|
|
Represents an offset defined in a Timezone. |
|
|
Whether the time slot is within Order/Incident SLA or not. Only reliable for Non-'Service Restoration' Demand Types of |
|
|
For typical AVC connections only Standard slots should be selected. Other options may incur additional charges.Possible values are: |
API Version 1, 2, 3, 4, 5, 6 and 7 - Examples
Successful Appointment request
An appointment request is created by sending a POST request to /api/connect/orders/appointment-requests/request.
POST /api/connect/orders/appointment-requests/request HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 7
Content-Length: 49
Host: 360-api.superloop.com
{
"dateFrom" : "2025-03-13",
"orderId" : 13
}
If all required fields were given, then the response to the request will have:
-
a http status of 201
-
a
Location
header with the URI of the newly created appointment request entity.
HTTP/1.1 201 Created
Location: /api/connect/orders/appointment-requests/requests/301
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Once you have the URI from the Location
header, poll that URI every so often by making a GET request. While the search is in progress, the GET request’s response will have a http status
of 202
. Keep polling the URL until it finishes.
Note
|
Please keep the polling to a sensible rate. |
GET /api/connect/orders/appointment-requests/requests/2 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 7
Host: 360-api.superloop.com
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 418
[ {
"slotId" : "1",
"slotType" : "AM",
"startTime" : "2120-11-11T22:00:00Z",
"endTime" : "2120-11-12T02:00:00Z",
"timezoneOffset" : "+10:00",
"withinTimeWindow" : true,
"leadTime" : "Standard"
}, {
"slotId" : "2",
"slotType" : "PM",
"startTime" : "2120-11-13T03:00:00Z",
"endTime" : "2120-11-13T07:00:00Z",
"timezoneOffset" : "+10:00",
"withinTimeWindow" : true,
"leadTime" : "Standard"
} ]
Invalid Appointment request
If the appointment request is invalid for any reason, a http status
of 422
is returned and the body of the response will list the problems with the request.
This example is of submitting an appointment request without a dateFrom field.
POST /api/connect/orders/appointment-requests/request HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 7
Content-Length: 41
Host: 360-api.superloop.com
{
"dateFrom" : null,
"orderId" : 13
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 399
{
"httpStatusCode" : 422,
"type" : "client.validation",
"code" : "method.argument.not.valid",
"message" : "Validation error",
"apiSubErrors" : [ {
"code" : "constraints.not.null",
"message" : "must not be null",
"object" : "connectNbnRequestAppointmentSlotsCommand",
"field" : "dateFrom",
"rejectedValue" : null
} ],
"timestamp" : "2025-03-11T22:23:33.372517068Z"
}
Upstream Service Unavailable
If one of the services that Connect API uses for requesting appointment slots is down or unreachable, Connect API will send a 502 status.
HTTP/1.1 502 Bad Gateway
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 249
{
"httpStatusCode" : 502,
"type" : "remote.call",
"code" : "remote.call.error",
"message" : "There was an unexpected error with one or more of the upstream services",
"apiSubErrors" : [ ],
"timestamp" : "2025-03-11T22:23:28.469410851Z"
}