List activities for a client
Returns the client's activities (emails, meetings, notes, chats) ordered by most-recent first. **Pagination.** Offset-based: `cursor` is the integer offset of the next page encoded as a decimal string (e.g. `"20"`). This differs from `/clients`, whose cursor is a base64-encoded UUID — the two endpoints paginate differently and their cursors are not interchangeable. **Filters.** `type`, `source`, `from`, `to`, and `includeArchived` are all applied server-side. `from`/`to` bound the activity's `occurredAt` (inclusive) and accept an ISO-8601 date (`2026-01-01`) or an RFC 3339 datetime. Archived activities are hidden unless `includeArchived=true`. Unknown enum values, unparseable dates, or a non-boolean `includeArchived` return `400 invalid_argument`. List responses omit `content` for cost reasons — fetch the single-resource endpoint to get message bodies.
GET
/clients/{clientId}/activities
Authorization
Section titled “Authorization”bearerAuth``
AuthorizationBearer <token>
Salfio API tokens start with the literal prefix sk_live_ followed by 32 base62 characters (≈190 bits of entropy). Tokens are hashed at rest with argon2id and shown to the user only once at creation.
In: header
Path Parameters
Section titled “Path Parameters”clientId*string
Formatuuid
Query Parameters
Section titled “Query Parameters”limit?integer
Default20
Range1 <= value <= 100
cursor?string
Decimal-string offset of the next page (from a prior response's meta.cursor).
type?string
Value in"email" | "meeting" | "note" | "chat"
source?string
Value in"manual" | "gmail" | "outlook" | "fireflies"
from?string
Only activities whose occurredAt is on/after this instant. ISO-8601 date or RFC 3339 datetime.
to?string
Only activities whose occurredAt is on/before this instant. ISO-8601 date or RFC 3339 datetime.
includeArchived?boolean
When true, archived activities are included. Defaults to false.
Defaultfalse
Response Body
Section titled “Response Body”application/json
application/json
application/json
application/json
application/json
curl -X GET "https://api.salfio.com/v1/clients/497f6eca-6276-4993-bfeb-53cbbbba6f08/activities"
{
"meta": {
"cursor": "string",
"hasMore": true
},
"data": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
"type": "email",
"source": "manual",
"subject": "string",
"content": "string",
"occurredAt": "2019-08-24T14:15:22Z",
"participants": [
"[email protected]"
],
"immutable": true,
"archivedAt": "2019-08-24T14:15:22Z",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
]
}
{
"error": {
"code": "invalid_argument",
"message": "limit must be an integer between 1 and 100"
}
}
{
"error": {
"code": "unauthorized",
"message": "Authentication required"
}
}
{
"error": {
"code": "not_found",
"message": "client not found"
}
}
{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded",
"details": {
"retry_after_seconds": 30
}
}
}