Event API
Interfaces to manage and retrieve events
Events are created when actions occur in campaigns - emails sent, opens, clicks, replies, bounces, etc. Events are associated with contacts and messages.
V2 API Available
List Events
Get events with filtering and pagination.
V2 API (Recommended)
curl -X GET 'https://api.supersend.io/v2/events?TeamId=xxx&CampaignId=yyy&type=sent&channel=email&limit=20&start_date=2025-01-01T00:00:00Z&end_date=2025-01-31T23:59:59Z' \
-H "Authorization: Bearer YOUR_API_KEY"# Response (200 OK)
{
"success": true,
"data": [
{
"id": "event-uuid",
"type": "sent",
"channel": "email",
"date": "2025-11-27T10:30:00Z",
"sequence_step": 1,
"opened": true,
"clicked": false,
"replied": false,
"bounced": false,
"autoresponse": false,
"opens": 2,
"clicks": 0,
"replies": 0,
"unsubscribes": 0,
"accepted_connection_request": false,
"linkedin_reply": false,
"twitter_reply": false,
"subject": "Following up on our conversation",
"email_id": "msg-uuid",
"thread_id": "thread-uuid",
"contact": {
"id": "contact-uuid",
"email": "contact@example.com",
"first_name": "John",
"last_name": "Doe",
"linkedin_url": null
},
"campaign": {
"id": "campaign-uuid",
"name": "Q4 Outreach"
},
"sender": {
"id": "sender-uuid",
"email": "sales@example.com",
"send_as": "Sales Team"
},
"campaign_id": "campaign-uuid",
"contact_id": "contact-uuid",
"sender_id": "sender-uuid",
"created_at": "2025-11-27T10:30:00Z",
"updated_at": "2025-11-27T10:30:00Z"
}
],
"pagination": {
"total": 150,
"limit": 20,
"offset": 0,
"hasMore": true
},
"request_id": "req_a1b2c3d4e5f6789012345678"
}
V2 Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
TeamId | string | No | Filter by team ID (if not provided, returns events from all user's teams) |
CampaignId | string | No | Filter by campaign ID |
ContactId | string | No | Filter by contact ID |
SenderId | string | No | Filter by sender ID |
type | string | No | Filter by event type: scheduled, sent, open, reply, click, bounce, unsubscribe |
channel | string | No | Filter by channel: email, linkedin, twitter, text, call |
start_date | string | No | Filter events after this date (ISO 8601) |
end_date | string | No | Filter events before this date (ISO 8601) |
limit | number | No | Results per page (default: 50, max: 100) |
offset | number | No | Pagination offset (default: 0) |
V1 API
curl -X GET 'https://api.supersend.io/v1/events?TeamId=xxx&CampaignId=yyy&events=replied&channels=1&limit=50' \
-H "Authorization: Bearer YOUR_API_KEY"# Response (200 OK)
{
"success": true,
"data": {
"count": 150,
"rows": [
{
"id": "event-uuid",
"type": 2,
"channel": 1,
"opened": true,
"clicked": false,
"replied": true,
"bounced": false,
"Contact": {...},
"Message": {...},
"Sender": {...}
}
]
},
"request_id": "req_a1b2c3d4e5f6789012345678"
}
Get Event
Get a specific event by ID.
V2 API (Recommended)
curl -X GET 'https://api.supersend.io/v2/events/event-uuid' \
-H "Authorization: Bearer YOUR_API_KEY"# Response (200 OK)
{
"success": true,
"data": {
"id": "event-uuid",
"type": "sent",
"channel": "email",
"date": "2025-11-27T10:30:00Z",
"sequence_step": 1,
"b_test": false,
"test": false,
"opened": true,
"clicked": false,
"replied": false,
"bounced": false,
"autoresponse": false,
"finished": false,
"closed": false,
"opens": 2,
"clicks": 1,
"replies": 0,
"unsubscribes": 0,
"accepted_connection_request": false,
"linkedin_reply": false,
"twitter_reply": false,
"subject": "Following up on our conversation",
"body": "Email body content...",
"message": "Message content...",
"email_id": "msg-uuid",
"alt_email_id": null,
"thread_id": "thread-uuid",
"label_ids": [],
"email": {...},
"meta": {...},
"status": "active",
"contact": {
"id": "contact-uuid",
"email": "contact@example.com",
"first_name": "John",
"last_name": "Doe",
"linkedin_url": null,
"twitter": null
},
"campaign": {
"id": "campaign-uuid",
"name": "Q4 Outreach"
},
"sender": {
"id": "sender-uuid",
"email": "sales@example.com",
"send_as": "Sales Team",
"provider": "smtp"
},
"campaign_id": "campaign-uuid",
"contact_id": "contact-uuid",
"sender_id": "sender-uuid",
"created_at": "2025-11-27T10:30:00Z",
"updated_at": "2025-11-27T10:30:00Z"
},
"request_id": "req_a1b2c3d4e5f6789012345678"
}
Event Types
V2 API uses simplified type names that work across all channels:
| Type | Description | Channels |
|---|---|---|
scheduled | Message scheduled to send | All |
sent | Message was sent | All |
open | Email was opened or link clicked | |
reply | Contact replied | email, linkedin, twitter |
unsubscribe | Contact unsubscribed | |
visit | Profile visit completed | |
message | Message sent | linkedin, twitter |
follow | Followed contact | |
unfollow | Unfollowed contact | |
like | Liked post | |
connection_request | Connection request sent | |
move_contact | Contact moved between campaigns | All |
http_api_request | HTTP API request executed | All |
Note: The click type filter maps to open events. Use the clicked boolean field on events to distinguish clicks from opens.
Channels
| Channel | Description |
|---|---|
email | Email messages |
linkedin | LinkedIn messages and actions |
twitter | Twitter/X messages and actions |
text | SMS/text messages |
call | Phone calls |
instagram | Instagram messages |
tiktok | TikTok messages |
email_warm | Email warming messages |
task | Task events |
move_contact | Contact movement events |
http_api | HTTP API request events |
V1 Query Parameters
V1 supports advanced filtering:
| Parameter | Type | Description |
|---|---|---|
TeamId | string | Team identifier (required) |
start | string | Start date (ISO 8601) |
end | string | End date (ISO 8601) |
events | string/array | Event types: opened, clicked, replied, bounced |
channels | number/array | 1=email, 2=linkedin, 5=twitter |
email | string | Filter by contact email |
searchText | string | Search contact name/email |
limit | number | Results per page |
offset | number | Pagination offset |
V1 vs V2 Endpoint Mapping
| Action | V1 Endpoint | V2 Endpoint |
|---|---|---|
| List | GET /v1/campaigns/:id/events | GET /v2/events |
| Get | Not available | GET /v2/events/:id |