API reference
Reports
4 requests. Each shows the permission a key needs, what to send and what comes back.
On this page
Attendance matrix (as Xota's): for each team member and day, work, breaks and net from where their hours come from, approved absence by type, and net plus paid absence, with totals
GET/v1/reports/attendance
- Permission
report.view- Answers
200
Parameters
| Name | In | Kind | |
|---|---|---|---|
from | query | daterequired | |
to | query | daterequired | |
teamId | query | uuid | |
teamMemberId | query | uuid | |
teamIds | query | array of uuid | |
teamMemberIds | query | array of uuid | |
clientIds | query | array of uuid | |
projectIds | query | array of uuid | |
templateIds | query | array of uuid | |
work | query | enum | One of all, clients, internal · Default "all" |
Response object
fromdaterequiredYYYY-MM-DD
todaterequiredYYYY-MM-DD
daysarray of daterequiredabsenceTypesarray of objectrequirediduuidrequiredkeystringrequiredcan be nullnamestringrequiredpaidbooleanrequired
rowsarray of objectrequiredteamMemberIduuidrequirednamestringrequiredbreaksPaidbooleanrequiredhoursFromenumrequiredOne of
"bookings","timesheets"daysobjectrequiredworknumberrequiredbreaksnumberrequirednetnumberrequiredabsenceobjectrequiredabsenceTotalnumberrequiredpaidAbsencenumberrequiredtotalnumberrequired
totalsobjectrequiredworknumberrequiredbreaksnumberrequirednetnumberrequiredabsenceobjectrequiredabsenceTotalnumberrequiredpaidAbsencenumberrequiredtotalnumberrequired
totalsobjectrequireddaysobjectrequiredworknumberrequiredbreaksnumberrequirednetnumberrequiredabsenceobjectrequiredabsenceTotalnumberrequiredpaidAbsencenumberrequiredtotalnumberrequired
totalsobjectrequiredworknumberrequiredbreaksnumberrequirednetnumberrequiredabsenceobjectrequiredabsenceTotalnumberrequiredpaidAbsencenumberrequiredtotalnumberrequired
workFilteredbooleanrequired
curl "https://app.workscope.co.uk/v1/reports/attendance?from=2026-11-06&to=2026-11-06" \
-H "Authorization: Bearer wsk_your_key_here"Example response
{
"from": "2026-11-06",
"to": "2026-11-06",
"days": [
"2026-11-06"
],
"absenceTypes": [
{
"id": "3f2a9c1e-6b4d-4e8a-9f1c-2d7b5a0e8c41",
"key": "example-slug",
"name": "Harbourside Dental",
"paid": false
}
],
"rows": [
{
"teamMemberId": "8c1d2e3f-4a5b-4c6d-8e7f-9a0b1c2d3e4f",
"name": "Harbourside Dental",
"breaksPaid": false,
"hoursFrom": "bookings",
"days": {},
"totals": {
"work": 1,
"breaks": 1,
"net": 1,
"absence": {},
"absenceTotal": 1,
"paidAbsence": 1,
"total": 1
}
}
],
"totals": {
"days": {},
"totals": {
"work": 1,
"breaks": 1,
"net": 1,
"absence": {},
"absenceTotal": 1,
"paidAbsence": 1,
"total": 1
}
},
"workFiltered": false
}The attendance matrix as CSV
GET/v1/reports/attendance/export
- Permission
report.view- Answers
200with a file (image/jpeg)
Parameters
| Name | In | Kind | |
|---|---|---|---|
from | query | daterequired | |
to | query | daterequired | |
teamId | query | uuid | |
teamMemberId | query | uuid | |
teamIds | query | array of uuid | |
teamMemberIds | query | array of uuid | |
clientIds | query | array of uuid | |
projectIds | query | array of uuid | |
templateIds | query | array of uuid | |
work | query | enum | One of all, clients, internal · Default "all" |
curl "https://app.workscope.co.uk/v1/reports/attendance/export?from=2026-11-06&to=2026-11-06" \
-H "Authorization: Bearer wsk_your_key_here"Deals won and lost, win rate, value won (one-off and a year of recurring), days to win, by source and owner, and why deals were lost
GET/v1/reports/sales
- Permission
report.view- Module
quotes- Answers
200
Parameters
| Name | In | Kind | |
|---|---|---|---|
from | query | daterequired | |
to | query | daterequired |
Response object
fromdaterequiredYYYY-MM-DD
todaterequiredYYYY-MM-DD
createdintegerrequired-9007199254740991 to 9007199254740991
wonintegerrequired-9007199254740991 to 9007199254740991
lostintegerrequired-9007199254740991 to 9007199254740991
winRateintegerrequiredcan be null-9007199254740991 to 9007199254740991
wonOneOffPenceintegerrequired-9007199254740991 to 9007199254740991
wonYearlyPenceintegerrequired-9007199254740991 to 9007199254740991
averageDaysToWinintegerrequiredcan be null-9007199254740991 to 9007199254740991
openNowintegerrequired-9007199254740991 to 9007199254740991
openValuePenceintegerrequired-9007199254740991 to 9007199254740991
openWeightedPenceintegerrequired-9007199254740991 to 9007199254740991
bySourcearray of objectrequiredkeystringrequiredlabelstringrequiredwonintegerrequired-9007199254740991 to 9007199254740991
lostintegerrequired-9007199254740991 to 9007199254740991
openintegerrequired-9007199254740991 to 9007199254740991
wonValuePenceintegerrequired-9007199254740991 to 9007199254740991
byOwnerarray of objectrequiredkeystringrequiredlabelstringrequiredwonintegerrequired-9007199254740991 to 9007199254740991
lostintegerrequired-9007199254740991 to 9007199254740991
openintegerrequired-9007199254740991 to 9007199254740991
wonValuePenceintegerrequired-9007199254740991 to 9007199254740991
lostReasonsarray of objectrequiredreasonenumrequiredOne of
"price","timing","no_reply","not_a_fit","other"countintegerrequired-9007199254740991 to 9007199254740991
curl "https://app.workscope.co.uk/v1/reports/sales?from=2026-11-06&to=2026-11-06" \
-H "Authorization: Bearer wsk_your_key_here"Example response
{
"from": "2026-11-06",
"to": "2026-11-06",
"created": -9007199254740991,
"won": -9007199254740991,
"lost": -9007199254740991,
"winRate": -9007199254740991,
"wonOneOffPence": 4500,
"wonYearlyPence": 4500,
"averageDaysToWin": -9007199254740991,
"openNow": -9007199254740991,
"openValuePence": 4500,
"openWeightedPence": 4500,
"bySource": [
{
"key": "example-slug",
"label": "text",
"won": -9007199254740991,
"lost": -9007199254740991,
"open": -9007199254740991,
"wonValuePence": 4500
}
],
"byOwner": [
{
"key": "example-slug",
"label": "text",
"won": -9007199254740991,
"lost": -9007199254740991,
"open": -9007199254740991,
"wonValuePence": 4500
}
],
"lostReasons": [
{
"reason": "price",
"count": 3
}
]
}The deals closed in the range as CSV
GET/v1/reports/sales/export
- Permission
report.view- Module
quotes- Answers
200with a file (image/jpeg)
Parameters
| Name | In | Kind | |
|---|---|---|---|
from | query | daterequired | |
to | query | daterequired |
curl "https://app.workscope.co.uk/v1/reports/sales/export?from=2026-11-06&to=2026-11-06" \
-H "Authorization: Bearer wsk_your_key_here"