Inbox
Update thread
Updates thread category, conversation status, and/or read state. Category changes emit a reply.categorized webhook when configured.
PATCH
/v1/threads/{id}Authorization
bearerAuth AuthorizationBearer <token>
Use an account API key in the Authorization header: Authorization: Bearer f_....
In: header
Path Parameters
idstring
Inbox thread id.
Format
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
category?string
Value in
- "Interested"
- "Neutral"
- "Not Interested"
- "Auto Reply"
- null
conversation_status?string
Value in
- "open"
- "closed"
read?boolean
When true, marks all received messages in the thread as read.
curl -X PATCH "https://example.com/v1/threads/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "category": "Interested", "conversation_status": "closed", "read": true }'{ "data": { "id": "f064bce3-eb45-4edf-b7d0-6d316846f4f6", "account_id": "1f6a2c3d-4b5e-4f70-8a9b-0c1d2e3f4a5b", "campaign_id": "1d8dc901-3d2d-4d9f-9dcc-4f8b3aa1a1fb", "mailbox_id": "c23da7b6-df4e-4d2f-b100-4bb07b7d38d7", "subject": "Re: Quick question", "category": "Interested", "likely_category": null, "last_message_at": "2026-05-21T18:04:00.000Z", "last_inbound_at": "2026-05-21T18:04:00.000Z" }}{ "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" }}