NueForm

Analytics API

Retrieve response metrics and completion analytics for your forms.

The Analytics API provides aggregated metrics about form responses, including total counts, completion rates, and daily breakdowns.

All response bodies use snake_case field names.

Form Analytics Dashboard
The analytics dashboard showing response metrics and completion rates.

Get Form Analytics

GET/api/v1/forms/:id/analytics

Returns response analytics for a specific form. You can optionally filter to a date range to analyze specific time periods.

Path Parameters

idstring

The form ID

Query Parameters

sincestring

ISO 8601 date. Only include responses submitted on or after this date.

untilstring

ISO 8601 date. Only include responses submitted on or before this date.

Response Fields

form_idstring

The form ID

total_responsesinteger

Total number of submissions (including partial)

completed_responsesinteger

Number of fully completed submissions

completion_ratenumber

Percentage of completed responses (0-100, rounded to 2 decimals)

average_completion_time_secondsinteger or null

Average time in seconds from first answer to completion. null if no completed responses.

responses_by_dayarray

Daily breakdown of response counts

responses_by_day[].datestring

Date in YYYY-MM-DD format

responses_by_day[].totalinteger

Total responses submitted on this date

responses_by_day[].completedinteger

Completed responses on this date

Response

json
{
  "form_id": "665a1b2c3d4e5f6a7b8c9d0e",
  "total_responses": 342,
  "completed_responses": 298,
  "completion_rate": 87.13,
  "average_completion_time_seconds": 194,
  "responses_by_day": [
    { "date": "2026-02-22", "total": 18, "completed": 16 },
    { "date": "2026-02-23", "total": 24, "completed": 21 },
    { "date": "2026-02-24", "total": 31, "completed": 27 },
    { "date": "2026-02-25", "total": 22, "completed": 20 },
    { "date": "2026-02-26", "total": 28, "completed": 25 },
    { "date": "2026-02-27", "total": 35, "completed": 30 },
    { "date": "2026-02-28", "total": 12, "completed": 11 }
  ]
}

Code Examples

bash
curl -X GET "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/analytics?since=2026-02-01&until=2026-02-28" \
  -H "Authorization: Bearer YOUR_API_KEY"

Querying Tips

Use the since and until query parameters to control the date range for analytics.

Full history

Omit both since and until to get analytics across the entire lifetime of the form.

Last 7 days

Compute the date 7 days ago and pass it as the since parameter to get a rolling weekly window.

Specific month

Pass the first and last day of the month as since and until to get analytics for a specific calendar month.

Full history

bash
curl -X GET "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/analytics" \
  -H "Authorization: Bearer YOUR_API_KEY"

Last 7 days

javascript
const since = new Date();
since.setDate(since.getDate() - 7);

const response = await fetch(
  `https://api.nueform.io/api/v1/forms/${formId}/analytics?since=${since.toISOString().split("T")[0]}`,
  { headers: { Authorization: "Bearer YOUR_API_KEY" } }
);

Specific month

python
response = requests.get(
    f"https://api.nueform.io/api/v1/forms/{form_id}/analytics",
    params={"since": "2026-01-01", "until": "2026-01-31"},
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)

Error Responses

Standard error responses returned by this endpoint.

Error Codes

400Bad Request

Invalid date format for since or until

401Unauthorized

Missing or invalid API key

403Forbidden

Insufficient permissions for team forms

404Not Found

Form not found

500Server Error

Internal server error

Error Example

json
{
  "error": "Form not found"
}
Last updated: May 23, 2026