API reference · Bots
Get embed
The snippet a customer pastes, in two forms.
- Authentication
- Bearer token
- Retries
- Safe to repeat
- Body
- None
- Version
- 2026-09-03
snippet is the one almost everybody wants: a stable URL that picks up every widget improvement without them touching their HTML again.
pinned_snippet is for the customer whose change-control process forbids a third-party script that can change under them - which is most enterprises, and the question arrives during a security review rather than during a trial. It names the content-hashed build and carries an integrity hash, so the browser refuses to execute anything but the exact bytes that were reviewed.
Pinning is offered, never defaulted. A pinned embed stops receiving fixes, including security ones, until somebody edits their page - so it has to be a decision the customer makes rather than one we make for them.
Path parameters
bot_idstringrequired
Responses
- 200OKapplication/json
object
5 response headers
- RateLimit-Limit
Requests permitted in the current window.
- RateLimit-Remaining
Requests left in the current window. Back off before it reaches 0.
- RateLimit-Reset
Seconds until the current window resets.
- X-API-Version
The dated version of the API contract that served this response, e.g.
2026-09-03. Pin against it; it changes only when a response shape changes incompatibly.- X-Request-ID
Quote this in a support request to identify the call.
- 422Validation error
The shared error envelope, served as
application/problem+jsonwitherror.codeset to validation_error. Its details name each field that failed and why.
Example request
curl "https://api.integrable.cloud/api/bots/$BOT_ID/embed" \
-H "Authorization: Bearer $INTEGRABLE_API_KEY"Set INTEGRABLE_API_KEY and the path variables first. The same call from the TypeScript or Python SDK takes the same fields.
Errors
Failures use one envelope on every endpoint, described in Retries, versioning and limits. The codes you are most likely to meet here:
validation_error· 422 — The payload was well-formed JSON but failed schema validation.unauthenticated· 401 — The request carried no API key, or one the API could not verify.forbidden· 403 — The key is valid, but it is not allowed to do this — either the scope is missing or the resource belongs to another workspace.rate_limited· 429 — Too many requests in the current window. The limit is per workspace, and some endpoints add a per-bot limit on top.
More Bots endpoints
- get/api/botsList bots
- post/api/botsCreate bot
- post/api/bots/generateGenerate bot
- get/api/bots/modelsAvailable models
- post/api/bots/onboarding/rehearseRehearse blueprint
- post/api/bots/onboarding/scanScan website
- post/api/bots/onboarding/variantsGenerate variants
- get/api/bots/{bot_id}Get bot
- patch/api/bots/{bot_id}Update bot
- delete/api/bots/{bot_id}Delete bot
- post/api/bots/{bot_id}/duplicateDuplicate bot
- get/api/bots/{bot_id}/funnelGet funnel
- post/api/bots/{bot_id}/rotate-keyRotate key
- post/api/bots/{bot_id}/suggest-improvementsSuggest improvements
- post/api/bots/{bot_id}/testTest message
- post/api/bots/{bot_id}/theme/avatarUpload avatar
- delete/api/bots/{bot_id}/theme/avatarDelete avatar
- post/api/bots/{bot_id}/theme/generateGenerate theme
- get/api/bots/{bot_id}/versionsList versions
- post/api/bots/{bot_id}/versions/{version}/restoreRestore version
Something here wrong or missing? Tell us — the documentation and the API are maintained by the same person, so a correction is a fix rather than a ticket.