Update a site activity
const url = 'https://api2.recruso.co.uk/v1/clients/1/sites/1/contact-persons/1/activities/1';const options = { method: 'PUT', headers: {Authorization: '<Authorization>', 'Content-Type': 'application/json'}, body: '{"activityDate":"2026-05-14T10:30:00","description":"Called to confirm cover for the bank holiday weekend.","actionTaken":"Agreed 6 pickers for Saturday, confirmed by email.","nextCallDate":"2026-05-21T09:00:00","lastVisited":"2026-05-02T13:15:00","activityTypeId":4}'};
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/contact-persons/1/activities/1 \ --header 'Authorization: <Authorization>' \ --header 'Content-Type: application/json' \ --data '{ "activityDate": "2026-05-14T10:30:00", "description": "Called to confirm cover for the bank holiday weekend.", "actionTaken": "Agreed 6 pickers for Saturday, confirmed by email.", "nextCallDate": "2026-05-21T09:00:00", "lastVisited": "2026-05-02T13:15:00", "activityTypeId": 4 }'Updates one activity logged against a contact at one of your own agency’s sites.
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.
eventId cannot be changed — it is not part of this request, and an activity keeps whatever it was created with. An activity also cannot be moved to another contact.
activityTypeId, when given, must belong to your agency’s Activity types lookup; one that does not returns 400.
The client, site and contact in the route must line up — the site must belong to the client and the contact to the site — and any mismatch returns 404 rather than 403.
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 siteId path parameter
The contactPersonId path parameter
The id path parameter
Request Bodyrequired
Section titled “Request Bodyrequired”The replacement values for a site activity. Every mutable field is written, so an omitted field is set to null. The activity’s contact and event reference cannot be changed.
object
When the activity took place, in UK local time (GMT/BST). Required.
Example
2026-05-14T10:30:00What the activity was — the call, visit or email being recorded.
Example
Called to confirm cover for the bank holiday weekend.What was done or agreed as a result.
Example
Agreed 6 pickers for Saturday, confirmed by email.When to follow up next, in UK local time (GMT/BST).
Example
2026-05-21T09:00:00When the site was last visited, in UK local time (GMT/BST).
Example
2026-05-02T13:15:00The kind of activity, as an id from your agency’s Activity types lookup. An id that does not belong to your agency returns 400.
Example
4Responses
Section titled “Responses”OK
A site activity as it stands after the update.
object
The activity’s unique identifier, assigned by Recruso.
The site contact this activity was logged against.
When the activity took place, in UK local time (GMT/BST). Required.
What the activity was — the call, visit or email being recorded.
What was done or agreed as a result.
When to follow up next, in UK local time (GMT/BST).
When the site was last visited, in UK local time (GMT/BST).
The kind of activity, as an id from your agency’s Activity types lookup. An id that does not belong to your agency returns 400.
The Recruso user who last updated the activity. Null until it is first updated.
When the activity was last updated, in UK local time (GMT/BST) - not UTC. Null until it is first updated.
Example
{ "siteActivityId": 7420, "siteContactPersonId": 88, "activityDate": "2026-05-14T10:30:00", "description": "Called to confirm cover for the bank holiday weekend.", "actionTaken": "Agreed 6 pickers for Saturday, confirmed by email.", "nextCallDate": "2026-05-21T09:00:00", "lastVisited": "2026-05-02T13:15:00", "activityTypeId": 4, "modifiedBy": 12, "modifiedOn": "2026-05-15T08:12:03"}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"}
