Correct one of a worker's activities
const url = 'https://api2.recruso.co.uk/v1/workers/1/activities/1';const options = { method: 'PUT', headers: {Authorization: '<Authorization>', 'Content-Type': 'application/json'}, body: '{"workerId":4821,"id":9930,"activityDate":"2026-09-04T14:32:00","activityTypeId":4,"description":"Called about Thursday nights at Trafford Park; worker is interested.","actionTaken":"Pencilled in for the Thursday shift; to confirm Monday.","nextCallDate":"2026-09-08T09:00:00"}'};
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/workers/1/activities/1 \ --header 'Authorization: <Authorization>' \ --header 'Content-Type: application/json' \ --data '{ "workerId": 4821, "id": 9930, "activityDate": "2026-09-04T14:32:00", "activityTypeId": 4, "description": "Called about Thursday nights at Trafford Park; worker is interested.", "actionTaken": "Pencilled in for the Thursday shift; to confirm Monday.", "nextCallDate": "2026-09-08T09:00:00" }'Corrects an entry already in a worker’s activity feed in your own agency.
This is a full replacement of that one entry, not a partial merge: a field you omit is set to null. Use it to fix an entry that was logged wrongly — a later call is a new entry, not an edit of the one before it.
The Recruso user recorded against the entry stays the one who logged it; only modifiedBy and modifiedOn move, and both are set from your credentials and the current UK local time.
An entry that belongs to a different worker, or to another agency, returns 404 rather than 403, so its existence is never disclosed.
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 workerId path parameter
The id path parameter
Request Bodyrequired
Section titled “Request Bodyrequired”The replacement values for a feed entry already logged. Every field is written from the request, so a field you omit is set to null.
object
The worker the entry belongs to. Taken from the route; a value in the request body is ignored.
Example
4821The entry to update. Taken from the route; a value in the request body is ignored.
Example
9930When the activity happened, in UK local time. Required — the column is NOT NULL, and an entry with no date has nowhere to sit in the feed.
Example
2026-09-04T14:32:00The kind of activity, as an id from your agency’s Activity types lookup.
Example
4What was said or done.
Example
Called about Thursday nights at Trafford Park; worker is interested.What was done about it.
Example
Pencilled in for the Thursday shift; to confirm Monday.When to call the worker back, in UK local time.
Example
2026-09-08T09:00:00Responses
Section titled “Responses”OK
object
The entry’s identifier.
When the activity happened, in UK local time.
The kind of activity, as an id from your agency’s Activity types lookup.
What was said or done.
What was done about it.
When to call the worker back, in UK local time.
The Recruso user id (tblUsers.UserID) of the consultant the activity involved, not the ASP.NET Identity id. Set when the activity is logged and not changed afterwards.
The Outlook calendar event id, when the activity was raised as a calendar entry.
The Recruso user id (tblUsers.UserID) that logged the entry, not the ASP.NET Identity id. The generic audit column; userId above is the consultant involved, and in most cases the two are the same person.
When the entry was logged, in UK local time.
Example
{ "workerActivityId": 9930, "activityDate": "2026-09-04T14:32:00", "activityTypeId": 4, "description": "Called about Thursday nights at Trafford Park; worker is interested.", "actionTaken": "Pencilled in for the Thursday shift; to confirm Monday.", "nextCallDate": "2026-09-08T09:00:00", "userId": 100, "eventId": "AAMkAGI2TG93AAA=", "createdBy": 100, "createdOn": "2026-09-04T14:35:11"}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"}
