Fluxer API
Fluxer is a self-hostable chat platform.
- To build a client or a bot, start with the HTTP API and the Gateway.
- For voice and screen sharing, read Voice.
- To run an instance, start with Get started.
Protocol surfaces
Section titled “Protocol surfaces”Use the HTTP API to read and change resources, and Gateway events to receive updates. The Media Proxy serves media and uploads. The Admin API provides privileged instance management.
Shared contracts
Section titled “Shared contracts”See Authentication, Errors, Rate limits and Locales for shared behaviour. Most resource identifiers are snowflakes. Each resource page states where it differs from this shared behaviour.
Field notation
Section titled “Field notation”In field tables, ? after a field name means optional. Before a type, it means nullable.
| Field | Type | Meaning |
|---|---|---|
name | string | Required and cannot be null |
name? | string | Optional, but cannot be null when present |
name | ?string | Required, but can be null |
name? | ?string | Nullish, so it can be omitted or set to null |
An omitted field is different from a field set to null. Each operation explains how these values affect the resource.
In the type column, array[type] is an array of the named type, and map[key, value] is a JSON object keyed by the first type with values of the second.
Endpoint discovery
Section titled “Endpoint discovery”Start with GET /.well-known/fluxer on the instance origin. It requires no authentication and allows cross-origin requests.
GET https://example.com/.well-known/fluxerFor the hosted instance, use https://fluxer.app/.well-known/fluxer.
Read base URLs from the response’s endpoints. Do not derive them from the origin or hard-code Fluxer domains.
- Bots, libraries and third-party clients use
endpoints.api_public. - The first-party web application uses
endpoints.api_client.endpoints.apiis an alias for it.
Use /v1 paths and send credentials in the Authorization header as described in Authentication.