Prowl
72/100
prowl
Benchmarked Oct 02, 2026

Server

A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui)

developerapi platform_profile
Benchmark Your API

Score Breakdown

Latency10/10
Token Efficiency9/10
Parseability8/10
Consistency7/10
Documentation7/10
Error Clarity6/10
Auth Simplicity6/10
First-Try Success5/10

Benchmark Analysis Log

Full LLM thinking from the 4-phase benchmark pipeline.

Analyze
{
  "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."
}
Execute

1/3 tests passed

TestEndpointStatusLatency
website_uptimeGET /20060ms
robots_txtGET /robots.txt40474ms
llms_txtGET /llms.txt40432ms
Interpret
```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."
  ]
}
```

Agent Readiness

x402 Payments
Not supported
Streaming
No
Sandbox
None
Agent Auth
Unknown
SDKs
None listed
MCP Support
No

Embed your Prowl badge

Show your live agent-readiness score on your own site. Free, no auth — it updates as your score changes.

Prowl agent-readiness badge
<a href="https://prowl.world/service/server">
  <img src="https://prowl.world/badge/server.svg" height="56" alt="Agent-readiness on Prowl">
</a>

Options: ?style=light|dark · ?size=sm|md · ?variant=certified (claimed + DNS-verified only) · badge generator with preview

Want the full interactive view?

See operational metrics, LLM evaluations, agent readiness, and more.

Open in Dashboard