sanalyer API
sanalyer is the chat service at sanalyer.com. These pages describe its HTTP API, Gateway, media proxy and admin API.
- To build a client or a bot, start with the HTTP API and the Gateway.
- For a first bot in Python, read the Turkish quick start.
- For voice and screen sharing, read Voice.
- The desktop app is on the download page.
Questions about the API go to info@sanalyer.com.
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. The path keeps its upstream name; it is part of the protocol.
GET https://sanalyer.com/.well-known/fluxerRead base URLs from the response’s endpoints. Do not derive them from the origin or hard-code them.
- 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.
Source code
Section titled “Source code”sanalyer runs on open-source software licensed under the AGPLv3. Our modified source is on GitHub; the upstream project is fluxerapp/fluxer.