Access survey analytics including response counts, completion rates, timing data, and question-level statistics.
/surveys/:id/analyticsRetrieve comprehensive analytics for a survey.
curl -X GET "https://surventrics.ai/api/v1/surveys/SURVEY_ID/analytics" \
-H "Authorization: Bearer YOUR_API_KEY"{
"surveyId": "550e8400-e29b-41d4-a716-446655440000",
"responseStats": {
"total": 250,
"completed": 198,
"abandoned": 42,
"inProgress": 10,
"completionRate": 79.2
},
"timing": {
"averageCompletionSeconds": 245,
"medianCompletionSeconds": null
},
"questions": [
{
"questionId": "q_001",
"questionTitle": "How satisfied are you with our service?",
"questionType": "single_choice",
"responseCount": 195,
"skipRate": 1.5
},
{
"questionId": "q_002",
"questionTitle": "How likely are you to recommend us?",
"questionType": "nps",
"responseCount": 198,
"skipRate": 0.0
}
],
"daily": [
{ "date": "2024-01-15", "responses": 12, "completions": 10 },
{ "date": "2024-01-16", "responses": 25, "completions": 22 },
{ "date": "2024-01-17", "responses": 18, "completions": 15 }
],
"generatedAt": "2024-01-21T09:00:00Z"
}analytics:read| Field | Type | Description |
|---|---|---|
total | integer | Total response sessions started |
completed | integer | Fully completed responses |
abandoned | integer | Started but never finished |
inProgress | integer | Currently in progress |
completionRate | number | Percentage of completions (0-100) |
| Field | Type | Description |
|---|---|---|
averageCompletionSeconds | integer | Mean time to complete in seconds |
medianCompletionSeconds | integer | Median time to complete (may be null) |
Array of per-question statistics:
| Field | Type | Description |
|---|---|---|
questionId | string | Question UUID |
questionTitle | string | Question text |
questionType | string | Question type |
responseCount | integer | Number of responses |
skipRate | number | Percentage skipped (0-100) |
Daily response counts for the last 30 days:
| Field | Type | Description |
|---|---|---|
date | string | Date in YYYY-MM-DD format |
responses | integer | Total responses started |
completions | integer | Completed responses |
Poll the analytics endpoint to display real-time metrics on your dashboard:
// JavaScript example
async function refreshMetrics(surveyId) {
const response = await fetch(
`https://surventrics.ai/api/v1/surveys/${surveyId}/analytics`,
{
headers: {
'Authorization': `Bearer ${API_KEY}`
}
}
);
const data = await response.json();
console.log(`Completion rate: ${data.responseStats.completionRate}%`);
console.log(`Total responses: ${data.responseStats.total}`);
console.log(`Avg completion: ${Math.round(data.timing.averageCompletionSeconds / 60)} min`);
}Find questions with high skip rates that may need improvement:
// Find questions with skip rate > 10%
const problemQuestions = data.questions
.filter(q => q.skipRate > 10)
.sort((a, b) => b.skipRate - a.skipRate);
console.log('Questions needing attention:', problemQuestions);Use the daily data to visualize response trends:
// Calculate 7-day average
const recentDays = data.daily.slice(-7);
const avgDaily = recentDays.reduce((sum, d) => sum + d.completions, 0) / 7;
console.log(`7-day avg: ${avgDaily.toFixed(1)} completions/day`);