/v1/forms/{id}/analyticsForm analytics
What one form actually did over a window (7d, 30d or 90d): views and distinct visitors, drafts started, applications completed and corrections, how many were signed, the median time to complete, a per-question drop-off table, conversion split by the ?src= label on the link, and a daily series. Reach for it to answer 'is this form working', 'where do people give up' or 'which channel converts'; use GET /v1/forms/:id/submissions for the answers themselves. Two things the numbers do NOT mean: dropOff names the last question somebody TOUCHED before abandoning a saved draft, which is not the question that put them off and not one they read and skipped, so do not report a cause from it; and 'starts' counts saved drafts, so a form whose saveDrafts setting is off shows few or none — that is a setting, not a finding.
Access class: workspace.
Send request
Use the documented inputs to call this endpoint directly.
Parameters
Values are applied to the request and the example on the right.
Responses
the action's answer
{
"data": {
"counting": true,
"dropOff": [
{
"abandoned": "string",
"fieldId": "",
"label": "string",
"section": "string"
}
],
"formId": "",
"measuredAt": "string",
"series": [
{
"completions": "string",
"day": "string",
"starts": "string",
"views": "string"
}
],
"since": "string",
"sources": [
{
"conversionRate": "string",
"source": "string",
"submissions": "string",
"views": "string"
}
],
"totals": {
"abandoned": 1,
"abandonedBeforeAnswering": 1,
"completions": 1,
"conversionRate": 1.5,
"corrections": 1,
"medianSecondsToComplete": 1,
"signed": 1,
"starts": 1,
"views": 1,
"visitors": 1
},
"until": "string",
"window": "string"
}
}a refusal: {"error": "<what a person needs to read>"}. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.
{
"error": "string"
}