Introduction
Self-hosted, API-first survey backend for internal teams. One superadmin, many project subaccounts, each with its own API keys.
Dataopi is a small internal, self-hosted platform for shipping satisfaction surveys. It is meant to be deployed once inside your organisation and consumed by other teams (marketing, success, ops…) through its API.
Mental model
- A superadmin runs the deployment. There is no public signup — accounts are provisioned via a CLI script (or seed) directly against the database.
- The superadmin uses the admin UI at
/adminto create projects, which act as isolated subaccounts. Each project has its own surveys, response templates and API keys. A user only ever sees the projects they own. - Each project issues one or more API keys. Backends from other teams use those keys to script everything: create surveys, mint per-recipient links and pull responses. API keys are project-scoped — a key cannot reach into another project.
- Recipients answer via tokenised one-link-per-person URLs at
/r/{token}. Those links are public (no auth) but single-use.
What is in the box
- Admin UI at
/admin— login, project management, survey editor, template generation, API key issuance. - Public form at
/r/{token}— rendered in the recipient's language (Spanish or English). - API with two auth modes:
- cookie session (admin UI),
Authorization: Bearer <api-key>for server-to-server calls.
- Five question types (text, boolean, select, number, scale) with conditional follow-ups and per-survey metadata schemas.
- Single-use response templates: one URL per recipient, baked with arbitrary metadata, redeemable once and editable by the recipient.
- This product documentation at
/docsand an interactive OpenAPI / Swagger explorer at/api-docs.
Where to next
- Getting started — deploy, create the superadmin, generate your first API key, fire your first request.
- Concepts — projects, surveys, the question engine, response templates.
- API reference — endpoints, auth, payload shapes.