SdashAPI V1, V2, V3 and V4: The New Nigerian Exam API for Developers
SdashAPI has completed a major API upgrade, introducing V1, V2, V3 and V4 to give developers more structured examination data, richer explanations and intelligent question discovery.
Building a JAMB CBT platform, WAEC practice application, NECO revision app, Post-UTME platform or educational product requires more than a good user interface.
You need reliable examination data.
You need questions, options, answers, solutions, subjects, years, topics and increasingly, deeper information that can help your application understand how questions are related.
That is why SdashAPI has introduced a new API architecture built around four distinct generations:
V1: Core Questions V2: Metadata and Taxonomy V3: Explanations V4: Intelligence and Similar Questions
The new architecture gives developers a clearer path from simply retrieving examination questions to building more advanced learning experiences.
What Is SdashAPI?
SdashAPI is a REST API built for developers who need access to Nigerian past examination questions and educational data.
The platform provides structured access to examination content covering UTME, WASSCE, NECO, Post-UTME and university examinations.
The API returns JSON responses and supports filtering questions by subject, examination type, year and other parameters.
The platform currently advertises more than 388,000 past questions, 31 subjects, 6 examination types, and coverage spanning 1988 to 2026.
Instead of manually collecting questions, converting them into JSON and maintaining a large examination database yourself, your application can communicate with SdashAPI through standard HTTP requests.
The New SdashAPI API Architecture
The biggest change is the introduction of separate API versions.
Each version has a specific purpose.
| Version | Purpose | Best For |
|---|---|---|
| V1 | Core question data | CBT apps and quizzes |
| V2 | Metadata and taxonomy | Topic-based learning |
| V3 | Detailed explanations | Learning and revision |
| V4 | Similar-question intelligence | Adaptive practice |
This means developers can choose the amount of information their application needs.
V1: The Core Questions API
V1 is the foundation of SdashAPI.
The core endpoint is:
GET /api/v1/q
You can retrieve a random question:
curl "https://sdashapi.com/api/v1/q?subject=biology" \
-H "AccessToken: YOUR_ACCESS_TOKEN"
Or request a specific examination type and year:
curl "https://sdashapi.com/api/v1/q?subject=chemistry&type=utme&year=2022" \
-H "AccessToken: YOUR_ACCESS_TOKEN"
A successful response looks like:
{
"status": 200,
"data": {
"id": 4821,
"question": "Which of the following is the chemical formula for table salt?",
"section": null,
"option": {
"a": "NaCl",
"b": "KCl",
"c": "CaCO3",
"d": "NaOH"
},
"answer": "a",
"solution": "NaCl is sodium chloride.",
"image": null,
"examtype": "UTME",
"examyear": "2022"
}
}
The response contains the essential information required to build a traditional CBT experience.
Your application gets the question, options, correct answer, solution, examination type and year in a structured format.
Filtering Questions
Developers can combine filters to retrieve the exact type of content they need.
For example:
GET /api/v1/q?subject=mathematics&type=wassce&year=2021
You can also request multiple questions:
GET /api/v1/q?limit=10
The V1 endpoint supports a maximum of 50 questions per request.
This makes V1 suitable for applications such as:
- JAMB CBT platforms
- WAEC practice apps
- NECO revision platforms
- Post-UTME applications
- Quiz applications
- Past question websites
- University examination practice systems
V2: Metadata and Taxonomy
V2 is where SdashAPI moves beyond simply returning a question.
The V2 endpoint is:
GET /api/v2/q
V2 introduces additional metadata that can help applications understand the academic context of a question.
For example:
{
"id": 8931,
"question": "Which of the following compounds is an alkane?",
"metadata": {
"topic": "Organic Chemistry",
"subtopic": "Alkanes",
"difficulty": "medium",
"type": "MCQ",
"skill": "Recall",
"tags": [
"hydrocarbons",
"covalent"
],
"passage": null
}
}
This additional layer is important because educational applications increasingly need to organize questions by concept rather than only by examination and year.
For example, instead of creating a quiz called:
"2022 Chemistry Questions"
a developer can build:
"Practice Organic Chemistry"
or:
"Medium Difficulty Questions on Alkanes"
or:
"Test Your Knowledge of Hydrocarbons"
That is the difference between simply storing questions and actually structuring educational data.
What V2 Adds
V2 can provide information such as:
- Topic
- Subtopic
- Difficulty
- Question type
- Skill
- Tags
- Passage information
This makes V2 particularly useful for personalized learning systems, topic-based revision and more advanced CBT platforms.
V3: Detailed Explanations
Getting an answer wrong is only part of the learning process.
The next question is:
Why is the answer wrong?
V3 introduces a detailed explanation layer.
The endpoint is:
GET /api/v3/q
V3 builds on the information available in V2 and adds an explanation object.
Example:
{
"id": 8931,
"question": "Which of the following compounds is an alkane?",
"metadata": {
"topic": "Organic Chemistry",
"subtopic": "Alkanes",
"difficulty": "medium",
"type": "MCQ"
},
"explanation": {
"summary": "An alkane is a saturated hydrocarbon containing only single bonds.",
"detailed": "Alkanes contain carbon and hydrogen atoms connected by single covalent bonds.",
"steps": [
"Identify the compounds containing only carbon and hydrogen.",
"Check whether the carbon atoms are connected only by single bonds.",
"The compound satisfying these conditions is the alkane."
],
"why_correct": "Option B is correct because it represents a saturated hydrocarbon.",
"why_others_wrong": {
"a": "This compound contains a double bond.",
"c": "This compound contains a triple bond."
}
}
}
This changes what developers can build.
A normal CBT application might display:
Incorrect. Correct answer: B.
A V3-powered application can instead display:
Incorrect. Here's why.
The application can explain the answer, show the reasoning and help the student understand the concept.
That makes V3 useful for:
- Revision applications
- AI-powered study tools
- Smart CBT systems
- Educational assistants
- Learning management systems
- Exam preparation platforms
The official documentation describes V3 as providing everything in V2 alongside a detailed AI-generated or expert explanation block.
V4: Intelligent Similar Questions
V4 introduces another major capability.
Instead of stopping after showing one question, an application can discover related questions.
The V4 question endpoint is:
GET /api/v4/q
V4 also introduces:
GET /api/v4/similar?id=123&limit=5
For example:
curl "https://sdashapi.com/api/v4/similar?id=123&limit=5" \
-H "AccessToken: YOUR_ACCESS_TOKEN"
A response can look like:
{
"status": 200,
"data": [
{
"id": 8932,
"relationship_type": "similar_concept",
"score": 0.95,
"question": "Which of the following is another example of an alkane?",
"answer": "c"
}
]
}
The score can help applications determine how closely a returned question is related to the original question.
This creates opportunities for features such as:
Practice another question like this
More questions on this concept
Recommended questions
Strengthen this topic
Questions related to your mistake
Instead of a student simply moving from Question 1 to Question 2, the application can dynamically guide the student toward related content.
This is one of the biggest differences between a traditional question bank and an intelligent examination platform.
V1 vs V2 vs V3 vs V4
The easiest way to understand the progression is to think about what your application learns from each version.
V1
Your application knows:
What is the question?
V2
Your application knows:
What topic does this question belong to?
V3
Your application knows:
Why is this answer correct?
V4
Your application can discover:
What other questions are related to this one?
Each version adds another layer of functionality.
Building a JAMB CBT App With SdashAPI
Imagine you are building a JAMB CBT application.
With V1, you could retrieve a question:
GET /api/v1/q?subject=english&type=utme&year=2024
Your application receives the question and options.
With V2, you can organize the question according to its topic and difficulty.
With V3, you can explain the answer when the student finishes the question.
With V4, you can recommend another question related to the one the student just answered.
The same backend API can therefore support a simple CBT application and a much more advanced learning platform.
Using SdashAPI With JavaScript
SdashAPI also provides an official JavaScript and TypeScript SDK.
Installation:
npm install @sdashapis/sdk
Then initialize the client:
import { SdashAPI } from '@sdashapis/sdk';
const api = new SdashAPI({
apiKey: 'YOUR_ACCESS_TOKEN'
});
You can then request questions:
const question = await api.getQuestions({
subject: 'chemistry',
type: 'utme',
year: 2022
});
console.log(question);
You can also retrieve multiple questions:
const questions = await api.getQuestions({
limit: 10
});
console.log(questions);
The official documentation currently provides JavaScript and TypeScript SDK support alongside a Python SDK.
Using SdashAPI With Python
Python developers can install the official SDK with:
pip3 install sdashapis-sdk
The API can also be accessed directly using Python's requests library:
import requests
url = "https://sdashapi.com/api/v1/q"
headers = {
"AccessToken": "YOUR_ACCESS_TOKEN"
}
params = {
"subject": "biology",
"type": "utme",
"year": "2024"
}
response = requests.get(
url,
headers=headers,
params=params
)
data = response.json()
print(data)
This makes it possible to integrate SdashAPI into Python applications, backend services, data-processing systems and educational platforms.
Authentication
SdashAPI uses an AccessToken to authenticate API requests.
The recommended approach is to send the token through the request header:
AccessToken: YOUR_ACCESS_TOKEN
For example:
curl "https://sdashapi.com/api/v1/q?subject=biology" \
-H "AccessToken: YOUR_ACCESS_TOKEN"
The documentation also supports passing the token as a query parameter for quick browser testing, but using the HTTP header is recommended for production applications.
More Than Just Questions
One of the important ideas behind the new SdashAPI architecture is that examination data should not be treated as a collection of plain text questions.
A useful educational dataset should be structured.
A question can have:
- An examination
- A year
- A subject
- A topic
- A subtopic
- A difficulty level
- A skill
- Tags
- An answer
- A solution
- An explanation
- Related questions
The V1 to V4 architecture progressively exposes more of that information to developers.
That gives developers the building blocks required to create more sophisticated educational products.
What Can You Build With the New SdashAPI?
The new architecture can support many different types of products.
JAMB CBT Platforms
Build UTME practice applications with questions organized by subject, year and examination type.
WAEC Practice Applications
Create WASSCE revision platforms with structured question data.
NECO Applications
Build dedicated NECO practice and revision systems.
Post-UTME Platforms
Create university screening preparation applications.
University Examination Platforms
Build CBT systems around university-level examination content.
Quiz Applications
Create random quizzes, topic quizzes and difficulty-based challenges.
AI Education Products
Combine questions, metadata and explanations with your own AI-powered learning experience.
Adaptive Learning Platforms
Use V4 related-question functionality to recommend additional questions based on what students are currently practicing.
Designed for Developers
The new SdashAPI architecture is designed around a simple principle:
Give developers structured data and let them build the experience.
SdashAPI handles the examination content layer while developers can concentrate on their applications.
Your frontend can be React, React Native, Flutter, Vue, Angular or another technology.
Your backend can be Node.js, Python, PHP, Laravel or another server-side technology.
As long as your application can make HTTP requests and process JSON, it can communicate with the API.
Explore the New SdashAPI Documentation
The complete API reference contains the available endpoints, parameters, authentication instructions, response structures, SDK information and error codes.
Developers can explore the documentation and start testing the API here:
The documentation includes examples for cURL, JavaScript, PHP and Python, as well as JavaScript/TypeScript and Python SDK information.
The Next Generation of SdashAPI
The introduction of V1, V2, V3 and V4 marks a major step in the evolution of SdashAPI.
V1 provides the foundation.
V2 adds structure.
V3 adds deeper explanations.
V4 adds intelligence through related-question discovery.
Together, these versions provide developers with more than a simple past questions endpoint.
They provide a foundation for building the next generation of Nigerian educational applications.
Whether you are building a JAMB CBT app, WAEC practice platform, NECO revision application, Post-UTME system, university examination platform or an AI-powered learning product, SdashAPI gives you a structured way to integrate Nigerian examination content into your application.
The new SdashAPI architecture is ready for developers.
Explore the SdashAPI API Documentation
Frequently Asked Questions
What is SdashAPI?
SdashAPI is a REST API that provides developers with structured access to Nigerian past examination questions, answers and solutions.
What examinations does SdashAPI support?
SdashAPI supports examination categories including UTME, WASSCE, NECO, Post-UTME and university examinations.
What is SdashAPI V2?
SdashAPI V2 adds metadata and taxonomy information such as topics, subtopics, difficulty, skills, tags and passage information.
What is SdashAPI V3?
SdashAPI V3 builds on V2 by adding detailed explanation data, including summaries, step-by-step explanations and reasons why answers are correct or incorrect.
What is SdashAPI V4?
SdashAPI V4 introduces intelligence features, including a similar-question endpoint that can return questions related to a specific question.
Can I use SdashAPI for a JAMB CBT application?
Yes. SdashAPI provides UTME questions and filtering capabilities that can be integrated into CBT applications.
Does SdashAPI return JSON?
Yes. SdashAPI is a REST API and its responses are returned in JSON format.
What programming languages can I use?
You can make HTTP requests from virtually any programming language. SdashAPI also currently provides JavaScript/TypeScript and Python SDKs.
Where can I find the documentation?
The complete documentation is available at https://sdashapi.com/docs.