List a client's sites
const url = 'https://api2.recruso.co.uk/v1/clients/1/sites?siteName=Trafford&sortColumn=sitename&sortOrder=asc&pageNumber=1&pageSize=20';const options = {method: 'GET', headers: {Authorization: '<Authorization>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api2.recruso.co.uk/v1/clients/1/sites?siteName=Trafford&sortColumn=sitename&sortOrder=asc&pageNumber=1&pageSize=20' \ --header 'Authorization: <Authorization>'Returns a paged list of the active sites belonging to one of your own agency’s clients. Archived sites are excluded; read one by id with GetSiteById if you need to inspect it.
A clientId that does not exist, belongs to another agency, or sits under a branch the Recruso user behind your API app cannot access returns an empty page rather than 404 — the client is not looked up, only used to scope the query, and no site of a client outside those branches is ever returned.
siteName matches case-insensitively on any part of the name. Results are paged 20 per page by default. Sort with sortColumn (sitename, town, postcode, createdon or modifiedon) and sortOrder (asc or desc); an unrecognised sortColumn falls back to sitename rather than failing.
Access. Requires a client-credentials access token. Tokens issued through the interactive user login are rejected.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The clientId path parameter
Query Parameters
Section titled “Query Parameters”Optional case-insensitive partial match on the site name.
Example
TraffordOptional case-insensitive partial match on the site name.
Column to sort by: sitename, town, postcode, createdon or modifiedon. Defaults to sitename, and an unrecognised value falls back to sitename rather than failing.
Example
sitenameColumn to sort by: sitename, town, postcode, createdon or modifiedon. Defaults to sitename, and an unrecognised value falls back to sitename rather than failing.
Sort direction: asc (the default) or desc.
Example
ascSort direction: asc (the default) or desc.
Page number, 1-based. Defaults to 1.
Example
1Page number, 1-based. Defaults to 1.
Number of sites per page. Defaults to 20.
Example
20Number of sites per page. Defaults to 20.
Responses
Section titled “Responses”OK
object
One active site belonging to the client.
object
The site’s unique identifier, assigned by Recruso.
The client this site belongs to.
The site’s name. Required, up to 70 characters, and unique among the client’s active sites.
Free-text notes about the site. Up to 550 characters.
First line of the site address. Up to 150 characters.
Second line of the site address. Up to 50 characters.
Town or city of the site address.
County of the site address.
Postcode of the site address.
The site’s main telephone number.
A second telephone number for the site.
The site’s main email address.
How invoices for this site are delivered, as an id from the invoice methods vocabulary.
Whether invoices for this site use the site address rather than the client’s invoice address.
Whether invoices for this site are sent to the site email rather than the client’s invoice email.
The branch this site is managed under.
The address timesheets for this site are sent to.
Whether the site is archived. Always false here — this list returns active sites only.
The Recruso user who created the site.
When the site was created, in UK local time (GMT/BST) — not UTC.
The Recruso user who last updated the site. Null until the site is first updated.
When the site was last updated, in UK local time (GMT/BST) — not UTC. Null until the site is first updated.
The Recruso user who archived the site. Null while the site is active.
When the site was archived, in UK local time (GMT/BST). Null while the site is active.
The Recruso user who last restored the site. Null if the site has never been archived.
When the site was last restored, in UK local time (GMT/BST). Null if the site has never been archived.
Example
{ "data": [ { "siteId": 512, "clientId": 137, "siteName": "Trafford Park DC", "memo": "Gatehouse sign-in required; ask for the shift supervisor.", "address1": "Northgate House", "address2": "22 Ashburton Road West", "town": "Trafford Park", "county": "Greater Manchester", "postCode": "M17 1RU", "telephone1": "0161 872 4410", "telephone2": "0161 872 4411", "email": "trafford@example-northgate.co.uk", "invoiceMethodId": 1, "useSiteAddressForInvoice": true, "useSiteEmailForInvoice": false, "branchId": 4, "timesheetEmail": "timesheets@example-northgate.co.uk", "isDeleted": false, "createdBy": 12, "createdOn": "2026-03-06T10:41:12", "modifiedBy": 12, "modifiedOn": "2026-06-11T14:02:09", "siteArchivedBy": 12, "siteArchivedOn": "2026-07-01T16:20:00", "siteRestoredBy": 12, "siteRestoredOn": "2026-07-14T09:05:00" } ]}Unauthorized
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Forbidden
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}
