List conversations
Returns paginated conversations (campaign leads that have replies). Each conversation includes lead info, campaign info, last message preview, and message count. Supports filtering by unread status, AI tag, campaign, and search (matches lead email/name).
curl -X GET "https://api.sendkit.ai/v1/inbox?status=unread&tag=example_string&campaign_id=example_string&search=example_string&page=25&limit=42&cursor=example_string" \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
import json
url = "https://api.sendkit.ai/v1/inbox?status=unread&tag=example_string&campaign_id=example_string&search=example_string&page=25&limit=42&cursor=example_string"
headers = {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY",
"Authorization": "Bearer YOUR_API_TOKEN"
}
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&page=25&limit=42&cursor=example_string", {
method: "GET",
headers: {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY",
"Authorization": "Bearer YOUR_API_TOKEN"
}
});
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&page=25&limit=42&cursor=example_string", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-Api-Key", "YOUR_API_KEY")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
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&page=25&limit=42&cursor=example_string')
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'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
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",
"tags": [
"vip"
],
"repliedAt": "2024-06-01T14:30:00.000Z",
"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,
"read": false
},
"messageCount": 4
}
],
"pagination": {
"total": 25,
"page": 1,
"limit": 20,
"pages": 2
}
}
/v1/inbox
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).
Cursor ID for cursor-based pagination (use instead of page for large datasets)
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_...)
Bearer token. API key as Bearer token
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).
Cursor ID for cursor-based pagination (use instead of page for large datasets)
Responses
Last updated today
Built with Documentation.AI