WASSCE API Liberia
If you are building an exam-preparation platform for Liberian students, you do not need to start by collecting WASSCE PDFs and manually turning every question into database records.
A WASSCE API Liberia can give your application structured examination data that it can display, mark and organise automatically.
The important part is making sure the data is actually identified as Liberia-specific WASSCE content, rather than treating every WAEC question in West Africa as interchangeable.
SdashAPI currently supports country-level WASSCE filtering for Liberia using the code LR. SdashAPI
Liberia is LR in SdashAPI
SdashAPI's current country system identifies Liberia as:
{
"code": "LR",
"name": "Liberia",
"exams": ["waec", "wassce"]
}
The same system currently recognises five WASSCE countries:
Nigeria NG
Ghana GH
Sierra Leone SL
Liberia LR
The Gambia GM
``` :chatgpt-content-reference{index="1"}
This gives developers a cleaner data model.
Instead of storing:
```json
{
"exam": "wassce",
"subject": "mathematics"
}
you can work with:
{
"country": "LR",
"exam": "wassce",
"subject": "mathematics"
}
That small difference becomes important when your application eventually supports more than one country.
How to request Liberia WASSCE questions
Country filtering is available through SdashAPI's V4 question system.
The current documentation shows the pattern:
GET /api/v4/q?type=wassce&country=COUNTRY_CODE&subject=SUBJECT
AccessToken: YOUR_ACCESS_TOKEN
For Liberia Mathematics, you can therefore request:
curl -X GET \
"https://sdashapi.com/api/v4/q?type=wassce&country=LR&subject=mathematics" \
-H "AccessToken: YOUR_ACCESS_TOKEN"
The documentation explicitly lists LR for Liberia and states that the country parameter on /api/v4/q is used to filter WASSCE questions by country. SdashAPI
One useful rule: don't hard-code everything
Imagine you launch with this:
const years = [
2026, 2025, 2024, 2023, 2022,
2021, 2020, 2019, 2018
];
It looks harmless.
But your interface is now claiming that your question source contains Liberia questions for every year in that list.
A better approach is to ask the data source.
SdashAPI provides country-level routes including:
GET /api/countries/LR/exams
GET /api/countries/LR/subjects
GET /api/countries/LR/years
``` :chatgpt-content-reference{index="3"}
This means your application can discover what is currently available for Liberia and construct its interface from that information.
## A Liberia WASSCE app could be very simple
You don't need fifty features for the first release.
Start with:
```text
WASSCE Liberia
Choose Subject
↓
Choose Year
↓
Start Practice
↓
Answer Questions
↓
See Result
↓
Review Mistakes
The application handles the experience.
SdashAPI handles the question-data layer.
Your architecture might look like:
Student
↓
Mobile App / Website
↓
Your Backend
↓
SdashAPI
↓
Liberia WASSCE Data
That separation is useful because changing your UI does not require rebuilding your entire question database.
Build the request from the student's choices
Suppose the student chooses:
Country: Liberia
Exam: WASSCE
Subject: Chemistry
Year: 2022
SdashAPI documents subject, type and year as question filters, while country filtering is available on V4 for WASSCE. Its general question API also supports batches of up to 50 questions per request. SdashAPI
In JavaScript, you can construct parameters safely with URLSearchParams:
const params = new URLSearchParams({
type: "wassce",
country: "LR",
subject: "chemistry",
year: "2022"
});
const response = await fetch(
`https://sdashapi.com/api/v4/q?${params}`,
{
headers: {
AccessToken: process.env.SDASH_API_KEY
}
}
);
const result = await response.json();
SdashAPI's own development guides recommend constructing multi-filter requests rather than querying a year or exam type in isolation. SdashAPI
What does the question data look like?
The current SdashAPI question schema includes fields for:
id
question
section
option
answer
solution
image
examtype
examyear
university
For example, option is returned as an object containing answer choices, while answer identifies the correct option and solution can contain the explanation or worked solution. SdashAPI
That lets your application turn one question record into:
QUESTION
Which of the following ...?
A. ...
B. ...
C. ...
D. ...
[ Previous ] [ Next ]
After submission, the same data can support:
Your answer: C
Correct answer: B
Explanation:
...
The API supplies structured content. You decide how students experience it.
Think beyond "past questions"
A Liberia-focused WASSCE product could have several modes using the same underlying data.
Year Practice lets a student work through questions associated with a selected year.
Mock Mode builds a timed session and hides answers until submission.
Revision Mode stores incorrectly answered question IDs and lets students attempt them again.
Explanation Mode concentrates on worked solutions rather than just showing the correct letter.
Progress Tracking can record results over time:
Chemistry
First attempt 48%
Second attempt 61%
Third attempt 70%
Latest attempt 77%
None of these require a completely different question bank.
They are different ways of using the same structured data.
Don't start the timer while questions are still downloading
This is a small technical detail that can make a big difference for students on slower connections.
Avoid:
Start Exam
↓
Timer starts
↓
Download questions
↓
Student waits...
Prefer:
Request Questions
↓
Validate Response
↓
Prepare Session
↓
Start Timer
You can also cache appropriate previously fetched question batches to reduce repeated network requests.
SdashAPI's current caching guide discusses both browser-side caching and server-side approaches such as Redis for repeated question requests. SdashAPI
For a Liberian education product where connectivity may vary between users, designing the application so every click does not require another API round trip is sensible.
API access and a full offline database are different things
There are two architectures developers often confuse.
API model
Your App
↓
Your Backend
↓
SdashAPI
You request what you need.
Full database model
Licensed Dataset
↓
Your Database
↓
Your Backend
↓
Students
If you're building a school system that must function without internet access, the second architecture might make more sense.
SdashAPI currently offers bulk dataset licensing in formats including JSON, CSV and SQL for teams that require the full dataset offline. SdashAPI
That is different from simply caching a few API responses for performance.
How much WASSCE data is available?
SdashAPI's live coverage page currently reports more than 368,868 questions across the platform.
For WASSCE specifically, it currently lists:
23 subjects
Overall range: 1988–2026
Explanations: approximately 74%
Images: available
API versions: V1–V4
Liberia is explicitly listed among the available WASSCE countries. SdashAPI
There is an important qualification, though.
Those are overall WASSCE statistics.
They do not mean every Liberian subject necessarily contains every year between 1988 and 2026.
Your application should use the Liberia-specific discovery endpoints and handle unavailable combinations gracefully.
Make missing data feel normal
Suppose a student requests a combination for which no questions currently exist.
SdashAPI documents 404 for cases where no questions match the supplied filters. SdashAPI
Don't show:
404 ERROR
Show something students understand:
No questions are currently available for this subject and year. Try another year.
Similarly, handle authentication and usage problems appropriately. The current API documentation identifies 401 for missing or invalid access tokens and 429 when the applicable quota has been exceeded. SdashAPI
You can test SdashAPI without paying first
A developer exploring this idea does not need to buy a production plan before writing the application.
SdashAPI's current Sandbox plan provides 2,000 free API credits for development and testing, with V1 access to UTME and WASSCE data. SdashAPI
That means you can first prove that this works:
Create Account
↓
Get Development Access
↓
Build Question Screen
↓
Build Scoring
↓
Add Liberia Support
↓
Test With Students
Only after you know the product is worth continuing do you need to think seriously about production capacity.
The current options are available on SdashAPI Pricing, while country and examination availability can be checked through SdashAPI Coverage.
For implementation, use the live SdashAPI Documentation rather than copying old endpoint examples from random tutorials.
A WASSCE API Liberia is ultimately infrastructure, not the finished education product. SdashAPI can handle the structured Liberia WASSCE question data underneath. Your job as the developer is to turn that data into something genuinely useful: fast practice, realistic mock exams, understandable solutions, progress tracking and a better revision experience for students.