/v1/templates/{id}
Changes the name, the text or both. Sequences and keyword replies that use it send the new text from their next text on.
Needs a key with the messages:send scope.
Path parameters
idstringrequiredThe template’s id.
Starts with
tpl_.
Request body
namestringA name, unique among your templates whatever its capitals.
Up to 80 characters.
bodystringThe text, up to 2,000 characters, with
{{variables}}and{{variable|fallback}}.Up to 2,000 characters.
Example
/v1/templates/tpl_1Hq2LxW9cVbN3mKpRtYs0acurl -X PATCH "https://usebluebot.com/api/v1/templates/tpl_1Hq2LxW9cVbN3mKpRtYs0a" \
-H "Authorization: Bearer $BLUEBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"body": "Hi {{first_name|there}}, a reminder that we see {{showing}} tomorrow at 10."
}'Response
200: The template after the change.
idstringrequiredA tpl_ id.
Starts with
tpl_.object"template"requirednamestringrequiredIts name, unique among your templates.
bodystringrequiredThe text, with
{{variables}}and{{variable|fallback}}.variablesarray of stringsrequiredThe variables the text names, in order, once each.
created_attimestamprequiredWhen it was made.
updated_attimestamprequiredWhen it last changed.
{
"id": "tpl_1Hq2LxW9cVbN3mKpRtYs0a",
"object": "template",
"name": "Showing reminder",
"body": "Hi {{first_name|there}}, a reminder that we see {{showing}} tomorrow at 10.",
"variables": [
"first_name",
"showing"
],
"created_at": "2026-11-10T16:00:00.000Z",
"updated_at": "2026-11-13T19:41:00.000Z"
}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. | |
| 404 | There is no such thing on this account. Ids are prefixed by kind, so a message id starts with msg_. | |
| 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.