Back to Blog
WASSCE Past Questions JSON Ghana

WASSCE Past Questions JSON Ghana

If you're searching for WASSCE Past Questions JSON Ghana, you're probably not looking for another PDF.

You need something your software can actually read.

For example:

{
  "question": "Question text",
  "option": {
    "a": "First option",
    "b": "Second option",
    "c": "Third option",
    "d": "Fourth option"
  },
  "answer": "b",
  "solution": "Explanation...",
  "examtype": "WASSCE",
  "examyear": "2024"
}

That difference matters. A PDF is useful to a student reading a document. JSON is useful to a developer building a CBT app, mock examination platform, AI tutor or revision system.

SdashAPI provides WASSCE questions as JSON and currently supports Ghana-specific filtering using the country code GH. SdashAPI

Why Ghana WASSCE JSON is useful

Consider a developer building a simple Ghana WASSCE app.

With PDFs, the process can become:

Find PDF
   ↓
Extract questions
   ↓
Separate options
   ↓
Find answers
   ↓
Clean formatting
   ↓
Add year
   ↓
Add subject
   ↓
Convert everything to database records

With structured data, the application can instead consume question objects directly.

That makes features such as these much easier to build:

Past Questions
Mock Exams
Automatic Marking
Answer Explanations
Questions I Got Wrong
Performance Tracking
Topic Practice

SdashAPI's public site describes its data as REST/JSON and specifically positions it as an alternative to scraping PDFs or manually entering questions. SdashAPI

The actual SdashAPI JSON structure

The current SdashAPI documentation shows a WASSCE Mathematics response in this form:

{
  "status": 200,
  "data": {
    "id": 5102,
    "question": "Solve for x: 2x + 5 = 15",
    "section": null,
    "option": {
      "a": "2",
      "b": "5",
      "c": "10",
      "d": "20"
    },
    "answer": "b",
    "solution": "Subtract 5 from both sides: 2x = 10. Divide by 2: x = 5.",
    "image": null,
    "examtype": "WASSCE",
    "examyear": "2021",
    "university": null
  }
}

This is the documented response structure, not a made-up schema for this article. SdashAPI

So your code can work directly with properties such as:

question.question
question.option.a
question.option.b
question.answer
question.solution
question.examyear

Getting Ghana specifically

This is the important part.

Don't simply request WASSCE questions and assume they're Ghanaian.

SdashAPI currently recognises five WASSCE countries:

Nigeria          NG
Ghana            GH
Sierra Leone     SL
Liberia          LR
The Gambia       GM
``` :chatgpt-content-reference{index="3"}


For Ghana, use:

```text
GH

The documented Ghana request is:

GET /api/v4/q?type=wassce&country=GH&subject=mathematics
AccessToken: YOUR_ACCESS_TOKEN

Or as a complete request:

curl -X GET \
  "https://sdashapi.com/api/v4/q?type=wassce&country=GH&subject=mathematics" \
  -H "AccessToken: YOUR_ACCESS_TOKEN"

Country filtering for WASSCE is currently documented on SdashAPI's V4 question endpoint. SdashAPI

Don't guess the subjects either

Suppose you're creating this screen:

WASSCE Ghana

Choose Subject

Mathematics
English Language
Biology
Chemistry
Physics
Economics

Hard-coding the list works, but there's a better option.

SdashAPI provides:

GET https://sdashapi.com/api/countries/GH/subjects

For available Ghana years:

GET https://sdashapi.com/api/countries/GH/years

And for examinations:

GET https://sdashapi.com/api/countries/GH/exams

These country-specific discovery endpoints are part of the current API documentation. SdashAPI

That allows your app to build its selection screens from available data.

A React or JavaScript example

Your backend could request Ghana Mathematics questions like this:

async function getGhanaWassceQuestions() {
  const response = await fetch(
    "https://sdashapi.com/api/v4/q?type=wassce&country=GH&subject=mathematics",
    {
      headers: {
        AccessToken: process.env.SDASH_API_KEY
      }
    }
  );

  if (!response.ok) {
    throw new Error("Unable to load WASSCE questions");
  }

  return response.json();
}

Notice that the API key is coming from:

process.env.SDASH_API_KEY

rather than being written directly into public frontend code.

The current SdashAPI authentication system requires an AccessToken header for authenticated requests. SdashAPI

Then building the UI becomes straightforward

Once your application has parsed the JSON:

const result = await getGhanaWassceQuestions();

const question = result.data;

you can render:

<h2>{question.question}</h2>

{Object.entries(question.option).map(([letter, text]) => (
  text && (
    <button key={letter}>
      {letter.toUpperCase()}. {text}
    </button>
  )
))}

That's the practical benefit of JSON.

Your interface doesn't need to know how the original question was collected or stored. It simply understands a predictable object.

JSON also makes automatic marking easier

Suppose the student selects:

const selectedAnswer = "c";

and the question contains:

question.answer

Your application can determine whether the response is correct.

For a serious mock-exam system, though, avoid exposing the answer unnecessarily during the examination.

A better architecture is:

SdashAPI
   ↓
Your Backend
   ↓
Remove answer/solution from active exam payload
   ↓
Student completes mock
   ↓
Backend grades attempt
   ↓
Return result + explanations

This gives you greater control over exam mode.

Ghana WASSCE is not a dormant exam category

There's also a practical reason developers continue building around this examination.

WAEC Ghana's official site shows active 2026 WASSCE activity. In September 2026, the Council published information relating to withheld 2026 WASSCE School Candidate results and separate eligibility requirements for the 2027 WASSCE School Candidates examination. WAEC Ghana

So developers working on Ghanaian exam-preparation products are dealing with a current examination ecosystem, not merely an archive of old papers.

The more interesting product question becomes:

What can you do with the data besides showing old questions?

JSON can power an AI tutor too

Here's one possibility.

A student answers incorrectly.

Instead of simply displaying:

Wrong.
Answer: B

your application can use structured data to create:

Incorrect
   ↓
Show worked solution
   ↓
Identify related concept
   ↓
Give another related question

SdashAPI's current developer guides include a V4 similar-question endpoint:

GET https://sdashapi.com/api/v4/similar?id=QUESTION_ID&limit=3

The documented use case is retrieving related questions after a student attempts one, which can support continuous practice or tutoring experiences. SdashAPI

That creates a very different product from a basic past-question viewer.

Don't assume all years have identical Ghana coverage

SdashAPI's current coverage page reports:

  • 368,868+ questions overall
  • 23 WASSCE subjects
  • overall WASSCE coverage spanning 1988–2026
  • images available
  • explanations on approximately 74% of WASSCE data
  • Ghana listed as supported

But those overall WASSCE figures should not be interpreted as meaning every Ghanaian subject has data for every year. SdashAPI

Use:

GET /api/countries/GH/years

and:

GET /api/countries/GH/subjects

to determine what your application should actually offer.

That is more reliable than promising students every possible subject/year combination.

What about downloading the whole JSON database?

There's an important distinction between:

Using a JSON API

and:

Owning a complete JSON dataset.

With the API:

Your App
   ↓
Your Backend
   ↓
SdashAPI
   ↓
JSON Response

If you need a complete dataset stored in your own infrastructure:

Bulk JSON Dataset
       ↓
PostgreSQL / Firebase / MySQL
       ↓
Your Backend
       ↓
Your App

SdashAPI currently advertises bulk dataset licensing in JSON, CSV and SQL formats for teams that need the dataset offline. SdashAPI

That option makes more sense for projects requiring extensive offline access, custom data pipelines or their own question infrastructure.

You can test before paying

A developer doesn't need to purchase a large plan just to find out whether the data works with their application.

SdashAPI's current Sandbox plan provides:

2,000 API credits
V1 access
UTME + WASSCE
Development/testing use
No payment required to start
``` :chatgpt-content-reference{index="11"}


So you can first build:

```text
Ghana WASSCE
      ↓
Subject Selection
      ↓
Question Screen
      ↓
Answer Selection
      ↓
Scoring
      ↓
Results

and confirm that the product actually works.

When the project is ready to scale, SdashAPI Pricing lists the current production options.

For developers searching for WASSCE Past Questions JSON Ghana, the important distinction is simple: you don't necessarily need another downloadable document. You need Ghana-aware, machine-readable examination data that your software can query, parse and turn into whatever learning experience you're trying to build.

Avatar

How can we help?

We reply immediately

Hello! 👋 How can we help you today?