Skip to content

Get site details

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

Returns the full record for one site, including its address, invoicing preferences and archive history.

Unlike ListSites, this does return archived sites. Check isDeleted before treating the site as usable — an archived site still resolves here so that an integration holding a stale id can tell the difference between a site that was archived and one that never existed.

The site must belong to the client named in the route. A site id from a different client, from another agency, or under a client whose branch the Recruso user behind your API app cannot access returns 404 rather than 403, so existence is never disclosed. A site inherits its client’s branch, and that — not the site’s own branchId — is what decides access to the site and everything beneath it.

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

clientId
required
integer format: int32

The clientId path parameter

id
required
integer format: int32

The id path parameter

OK

Media typeapplication/json

The full record for one site, archived or active.

object
siteId

The site’s unique identifier, assigned by Recruso.

integer format: int32
clientId

The client this site belongs to.

integer format: int32
siteName

The site’s name. Required, up to 70 characters, and unique among the client’s active sites.

string
memo

Free-text notes about the site. Up to 550 characters.

string
nullable
gre
number format: float
nullable
grn
number format: float
nullable
createdBy

The Recruso user who created the site.

integer format: int16
nullable
createdOn

When the site was created, in UK local time (GMT/BST) — not UTC.

string format: date-time
nullable
modifiedBy

The Recruso user who last updated the site. Null until the site is first updated.

integer format: int16
nullable
modifiedOn

When the site was last updated, in UK local time (GMT/BST) — not UTC. Null until the site is first updated.

string format: date-time
nullable
address1

First line of the site address. Up to 150 characters.

string
nullable
address2

Second line of the site address. Up to 50 characters.

string
nullable
town

Town or city of the site address.

string
nullable
county

County of the site address.

string
nullable
country

Country of the site address.

string
nullable
postCode

Postcode of the site address.

string
nullable
telephone1

The site’s main telephone number.

string
nullable
telephone2

A second telephone number for the site.

string
nullable
fax

The site’s fax number.

string
nullable
email

The site’s main email address.

string
nullable
invoiceMethodId

How invoices for this site are delivered, as an id from the invoice methods vocabulary.

integer format: int16
nullable
useSiteAddressForInvoice

Whether invoices for this site use the site address rather than the client’s invoice address.

boolean
nullable
useSiteEmailForInvoice

Whether invoices for this site are sent to the site email rather than the client’s invoice email.

boolean
nullable
branchId

The branch this site is managed under.

integer format: int16
nullable
isDeleted

Whether the site is archived. Archived sites are excluded from ListSites but are still returned by GetSiteById.

boolean
nullable
timesheetEmail

The address timesheets for this site are sent to.

string
nullable
siteArchivedBy

The Recruso user who archived the site. Null while the site is active.

integer format: int16
nullable
siteArchivedOn

When the site was archived, in UK local time (GMT/BST). Null while the site is active.

string format: date-time
nullable
siteRestoredBy

The Recruso user who last restored the site. Null if the site has never been archived.

integer format: int16
nullable
siteRestoredOn

When the site was last restored, in UK local time (GMT/BST). Null if the site has never been archived.

string format: date-time
nullable
Example
{
"siteId": 512,
"clientId": 137,
"siteName": "Trafford Park DC",
"memo": "Gatehouse sign-in required; ask for the shift supervisor.",
"createdBy": 12,
"createdOn": "2026-03-06T10:41:12",
"modifiedBy": 12,
"modifiedOn": "2026-06-11T14:02:09",
"address1": "Northgate House",
"address2": "22 Ashburton Road West",
"town": "Trafford Park",
"county": "Greater Manchester",
"country": "United Kingdom",
"postCode": "M17 1RU",
"telephone1": "0161 872 4410",
"telephone2": "0161 872 4411",
"fax": "0161 872 4412",
"email": "trafford@example-northgate.co.uk",
"invoiceMethodId": 1,
"useSiteAddressForInvoice": true,
"useSiteEmailForInvoice": false,
"branchId": 4,
"isDeleted": false,
"timesheetEmail": "timesheets@example-northgate.co.uk",
"siteArchivedBy": 12,
"siteArchivedOn": "2026-07-01T16:20:00",
"siteRestoredBy": 12,
"siteRestoredOn": "2026-07-14T09:05:00"
}

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"
}