Skip to main content

Endpoints

MethodPathPurpose
GET/activitiesList, paginated
POST/activitiesLog an activity (parent + occurred_at required)
GET/activities/:idFetch one
PATCH/activities/:idUpdate activity_type, occurred_at, payload. Parent is immutable in v1
DELETE/activities/:idDelete

Fields

FieldTypeNotes
iduuid
parent_object_typeperson | company | dealRequired
parent_object_iduuidMust exist in the same workspace
activity_typestringFree-form — call, meeting, email, message, or your own
occurred_atdatetimeRequired; ISO 8601
payloadobjectFree-form JSON; no schema validation in v1
created_atdatetimeWhen the row was inserted (not when the activity occurred)

Log a meeting

curl -X POST $SALTY_API/activities \
  -H "Authorization: Bearer $SALTY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "parent_object_type": "person",
    "parent_object_id": "<person-uuid>",
    "activity_type": "meeting",
    "occurred_at": "2026-05-24T14:00:00Z",
    "payload": {
      "topic": "discovery",
      "duration_min": 30,
      "attendees": ["jane@acme.com", "sales@us"]
    }
  }'

Why parent is immutable

If you need to re-parent an activity, delete and re-create. Allowing PATCH on parent_object_* would require enforcing the same parent-existence check on update and adds little value — agents that want to move an activity typically want to copy it anyway.