Contents
List Exams - Plugixa Exam
GET /plugixa-exam/v1/exams
List exams as a paged list, with the address of each published exam on your site.
Scope exams:read; the token’s user needs the exams:view permission.
Request
GET https://your-site.example/wp-json/plugixa-exam/v1/exams?search=algebra&published=1
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
published |
integer |
1 for published exams only, 0 for unpublished only. Leave it out to list both. Any other value answers 400. |
|
custom_fields[<name>] |
string|number|object |
PRO Filter on a custom field, when the Custom Fields app is on. Works the same way as on List Questions. |
Plus the list parameters every paged list accepts.
searchmatchestitle.orderbyacceptsid,title,open_from,open_until,created_atandmodified_at.
Responses
200 OK. data is a page of exams.
Each row carries every exam setting plus view_url. A row does not include the exam’s sections or has_access_code: read one exam with Get Exam for those.
{
"success": true,
"data": [
{
"id": 7,
"title": "Algebra Midterm",
"slug": "algebra-midterm",
"description": "Linear equations and inequalities.",
"intro": "<p>You have 45 minutes. Calculators are allowed.</p>",
"subject_id": 12,
"time_limit": 45,
"max_attempts": 2,
"cooldown_minutes": 60,
"open_from": "2026-11-16 08:00:00",
"open_until": "2026-11-20 18:00:00",
"pass_mark": 65,
"shuffle_questions": true,
"shuffle_options": false,
"access_type": "code",
"access_level": null,
"result_release": "after_close",
"release_at": null,
"show_answers": true,
"pass_message": "<p>Well done, you passed.</p>",
"fail_message": "",
"lock_policy": "auto",
"attempt_mode": "exam",
"practice_reveal": "on_submit",
"layout": "one_per_page",
"review_before_submit": true,
"allow_early_finish": true,
"fullscreen_mode": "off",
"require_answer": "off",
"allow_pause": false,
"max_pauses": 0,
"max_pause_minutes": 0,
"auto_close_action": "submit",
"idle_timeout_minutes": 1440,
"window_close_action": "close",
"auto_close_held": false,
"auto_close_time_spent": "capped",
"auto_close_notify": "auto",
"track_integrity": true,
"certificate_template_id": 0,
"settings": null,
"custom_fields": null,
"published": true,
"created_at": "2026-11-12 09:30:00",
"modified_at": "2026-11-12 10:15:00",
"created_by": 1,
"modified_by": 1,
"deleted_at": null,
"view_url": "https://your-site.example/exams/algebra-midterm/"
}
],
"meta": {
"total": 1,
"pages": 1
}
}
| Field | Type | Meaning |
|---|---|---|
data[].id |
integer |
The exam’s id |
data[].slug |
string |
The exam’s address on your site |
data[].subject_id |
integer |
The subject the exam belongs to, 0 for none |
data[].time_limit |
integer |
Minutes, 0 for an untimed exam |
data[].max_attempts |
integer |
0 for unlimited |
data[].open_from |
string|null |
UTC datetime the exam opens, null for no opening date |
data[].open_until |
string|null |
UTC datetime the exam closes, null for no closing date |
data[].pass_mark |
number |
Percent needed to pass, 0 to 100 |
data[].access_type |
string |
Who may sit the exam. See Create Exam for the values |
data[].settings |
object|null |
Extra per-exam flags, such as an LMS course link |
data[].published |
boolean |
Whether the exam is published |
data[].deleted_at |
string|null |
null unless the exam is in the trash (view=trash) |
data[].view_url |
string |
The exam’s public address on your site, "" for an unpublished exam |
meta.total |
integer |
Exams matching, across all pages |
meta.pages |
integer |
Number of pages at this per_page |
The access code itself is never returned.
Errors
| Status | Code | When |
|---|---|---|
400 |
rest_invalid_param |
published is not 0 or 1. |
Plus the errors every endpoint can return.
Examples
curl -s "https://your-site.example/wp-json/plugixa-exam/v1/exams?search=algebra&published=1" \
-H "Authorization: Bearer $PLUGIXA_EXAM_TOKEN"
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixa-exam/v1/exams?search=algebra&published=1');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('PLUGIXA_EXAM_TOKEN'),
],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const response = await fetch('https://your-site.example/wp-json/plugixa-exam/v1/exams?search=algebra&published=1', {
headers: {
'Authorization': `Bearer ${process.env.PLUGIXA_EXAM_TOKEN}`,
},
});
const { data, meta } = await response.json();
Quick Links
Share