Repair visit access
curl --request GET \
--url https://api.sortx.co.uk/maintenance-pro/repairs/{id}/visit-access \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sortx.co.uk/maintenance-pro/repairs/{id}/visit-access', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sortx.co.uk/maintenance-pro/repairs/{id}/visit-access"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"repairId": "<string>",
"details": [
{
"calendarEventId": "<string>",
"outcomeId": "<string>",
"timeOnSiteMinutes": 123,
"doorPhoto": {
"id": "<string>",
"name": "<string>"
},
"calledTenant": true,
"cardLeft": true,
"refusedBy": "tenant",
"keySet": {
"id": "<string>",
"reference": "<string>",
"label": "<string>"
},
"contractorConfirmed": true,
"contractorExplanation": "<string>"
}
],
"callOuts": [
{
"id": "<string>",
"calendarEventId": "<string>",
"amountMinor": 123,
"currency": "<string>",
"borneBy": "agency",
"note": "<string>",
"recordedBy": "<string>",
"recordedAt": "<string>"
}
],
"noShows": {
"contractor": "<string>",
"count": 123,
"suggestChange": true
},
"failedAccess": {
"inARow": 123,
"suggestClose": true
},
"arrangement": {
"id": "<string>",
"via": "tenant",
"note": "<string>",
"contactId": "<string>",
"contactName": "<string>",
"recordedBy": "<string>",
"recordedAt": "<string>"
},
"arrangementHistory": [
{
"id": "<string>",
"via": "tenant",
"note": "<string>",
"contactId": "<string>",
"contactName": "<string>",
"recordedBy": "<string>",
"recordedAt": "<string>"
}
],
"arrangementRevision": 123,
"fixedReply": {
"doneAt": "<string>",
"dueAt": "<string>",
"overdue": true,
"taskOpen": true
}
}{
"_tag": "TenantCreateRejected",
"reason": "<string>",
"field": "<string>"
}{
"_tag": "Unauthenticated"
}{
"_tag": "TenantSuspended",
"tenantId": "<string>",
"reason": "<string>"
}{
"_tag": "EntitlementMissing",
"tenantId": "<string>",
"moduleId": "<string>"
}{
"_tag": "TenantNotFound",
"slug": "<string>"
}{
"_tag": "WebhookDuplicate",
"integration": "<string>",
"externalId": "<string>"
}{
"_tag": "RateLimited",
"key": "<string>",
"retryAfterSeconds": 123,
"message": "<string>"
}{
"_tag": "IntegrationUnavailable",
"integration": "<string>",
"detail": "<string>"
}maintenance-pro
Repair visit access
What happened at the door on each failed visit, call-out charges, no-show and failed-access counts, and the access arrangement
GET
/
maintenance-pro
/
repairs
/
{id}
/
visit-access
Repair visit access
curl --request GET \
--url https://api.sortx.co.uk/maintenance-pro/repairs/{id}/visit-access \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sortx.co.uk/maintenance-pro/repairs/{id}/visit-access', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sortx.co.uk/maintenance-pro/repairs/{id}/visit-access"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"repairId": "<string>",
"details": [
{
"calendarEventId": "<string>",
"outcomeId": "<string>",
"timeOnSiteMinutes": 123,
"doorPhoto": {
"id": "<string>",
"name": "<string>"
},
"calledTenant": true,
"cardLeft": true,
"refusedBy": "tenant",
"keySet": {
"id": "<string>",
"reference": "<string>",
"label": "<string>"
},
"contractorConfirmed": true,
"contractorExplanation": "<string>"
}
],
"callOuts": [
{
"id": "<string>",
"calendarEventId": "<string>",
"amountMinor": 123,
"currency": "<string>",
"borneBy": "agency",
"note": "<string>",
"recordedBy": "<string>",
"recordedAt": "<string>"
}
],
"noShows": {
"contractor": "<string>",
"count": 123,
"suggestChange": true
},
"failedAccess": {
"inARow": 123,
"suggestClose": true
},
"arrangement": {
"id": "<string>",
"via": "tenant",
"note": "<string>",
"contactId": "<string>",
"contactName": "<string>",
"recordedBy": "<string>",
"recordedAt": "<string>"
},
"arrangementHistory": [
{
"id": "<string>",
"via": "tenant",
"note": "<string>",
"contactId": "<string>",
"contactName": "<string>",
"recordedBy": "<string>",
"recordedAt": "<string>"
}
],
"arrangementRevision": 123,
"fixedReply": {
"doneAt": "<string>",
"dueAt": "<string>",
"overdue": true,
"taskOpen": true
}
}{
"_tag": "TenantCreateRejected",
"reason": "<string>",
"field": "<string>"
}{
"_tag": "Unauthenticated"
}{
"_tag": "TenantSuspended",
"tenantId": "<string>",
"reason": "<string>"
}{
"_tag": "EntitlementMissing",
"tenantId": "<string>",
"moduleId": "<string>"
}{
"_tag": "TenantNotFound",
"slug": "<string>"
}{
"_tag": "WebhookDuplicate",
"integration": "<string>",
"externalId": "<string>"
}{
"_tag": "RateLimited",
"key": "<string>",
"retryAfterSeconds": 123,
"message": "<string>"
}{
"_tag": "IntegrationUnavailable",
"integration": "<string>",
"detail": "<string>"
}Authorizations
A workspace API key (Settings → API keys), scoped to <group>:read / <group>:write.
Path Parameters
Response
Success
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes