Create polls, share a link, collect votes, see results. No Typeform, no SurveyMonkey. For teams making decisions, communities gathering opinions.
Every operation in Agora is available through a JSON REST API. No SDK required — use curl, fetch, or any HTTP client.
GET /api/polls — list all polls with optional search and filter query parametersPOST /api/polls — create a new poll recordGET /api/polls/{id} — retrieve a single poll by IDPUT /api/polls/{id} — update an existing pollDELETE /api/polls/{id} — remove a pollGET /api/stats — aggregated statistics with status breakdownGET /api/health — health check endpoint for monitoringMost polls tools fall into two camps: free products that harvest your data, or enterprise platforms that cost more than the problem they solve. Agora exists because neither option makes sense when you just need a reliable voting and polling tool under your own control.
Deploy Agora as a systemd service, a Docker container, or a bare process behind tmux. It reads two environment variables: PORT and DATA_DIR. Everything else is self-contained. The /api/health endpoint returns the service status and polls count, which you can wire into your existing monitoring stack.
A devops team integrates Agora into their CI pipeline. A post-deploy hook creates a poll record via the API. The stats endpoint feeds a Grafana panel. When something goes wrong, the team searches polls by keyword to find related records without switching tools.
GET /api/polls — List all polls. Supports ?q=keyword for search and ?status=value for filteringPOST /api/polls — Create a new poll. Send JSON with at least titleGET /api/polls/{id} — Fetch one poll by IDPUT /api/polls/{id} — Update fields on an existing pollDELETE /api/polls/{id} — Remove a pollGET /api/stats — Returns total count and breakdown by statusGET /api/health — Returns {"status":"ok"} for uptime monitoringSelf-hosted voting and polling tool. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool agora
PORT=10070 ./agora
http://localhost:10070
Single binary. Embedded SQLite. No Docker. No database. No dependencies.
Your license key arrives by email within 5 minutes of checkout. Set it as an environment variable and restart the binary.
export AGORA_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./agora
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.