Activities API

The Activities API lets you log and manage all customer interactions programmatically. Create notes, tasks, call logs, and meeting records, associate them with contacts, companies, or deals, and bulk import up to 100 activities at a time.

Endpoints

GET
/api/v1/activitiesList activities
POST
/api/v1/activitiesCreate an activity
GET
/api/v1/activities/{id}Get activity by ID
PUT
/api/v1/activities/{id}Update an activity
DELETE
/api/v1/activities/{id}Delete an activity
POST
/api/v1/activities/bulkBulk create (max 100)

List endpoints support ?limit, ?offset, ?updatedSince, and ?fields query parameters. See the API Overview for details.

Activity Types

Rally supports four activity types. Some fields are type-specific (for example, call fields only apply to call activities).

note

Free-form notes attached to a record.

task

Action items with due dates and priority levels.

call

Call logs with direction, outcome, and duration.

meeting

Scheduled meetings with location and video link.

Create Activity Request

Request body for POST /api/v1/activities. Some fields are specific to certain activity types as noted in the descriptions.

CreateActivityRequest

PropertyTypeRequiredDescription
activityTypestringType: "note", "task", "call", "meeting"
subjectstringActivity subject
bodystring?Description / notes
contactIdGuid?Associated contact
companyIdGuid?Associated company
dealIdGuid?Associated deal
scheduledAtDateTime?Scheduled date/time
dueDateDateTime?Due date (tasks)
prioritystring?"low", "normal", "high", "urgent"
statusstring"pending", "completed" (default: "pending")
callDirectionstring?"inbound" or "outbound" (calls only)
callOutcomestring?"connected", "voicemail", "no_answer", etc. (calls only)
callDurationSecondsint?Call duration in seconds (calls only)
durationMinutesint?Meeting duration in minutes (meetings only)
locationstring?Meeting location (meetings only)
meetingUrlstring?Meeting link (meetings only)
ownerIdGuid?Owner

Activity Response

Returned by all GET, POST, and PUT endpoints.

ActivityResponse

PropertyTypeRequiredDescription
idGuidUnique identifier
tenantIdGuidTenant identifier
activityTypestringActivity type
subjectstringActivity subject
bodystring?Description / notes
contactIdGuid?Associated contact
companyIdGuid?Associated company
dealIdGuid?Associated deal
scheduledAtDateTime?Scheduled date/time
dueDateDateTime?Due date
prioritystring?Priority level
statusstringCurrent status
callDirectionstring?Call direction
callOutcomestring?Call outcome
callDurationSecondsint?Call duration in seconds
durationMinutesint?Meeting duration in minutes
locationstring?Meeting location
meetingUrlstring?Meeting link
ownerIdGuid?Owner
completedAtDateTime?Completion timestamp
createdAtDateTimeCreation timestamp
updatedAtDateTimeLast update timestamp

Code Examples

Log a Call

curl -X POST "https://your-tenant.rallycrm.io/api/v1/activities" \
  -H "X-Api-Key: rk_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "activityType": "call",
    "subject": "Discovery call with Sarah Chen",
    "body": "Discussed enterprise licensing needs and timeline",
    "contactId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "dealId": "c8f9a0b1-2d3e-4f56-7890-abcdef123456",
    "callDirection": "outbound",
    "callOutcome": "connected",
    "callDurationSeconds": 1800,
    "status": "completed"
  }'

Create a Task

curl -X POST "https://your-tenant.rallycrm.io/api/v1/activities" \
  -H "X-Api-Key: rk_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "activityType": "task",
    "subject": "Send proposal to Acme Corp",
    "body": "Include enterprise pricing and implementation timeline",
    "contactId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "dealId": "c8f9a0b1-2d3e-4f56-7890-abcdef123456",
    "dueDate": "2025-07-15T17:00:00Z",
    "priority": "high",
    "status": "pending"
  }'

Schedule a Meeting

curl -X POST "https://your-tenant.rallycrm.io/api/v1/activities" \
  -H "X-Api-Key: rk_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "activityType": "meeting",
    "subject": "Quarterly business review",
    "body": "Review Q2 results and discuss expansion plan",
    "contactId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "companyId": "b5c7e1a2-3d4f-5678-9abc-def012345678",
    "scheduledAt": "2025-07-20T14:00:00Z",
    "durationMinutes": 60,
    "location": "Conference Room B",
    "meetingUrl": "https://meet.example.com/abc-def-ghi"
  }'

Example Responses

Call Activity

{
  "id": "a7b8c9d0-1e2f-3456-789a-bcdef0123456",
  "tenantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "activityType": "call",
  "subject": "Discovery call with Sarah Chen",
  "body": "Discussed enterprise licensing needs and timeline",
  "contactId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "companyId": null,
  "dealId": "c8f9a0b1-2d3e-4f56-7890-abcdef123456",
  "scheduledAt": null,
  "dueDate": null,
  "priority": null,
  "status": "completed",
  "callDirection": "outbound",
  "callOutcome": "connected",
  "callDurationSeconds": 1800,
  "durationMinutes": null,
  "location": null,
  "meetingUrl": null,
  "ownerId": "e4d909c2-90d0-4b2b-88c5-8e9a0fa1e4b1",
  "completedAt": "2025-06-14T15:30:00Z",
  "createdAt": "2025-06-14T15:30:00Z",
  "updatedAt": "2025-06-14T15:30:00Z"
}

Task Activity

{
  "id": "b8c9d0e1-2f3a-4567-89ab-cdef01234567",
  "tenantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "activityType": "task",
  "subject": "Send proposal to Acme Corp",
  "body": "Include enterprise pricing and implementation timeline",
  "contactId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "companyId": null,
  "dealId": "c8f9a0b1-2d3e-4f56-7890-abcdef123456",
  "scheduledAt": null,
  "dueDate": "2025-07-15T17:00:00Z",
  "priority": "high",
  "status": "pending",
  "callDirection": null,
  "callOutcome": null,
  "callDurationSeconds": null,
  "durationMinutes": null,
  "location": null,
  "meetingUrl": null,
  "ownerId": "e4d909c2-90d0-4b2b-88c5-8e9a0fa1e4b1",
  "completedAt": null,
  "createdAt": "2025-06-14T16:00:00Z",
  "updatedAt": "2025-06-14T16:00:00Z"
}

List Activities

[
  {
    "id": "a7b8c9d0-1e2f-3456-789a-bcdef0123456",
    "tenantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "activityType": "call",
    "subject": "Discovery call with Sarah Chen",
    "body": "Discussed enterprise licensing needs and timeline",
    "contactId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "companyId": null,
    "dealId": "c8f9a0b1-2d3e-4f56-7890-abcdef123456",
    "scheduledAt": null,
    "dueDate": null,
    "priority": null,
    "status": "completed",
    "callDirection": "outbound",
    "callOutcome": "connected",
    "callDurationSeconds": 1800,
    "durationMinutes": null,
    "location": null,
    "meetingUrl": null,
    "ownerId": "e4d909c2-90d0-4b2b-88c5-8e9a0fa1e4b1",
    "completedAt": "2025-06-14T15:30:00Z",
    "createdAt": "2025-06-14T15:30:00Z",
    "updatedAt": "2025-06-14T15:30:00Z"
  }
]

Bulk Create Response

{
  "created": 4,
  "updated": 0,
  "failed": 0,
  "createdIds": [
    "a7b8c9d0-1e2f-3456-789a-bcdef0123456",
    "b8c9d0e1-2f3a-4567-89ab-cdef01234567",
    "c9d0e1f2-3a4b-5678-9abc-def012345678",
    "d0e1f2a3-4b5c-6789-abcd-ef0123456789"
  ],
  "errors": []
}

Next Steps

Rally Support

We typically reply in a few hours

Hi! 👋 How can we help you today?