Update a site
const url = 'https://api2.recruso.co.uk/v1/clients/1/sites/1';const options = { method: 'PUT', headers: {Authorization: '<Authorization>', 'Content-Type': 'application/json'}, body: '{"siteName":"Trafford Park DC","memo":"Gatehouse sign-in required; ask for the shift supervisor.","gre":1,"grn":1,"invoiceMethodId":1,"useSiteAddressForInvoice":true,"useSiteEmailForInvoice":false,"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","timesheetEmail":"timesheets@example-northgate.co.uk"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://api2.recruso.co.uk/v1/clients/1/sites/1 \ --header 'Authorization: <Authorization>' \ --header 'Content-Type: application/json' \ --data '{ "siteName": "Trafford Park DC", "memo": "Gatehouse sign-in required; ask for the shift supervisor.", "gre": 1, "grn": 1, "invoiceMethodId": 1, "useSiteAddressForInvoice": true, "useSiteEmailForInvoice": false, "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", "timesheetEmail": "timesheets@example-northgate.co.uk" }'Updates one site belonging to one of your own agency’s clients.
This is a full replacement, not a partial merge: every mutable field is written from the request, so a field you omit is set to null. Send the complete record, not just the fields you are changing.
A site’s branch and client cannot be changed here — neither is part of the request. A site stays with the client it was created under.
The renamed site must not collide with another of the client’s active sites (400) or with an archived one (409, carrying the archived siteId, exactly as in CreateSite).
The site must belong to the client named in the route; otherwise 404. modifiedBy and modifiedOn are set from your credentials and the current UK local time.
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
The id path parameter
Request Bodyrequired
Section titled “Request Bodyrequired”The replacement values for a site. Every mutable field is written, so an omitted field is set to null. The site’s client and branch cannot be changed.
object
The site’s name. Required, up to 70 characters, and unique among the client’s active sites.
Example
Trafford Park DCFree-text notes about the site. Up to 550 characters.
Example
Gatehouse sign-in required; ask for the shift supervisor.How invoices for this site are delivered, as an id from the invoice methods vocabulary.
Example
1Whether invoices for this site use the site address rather than the client’s invoice address.
Example
trueWhether invoices for this site are sent to the site email rather than the client’s invoice email.
Example
falseFirst line of the site address. Up to 150 characters.
Example
Northgate HouseSecond line of the site address. Up to 50 characters.
Example
22 Ashburton Road WestTown or city of the site address.
Example
Trafford ParkCounty of the site address.
Example
Greater ManchesterCountry of the site address.
Example
United KingdomPostcode of the site address.
Example
M17 1RUThe site’s main telephone number.
Example
0161 872 4410A second telephone number for the site.
Example
0161 872 4411The site’s fax number.
Example
0161 872 4412The site’s main email address.
Example
trafford@example-northgate.co.ukThe address timesheets for this site are sent to.
Example
timesheets@example-northgate.co.ukResponses
Section titled “Responses”OK
A site as it stands after the update.
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.
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.
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.
Country 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 fax number.
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.
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
{ "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, "timesheetEmail": "timesheets@example-northgate.co.uk", "siteArchivedBy": 12, "siteArchivedOn": "2026-07-01T16:20:00", "siteRestoredBy": 12, "siteRestoredOn": "2026-07-14T09:05:00"}Bad Request
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}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"}Not Found
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Conflict
Returned with 409 when a site name is already held by an archived site of the same client. Not an RFC 7807 problem document.
object
The archived site already holding this name. Restore it with RestoreSite, or choose a different name.
An explanation of the conflict, and what to do about it.
Example
{ "siteId": 512, "message": "A site with this name was previously archived for this client. To restore it, use the restore endpoint or choose a different name."}
