curl -X POST "https://api.foxreach.io/api/v1/inbox/threads/rpl_abc123/reply" \
-H "X-API-Key: otr_your_key" \
-H "Content-Type: application/json" \
-d '{
"body": "Thanks for your interest, John! I'\''d love to schedule a quick call. Does Thursday at 2pm work?"
}'
import requests
response = requests.post(
"https://api.foxreach.io/api/v1/inbox/threads/rpl_abc123/reply",
headers={"X-API-Key": "otr_your_key"},
json={
"body": "Thanks for your interest, John! I'd love to schedule a quick call. Does Thursday at 2pm work?"
}
)
data = response.json()
const response = await fetch(
"https://api.foxreach.io/api/v1/inbox/threads/rpl_abc123/reply",
{
method: "POST",
headers: {
"X-API-Key": "otr_your_key",
"Content-Type": "application/json"
},
body: JSON.stringify({
body: "Thanks for your interest, John! I'd love to schedule a quick call. Does Thursday at 2pm work?"
})
}
);
const data = await response.json();
{
"data": {
"success": true,
"messageId": "<[email protected]>"
}
}
Inbox
Send Reply
Send a reply to an inbox thread.
POST
/
api
/
v1
/
inbox
/
threads
/
{reply_id}
/
reply
curl -X POST "https://api.foxreach.io/api/v1/inbox/threads/rpl_abc123/reply" \
-H "X-API-Key: otr_your_key" \
-H "Content-Type: application/json" \
-d '{
"body": "Thanks for your interest, John! I'\''d love to schedule a quick call. Does Thursday at 2pm work?"
}'
import requests
response = requests.post(
"https://api.foxreach.io/api/v1/inbox/threads/rpl_abc123/reply",
headers={"X-API-Key": "otr_your_key"},
json={
"body": "Thanks for your interest, John! I'd love to schedule a quick call. Does Thursday at 2pm work?"
}
)
data = response.json()
const response = await fetch(
"https://api.foxreach.io/api/v1/inbox/threads/rpl_abc123/reply",
{
method: "POST",
headers: {
"X-API-Key": "otr_your_key",
"Content-Type": "application/json"
},
body: JSON.stringify({
body: "Thanks for your interest, John! I'd love to schedule a quick call. Does Thursday at 2pm work?"
})
}
);
const data = await response.json();
{
"data": {
"success": true,
"messageId": "<[email protected]>"
}
}
Path Parameters
string
required
The unique identifier of the reply thread to respond to.
Body Parameters
string
required
The reply message body (plain text or HTML).
string
Optional subject line override. Defaults to
Re: <original subject>.Response
object
curl -X POST "https://api.foxreach.io/api/v1/inbox/threads/rpl_abc123/reply" \
-H "X-API-Key: otr_your_key" \
-H "Content-Type: application/json" \
-d '{
"body": "Thanks for your interest, John! I'\''d love to schedule a quick call. Does Thursday at 2pm work?"
}'
import requests
response = requests.post(
"https://api.foxreach.io/api/v1/inbox/threads/rpl_abc123/reply",
headers={"X-API-Key": "otr_your_key"},
json={
"body": "Thanks for your interest, John! I'd love to schedule a quick call. Does Thursday at 2pm work?"
}
)
data = response.json()
const response = await fetch(
"https://api.foxreach.io/api/v1/inbox/threads/rpl_abc123/reply",
{
method: "POST",
headers: {
"X-API-Key": "otr_your_key",
"Content-Type": "application/json"
},
body: JSON.stringify({
body: "Thanks for your interest, John! I'd love to schedule a quick call. Does Thursday at 2pm work?"
})
}
);
const data = await response.json();
{
"data": {
"success": true,
"messageId": "<[email protected]>"
}
}
Errors
| Status | Description |
|---|---|
400 | Reply body is required |
404 | Thread not found |
500 | Failed to send reply (SMTP error) |
Rate Limit
- 100 requests per minute, per API key. Fixed 60-second window.
- Every response includes
X-RateLimit-Limit,X-RateLimit-Remaining, andX-RateLimit-Reset(unix epoch seconds). - A
429response includes aRetry-Afterheader (seconds until the bucket resets).
Retry-After, exponential backoff, monitoring X-RateLimit-Remaining), see Rate Limiting.