Responses API
Retrieve and manage form, poll, and widget responses.
GET
/api/forms/:id/responsesList form responses
Returns all responses for a specific form.
Response
JSON
{
"responses": [
{
"id": "resp_abc123",
"form_id": "form_xyz789",
"answers": {
"name": "John Doe",
"email": "john@example.com",
"message": "Hello!"
},
"submitted_at": "2025-01-15T10:30:00Z",
"metadata": {
"browser": "Chrome",
"device": "Desktop"
}
}
],
"total": 1
}GET
/api/forms/:id/responses/countGet response count
Returns the total number of responses for a form.
Response
JSON
{ "count": 42 }DELETE
/api/responsesDelete responses
Bulk delete responses by ID. Requires form or widget ownership.
Request body
JSON
{
"ids": ["resp_abc123", "resp_def456"],
"formId": "form_xyz789"
}Response
JSON
{
"success": true,
"deleted": 2
}Response metadata
Each response includes metadata captured at submission time:
submitted_atISO 8601 timestamprespondent_fingerprintAnonymous device identifiermetadata.browserBrowser user agentmetadata.deviceDevice type (Desktop/Mobile/Tablet)metadata.page_urlURL where form was submitted (embeds)metadata.referrerReferring page URLmetadata.ip_hashHashed IP address (privacy-safe)Widget responses
Widget responses follow the same pattern but use widget-specific endpoints:
Text
GET /api/widgets/:id/responses
DELETE /api/responses (with widgetId instead of formId)Poll votes
Poll votes are accessed through the poll results endpoint:
Text
GET /api/polls/:id/resultsIndividual vote records are not exposed to protect voter anonymity.