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

V2 provides standardized responses for event endpoints.


List Events

Get events with filtering and pagination.

bash
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:

ParameterTypeRequiredDescription
TeamIdstringNoFilter by team ID (if not provided, returns events from all user's teams)
CampaignIdstringNoFilter by campaign ID
ContactIdstringNoFilter by contact ID
SenderIdstringNoFilter by sender ID
typestringNoFilter by event type: scheduled, sent, open, reply, click, bounce, unsubscribe
channelstringNoFilter by channel: email, linkedin, twitter, text, call
start_datestringNoFilter events after this date (ISO 8601)
end_datestringNoFilter events before this date (ISO 8601)
limitnumberNoResults per page (default: 50, max: 100)
offsetnumberNoPagination offset (default: 0)


V1 API

bash
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.

bash
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:

TypeDescriptionChannels
scheduledMessage scheduled to sendAll
sentMessage was sentAll
openEmail was opened or link clickedemail
replyContact repliedemail, linkedin, twitter
unsubscribeContact unsubscribedemail
visitProfile visit completedlinkedin
messageMessage sentlinkedin, twitter
followFollowed contacttwitter
unfollowUnfollowed contacttwitter
likeLiked postlinkedin
connection_requestConnection request sentlinkedin
move_contactContact moved between campaignsAll
http_api_requestHTTP API request executedAll


Note: The click type filter maps to open events. Use the clicked boolean field on events to distinguish clicks from opens.

Channels

ChannelDescription
emailEmail messages
linkedinLinkedIn messages and actions
twitterTwitter/X messages and actions
textSMS/text messages
callPhone calls
instagramInstagram messages
tiktokTikTok messages
email_warmEmail warming messages
taskTask events
move_contactContact movement events
http_apiHTTP API request events



V1 Query Parameters

V1 supports advanced filtering:

ParameterTypeDescription
TeamIdstringTeam identifier (required)
startstringStart date (ISO 8601)
endstringEnd date (ISO 8601)
eventsstring/arrayEvent types: opened, clicked, replied, bounced
channelsnumber/array1=email, 2=linkedin, 5=twitter
emailstringFilter by contact email
searchTextstringSearch contact name/email
limitnumberResults per page
offsetnumberPagination offset



V1 vs V2 Endpoint Mapping

ActionV1 EndpointV2 Endpoint
ListGET /v1/campaigns/:id/eventsGET /v2/events
GetNot availableGET /v2/events/:id