Skip to content

Update a site activity

PUT
/v1/clients/{clientId}/sites/{siteId}/contact-persons/{contactPersonId}/activities/{id}
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.

clientId
required
integer format: int32

The clientId path parameter

siteId
required
integer format: int32

The siteId path parameter

contactPersonId
required
integer format: int32

The contactPersonId path parameter

id
required
integer format: int32

The id path parameter

Media typeapplication/json

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
activityDate

When the activity took place, in UK local time (GMT/BST). Required.

string format: date-time
Example
2026-05-14T10:30:00
description

What the activity was — the call, visit or email being recorded.

string
nullable
Example
Called to confirm cover for the bank holiday weekend.
actionTaken

What was done or agreed as a result.

string
nullable
Example
Agreed 6 pickers for Saturday, confirmed by email.
nextCallDate

When to follow up next, in UK local time (GMT/BST).

string format: date-time
nullable
Example
2026-05-21T09:00:00
lastVisited

When the site was last visited, in UK local time (GMT/BST).

string format: date-time
nullable
Example
2026-05-02T13:15:00
activityTypeId

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.

integer format: int16
nullable
Example
4

OK

Media typeapplication/json

A site activity as it stands after the update.

object
siteActivityId

The activity’s unique identifier, assigned by Recruso.

integer format: int32
siteContactPersonId

The site contact this activity was logged against.

integer format: int32
activityDate

When the activity took place, in UK local time (GMT/BST). Required.

string format: date-time
description

What the activity was — the call, visit or email being recorded.

string
nullable
actionTaken

What was done or agreed as a result.

string
nullable
nextCallDate

When to follow up next, in UK local time (GMT/BST).

string format: date-time
nullable
lastVisited

When the site was last visited, in UK local time (GMT/BST).

string format: date-time
nullable
activityTypeId

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.

integer format: int16
nullable
modifiedBy

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

integer format: int16
nullable
modifiedOn

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

string format: date-time
nullable
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

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

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