Skip to content

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

ParameterTypeRequiredDescription
namespaceIdstringNamespace unique ID
quizIdstringQuiz unique ID

Body Parameters

FieldTypeRequiredDescription
sessionIdstringSession identifier (treated as userId)
answersobjectObject mapping question IDs to answer values (see Answer Formats)
languagestringLanguage code (en for English, es for Spanish)
customParamsstringURL-encoded custom parameters (e.g., sessionId=xxx&fe_session=yyy&utm_source=zzz)
triggerWebhookbooleanWhether 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):

FormatTypeDescriptionExample
UUIDstringAnswer option UUID"fhn1": "4b7e6d70-fd93-494a-874d-ea783f825289"
CodenumberAnswer 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 a code (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

FieldTypeDescription
user_UUIDstringThe session ID provided in the request
fe_sessionstringSession identifier extracted from customParams (if provided)
scorenumberOverall financial health score (0-100)
spend_scorenumberSpend indicator score (0-100)
save_scorenumberSave indicator score (0-100)
borrow_scorenumberBorrow indicator score (0-100)
plan_scorenumberPlan indicator score (0-100)
indicator_scoresobjectIndividual question scores (questionId to score 0-100)
fhn_focusstringQuestion ID representing the user's primary area to focus on
fhn_opportunityarrayQuestion IDs representing areas of opportunity
fhn_strengthsarrayQuestion IDs representing the user's strengths
progressstringQuiz progress status (will only return completed since this endpoint does not take partial submissions)
start_datestringISO 8601 timestamp of when the quiz was started
last_activity_datestringISO 8601 timestamp of the last activity
respondent_categorystringCategory based on score: vulnerable, coping, or healthy
social_proofobjectBenchmark data showing what percentage of quiz takers fall into each category at the time of submission.

Respondent Categories

CategoryScore RangeDescription
vulnerable0-39Financially vulnerable
coping40-79Financially coping
healthy80-100Financially 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 answers object