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

# ChatKitty Platform API

Jentic publishes the only available OpenAPI specification for ChatKitty Platform API, keeping it validated and agent-ready. ChatKitty is a chat infrastructure platform that powers in-app messaging with channels, direct messages, threads, and presence. The API exposes 67 endpoints covering channel and message management, user and session control, chat functions for server-side message handling, bulk imports, and analytics exports. It is designed for product teams adding real-time chat to mobile, web, and gaming apps without operating their own messaging backend.

## For AI agents

Manage chat channels, send and moderate messages, control user sessions, and run analytics on a hosted chat platform across 67 endpoints.

## Scope

Does not handle SMS, voice calls, or email delivery - use for in-app chat channels, messages, and moderation only.

## Capabilities

- Create, list, and delete chat channels and manage channel members and moderators
- Send channel messages, direct messages, and typing keystroke events in real time
- Import existing channels, members, and message history from another chat backend in batch
- Run server-side chat functions to react to message events and customize moderation logic
- Export message and user analytics data for engagement and retention reporting
- Manage user accounts, chat sessions, and authenticated application settings

## Use cases

### In-App Customer Support Chat

Add real-time customer support chat to a SaaS product so users can message agents from inside the app. The ChatKitty API creates a channel per support thread, sends messages with POST /v1/channels/{id}/messages, and uses chat functions to route incoming messages to on-call agents. Pagination over /v1/channels/{id}/messages keeps history manageable, and analytics endpoints surface response times and message volumes.

Example prompt: Create a channel named 'support-ticket-4521', add the customer and the agent as members, and send an initial system message confirming the ticket was opened.

### Community Channels for a Mobile App

Power public and private community channels in a social or gaming app where users join topic-based rooms and exchange messages. The API handles channel creation, membership lists, moderator assignment, and reported-message review. Existing communities can be migrated through the bulk import endpoints under /v1/imports/channels and /v1/imports/messages, so launch is not blocked by historical data.

Example prompt: List all reported messages in channel id 'general' and delete any that match a banned-word list.

### Chat Engagement Analytics

Track how active users are inside a chat product by exporting message and user analytics on a schedule. The /v1/analytics/messages and /v1/analytics/users endpoints kick off export jobs whose status can be monitored via /v1/jobs/{id}. Output feeds product dashboards for daily active chatters, channel popularity, and moderator coverage, replacing manual log scraping.

Example prompt: Trigger a message analytics export for the last 30 days and poll job status until it completes.

### AI Agent Moderation and Concierge

Use an AI agent through Jentic to monitor channels, summarise long threads, and respond to keyword triggers in real time. The agent calls Jentic's search to find ChatKitty operations, loads schemas for sending messages or fetching channel history, and executes calls without touching raw OAuth client credentials. This turns a hosted chat product into an agent-aware surface for customer concierge or community moderation tasks.

Example prompt: Search Jentic for 'send a chat message', load the ChatKitty send-message schema, and post a welcome message to every newly created channel in the last hour.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /v1/channels | Create a chat channel |
| POST | /v1/channels/{id}/messages | Send a message to a channel |
| GET | /v1/channels/{id}/messages | List messages in a channel |
| POST | /v1/channels/{id}/members | Add a member to a channel |
| POST | /v1/imports/messages | Bulk import historical messages |
| POST | /v1/analytics/messages | Export message analytics |
| GET | /v1/chat-sessions | List active chat sessions |

## Key resources

- **channels** — Create, retrieve, update, and delete chat channels and manage members, moderators, invites, and messages within them
- **messages** — List, send, and delete messages, including channel messages and reported messages
- **users** — Manage user records and user sessions for the authenticated application
- **imports** — Bulk import channels, members, and historical messages from another chat backend
- **functions** — Manage server-side chat functions and their versions for custom message handling
- **analytics** — Trigger and retrieve message and user analytics export jobs

## Why Jentic

- **Setup:** Wiring the ChatKitty Platform API by hand means running its OAuth 2.0 client-credentials flow, refreshing access tokens, and attaching them to every channel and message call yourself. Through Jentic you install once, import ChatKitty from the API Directory, store the client credentials once, and your agent calls it.
- **Permission scoping:** ChatKitty puts the channel id in the URL path (/v1/channels/{id}/...), so a rule can pin your agent to one channel: it can post and read messages and add members there and nothing else. You choose the operations it may call, so message imports or analytics are not included unless you add them.
- **Credential handling:** Your ChatKitty client credentials are stored once, encrypted, by your own Jentic One instance, which exchanges them for a short-lived access token injected at execution time. The raw client secret never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send a chat message' or 'create a channel', and Jentic returns the matching ChatKitty operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Sendbird Chat API** — Sendbird is a larger hosted chat platform with broader SDK coverage and enterprise compliance certifications.
- **PubNub API** — PubNub is a real-time messaging and presence network usable as a lower-level chat substrate.
- **Twilio API** — Twilio handles SMS, voice, and email so out-of-app notifications can supplement in-app chat.

## FAQ

### Why is there no official OpenAPI spec for ChatKitty Platform API?

ChatKitty does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call ChatKitty Platform 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 ChatKitty Platform API use?

The API supports two schemes. Most operations use OAuth 2.0 client credentials against https://authorization.chatkitty.com/oauth/token with scopes such as create:*, read:*, update:*, and delete:*. A few endpoints accept an X-Token header for password-reset flows. Through Jentic, OAuth client credentials are stored in the encrypted vault and the agent only ever sees scoped tokens.

### Can I send a message to a channel with the ChatKitty Platform API?

Yes. Call POST /v1/channels/{id}/messages with the channel id and message body. The same path also lists prior messages via GET, so an agent can fetch context before posting. Keystroke and channel-event endpoints under the same channel resource handle typing indicators and custom events.

### What are the rate limits for the ChatKitty Platform API?

The OpenAPI spec does not declare numeric rate limits. ChatKitty enforces per-application throttling that varies by plan, so production agents should handle 429 responses with exponential backoff and surface the Retry-After header to the caller.

### How do I import existing chat history into ChatKitty through Jentic?

Use Jentic to search for 'import chat messages', load the schema for POST /v1/imports/messages, and execute with a JSON batch of historical messages. Pair with /v1/imports/channels and /v1/imports/users to migrate the surrounding channel and member structure in the same run.

### Can I run custom moderation logic with chat functions?

Yes. POST /v1/functions/{id}/versions creates a new version of a chat function, and GET /v1/functions/{id}/invocations lists past runs. Functions execute server-side on message events, so moderation, profanity filtering, and routing logic stay close to the chat backend rather than running in the client.

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

Yes. Because you run Jentic One yourself, your own rules decide which ChatKitty operations and credentials the agent may use. Since the channel id sits in the URL path (/v1/channels/{id}/...), you can pin the agent to a single channel so it only posts messages, reads message history, and adds members there. You choose the operations it may call, so bulk imports under /v1/imports/messages and analytics exports under /v1/analytics/messages stay off limits unless you explicitly allow them.
