canonical: https://jentic.com/apis/chatsistant.com/chatsistant

# Chatsistant API

Jentic publishes the only available OpenAPI specification for Chatsistant API, keeping it validated and agent-ready. Chatsistant lets you build, deploy, and operate AI chatbots that combine conversational sessions, custom agents, and uploaded knowledge sources. Through its API you can spin up a new chatbot, create chat sessions for end users, stream responses back to clients, and attach file-based data sources for retrieval-augmented answers. It is designed for teams embedding domain-specific assistants into web apps, customer support flows, or internal knowledge tools.

## For AI agents

Create and manage AI chatbots, run streaming chat sessions, and upload knowledge sources so agents can deliver retrieval-augmented conversations.

## Scope

Does not handle telephony, SMS messaging, or human agent ticketing - use for managing AI chatbots, sessions, and knowledge sources only.

## Capabilities

- Provision new chatbots with name, model, and persona configuration via `/chatbot/create`
- Open chat sessions for end users and stream message responses token by token
- Attach custom agents to a chatbot for tool-calling and specialised behaviour
- Upload file data sources so chatbots ground answers in domain knowledge
- List, fetch, update, and remove chatbots from a workspace
- Drive end-to-end chatbot lifecycle from creation to retirement through one API

## Use cases

### Embedded Support Chatbot

Build a customer support chatbot that answers questions grounded in your help center documentation. Create the chatbot via `/chatbot/create`, upload PDFs or docs through the data source upload endpoint, and start sessions for each visitor. Streaming responses keep latency low for live conversations.

Example prompt: Create a chatbot named 'Support Bot', upload help-center.pdf as a data source, then open a session and stream a reply to 'How do I reset my password?'

### Internal Knowledge Assistant

Stand up an internal assistant for employees that pulls answers from policy documents and runbooks. Each chatbot gets its own data sources scoped to a department, and sessions are created per employee for personalised conversation history. Useful for HR, IT helpdesk, and engineering knowledge bases.

Example prompt: Create a chatbot 'IT Helpdesk', upload it-policies.pdf, and verify the chatbot UUID is returned successfully.

### Multi-Agent Chatbot Orchestration

Build a chatbot that delegates tasks to specialised agents - one for billing lookups, one for product queries, one for escalation. Each agent is attached via `/chatbot/{uuid}/agent/create` with its own behaviour. The chatbot routes incoming messages to the right agent during a session.

Example prompt: Attach a 'BillingAgent' to chatbot UUID abc-123 with role 'handle invoice questions' and confirm creation.

### AI Agent Integration via Jentic

An autonomous agent calls Chatsistant through Jentic to provision and operate chatbots without storing credentials in agent memory. Jentic's your Jentic One instance holds the bearer token, and the agent invokes search by intent (e.g. 'create a chatbot') to discover the right operation and execute it in seconds.

Example prompt: Through Jentic, search 'create a chatbot', load the schema for `/chatbot/create`, and execute with name 'Demo Bot' to receive a UUID.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/chatbot/create` | Create a new chatbot |
| GET | `/chatbots` | List all chatbots |
| POST | `/chatbot/{uuid}/session/create` | Create a chat session |
| POST | `/session/{uuid}/message/stream` | Stream a chatbot message response |
| POST | `/chatbot/{uuid}/agent/create` | Attach a custom agent to a chatbot |
| POST | `/chatbot/{uuid}/data-source/upload` | Upload a file data source |

## Key resources

- **Chatbot** — Create, list, fetch, update, and delete chatbots
- **Session** — Open chat sessions per end user against a specific chatbot
- **Message** — Stream message responses back to clients during a session
- **Agent** — Attach custom agents with tool-calling behaviour to a chatbot
- **Data Source** — Upload files to ground chatbot answers in custom knowledge

## Why Jentic

- **Setup:** Wiring Chatsistant by hand means learning its bearer auth and threading a chatbot uuid and session uuid through create, session, and streaming calls yourself. Through Jentic you install once, import the Chatsistant API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Chatsistant puts the chatbot uuid in the URL path (`/chatbot/{uuid}/...`), so a rule can pin your agent to one chatbot: it can create sessions and stream messages for that bot and nothing else. You choose the operations it may call, so creating agents or uploading data sources is not included unless you add it.
- **Credential handling:** Your Chatsistant bearer token is stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a chatbot' or 'stream a chatbot response', and Jentic returns the matching Chatsistant operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Chatwoot API** — Open-source customer support platform that can be paired with Chatsistant chatbots for human handoff
- **Chatwork API** — Team chat and messaging platform - different focus (team collaboration vs AI chatbot)
- **Checkly API** — Synthetic monitoring you can use to verify chatbot session endpoints stay healthy

## FAQ

### Why is there no official OpenAPI spec for Chatsistant API?

Chatsistant does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Chatsistant API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Chatsistant API use?

The Chatsistant API uses HTTP bearer token authentication. Each request must include an Authorization header with a bearer token issued by Chatsistant. Through Jentic, the token is stored encrypted in your Jentic One instance and injected at execution time, so it never enters the agent's prompt or context.

### Can I stream chatbot responses with the Chatsistant API?

Yes. The `/session/{uuid}/message/stream` endpoint streams the chatbot's reply token by token, so you can render the response progressively in a frontend instead of waiting for the full message to be generated.

### How do I attach a knowledge base to a Chatsistant chatbot?

Use POST `/chatbot/{uuid}/data-source/upload` to upload a file as a data source for a specific chatbot. Once attached, the chatbot uses that source to ground its answers when responding to messages in a session.

### What are the rate limits for the Chatsistant API?

The OpenAPI specification does not declare formal rate limits. Plan for retry-with-backoff on 429 responses and check the Chatsistant dashboard or vendor documentation at https://docs.chatsistant.com/ for plan-specific quotas.

### How do I create a chatbot with the Chatsistant API through Jentic?

Install the SDK with `pip install jentic`, then use Jentic.search('create a chatbot'), load the schema for `/chatbot/create`, and execute with the desired name and configuration. Jentic handles the bearer token injection and returns the new chatbot UUID.

### Can I limit what my agent is allowed to do with the Chatsistant API?

Yes. Because Jentic One is self-hosted, your own rules decide which Chatsistant operations and credentials the agent may use. Since Chatsistant puts the chatbot UUID in the URL path (`/chatbot/{uuid}/...`), you can pin the agent to a single chatbot so it only creates sessions and streams messages for that bot. You choose exactly which operations it may call, so provisioning new chatbots, attaching custom agents, or uploading data sources stay off-limits unless you grant them.
