Send or schedule reply
Sends a reply immediately or schedules it for later.
Omit scheduledFor for immediate send; pass an ISO 8601 date in the future to schedule.
Use the attachments array with objects from the attachment upload endpoint.
If mailboxId is not provided, the conversation's assigned mailbox or the original sending mailbox is used.
curl -X POST "https://api.sendkit.ai/v1/inbox/example_string/reply" \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_KEY" \
-d '{
"body": "Thanks for your interest! Let's schedule a call this week."
}'
import requests
import json
url = "https://api.sendkit.ai/v1/inbox/example_string/reply"
headers = {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
}
data = {
"body": "Thanks for your interest! Let's schedule a call this week."
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.sendkit.ai/v1/inbox/example_string/reply", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"body": "Thanks for your interest! Let's schedule a call this week."
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"body": "Thanks for your interest! Let's schedule a call this week."
}`)
req, err := http.NewRequest("POST", "https://api.sendkit.ai/v1/inbox/example_string/reply", 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/inbox/example_string/reply')
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 = '{
"body": "Thanks for your interest! Let's schedule a call this week."
}'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"id": "664a1b2c3d4e5f6a7b8c9d10",
"status": "pending",
"scheduledFor": "2024-06-01T15:00:00.000Z",
"isScheduled": false
}
}
{
"success": true,
"data": {
"id": "664a1b2c3d4e5f6a7b8c9d11",
"status": "pending",
"scheduledFor": "2024-06-03T09:00:00.000Z",
"isScheduled": true
}
}
{
"error": "Bad Request",
"message": "The request contains invalid parameters or malformed data",
"code": 400,
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
}
{
"error": "Not Found",
"message": "The requested resource was not found",
"code": 404
}
/v1/inbox/{conversationId}/replyTarget server for requests. Edit to use your own host.
Platform API key (sk_user_...) or Workspace API key (sk_...)
Conversation ID (the inbox thread ID)
The media type of the request body
Reply body content (required)
CC recipients
BCC recipients
Schedule reply for this time (ISO 8601). Must be in the future. Omit for immediate send.
Mailbox to send from. Falls back to conversation's assigned mailbox.
Attachments from the upload endpoint
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_...)
Path Parameters
Conversation ID (the inbox thread ID)
Body
Reply body content (required)
CC recipients
BCC recipients
Schedule reply for this time (ISO 8601). Must be in the future. Omit for immediate send.
Mailbox to send from. Falls back to conversation's assigned mailbox.
Responses
Scheduled reply ID
pendingtrue if scheduledFor was provided, false for immediate