Routes under prc-api/v3 for submissions, community groups, admin purge, and the Quizzes library list. Registered via prc_api_endpoints / rest_api_init in includes/class-rest-api.php.
Base path: /wp-json/prc-api/v3/
Auth summary
| Access | Routes |
|---|---|
| Public + quiz validation + per-IP rate limit | POST /quiz/submit |
Firebase ID token (X-PRC-User-Token) | POST /quiz/create-group |
| Public | GET /quiz/get-group |
manage_options | POST /quiz/purge-archetypes |
edit_posts (library) | GET /quiz/library |
edit_post on quiz | GET/DELETE /quiz/audiences, POST /quiz/build-audience, GET /quiz/audience-jobs/{job_id} |
edit_posts | _submissions field on quiz REST resource |
Route index
| Method | Path | Purpose |
|---|---|---|
POST | /quiz/submit | Record submission; update archetype / group |
POST | /quiz/create-group | Create Firebase group; owner from token sub |
GET | /quiz/get-group | Group payload and URLs |
POST | /quiz/purge-archetypes | Wipe Firebase archetypes for a quiz |
GET | /quiz/library | DataViews list rows and filters. Applies prc_wp_admin_dataview_query_args before WP_Query and prc_wp_admin_dataview_shape_row when shaping each row so Working on / Active editors / Watchers work on this custom restPath. |
GET | /quiz/audiences | List group-creators system audiences for a quiz |
POST | /quiz/build-audience | Start an async group-creators job. Returns 202 with the job view (not the finished email list). |
GET | /quiz/audience-jobs/{job_id} | Poll a qz_ job. Inspectors may also poll Email Builder GET /prc-email-builder/v1/audience-jobs/{job_id}. |
DELETE | /quiz/audiences | Delete a group-creators audience option + _meta |
Quiz REST does not insert email posts and does not wait for the Firebase scan. Editors create a transactional draft from Quiz Analytics, which calls Email Builder POST /prc-email-builder/v1/transactional/create-from-audience.
Submit behavior when Firebase is down
| Case | Response |
|---|---|
Normal submit (no groupId) | 200 with persisted: false — in-session results still work |
| Group submit | 503 |
| Create group without Firebase Auth | 503 |
Rate limit on submit: 100 submissions per quiz per IP per minute (see source). Emergency kill switch: Rest_API::$rest_disabled.
Request
GET
/wp-json/prc-api/v3/quiz/get-group?groupId=example-group
HeadersKey: value
Accept application/json
Response
200 OK
Response headers
Key: value
BodyJSON
{
"group_id": "example-group",
"total": 12
}