Contents
On this page

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.

  • search matches title.
  • orderby accepts id, title, open_from, open_until, created_at and modified_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