Back to Blog

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.

Avatar

How can we help?

We reply immediately

Hello! 👋 How can we help you today?