Add report recipient
Add a new recipient who can receive generated reports. Each recipient can have an optional delivery schedule.
- Set
reportTypetocampaignand providecampaignIds(max 10) for campaign-specific reports. - Set
reportTypetoworkspacefor workspace-wide reports. - Enable
scheduleto automatically generate and deliver reports on a recurring basis.
Duplicate emails within the same workspace are rejected.
curl -X POST "https://api.sendkit.ai/v1/reports/recipients" \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_KEY" \
-d '{
"name": "Jane Smith",
"email": "jane@example.com",
"company": "Acme Inc",
"role": "CEO",
"reportType": "campaign",
"campaignIds": [
"664f0a1b2c3d4e5f6a7b8c01"
],
"schedule": {
"enabled": true,
"frequency": "weekly",
"dayOfWeek": 1,
"timeOfDay": "09:00",
"timezone": "America/New_York"
}
}'
import requests
import json
url = "https://api.sendkit.ai/v1/reports/recipients"
headers = {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
}
data = {
"name": "Jane Smith",
"email": "jane@example.com",
"company": "Acme Inc",
"role": "CEO",
"reportType": "campaign",
"campaignIds": [
"664f0a1b2c3d4e5f6a7b8c01"
],
"schedule": {
"enabled": true,
"frequency": "weekly",
"dayOfWeek": 1,
"timeOfDay": "09:00",
"timezone": "America/New_York"
}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.sendkit.ai/v1/reports/recipients", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"name": "Jane Smith",
"email": "jane@example.com",
"company": "Acme Inc",
"role": "CEO",
"reportType": "campaign",
"campaignIds": [
"664f0a1b2c3d4e5f6a7b8c01"
],
"schedule": {
"enabled": true,
"frequency": "weekly",
"dayOfWeek": 1,
"timeOfDay": "09:00",
"timezone": "America/New_York"
}
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"name": "Jane Smith",
"email": "jane@example.com",
"company": "Acme Inc",
"role": "CEO",
"reportType": "campaign",
"campaignIds": [
"664f0a1b2c3d4e5f6a7b8c01"
],
"schedule": {
"enabled": true,
"frequency": "weekly",
"dayOfWeek": 1,
"timeOfDay": "09:00",
"timezone": "America/New_York"
}
}`)
req, err := http.NewRequest("POST", "https://api.sendkit.ai/v1/reports/recipients", bytes.NewBuffer(data))
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/reports/recipients')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['X-Api-Key'] = 'YOUR_API_KEY'
request.body = '{
"name": "Jane Smith",
"email": "jane@example.com",
"company": "Acme Inc",
"role": "CEO",
"reportType": "campaign",
"campaignIds": [
"664f0a1b2c3d4e5f6a7b8c01"
],
"schedule": {
"enabled": true,
"frequency": "weekly",
"dayOfWeek": 1,
"timeOfDay": "09:00",
"timezone": "America/New_York"
}
}'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"_id": "666f1a2b3c4d5e6f7a8b9c20",
"name": "Jane Smith",
"email": "jane@example.com",
"company": "Acme Inc",
"role": "CEO",
"reportType": "campaign",
"campaignIds": [
"664f0a1b2c3d4e5f6a7b8c01"
],
"active": true,
"schedule": {
"enabled": true,
"frequency": "weekly",
"dayOfWeek": 1,
"dayOfMonth": 1,
"timeOfDay": "09:00",
"timezone": "America/New_York",
"nextScheduledAt": "2026-04-21T09:00:00.000Z"
},
"totalReportsSent": 0,
"createdAt": "2026-04-17T10:00:00.000Z",
"updatedAt": "2026-04-17T10:00:00.000Z"
}
}
{
"error": "Bad Request",
"message": "The request contains invalid parameters or malformed data",
"code": 400,
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
}
{
"success": false,
"error": {
"code": "DUPLICATE_RECIPIENT",
"message": "A recipient with this email already exists in this workspace"
}
}
/v1/reports/recipients
Platform API key (sk_user_...) or Workspace API key (sk_...)
The media type of the request body
Recipient's full name
Recipient's email address (must be unique per workspace)
Recipient's company name
Recipient's role or title
Type of report this recipient receives
Campaign IDs for campaign-type reports (required when reportType is campaign, max 10)
Optional recurring delivery schedule. When enabled, reports are auto-generated and sent on the specified schedule.
Mailbox ID to send reports from
Slack channel ID for report notifications
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_...)
Body
Recipient's full name
Recipient's email address (must be unique per workspace)
Recipient's company name
Recipient's role or title
Campaign IDs for campaign-type reports (required when reportType is campaign, max 10)
Optional recurring delivery schedule. When enabled, reports are auto-generated and sent on the specified schedule.
weeklybiweeklymonthlyDay of week (0=Sunday, 1=Monday, ..., 6=Saturday). Used for weekly/biweekly.
Day of month (1-28). Used for monthly frequency.
Time of day in HH:mm format (24-hour)
IANA timezone string
Mailbox ID to send reports from
Slack channel ID for report notifications
Responses
workspacecampaignweeklybiweeklymonthlyfalsefalseLast updated today
Built with Documentation.AI