API
Admin API Endpoints used by the admin UI and by backend integrations with a project API key.
All endpoints below require either a valid session cookie (admin UI) or a
project API key in the Authorization header. For full request/response
schemas, open the interactive /api-docs page.
Method Path Description GET /api/projectsList projects owned by the caller POST /api/projectsCreate a project GET /api/projects/{projectId}Get one project (with surveys) PATCH /api/projects/{projectId}Update name / description
Method Path Description GET /api/projects/{projectId}/surveysList surveys in a project POST /api/projects/{projectId}/surveysCreate a survey GET /api/surveys/{surveyId}Get one survey (with questions, theme) PATCH /api/surveys/{surveyId}Update survey (status, questions, …) GET /api/surveys/{surveyId}/responsesList responses with their metadata
Method Path Description POST /api/surveys/{surveyId}/templatesCreate a single template POST /api/surveys/{surveyId}/templates/batchCreate up to 10 000 templates at once DELETE /api/templates/{templateId}Delete an unredeemed template
curl -X POST https://your-host/api/surveys/ $SURVEY_ID /templates \
-H "Authorization: Bearer $KEY " \
-H "Content-Type: application/json" \
-d '{ "metadata": { "email": "ada@example.com" } }'
{ "token" : "0c63a3f5-…" , "url" : "/r/0c63a3f5-…" }
curl -X POST https://your-host/api/surveys/ $SURVEY_ID /templates/batch \
-H "Authorization: Bearer $KEY " \
-H "Content-Type: application/json" \
-d '{
"templates": [
{ "metadata": { "email": "ada@example.com" } },
{ "metadata": { "email": "linus@example.com" } }
]
}'
Method Path Description GET /api/projects/{projectId}/api-keysList keys (masked) POST /api/projects/{projectId}/api-keysCreate a key (returns plaintext once ) DELETE /api/api-keys/{apiKeyId}Revoke a key