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
namespaceIdstring✅Namespace unique ID
quizIdstring✅Quiz unique ID

Body Parameters ​

FieldTypeRequiredDescription
sessionIdstring✅Session identifier (treated as userId)
answersobject✅Object mapping question IDs to answer values (see Answer Formats)
languagestring✅Language code (en for English, es for Spanish)
customParamsstring❌URL-encoded custom parameters (e.g., sessionId=xxx&fe_session=yyy&utm_source=zzz)
triggerWebhookboolean❌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):

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