A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui)
Full LLM thinking from the 4-phase benchmark pipeline.
{
"service_type": "platform",
"base_url": "https://gotify.net",
"auth_method": "api_key",
"auth_config": {
"header": "X-Gotify-Key",
"query_param": "token",
"notes": "Application tokens for sending messages; client tokens for receiving/websocket. Tokens generated via web UI or REST API. Basic auth (username/password) used for management API and some endpoints."
},
"endpoints": [
{
"name": "Send message",
"method": "POST",
"path": "/message",
"description": "Send a message to a specific application token. Supports title, message, priority, extras (e.g., markdown/JSON)."
},
{
"name": "Stream messages (WebSocket)",
"method": "GET",
"path": "/stream",
"description": "WebSocket endpoint for real-time message delivery to connected clients. Requires client token."
},
{
"name": "Get applications",
"method": "GET",
"path": "/application",
"description": "List applications (management API)."
},
{
"name": "Create application",
"method": "POST",
"path": "/application",
"description": "Create a new application token for sending messages."
},
{
"name": "Get messages",
"method": "GET",
"path": "/message",
"description": "Retrieve message history with optional filters (limit, since)."
},
{
"name": "Delete message",
"method": "DELETE",
"path": "/message/{id}",
"description": "Delete a specific message by ID."
},
{
"name": "Get clients",
"method": "GET",
"path": "/client",
"description": "List client tokens for receiving messages."
},
{
"name": "Create client",
"method": "POST",
"path": "/client",
"description": "Create a new client token."
},
{
"name": "Health check",
"method": "GET",
"path": "/health",
"description": "Returns server health status."
},
{
"name": "Version",
"method": "GET",
"path": "/version",
"description": "Returns server version."
}
],
"pricing_model": {
"type": "free",
"details": {
"note": "Gotify is open-source software (MIT license) and free to self-host. No managed cloud offering by the project itself; costs depend on hosting infrastructure."
}
},
"rate_limits": {
"documented": false,
"note": "No official rate limits documented. Self-hosted instances may enforce limits via reverse proxy or server configuration."
},
"capabilities": [
"real-time messaging via WebSocket",
"REST API for sending and managing messages",
"web UI for administration and message viewing",
"application tokens for sending (server-to-client push)",
"client tokens for receiving (device-specific subscriptions)",
"message priorities and extras (markdown, inline images, etc.)",
"message history with filtering",
"user management via basic auth",
"plugin system for extending functionality (e.g., authentication, message processing)",
"Docker/container-friendly deployment",
"CLI tool (gotify/cli) for sending messages",
"Android app available (official)"
],
"raw_analysis": "Gotify is a self-hosted, open-source platform for real-time message delivery. It functions as a lightweight pub/sub server: applications (identified by tokens) can POST messages to the server, and clients (also token-based) connect via WebSocket to receive messages instantly. The platform includes a web UI for managing applications, clients, users, and viewing message history. It exposes a well-documented REST API (see https://gotify.net/api-docs) and a WebSocket endpoint for streaming. Authentication is primarily token-based (X-Gotify-Key header or token query parameter) for sending/receiving, while management operations use HTTP Basic Auth. There is no official SaaS offering; users run their own server. The project is mature, actively maintained, and has an Android client. It is popular in homelab and notification scenarios as a simpler alternative to services like Pushover or ntfy. Integrations exist via community scripts and the CLI. Pricing is free (open-source, MIT). The 'API' is central to the platform, not an afterthought."
}1/3 tests passed
| Test | Endpoint | Status | Latency |
|---|---|---|---|
| website_uptime | GET / | 200 | 60ms |
| robots_txt | GET /robots.txt | 404 | 74ms |
| llms_txt | GET /llms.txt | 404 | 32ms |
```json
{
"overall": 62,
"dimensions": {
"token_efficiency": 9.0,
"first_try_success": 5.0,
"response_parseability": 8.0,
"error_clarity": 6.0,
"doc_quality": 7.0,
"auth_simplicity": 6.0,
"latency": 10.0,
"consistency": 7.0
},
"pricing_normalized": {
"model": "free_open_source",
"cost": 0,
"managed_cloud_available": false,
"notes": "MIT-licensed, self-hosted only. Total cost of ownership depends on hosting infrastructure."
},
"issues": [
"No managed cloud offering — users must self-host, which raises onboarding friction and pushes ops burden onto the user.",
"No robots.txt and no llms.txt: worse discoverability for AI agents, though the docs site is VitePress and still parseable.",
"Auth is split between application tokens (send) and client tokens (receive), plus basic auth for admin — clear once learned, but non-trivial for first-try onboarding.",
"Docs lack a single canonical quickstart in machine-readable form; agents must scrape HTML guides."
],
"recommendations": [
"Publish an llms.txt at the docs root summarizing endpoints, auth flows, and quickstart commands in concise form.",
"Add a robots.txt (even permissive) and a machines-readable OpenAPI spec URL for the REST API.",
"Provide a one-command Docker quickstart with pre-seeded tokens for demo/testing to improve first-try success.",
"Document the app-token vs client-token distinction in a short, copy-pasteable table near the top of the docs.",
"Consider a status page / uptime SLA note for the docs site to strengthen consistency perception."
]
}
```Show your live agent-readiness score on your own site. Free, no auth — it updates as your score changes.
<a href="https://prowl.world/service/server">
<img src="https://prowl.world/badge/server.svg" height="56" alt="Agent-readiness on Prowl">
</a>
See operational metrics, LLM evaluations, agent readiness, and more.
Open in Dashboard