Send Reply
curl --request POST \
--url https://app.replyify.ai/api/replies/{id}/send \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"response": "<string>",
"to_email": "<string>",
"cc": [
{}
],
"bcc": [
{}
]
}
'import requests
url = "https://app.replyify.ai/api/replies/{id}/send"
payload = {
"response": "<string>",
"to_email": "<string>",
"cc": [{}],
"bcc": [{}]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({response: '<string>', to_email: '<string>', cc: [{}], bcc: [{}]})
};
fetch('https://app.replyify.ai/api/replies/{id}/send', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.replyify.ai/api/replies/{id}/send",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'response' => '<string>',
'to_email' => '<string>',
'cc' => [
[
]
],
'bcc' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.replyify.ai/api/replies/{id}/send"
payload := strings.NewReader("{\n \"response\": \"<string>\",\n \"to_email\": \"<string>\",\n \"cc\": [\n {}\n ],\n \"bcc\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.replyify.ai/api/replies/{id}/send")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"response\": \"<string>\",\n \"to_email\": \"<string>\",\n \"cc\": [\n {}\n ],\n \"bcc\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.replyify.ai/api/replies/{id}/send")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"response\": \"<string>\",\n \"to_email\": \"<string>\",\n \"cc\": [\n {}\n ],\n \"bcc\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"status": "<string>",
"sent_response": "<string>",
"handled_at": "<string>"
}
}Replies
Send Reply
Send a response to a reply
POST
/
api
/
replies
/
{id}
/
send
Send Reply
curl --request POST \
--url https://app.replyify.ai/api/replies/{id}/send \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"response": "<string>",
"to_email": "<string>",
"cc": [
{}
],
"bcc": [
{}
]
}
'import requests
url = "https://app.replyify.ai/api/replies/{id}/send"
payload = {
"response": "<string>",
"to_email": "<string>",
"cc": [{}],
"bcc": [{}]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({response: '<string>', to_email: '<string>', cc: [{}], bcc: [{}]})
};
fetch('https://app.replyify.ai/api/replies/{id}/send', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.replyify.ai/api/replies/{id}/send",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'response' => '<string>',
'to_email' => '<string>',
'cc' => [
[
]
],
'bcc' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.replyify.ai/api/replies/{id}/send"
payload := strings.NewReader("{\n \"response\": \"<string>\",\n \"to_email\": \"<string>\",\n \"cc\": [\n {}\n ],\n \"bcc\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.replyify.ai/api/replies/{id}/send")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"response\": \"<string>\",\n \"to_email\": \"<string>\",\n \"cc\": [\n {}\n ],\n \"bcc\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.replyify.ai/api/replies/{id}/send")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"response\": \"<string>\",\n \"to_email\": \"<string>\",\n \"cc\": [\n {}\n ],\n \"bcc\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"status": "<string>",
"sent_response": "<string>",
"handled_at": "<string>"
}
}Send a response email to the original sender. This marks the reply as
The request is missing the
This reply has already been sent and cannot be sent again.
The specified reply ID doesn’t exist in your workspace.
The email could not be sent through the connected platform.
sent and records the sent response.
Path Parameters
string
required
The unique identifier (UUID) of the reply
Request Body
string
required
The email content to send. Can be plain text or HTML.
string
Override the recipient email address (defaults to the original sender)
array
Array of email addresses to CC
array
Array of email addresses to BCC
Response
object
Examples
Send with Default Response
curl -X POST "https://app.replyify.ai/api/replies/abc123-def456-ghi789/send" \
-H "Authorization: Bearer rpl_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"response": "Hi John,\n\nThanks for your interest! I would be happy to schedule a call.\n\nHere is my calendar: https://cal.com/yourcompany\n\nBest,\nYour Team"
}'
const replyId = 'abc123-def456-ghi789';
const response = await fetch(
`https://app.replyify.ai/api/replies/${replyId}/send`,
{
method: 'POST',
headers: {
'Authorization': 'Bearer rpl_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
response: `Hi John,
Thanks for your interest! I would be happy to schedule a call.
Here is my calendar: https://cal.com/yourcompany
Best,
Your Team`
})
}
);
const data = await response.json();
import requests
reply_id = 'abc123-def456-ghi789'
response = requests.post(
f'https://app.replyify.ai/api/replies/{reply_id}/send',
headers={'Authorization': 'Bearer rpl_your_api_key'},
json={
'response': '''Hi John,
Thanks for your interest! I would be happy to schedule a call.
Here is my calendar: https://cal.com/yourcompany
Best,
Your Team'''
}
)
data = response.json()
Send with CC/BCC
curl -X POST "https://app.replyify.ai/api/replies/abc123-def456-ghi789/send" \
-H "Authorization: Bearer rpl_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"response": "Hi John,\n\nHere is the information you requested...",
"cc": ["manager@yourcompany.com"],
"bcc": ["records@yourcompany.com"]
}'
const response = await fetch(
`https://app.replyify.ai/api/replies/${replyId}/send`,
{
method: 'POST',
headers: {
'Authorization': 'Bearer rpl_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
response: 'Hi John,\n\nHere is the information you requested...',
cc: ['manager@yourcompany.com'],
bcc: ['records@yourcompany.com']
})
}
);
Response Example
{
"data": {
"id": "abc123-def456-ghi789",
"from_email": "john@example.com",
"to_email": "outreach@yourcompany.com",
"status": "sent",
"sent_response": "Hi John,\n\nThanks for your interest! I would be happy to schedule a call.\n\nHere is my calendar: https://cal.com/yourcompany\n\nBest,\nYour Team",
"handled_at": "2024-01-15T16:30:00Z"
}
}
Errors
{
"error": "Response content is required"
}
response field.{
"error": "Reply already sent"
}
{
"error": "Reply not found"
}
{
"error": "Failed to send email"
}
Notes
Sending a reply triggers the
reply.sent webhook event if you have webhooks configured.Once a reply is sent, it cannot be unsent or modified. Make sure to review the response before sending.
⌘I