List conversations
Returns paginated conversations (campaign leads that have replies). Each conversation includes lead info, campaign info, AI mode/capability flags, last message preview, and message count. Supports filtering by unread status, AI tag, campaign, search (matches lead email/name), and whether the newest delivered message is inbound.
curl -X GET "https://api.sendkit.ai/v1/inbox?status=unread&tag=example_string&campaign_id=example_string&search=example_string&awaitingReply=true&cursor=664a1b2c3d4e5f6a7b8c9d0e&limit=25" \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_KEY"
import requests
import json
url = "https://api.sendkit.ai/v1/inbox?status=unread&tag=example_string&campaign_id=example_string&search=example_string&awaitingReply=true&cursor=664a1b2c3d4e5f6a7b8c9d0e&limit=25"
headers = {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://api.sendkit.ai/v1/inbox?status=unread&tag=example_string&campaign_id=example_string&search=example_string&awaitingReply=true&cursor=664a1b2c3d4e5f6a7b8c9d0e&limit=25", {
method: "GET",
headers: {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.sendkit.ai/v1/inbox?status=unread&tag=example_string&campaign_id=example_string&search=example_string&awaitingReply=true&cursor=664a1b2c3d4e5f6a7b8c9d0e&limit=25", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-Api-Key", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.sendkit.ai/v1/inbox?status=unread&tag=example_string&campaign_id=example_string&search=example_string&awaitingReply=true&cursor=664a1b2c3d4e5f6a7b8c9d0e&limit=25')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
request['X-Api-Key'] = 'YOUR_API_KEY'
response = http.request(request)
puts response.body
{
"success": true,
"data": [
{
"id": "664a1b2c3d4e5f6a7b8c9d0e",
"lead": {
"_id": "664a1b2c3d4e5f6a7b8c9d01",
"email": "jane@example.com",
"firstName": "Jane",
"lastName": "Doe",
"companyName": "Acme Inc"
},
"campaign": {
"_id": "664a1b2c3d4e5f6a7b8c9d02",
"name": "Q1 Outreach"
},
"status": "active",
"aiTag": "interested",
"aiMode": "active",
"autoReplyEnabled": true,
"followupEnabled": true,
"aiAgentActive": true,
"tags": [
"vip"
],
"repliedAt": "2024-06-01T14:30:00.000Z",
"awaitingReply": true,
"lastMessage": {
"content": "Thanks for reaching out! I'd love to learn more about...",
"from": "jane@example.com",
"receivedAt": "2024-06-01T14:30:00.000Z",
"isFromLead": true
},
"isRead": false,
"unreadCount": 1,
"messageCount": 4
}
],
"pagination": {
"limit": 20,
"total": 25,
"hasMore": true,
"nextCursor": "664a1b2c3d4e5f6a7b8c9d0e"
}
}
/v1/inbox
Target server for requests. Edit to use your own host.
Platform API key (sk_user_...) or Workspace API key (sk_...)
Filter by status. Use unread to show only conversations with unread lead replies.
Filter by AI tag value (e.g. "interested", "not_interested").
Filter by campaign ID.
Search by lead email, first name, or last name (case-insensitive).
Filter by whether the newest delivered message is inbound. true means the conversation is awaiting our reply; false means the newest message is outbound. Omit to return both.
Cursor for pagination - use the nextCursor value from the previous response to fetch the next page
Items per page (default 25, max 100)
Request Preview
Response
Response will appear here after sending the request
Authentication
API Key for authentication. Platform API key (sk_user_...) or Workspace API key (sk_...)
Query Parameters
Filter by status. Use unread to show only conversations with unread lead replies.
unreadFilter by AI tag value (e.g. "interested", "not_interested").
Filter by campaign ID.
Search by lead email, first name, or last name (case-insensitive).
Filter by whether the newest delivered message is inbound. true means the conversation is awaiting our reply; false means the newest message is outbound. Omit to return both.
Cursor for pagination - use the nextCursor value from the previous response to fetch the next page
664a1b2c3d4e5f6a7b8c9d0eItems per page (default 25, max 100)