Appearance
Standalone Submit
Submit all quiz answers at once with auto-initialization.
Overview
This endpoint allows submitting all answers to a quiz in a single request without requiring a prior call to initQuiz. It automatically creates the answer document if it doesn't exist, processes the answers, and returns score data including social proof percentages.
Method: POST
Endpoint:/api/v1/namespaces/:namespaceId/quizzes/:quizId/standaloneSubmit
This endpoint is currently available for authorized namespaces only.
Key Features
- No initQuiz required – Creates the answer document automatically on first submission
- Returns enriched data – Includes scores, respondent category, and more
Request
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
namespaceId | string | ✅ | Namespace unique ID |
quizId | string | ✅ | Quiz unique ID |
Body Parameters
| Field | Type | Required | Description |
|---|---|---|---|
sessionId | string | ✅ | Session identifier (treated as userId) |
answers | object | ✅ | Object mapping question IDs to answer values (see Answer Formats) |
language | string | ✅ | Language code (en for English, es for Spanish) |
customParams | string | ❌ | URL-encoded custom parameters (e.g., sessionId=xxx&fe_session=yyy&utm_source=zzz) |
triggerWebhook | boolean | ❌ | Whether to trigger an external webhook on completion (default: false, only available if connected) |
Answer Formats
The answers object supports two formats for the 8 core financial health questions (fhn1 through fhn8):
| Format | Type | Description | Example |
|---|---|---|---|
| UUID | string | Answer option UUID | "fhn1": "4b7e6d70-fd93-494a-874d-ea783f825289" |
| Code | number | Answer option code (1-4, 1-5, or 1-6) | "fhn1": 1 |
The code format is more compact, while the UUID format provides unambiguous answer identification.
Finding Answer IDs/Codes: Use the Get Quiz Public Info endpoint to retrieve the quiz's questions and their available answer options. Each answer option includes both an
id(UUID) and acode(number).
Example Request Body
json
{
"sessionId": "session_abc123",
"answers": {
"fhn1": 5,
"fhn2": 4,
"fhn3": 3,
"fhn4": 4,
"fhn5": 2,
"fhn6": 3,
"fhn7": 4,
"fhn8": 5
},
"language": "en",
"customParams": "sessionId=session_abc123&fe_session=fe_deb456",
"triggerWebhook": false
}Response
json
{
"user_UUID": "session_abc123",
"fe_session": "fe_deb456",
"score": 75,
"spend_score": 80,
"save_score": 70,
"borrow_score": 75,
"plan_score": 75,
"indicator_scores": {
"fhn1": 80,
"fhn2": 60,
"fhn3": 40,
"fhn4": 60,
"fhn5": 60,
"fhn6": 80,
"fhn7": 80,
"fhn8": 100
},
"fhn_focus": "fhn3",
"fhn_opportunity": ["fhn4"],
"fhn_strengths": ["fhn1", "fhn6", "fhn7", "fhn8"],
"progress": "completed",
"start_date": "2024-01-15T10:30:00.000Z",
"last_activity_date": "2024-01-15T10:35:00.000Z",
"respondent_category": "coping",
"social_proof": {
"vulnerable": 20,
"coping": 50,
"healthy": 30
}
}Response Fields
| Field | Type | Description |
|---|---|---|
user_UUID | string | The session ID provided in the request |
fe_session | string | Session identifier extracted from customParams (if provided) |
score | number | Overall financial health score (0-100) |
spend_score | number | Spend indicator score (0-100) |
save_score | number | Save indicator score (0-100) |
borrow_score | number | Borrow indicator score (0-100) |
plan_score | number | Plan indicator score (0-100) |
indicator_scores | object | Individual question scores (questionId to score 0-100) |
fhn_focus | string | Question ID representing the user's primary area to focus on |
fhn_opportunity | array | Question IDs representing areas of opportunity |
fhn_strengths | array | Question IDs representing the user's strengths |
progress | string | Quiz progress status (will only return completed since this endpoint does not take partial submissions) |
start_date | string | ISO 8601 timestamp of when the quiz was started |
last_activity_date | string | ISO 8601 timestamp of the last activity |
respondent_category | string | Category based on score: vulnerable, coping, or healthy |
social_proof | object | Benchmark data showing what percentage of quiz takers fall into each category at the time of submission. |
Respondent Categories
| Category | Score Range | Description |
|---|---|---|
vulnerable | 0-39 | Financially vulnerable |
coping | 40-79 | Financially coping |
healthy | 80-100 | Financially healthy |
Error Responses
400 Bad Request– If required questions are missing
json
{
"message": "Missing required questions: fhn1, fhn2, fhn3",
"errorCode": "parameters/invalid"
}400 Bad Request– If the quiz has ended
json
{
"error": "quiz has ended",
"errorCode": "quiz/ended"
}400 Bad Request– If an invalid answer ID or code is provided
json
{
"error": "Invalid answer for fhn1: not a valid answer code",
"errorCode": "parameters/invalid"
}403 Forbidden– If the namespace is not authorized for this endpoint
json
{
"message": "Endpoint not available for this namespace",
"errorCode": "namespace/unauthorized"
}422 Unprocessable Entity– If required parameters are missing or validation fails
json
{
"validationErrors": {
"body": {
"sessionId": {
"message": "\"sessionId\" is required"
}
}
}
}Notes
- This endpoint combines the functionality of Initialize Quiz and Submit All Answers into a single call
- Unlike the standard submit endpoints, this returns a flat response format optimized for integrations rather than the nested
answersobject