Update a library instruction
PATCH/api/v1/instructions/{id}
scope
assistants:writeEdits the instruction in place. Every assistant bound to it picks the change up on its next run — there is no per-assistant copy.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | string (uuid) | Instruction id |
Body
application/json| Name | Type | Description |
|---|---|---|
titleoptional | string | Library title |
descriptionoptional | string | One line on when it applies |
contentoptional | string | The instruction text |
Request
curl -X PATCH "https://your-crm.example.com/api/v1/instructions/5c6d7e8f-9a0b-4c1d-8e2f-3a4b5c6d7e8f" \
-H "Authorization: Bearer $RAABTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Treatments cancelled more than 24 hours ahead are refunded in full. Inside 24 hours we offer a reschedule, not a refund. Never promise an exception — hand off instead."
}'Response · 200 OK
{
"data": {
"id": "5c6d7e8f-9a0b-4c1d-8e2f-3a4b5c6d7e8f",
"title": "Refund policy",
"description": "How to answer anyone asking about refunds or cancellations",
"content": "Treatments cancelled more than 24 hours ahead are refunded in full. Inside 24 hours we offer a reschedule, not a refund. Never promise an exception — hand off instead.",
"assistant_count": 2,
"created_at": "2026-08-02T10:00:00.000Z",
"updated_at": "2026-08-20T14:00:00.000Z"
}
}Response
Wrapped in { data: … }| Name | Type | Description |
|---|---|---|
idrequired | string (uuid) | Instruction id |
titlerequired | string | Library title |
descriptionrequired | string | One line on when it applies |
contentrequired | string | The instruction text given to the model |
assistant_countrequired | integer | Assistants this instruction is bound to |
created_atrequired | string (date-time) | When it was created |
updated_atrequired | string (date-time) | When it was last edited |
Errors
| Status | Code | When |
|---|---|---|
| 400 | bad_request | The request could not be parsed: malformed JSON, an invalid cursor, or a query parameter of the wrong shape. |
| 400 | validation_error | The body or query failed validation. `details` lists each failing field with a `path` and a `message`. |
| 401 | unauthorized | No usable API key: the Authorization header is missing or malformed, or the key is unknown, revoked or expired. The three are deliberately indistinguishable. |
| 403 | forbidden | The key is valid but lacks the scope this endpoint requires, or the request came from an address outside the key’s IP allowlist. The message says which. |
| 403 | account_suspended | The account this key belongs to is suspended. Rotating the key will not help; contact support. |
| 404 | not_found | No such resource in this account. A resource that exists in another account also returns this. |
| 429 | rate_limited | The per-key budget, or the per-IP budget for failed authentication, is exhausted. Honour `Retry-After` before retrying. |
| 500 | internal | Something failed on our side. Safe to retry with the same Idempotency-Key; quote `request_id` if it persists. |