API reference
Preview a template for one person
template_render — The exact text one saved person would receive (variables filled; empty name → @handle).
template_render · Reads saved data
The exact text one saved person would receive (variables filled; empty name → @handle). Give template_id or text. Nothing is sent.
| REST | POST /api/public/v1/templates/render |
| MCP tool | template_render |
| Permission needed | view — Owner, Manager, Operator, Viewer |
| Scope group | automation:read |
| Group | Campaigns |
| Shown up front in profiles | Automation |
Input
| Field | Type | Required | Description |
|---|---|---|---|
template_id |
string (uuid) | No | Template id. |
text |
string (1–4000 chars) | No | |
person |
string (1–60 chars) | Yes | Person on X: @handle (or handle) or numeric user id prefixed with #, e.g. #44196397 |
Result
Returned in the { data, meta } envelope, without creating a job on X. Lists include next_cursor and has_more.
Example
Call over REST
curl -X POST "https://reach-link-craft.lovable.app/api/public/v1/templates/render" \
-H "Authorization: Bearer $XBUDDY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"person":"@example_person"}'
Call over MCP
{
"method": "tools/call",
"params": {
"name": "template_render",
"arguments": {
"person": "@example_person"
}
}
}
Errors you may get
| Code | HTTP | Retryable |
|---|---|---|
unauthorized |
401 | No |
key_expired |
401 | No |
integration_revoked |
401 | No |
connection_not_linked |
403 | No |
integration_paused |
403 | No |
workspace_integrations_paused |
403 | No |
integration_authorization_lost |
403 | No |
workspace_suspended |
403 | No |
forbidden |
403 | No |
invalid_input |
422 | No |
rate_limited |
429 | Yes |
internal |
500 | Yes |
not_found |
404 | No |