Read an AI bot's long text in pages
Build a request to copy
This page never sends a request. Fill in the fields, then copy the request and run it from your server.
curl -X GET 'https://api.whatsable.app/v1/ai-bots/string/text/mission'
Returns one page of one of an AI bot's long texts, so a text too long to read in one response can be read whole.
This is offset paging over one text, not the cursor paging of a list: offset and limit count characters, not items, as JavaScript counts them (UTF-16 code units). Start at offset 0 and pass each page's next_offset until it is null. A page never splits an emoji or another character written as a surrogate pair, so it can hold one character fewer, or one more, than limit.
label_instructions is label_permissions.instructions and proactive_instructions is proactive.instructions; a path segment cannot nest.
Send the first page's ETag as If-Match with every later page: once the bot has changed, a page answers 412 precondition_failed instead of a page of a different version. Start again from offset 0 then.
bearerAuthAuthorizationBearer <nfy_live_<32 characters>>An API key from Settings > API keys, sent as Authorization: Bearer <key>.
id*stringThe bot id.
1 <= length <= 64field*stringThe text to read.
"mission""instructions""knowledge""handoff_instructions""label_instructions""proactive_instructions"offset?integerThe character to start at, counted from 0. Pass the previous page's next_offset.
0 <= value <= 90071992547409910limit?integerHow many characters to return, 1 to 20,000.
1 <= value <= 2000010000If-Match?stringThe ETag of the first page. Once the bot has changed, a page answers 412 precondition_failed; start again from offset 0.
One page of the text.
application/json- response
One page of one of an AI bot's long texts.
object*stringbot_id*string1 <= length <= 64field*|The text this page is part of.
offset*integerWhere this page starts. One less than the offset sent when that fell inside a character written as a surrogate pair, such as an emoji.
0 <= value <= 9007199254740991total_length*integerThe length of the whole text, in characters as JavaScript counts them (UTF-16 code units). 0 when the field is empty or null.
0 <= value <= 9007199254740991text*stringThis page of the text. Empty when offset is at or past the end.
next_offset*|The offset of the next page, or null on the last page.
updated_at*stringThe bot's version this page was read at. Send it with every later page, and with the PATCH that rewrites the field, as If-Match (the ETag header carries the same version).
date-timecurl -X GET 'https://api.whatsable.app/v1/ai-bots/string/text/mission'{ "object": "ai_bot_text", "bot_id": "cm2v8b1a00001qz8h3j4k5l6m", "field": "knowledge", "offset": 20000, "total_length": 20049, "text": "Returns within 30 days. Exchanges within 60 days.", "next_offset": null, "updated_at": "2026-10-20T19:51:21Z"}