For Agents
Read and reply to Crisp conversations, route them to operators, and maintain people profiles and event data from outside the Crisp UI. Use it for support automation, lead routing, and CRM sync.
Get started with Crisp REST API in minutes using your preferred integration method.
# Add to your MCP client config (Claude Desktop, Cursor, Windsurf)
{
"jentic": {
"url": "https://api.jentic.com/mcp",
"auth": "oauth"
}
}
# Then ask your agent:
"send a Crisp chat message"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with Crisp REST API API.
Create, retrieve, and delete Crisp websites and update their settings
List operators on a website to find a target for routing or assignment
List, create, and delete conversations on a website and update their state and routing
Send messages into a conversation and update the compose (typing) indicator from a bot
GET STARTED
Use for: Send a reply into an open Crisp conversation, List the most recent conversations on my website, Assign a conversation to a specific operator, Mark a conversation as resolved
Not supported: Does not handle helpdesk ticketing, SLA management, or outbound email campaigns — use for Crisp websites, conversations, messaging, and people profiles only.
Jentic publishes the only available OpenAPI document for Crisp REST API, keeping it validated and agent-ready.
Jentic publishes the only available OpenAPI specification for Crisp REST API, keeping it validated and agent-ready. Crisp is a customer messaging platform that combines a website chat widget, shared inbox, and contact CRM. The v1 REST API exposes the same primitives the operator UI uses — websites, conversations, messages, people profiles, and an upload helper for attachments — so an external system can read the inbox, post replies, route conversations, and keep visitor profile data in sync.
Fetch and update conversation metadata for tagging or context-injection workflows
Manage people profiles, profile-level data, and the events stream attached to each person
Generate a signed upload URL through the bucket endpoint for attachments and media
Patterns agents use Crisp REST API API for, with concrete tasks.
★ AI-assisted support replies
Let an LLM-powered assistant draft replies inside Crisp by listing open conversations with GET /website/{website_id}/conversations, reading the message thread with GET /website/{website_id}/conversation/{session_id}/messages, and posting the suggested reply with POST /website/{website_id}/conversation/{session_id}/message. Compose indicators give the human operator real-time feedback that the bot is composing.
List conversations in state 'pending', read the last 20 messages of each, draft a reply, set the compose indicator with PATCH /website/{website_id}/conversation/{session_id}/compose, and POST the message.
Conversation routing and triage
Route inbound conversations based on tags, language, or visitor data by combining GET /website/{website_id}/operators with PATCH /website/{website_id}/conversation/{session_id}/routing to assign the right operator. Conversation meta and state can be updated in the same workflow to mark priority or move the conversation to resolved.
On new conversation, fetch GET /website/{website_id}/operators, choose by skill tag, and call PATCH /website/{website_id}/conversation/{session_id}/routing with the chosen operator IDs.
Visitor profile and event sync
Keep Crisp's people profiles aligned with an external CRM by paging GET /website/{website_id}/people/profiles and writing back fields with PATCH /website/{website_id}/people/profile/{people_id} and event entries via the people events endpoint. This gives operators a richer picture of who is chatting with them.
On CRM update, find the matching profile via GET /website/{website_id}/people/profiles, then PATCH /website/{website_id}/people/profile/{people_id} and write an event via the people events endpoint.
Agent-driven shared inbox via Jentic
An LLM-orchestrated agent can act as a frontline responder for inbound chats, with Jentic mediating the Crisp credentials. The agent searches Jentic for a 'send a chat reply' operation, loads POST /website/{website_id}/conversation/{session_id}/message, and posts the reply while Jentic injects the basic-auth identifier and key.
Through Jentic, run search('send a Crisp chat message'), load POST /website/{website_id}/conversation/{session_id}/message, and post the reply with the resolved website_id and session_id.
26 endpoints — jentic publishes the only available openapi specification for crisp rest api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/website/{website_id}/conversations
List conversations on a website
/website/{website_id}/conversation/{session_id}/messages
Read messages in a conversation
/website/{website_id}/conversation/{session_id}/message
Send a message into a conversation
/website/{website_id}/conversation/{session_id}/state
Change conversation state
/website/{website_id}/conversation/{session_id}/routing
Assign conversation routing
/website/{website_id}/people/profiles
List people profiles
/website/{website_id}/people/profile/{people_id}
Update a people profile
/bucket/url/upload
Generate a signed file upload URL
/website/{website_id}/conversations
List conversations on a website
/website/{website_id}/conversation/{session_id}/messages
Read messages in a conversation
/website/{website_id}/conversation/{session_id}/message
Send a message into a conversation
/website/{website_id}/conversation/{session_id}/state
Change conversation state
/website/{website_id}/conversation/{session_id}/routing
Assign conversation routing
Three things that make agents converge on Jentic-routed access.
Credential isolation
Crisp basic-auth identifier and key pairs are stored encrypted in the Jentic vault. Jentic applies the Authorization header at request time, so the credential pair never appears in agent prompts, traces, or generated code.
Intent-based discovery
Agents search Jentic with intents like 'send a Crisp chat message' or 'list crisp conversations' and Jentic returns the matching POST /website/{website_id}/conversation/{session_id}/message or GET /website/{website_id}/conversations operation with its schema.
Time to first call
Direct integration: 1 to 2 days to wire up basic auth, conversation paging, and message posting cleanly. Through Jentic: under an hour to discover the right operations and post a first reply.
Alternatives and complements available in the Jentic catalogue.
Intercom
Larger customer messaging suite with conversation, contact, and ticket APIs.
Choose Intercom when the customer is on Intercom and needs ticket and product-tour primitives; pick Crisp for a lighter-weight messaging surface and faster setup.
Zendesk
Ticket-first support platform with chat as one channel among many.
Pick Zendesk when the workflow is anchored on tickets and SLAs; use Crisp when chat is the primary surface and conversations map directly onto sessions.
Chatwoot
Open-source customer messaging platform with conversation and contact APIs.
Choose Chatwoot when the team self-hosts; pick Crisp when a hosted SaaS workflow with the same conversational model is preferred.
Specific to using Crisp REST API API through Jentic.
Why is there no official OpenAPI spec for Crisp REST API?
Crisp documents its REST API in HTML reference pages but does not distribute a maintained OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Crisp REST API via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the Crisp REST API use?
The API uses HTTP basic authentication. The username is your plugin or token identifier and the password is the matching key, both issued by Crisp. Through Jentic, the credential pair is stored encrypted in the vault and applied to every call to https://api.crisp.chat/v1 so it never appears in the agent's prompt.
Can I send a message into a Crisp conversation through the API?
Yes. POST /website/{website_id}/conversation/{session_id}/message posts a new message into an existing conversation. PATCH /website/{website_id}/conversation/{session_id}/compose updates the typing indicator while a reply is being composed.
How do I assign a Crisp conversation to a specific operator?
List operators with GET /website/{website_id}/operators, then PATCH /website/{website_id}/conversation/{session_id}/routing with the chosen operator IDs to assign the conversation.
What are the rate limits for the Crisp REST API?
The published OpenAPI spec does not declare numeric rate limits. Crisp enforces fair-use limits per plan, so check response headers and your plan's limits in the Crisp dashboard. Build retries with backoff around HTTP 429 responses, particularly on POST /website/{website_id}/conversation/{session_id}/message.
How do I send a Crisp reply through Jentic?
Install Jentic with pip install jentic, then async-search for 'send a Crisp chat message'. Jentic returns POST /website/{website_id}/conversation/{session_id}/message; load it and execute with the website_id, session_id, and reply body. Jentic attaches the basic-auth credentials from the vault automatically.
/website/{website_id}/people/profiles
List people profiles
/website/{website_id}/people/profile/{people_id}
Update a people profile
/bucket/url/upload
Generate a signed file upload URL