GET/activity
Credits: 0
LinkedIn risk: None
Rate limit: Global only
Purpose
Paginated list of recent outreach events for the workspace (connection requests, accepts, messages, replies, agent actions). Allowlisted fields only — not a full inbox transcript.
Use type=reply_received to answer “when did I get the last reply?”
Request
GET /activity?type=reply_received&limit=20
X-API-Key: sk_live_...
| Query | Notes |
|---|---|
type | Optional. One of: connection_request_sent, connection_accepted, message_sent, reply_received, agent_replied, cta_sent, agent_handed_off. Unknown → 400. Manual operator sends are not included. |
limit | Default 50, max 100 |
cursor | Opaque id from a previous nextCursor. Invalid or mismatched type → 400 |
Response 200
{
"events": [
{
"id": "reply_abc",
"type": "reply_received",
"timestamp": "2026-09-08T01:00:00.000Z",
"leadId": "lead_xyz",
"leadName": "Jane Doe",
"companyName": "Acme",
"campaignId": "search_abc",
"messagePreview": "Thanks, interested…",
"handOffReason": null
}
],
"nextCursor": null
}
| Field | Notes |
|---|---|
messagePreview | Optional; often null. Truncated to 80 characters when present |
handOffReason | Mostly for agent_handed_off; otherwise null |
| LinkedIn account ids | Never returned on this endpoint |
Empty workspace → { "events": [], "nextCursor": null }. An empty events array always has nextCursor: null.
Errors
error.code | When |
|---|---|
unauthorized | Missing/invalid API key |
validation_error | Bad type or cursor |
rate_limited | Global RPM exceeded |
MCP
Tool: get_recent_activity.
See also
- GET /insights/overview
- List leads (
tag=Interested)