Stop texting somebody
Puts a person on the stop list and cancels their queued and scheduled texts.
/v1/stops
Puts a person on the stop list and cancels their queued and scheduled texts. Adding somebody already on it changes nothing.
Needs a key with the contacts:write scope.
Send an Idempotency-Key so a retry never acts twice.
Headers
Idempotency-KeystringAny string of up to 255 characters, new for each request. A retry with the same key gets the first answer back for 24 hours, with
Idempotent-Replayed: true.Up to 255 characters.
Request body
personstringrequiredThe phone number or email address to stop texting.
3 to 320 characters.
Example
/v1/stopscurl -X POST "https://usebluebot.com/api/v1/stops" \
-H "Authorization: Bearer $BLUEBOT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 0f6d8c2e-5b1a-4c7e-9d3f-2a8b6e1c4d70" \
-d '{
"person": "+15555550144"
}'Response
201: The stop.
object"stop"requiredhandlestringrequiredA phone number in E.164 (
+15555550123) or an email address an Apple ID uses (iMessage only).contact_idstringrequiredA ct_ id.
Starts with
ct_.stopped_attimestamprequiredWhen they were put on the list.
sourcestringrequiredreply(they texted a stop word),dashboard,api,importoradmin.One of
reply,dashboard,api,import,admin.
{
"object": "stop",
"handle": "+15555550144",
"contact_id": "ct_4Mr6NdF1jHwS8aPxQcUv3e",
"stopped_at": "2026-11-13T19:41:00.000Z",
"source": "api"
}Errors
Every refusal has the same envelope and a page of its own. These are the ones this operation can give.
| Code | Status | What it means |
|---|---|---|
| 401 | The request carried no key, or a key BlueBot doesn’t know: mistyped, revoked, or a test key sent to the live API. | |
| 403 | The key doesn’t carry the scope the endpoint needs. Each endpoint’s reference names its scope. | |
| 429 | Too many requests. A key may make 120 requests a minute. The RateLimit header says how many are left, and Retry-After how long to wait. | |
| 500 | Something went wrong on BlueBot’s side. It was reported. Send the request again; with an Idempotency-Key that is always safe. | |
| 400 | Something in the request doesn’t fit: a missing or malformed field, a bad id, or a combination the endpoint refuses. details names each field. | |
| 409 | The Idempotency-Key was used in the last 24 hours with a different request. A key stands for one request. | |
| 409 | The request doesn’t fit the thing’s current state, or another request with the same Idempotency-Key is still running. |
Try it
Call this operation from the page with your own key. The key stays in this tab and is forgotten when you leave.