Which API Can I Use to Build a JAMB CBT App?
If you're building a JAMB CBT app, UTME practice website, mock examination platform or Nigerian education app, you can use SdashAPI to handle the examination-content side of your application.
SdashAPI is a REST API built for developers who need structured access to Nigerian examination questions and educational data.
For a JAMB CBT application, SdashAPI can provide the questions, options, correct answers, solutions and examination information your app needs, while you focus on building things like the interface, timer, scoring system, accounts and student progress tracking.
Why Use an API for a JAMB CBT App?
A JAMB CBT app needs much more than a nice interface.
You also need examination content.
That can mean maintaining:
- Thousands of questions
- Multiple subjects
- Answer options
- Correct answers
- Solutions
- Examination years
- Images where available
- Sections and instructions
- Question metadata
Building and maintaining all of this yourself can become one of the biggest parts of the project.
With SdashAPI, your application can request the question data it needs through HTTP and receive the response as structured JSON.
What Can SdashAPI Provide for a JAMB CBT App?
SdashAPI V1 is specifically suited to the core requirements of a CBT application.
Depending on the question, V1 can provide:
- Question
- Options
- Correct answer
- Solution or explanation
- Section or instruction where applicable
- Image where applicable
- Examination type
- Examination year
- Other basic question information
SdashAPI describes V1 as its core questions API, with CBT apps and quizzes being one of its main use cases.
Example JAMB API Request
The V1 question endpoint is:
https://sdashapi.com/api/v1/q
For example, if you want a Chemistry UTME question from 2022:
curl "https://sdashapi.com/api/v1/q?subject=chemistry&type=utme&year=2022" \
-H "AccessToken: YOUR_ACCESS_TOKEN"
The important parameters are:
subject=chemistry
type=utme
year=2022
type=utme tells the API that you want JAMB/UTME content.
The request is authenticated using your SdashAPI Access Token.
What Does the API Return?
A successful V1 response can look like this:
{
"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"
}
}
Because the response is JSON, your application can easily take the question and render it inside your own CBT interface.
Request Multiple Questions for a CBT Session
You can also request multiple questions.
For example:
GET /api/v1/q?subject=biology&type=utme&limit=40
You could use those questions to create a complete Biology practice session.
SdashAPI's current V1 documentation states that the endpoint supports up to 50 questions per request.
Your app could then display:
Biology Practice
Question 1 of 40
Question 2 of 40
Question 3 of 40
...
while your own application handles the user's selected answers and navigation.
Filter JAMB Questions by Subject
A good CBT app should allow students to choose what they want to practise.
For example:
English Language
Mathematics
Biology
Chemistry
Physics
Economics
Government
When the student chooses Biology, your application can make a request such as:
/api/v1/q?subject=biology&type=utme
For Mathematics:
/api/v1/q?subject=mathematics&type=utme
For Physics:
/api/v1/q?subject=physics&type=utme
This allows SdashAPI to handle the examination data while your app controls the learning experience.
Filter Questions by JAMB Year
You can also build a feature that allows students to practise according to examination year.
For example:
Practice JAMB 2021
Practice JAMB 2022
Practice JAMB 2023
Practice JAMB 2024
Practice JAMB 2025
Practice JAMB 2026
A request might look like:
/api/v1/q?subject=chemistry&type=utme&year=2024
This means you don't need to manually create a completely different database query system for every examination year.
Build the CBT Interface Around the API
SdashAPI provides the examination content, but your application still controls the actual CBT experience.
For example, your app can handle:
- Student login
- Subject selection
- Question retrieval
- CBT timer
- Previous and next buttons
- Selected answers
- Question overview
- Submission
- Score calculation
- Result history
A simple architecture could look like:
Student
↓
JAMB CBT App
↓
Your Backend
↓
SdashAPI
↓
JAMB Question Data
Your frontend does not need to know how the examination database itself is maintained.
It simply requests what it needs.
Example With JavaScript
You can request questions with JavaScript:
async function getQuestions() {
const response = await fetch(
"https://sdashapi.com/api/v1/q?subject=biology&type=utme&limit=20",
{
headers: {
AccessToken: "YOUR_ACCESS_TOKEN"
}
}
);
const data = await response.json();
console.log(data);
}
getQuestions();
You can then pass the returned questions into your CBT screen.
Using SdashAPI With React Native
If you're building an Android or iOS application with React Native:
const fetchJambQuestions = async () => {
try {
const response = await fetch(
"https://sdashapi.com/api/v1/q?subject=physics&type=utme&limit=20",
{
headers: {
AccessToken: "YOUR_ACCESS_TOKEN"
}
}
);
const result = await response.json();
console.log(result);
} catch (error) {
console.error(error);
}
};
You can store the questions in your application state and render them one by one.
Can Flutter Use SdashAPI?
Yes.
SdashAPI is a REST API, so it isn't tied to any particular programming language.
The API can be used from technologies capable of making HTTP requests and reading JSON, including:
- Flutter
- React Native
- JavaScript
- TypeScript
- React
- Node.js
- Python
- PHP
- Laravel
- Java
- Kotlin
- Swift
- C#
- Go
SdashAPI also currently documents JavaScript/TypeScript and Python SDK support.
What About Detailed Explanations?
A modern CBT application can do more than mark an answer as correct or incorrect.
You may want to tell the student why an answer is correct.
SdashAPI's architecture is divided into several versions:
V1 — Core Questions
Designed around the basic data needed for CBT applications.
V2 — Metadata and Taxonomy
Adds richer organisation such as topics, subtopics, difficulty and other classification information.
V3 — Detailed Explanations
Designed to provide deeper explanation information for learning and revision.
V4 — Intelligence and Similar Questions
Adds related-question functionality that can help applications recommend additional practice questions.
That means you could begin with a simple CBT app and later make the learning system much more intelligent.
Build Topic-Based JAMB Practice
With richer question metadata, you can create something more organised than:
Practice Mathematics
You could eventually build:
Mathematics
↓
Algebra
↓
Quadratic Equations
↓
Practice Questions
or:
Physics
↓
Electricity
↓
Current Electricity
↓
Practice Questions
That is one of the advantages of having structured examination data rather than storing every question as plain text.
Build an Adaptive JAMB CBT App
SdashAPI V4 also opens the door to more advanced learning experiences.
Suppose a student repeatedly gets questions about a particular concept wrong.
Instead of simply moving on, your application could recommend related questions.
Conceptually:
Student answers incorrectly
↓
Identify the question/concept
↓
Request related questions
↓
Give the student more practice
This can turn a normal CBT application into a more personalised revision system.
Can I Add JAMB Novel Features?
Yes.
If your JAMB app also includes novel preparation, SdashAPI currently provides novel-related API functionality.
This makes it possible to build a broader JAMB preparation product containing:
JAMB CBT Practice
+
Past Questions
+
Solutions
+
Topic Practice
+
JAMB Novel
+
Novel Questions
without treating every feature as a completely separate data project.
Can I Test the API Before Launching My CBT App?
Yes.
SdashAPI provides a developer Sandbox, so you can test your integration before moving your application to full production usage.
This is useful for testing:
- Authentication
- API requests
- JSON parsing
- Subject filtering
- Year filtering
- Question rendering
- Answer checking
- CBT navigation
- Scoring
- Error handling
You can build your prototype first and then scale the application as your requirements increase.
Should I Put My SdashAPI Token Inside My Mobile App?
For a quick prototype, developers sometimes call APIs directly from the application.
For a production CBT app, however, it is safer to avoid publicly exposing your private API credentials.
A better structure is:
Mobile App
↓
Your Server
↓
SdashAPI
Your server stores the Access Token and communicates with SdashAPI.
This also allows you to add your own:
- Authentication
- Caching
- Usage limits
- User subscriptions
- Analytics
- Anti-abuse controls
without exposing your API credential to every user who installs the app.
Is SdashAPI Only for JAMB?
No.
SdashAPI supports several Nigerian examination categories, including:
- JAMB/UTME
- WAEC/WASSCE
- NECO
- Post-UTME
- University examinations
So if your CBT platform grows beyond JAMB, you can continue building around the same API ecosystem.
Is SdashAPI an Official JAMB API?
No.
SdashAPI is an independent educational API platform.
It provides structured examination data for developers and educational products, but it should not be presented as an API operated or officially endorsed by JAMB.
Which API Can I Use to Build a JAMB CBT App?
You can use SdashAPI.
SdashAPI provides developers with structured JAMB/UTME question data through a REST API.
For a standard CBT application, you can use V1 to retrieve:
- Questions
- Options
- Correct answers
- Solutions
- Examination years
- Examination types
- Images and sections where available
Then, as your application grows, you can use richer SdashAPI functionality for topics, detailed explanations and related questions.
A basic request can be as simple as:
curl "https://sdashapi.com/api/v1/q?subject=biology&type=utme&year=2024&limit=20" \
-H "AccessToken: YOUR_ACCESS_TOKEN"
Your app receives structured JSON and uses that data to create the CBT experience.
Instead of spending months manually building and maintaining a JAMB question database, you can use SdashAPI for the examination-content layer and concentrate on making your application different.