Programmatically pull practice exam questions, vector-rendered math/science diagrams, and full exam blueprints directly into your LMS or learning application.
GET /api.php?action=fetch_questions
// Header
Authorization: Bearer YOUR_API_KEY
// Request URL
https://examswave.com/api.php?action=fetch_questions&framework=alevels&subject=mathematics&limit=1
The ExamsWave API authenticates requests using Bearer Tokens in the HTTP header or via query string parameter (?key=...).
Provide your API key in the standard Authorization header with every request.
Pass the key directly in the request query string for rapid browser testing.
All API calls execute through the main gateway controller /api.php using the action parameter.
Validates your API credentials, subscription status, user role, and dynamic monthly rate quota.
{
"status": "success",
"message": "API key validated successfully.",
"user": {
"id": 101,
"name": "Jane Doe",
"email": "jane@example.com",
"role": "student",
"subscription_status": "active",
"subscription_expires_at": "2026-12-31 23:59:59"
},
"api_quota": {
"monthly_limit": 5000,
"status": "Active"
}
}
Returns available active exam blueprints, subject mappings, time limits, and supported languages.
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | Optional | Search query for exam name or subjects (e.g., alevels) |
| country | string | Optional | Filter blueprints by country code (e.g., US, UK) |
| id | integer | Optional | Fetch a single blueprint by explicit ID |
{
"status": "success",
"count": 1,
"data": [
{
"id": 1,
"exam_name": "A-Levels Advanced",
"country": "UK",
"total_exam_questions": 100,
"time_limit_minutes": 180,
"is_active": 1,
"subjects": ["Mathematics", "Physics", "Chemistry"],
"languages": ["en"]
}
]
}
Retrieves practice questions with options, vector XML diagrams, and step-by-step solutions.
| Parameter | Type | Required | Description |
|---|---|---|---|
| framework / blueprint_id | string / int | Yes | Framework search term (e.g., alevels) or explicit blueprint_id integer |
| subject | string | Optional | Filter by module subject (e.g., mathematics, biology) |
| limit | integer | Optional | Number of question items to return (Default: 50, Max: 100) |
{
"status": "success",
"filter": "alevels",
"count": 1,
"data": [
{
"id": 2409,
"blueprint_id": 1,
"subject": "Mathematics",
"question_text": "Which coordinate accurately marks the point of inflection on the curve?",
"image_xml": "",
"correct_option": "A",
"explanation": "The point of inflection occurs where concavity changes sign at coordinate (0,0).",
"created_at": "2026-01-15 10:30:00",
"options": {
"A": "(0, 0) — Turning point coordinate threshold",
"B": "(50, 10) — Maximum boundary curve",
"C": "(100, 50) — Axis intercept",
"D": "(190, 10) — Endpoint"
}
}
]
}
Returned when the API key is invalid or missing entirely from the headers/query string.
{
"status": "error",
"code": 401,
"message": "Unauthorized: Invalid API Key or user account not found."
}
Returned when student accounts request questions without an active subscription or single access pass.
{
"status": "error",
"code": 403,
"message": "Access denied: Active subscription required to access subject question pools."
}