Inbox

Create reply job

Creates an outbound inbox reply job. When in_reply_to_message_id is omitted, Furnace targets the latest message in the thread.

POST/v1/threads/{id}/reply

Authorization

bearerAuth
AuthorizationBearer <token>

Use an account API key in the Authorization header: Authorization: Bearer f_....

In: header

Path Parameters

idstring

Inbox thread id.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

in_reply_to_message_id?string

Message to reply to. Defaults to the latest message in the thread.

Formatuuid
subject?string
body_text?string
body_html?string
to_email?string
Formatemail
to_name?string
cc?array<string>
curl -X POST "https://example.com/v1/threads/497f6eca-6276-4993-bfeb-53cbbbba6f08/reply" \  -H "Content-Type: application/json" \  -d '{    "body_text": "Thanks for the reply."  }'
{  "data": {    "id": "7e9f1f62-27f6-4474-b22c-7197e5480de4"  }}
{  "error": {    "type": "invalid_request_error",    "code": "invalid_flow",    "message": "Flow validation failed"  },  "details": [    {      "path": "nodes[1].data.variants[0].id",      "code": "invalid_variant_id",      "message": "Email variants must have a stable UUID id."    }  ]}
{  "error": {    "type": "authentication_error",    "code": "invalid_api_key",    "message": "A valid Furnace API key is required"  }}
{  "error": {    "type": "invalid_request_error",    "code": "campaign_not_found",    "message": "Campaign not found"  }}
{  "error": {    "type": "rate_limit_error",    "code": "rate_limit_exceeded",    "message": "Rate limit exceeded for this account"  }}
{  "error": {    "type": "api_error",    "code": "internal_error",    "message": "Internal server error"  }}