Skip to content

Get worker details

GET
/v1/workers/{id}
curl --request GET \
--url https://api2.recruso.co.uk/v1/workers/1 \
--header 'Authorization: <Authorization>'

Returns a single worker with their tax details, bank details, compliance documents and job categories. Workers belonging to another agency, or registered against a branch the Recruso user behind your API app cannot access, return 404 rather than 403, so their existence is never disclosed. The same holds for every record a worker holds, on every worker operation.

Access. Requires a client-credentials access token. Tokens issued through the interactive user login are rejected.

id
required
integer format: int32

The id path parameter

OK

Media typeapplication/json
object
workerId

The worker’s surrogate identifier. Use this on subsequent worker endpoints.

integer format: int32
workerNumber

The worker’s human-facing reference, allocated from your agency’s own worker number sequence at creation. Unique within the agency, not across the platform.

integer format: int32
branchId

The branch the worker is registered against. Fixed at registration.

integer format: int16
titleId

The worker’s title, as an id from the platform Titles vocabulary.

integer format: int16
nullable
forename

The worker’s first name.

string
surname

The worker’s family name.

string
knownAs

What the worker prefers to be called, when it differs from their forename.

string
nullable
initials

The worker’s initials.

string
nullable
birthDate

The worker’s date of birth.

string format: date
genderId

The worker’s gender, as an id from the platform Genders vocabulary.

integer format: int16
nullable
maritalStatusId

The worker’s marital status, as an id from the platform vocabulary.

integer format: int16
nullable
ethnicOriginId

The worker’s ethnic origin, as an id from the platform vocabulary.

integer format: int16
nullable
nationalityId

The worker’s nationality, as an id from the platform Nationalities vocabulary.

integer format: int16
nullable
address1

The first line of the worker’s home address.

string
nullable
address2

The second line of the worker’s home address.

string
nullable
town

The town or city of the worker’s home address.

string
nullable
county

The county of the worker’s home address.

string
nullable
country

The country of the worker’s home address.

string
nullable
postalCode

The postcode of the worker’s home address.

string
nullable
telephone1

The worker’s landline number.

string
nullable
mobile

The worker’s mobile number.

string
nullable
email

The worker’s email address.

string
nullable
nextOfKinFullName

Who to contact in an emergency.

string
nullable
nextOfKinContactNumber

The emergency contact’s telephone number.

string
nullable
nextOfKinEmailAddress

The emergency contact’s email address.

string
nullable
dni

Whether the worker is flagged Do Not Import.

boolean
nullable
hiWiz

Whether the worker uses HiWiz.

boolean
nullable
safetyBoots

Whether the worker holds their own safety boots.

boolean
nullable
digitalTacho

Whether the worker holds a digital tachograph card.

boolean
nullable
wtdOptout

Whether the worker has opted out of the Working Time Directive.

boolean
nullable
isStudent

Whether the worker is a student.

boolean
nullable
canNotSendSmsEmail

Whether the worker has asked not to be sent SMS or email.

boolean
workerRating

The worker’s rating, on a 1-10 scale.

integer format: int16
nullable
costCentreId

The cost centre the worker is booked against.

integer format: int16
nullable
workerTypeId

The worker’s engagement type. Subcontractor types additionally require to be set.

integer format: int16
nullable
transportId

How the worker travels to work.

integer format: int16
nullable
recruitmentSourceId

Where the worker came from, as an id from your agency’s Recruitment sources lookup.

integer format: int16
nullable
workRadius

How far the worker is willing to travel, in miles.

integer format: int16
nullable
minimumHourlyRate

The lowest hourly rate the worker will accept.

number format: float
nullable
minimumDailyRate

The lowest daily rate the worker will accept.

number format: float
nullable
rtwShareCode

The worker’s Home Office right-to-work share code.

string
nullable
subContractorId

The subcontractor the worker is engaged through, when the worker type requires one.

integer format: int32
nullable
registeredDate

The date the worker was registered, in UK local time. Fixed at registration.

string format: date
nullable
userId

The Recruso user the worker is registered under.

integer format: int16
nullable
createdBy

The Recruso user id (tblUsers.UserID) that created the worker, not the ASP.NET Identity id.

integer format: int16
nullable
createdOn

When the worker was created, in UK local time.

string format: date-time
nullable
modifiedBy

The Recruso user id (tblUsers.UserID) that last updated the worker, not the ASP.NET Identity id. Null until the worker has been updated.

integer format: int16
nullable
modifiedOn

When the worker was last updated, in UK local time. Null until the worker has been updated.

string format: date-time
nullable
workerStatusTypeId

The worker’s current status. Assigned from the agency default at registration, when one is configured; updating a worker’s details does not change it.

integer format: int16
nullable
taxDetails

The worker’s tax and payment setup.

object
niNumber

The worker’s National Insurance number.

string
nullable
formId

The tax form the worker provided. Forms that do not use the starter checklist clear the statement fields below; a form of None or Not Required also overrides .

integer format: int16
nullable
niCategoryId

The worker’s National Insurance category letter.

integer format: int16
nullable
statementA

Starter-checklist statement A: this is their first job since 6 April.

boolean
nullable
statementB

Starter-checklist statement B: this is now their only job. Defaults to true.

boolean
nullable
statementC

Starter-checklist statement C: they have another job or a pension.

boolean
nullable
noStatement

The starter-checklist “none of the above” statement.

boolean
nullable
employeeTaxCode

The worker’s tax code. Falls back to the agency’s default tax code when the request does not supply one.

string
nullable
week1BasisFlag

When true, tax is calculated on a week-1/month-1 basis rather than cumulatively.

boolean
paymentMethodId

How the worker is paid. Every method other than Cheque requires to be present.

integer format: int16
nullable
paymentFrequencyId

How often the worker is paid. New workers default to weekly, and an update keeps whatever they are already on.

integer format: int16
nullable
bankDetails

Where the worker’s pay is sent. Absent for a worker who has never had an account on file.

object
bankAccountTypeId

The kind of account. A building society account additionally requires .

integer format: int16
nullable
accountName

The name the account is held in.

string
nullable
accountNumber

The account number.

string
nullable
sortCode

The sort code.

string
nullable
buildingSoc

The building society name, required for building society accounts.

string
nullable
additionalDetails

Free-text notes about the worker. Absent for a worker nobody has written a note about.

object
memo

A short note about the worker.

string
nullable
experience

The work the worker has done before.

string
nullable
notes

General notes.

string
nullable
blacklistReason

Why the worker is blacklisted, where a reason has been recorded.

string
nullable
assessment

The outcome of assessing the worker.

string
nullable
bookingAvailabilityNotes

Notes about when the worker can be booked.

string
nullable
compliances

The compliance documents held for the worker. Set at registration; updating a worker’s details leaves them untouched.

Array<object>

A compliance document held for the worker.

object
workerComplianceId

The record’s identifier.

integer format: int32
complianceId

The kind of document, as an id from your agency’s Compliance lookup.

integer format: int16
startDate

The date the document takes effect.

string format: date
nullable
endDate

The date the document expires.

string format: date
nullable
vehicleCategoryIds

The vehicle classes the worker is licensed to drive, as ids from the platform Vehicle categories vocabulary.

Array<integer>
suitableAtSiteIds

Sites the worker is approved to work at.

Array<integer>
notSuitableAtSiteIds

Sites the worker is not to be sent to.

Array<integer>
assessedAtSiteIds

Sites the worker has been assessed at.

Array<integer>
bannedAtSiteIds

Sites that have banned the worker.

Array<integer>
jobCategories

The job categories the worker can be booked for.

Array<object>

A job category the worker can be booked for.

object
workerJobCategoryId

The record’s identifier. Stable across updates that keep the category.

integer format: int32
jobCategoryId

The job category, as an id from your agency’s Job categories lookup.

integer format: int32
isDefault

Whether this is the worker’s default category — the first one sent on a write.

boolean
nullable
Example
{
"workerId": 4821,
"workerNumber": 10432,
"branchId": 4,
"titleId": 2,
"forename": "Alice",
"surname": "Baker",
"knownAs": "Ali",
"initials": "AB",
"birthDate": "1990-04-12",
"genderId": 2,
"maritalStatusId": 1,
"ethnicOriginId": 3,
"nationalityId": 14,
"address1": "12 High Street",
"address2": "Flat 2",
"town": "Manchester",
"county": "Greater Manchester",
"country": "United Kingdom",
"postalCode": "M1 1AA",
"telephone1": "0161 496 0123",
"mobile": "07700 900123",
"email": "alice.baker@example.co.uk",
"nextOfKinFullName": "Jane Baker",
"nextOfKinContactNumber": "07700 900456",
"nextOfKinEmailAddress": "jane.baker@example.co.uk",
"dni": false,
"hiWiz": false,
"safetyBoots": true,
"digitalTacho": false,
"wtdOptout": false,
"isStudent": false,
"canNotSendSmsEmail": false,
"workerRating": 8,
"costCentreId": 3,
"workerTypeId": 1,
"transportId": 2,
"recruitmentSourceId": 6,
"workRadius": 25,
"minimumHourlyRate": 12.21,
"minimumDailyRate": 97.68,
"rtwShareCode": "W3K 9QP 7ZB",
"subContractorId": 55,
"registeredDate": "2026-08-14",
"userId": 100,
"createdBy": 100,
"createdOn": "2026-08-14T09:41:02",
"modifiedBy": 100,
"modifiedOn": "2026-09-02T15:08:47",
"workerStatusTypeId": 3,
"taxDetails": {
"niNumber": "AB123456C",
"formId": 1,
"niCategoryId": 1,
"statementA": true,
"statementB": false,
"statementC": false,
"noStatement": false,
"employeeTaxCode": "1257L",
"week1BasisFlag": false,
"paymentMethodId": 1,
"paymentFrequencyId": 1
},
"bankDetails": {
"bankAccountTypeId": 1,
"accountName": "A Baker",
"accountNumber": "12345678",
"sortCode": "01-02-03",
"buildingSoc": "Skipton"
},
"additionalDetails": {
"memo": "Prefers early shifts; will travel to Salford at short notice.",
"experience": "Three years warehouse picking, counterbalance FLT since 2023.",
"notes": "Registered in branch; documents seen in person.",
"blacklistReason": "Left a shift without notice at Trafford Park, 14 August 2026.",
"assessment": "Assessed on counterbalance FLT 12 May 2026 — competent, no retraining needed.",
"bookingAvailabilityNotes": "Not available Thursdays; college day."
},
"compliances": [
{
"workerComplianceId": 7311,
"complianceId": 3,
"startDate": "2026-01-15",
"endDate": "2031-01-14"
}
],
"jobCategories": [
{
"workerJobCategoryId": 9014,
"jobCategoryId": 27,
"isDefault": true
}
]
}

Unauthorized

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Forbidden

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Not Found

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}