https://api.verba.ink
Get started
- Open account Settings → Security → API Keys and create a key. Copy it now; the full value is shown only once.
- Copy your Verb’s vanity slug from its profile link.
- Call the API from your server, not browser code that exposes the key.
x-api-key header.
Chat responses
POST /v1/response
Use user and assistant messages; custom system messages are not accepted. The Verb’s own instructions supply its character.
Read the reply from
choices[0].message.content. The response also includes session_id, model, and token usage.
For follow-ups, send the new message with the same session_id. Use a different session for each person’s conversation; changing it starts fresh context. Sessions are scoped to the caller and Verb.
Message content can be text or an array of text and image parts:
Streaming
Set"stream": true on /v1/response. Read the text/event-stream response and concatenate choices[0].delta.content from its data: events.
The stream ends with data: [DONE]. Handle error events and disconnected requests; don’t assume a partial response is complete. Tool-debug events have a different object type and are not reply text.
Generate an image
POST /v1/image
character and prompt are required. Omit image_urls if you don’t need a reference. You may also supply session_id.
Image Engine must be enabled for the Verb. The endpoint uses its image settings and the Verb owner’s image allowance and credits. Images are saved in its Gallery.
Read the image URL from data[0].url; the response also includes revised_prompt. Only square 1024x1024 output and url format are currently supported.
HTTP tools
Tools let Verba fetch information from an external API before replying. They are request-scoped, not saved on your Verb. Add an OpenAI-style function definition with afunction.x_verba_http configuration:
tools. For a GET lookup, use method: "GET" and query_param to name the query parameter. Optional headers supply API credentials; timeout_ms controls the request timeout, up to 10 seconds.
tool_choice accepts "auto" or "none". Use debug: {"tools": true} for execution traces; protect those traces because they may contain request or response details.
Request limits
Model, credit, and plan limits also apply. Server rate limits still apply to plans with no monthly message cap.
Handle errors
Error responses includeerror.type and error.message.
Revoke exposed keys in Settings. You can keep up to three active API keys. Never publish keys in frontend bundles, repositories, or logs.

