Endpoint

POST https://sms.phones.inc/v1/threads/{thread_id}/messages

Overview

Send a message to the other party of an existing thread. Equivalent to Send Message, but addressed by thread ID instead of phone number. The message always goes out from the thread’s own sending number — no from parameter is needed.
Each send costs 0.15 credits, debited when the request is accepted and refunded automatically if delivery fails. If your balance can’t cover it, the request returns 402 with Insufficient balance. See Pricing.

Path Parameters

thread_id
string
required
The thread to send in, as returned by List Threads or a previous send.

Request Body

text
string
required
The message body to send.
service
string
default:"imessage"
Which service to send over: imessage (default) or sms.

Response

Returns 202 Accepted — the message is queued and delivered asynchronously.
ok
boolean
true when the message was queued successfully.
thread_id
string
ID of the thread the message was queued in.
number
string
The sending number the message goes out from (the thread’s number).
command_id
string
Internal ID of the queued send.
status
string
Always queued.
curl -X POST https://sms.phones.inc/v1/threads/0b6f5c1e-8f4a-4f4b-9a2d-3a1c2b3d4e5f/messages \
  -H "API-KEY: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"text": "Following up on my last message"}'
{
  "ok": true,
  "thread_id": "0b6f5c1e-8f4a-4f4b-9a2d-3a1c2b3d4e5f",
  "number": "+12315551234",
  "command_id": "7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d",
  "status": "queued"
}