For Agents
Create and join Matrix rooms, send messages, manage room state, and sync user filters across any standards-compliant Matrix homeserver.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Matrix Client-Server API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Matrix Client-Server API.
Create new Matrix rooms with configurable visibility and join rules
Join, leave, invite, kick, and ban users from a room
Manage room aliases under a homeserver's alias namespace
Define and reuse user filters that scope sync responses
GET STARTED
Use for: Create a new Matrix room called 'project-updates' with public join rules, I want to join the room with alias #room:matrix.org, Invite a user to a Matrix room by their MXID, Kick a user from a moderated room with a reason
Not supported: Does not handle homeserver administration, federation server-server traffic, or media repository operations — use for client-side room and user operations against an existing Matrix homeserver only.
Jentic publishes the only available OpenAPI specification for Matrix Client-Server API, keeping it validated and agent-ready. Matrix is an open standard for decentralised real-time communication, and the Client-Server API defines how a client talks to its homeserver to authenticate users, create and join rooms, send messages, and sync state. The spec covers core room operations (create, invite, join, leave, kick, ban), user filters, room aliases and visibility, and the messaging primitives that bridge clients across federated homeservers. It is intended for developers building Matrix clients, bridge bots, and AI agents that participate in Matrix rooms.
Update a room's join visibility in the published room directory
Send and receive room messages via the standard Matrix events model
Patterns agents use Matrix Client-Server API for, with concrete tasks.
★ Self-Hosted Team Chat Client
Companies running a Matrix homeserver (such as Synapse) need a custom client embedded into their internal tools. The Client-Server API covers the core operations: create rooms, invite teammates, sync events, and manage filters. A typical embedded client uses long-poll sync against a homeserver and the room endpoints to drive the UI.
Call `POST /createRoom` with `{name: 'engineering', visibility: 'private'}` then `POST /rooms/{roomId}/invite` for each teammate's MXID.
Bridge and Notification Bots
Bridge bots replicate messages between Matrix and other systems (GitHub, Jira, Slack). The bot authenticates as a Matrix user, joins relevant rooms, and posts events whenever the upstream system fires. The Client-Server API provides everything the bot needs: join rooms, send messages, manage filters to skip noise.
Call `POST /join/{roomIdOrAlias}` to join the alerts room, then post incidents as message events whenever the upstream webhook fires.
Room Moderation Tooling
Community moderators need bulk tools to enforce conduct: kicking spammers, banning repeat offenders, and tightening join rules. The Matrix API exposes per-room kick, ban, and aliasing endpoints that a moderation dashboard can wire into rule-based actions or human review queues.
Call `POST /rooms/{roomId}/ban` with the MXID and a reason to ban a confirmed-spammer account from a moderated room.
AI Agent in Matrix Rooms
An AI agent participating in a Matrix room (answering questions, summarising threads) can use Jentic to call Matrix Client-Server operations on demand. Jentic stores the access token in the vault and exposes operations like 'join a room' or 'send a message' via intent search, so the agent does not have to hand-roll Matrix authentication.
Search Jentic for 'create a matrix room', load the `/createRoom` schema, and execute it with the agent's access token to bootstrap a project room.
32 endpoints — jentic publishes the only available openapi specification for matrix client-server api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/createRoom
Create a new Matrix room
/rooms/{roomId}/join
Join a room by ID
/join/{roomIdOrAlias}
Join a room by ID or alias
/rooms/{roomId}/leave
Leave a room
/rooms/{roomId}/invite
Invite a user to a room
/rooms/{roomId}/kick
Kick a user from a room
/rooms/{roomId}/ban
Ban a user from a room
/user/{userId}/filter
Create a user sync filter
/createRoom
Create a new Matrix room
/rooms/{roomId}/join
Join a room by ID
/join/{roomIdOrAlias}
Join a room by ID or alias
/rooms/{roomId}/leave
Leave a room
/rooms/{roomId}/invite
Invite a user to a room
Three things that make agents converge on Jentic-routed access.
Credential isolation
Matrix access tokens are stored encrypted in the Jentic vault (MAXsystem). Agents receive scoped session references and the bearer token (or `access_token` query param) is applied at execution time — raw tokens never enter the agent's context.
Intent-based discovery
Agents search by intent (e.g., 'create a matrix room' or 'invite user to room') and Jentic returns the matching Matrix Client-Server operation with its input schema.
Time to first call
Direct Matrix Client-Server integration: 1-2 days for auth, sync loops, and event-handling. Through Jentic: under 1 hour — search, load schema, execute the room and message operations you need.
Alternatives and complements available in the Jentic catalogue.
Specific to using Matrix Client-Server API through Jentic.
Why is there no official OpenAPI spec for Matrix Client-Server API?
The Matrix.org Foundation publishes the Client-Server specification as Markdown plus Swagger fragments rather than a single distributable OpenAPI document. Jentic generates and maintains a unified OpenAPI specification so AI agents and developers can call the Matrix Client-Server 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 Matrix Client-Server API use?
The API supports two authentication schemes: an HTTP bearer token in the `Authorization` header (preferred) and an `access_token` query parameter. Through Jentic, the access token is stored encrypted in the MAXsystem vault and applied to each request automatically.
Can I create a new room with the Matrix Client-Server API?
Yes. `POST /createRoom` creates a new room and returns the `room_id` and any aliases. The request body lets you set name, topic, visibility (`public`/`private`), and an initial set of invitees.
What are the rate limits for the Matrix Client-Server API?
Matrix rate limits are enforced per homeserver rather than globally. Synapse, the reference homeserver, applies per-IP and per-user limits configured by the homeserver admin (default ~ 0.1 events per second with bursts up to 10). Inspect the `Retry-After` header on `429` responses and back off accordingly.
How do I join a Matrix room through Jentic?
Run `pip install jentic`, then use Jentic's search with the query 'join a matrix room'. Jentic loads the `/join/{roomIdOrAlias}` operation schema and your agent executes it with the room alias — Jentic injects the access token automatically.
Does the API work against any Matrix homeserver?
Yes. The base URL is parameterised as `https://{homeserver}/_matrix/client/v3`, so the same operations work against matrix.org, a self-hosted Synapse instance, Conduit, Dendrite, or any other compliant homeserver.
/rooms/{roomId}/kick
Kick a user from a room
/rooms/{roomId}/ban
Ban a user from a room
/user/{userId}/filter
Create a user sync filter