Back to Blog
NECO past questions API

NECO past questions API

If you are building a NECO CBT application, examination practice website, school learning platform or EdTech product, you will eventually need a reliable way to provide students with questions.

For a small prototype, manually entering a few questions may work. For a real application covering several subjects and examination years, that approach quickly becomes difficult to maintain.

A NECO past questions API gives developers another option. Your application can request structured NECO question data when it is needed instead of manually creating and maintaining the entire question bank yourself.

This allows you to focus on the actual product you are building: the CBT interface, student accounts, examination timer, scoring, analytics, revision tools and other features.

SdashAPI provides structured examination data that developers can integrate into applications, including NECO coverage alongside other supported examinations.

What is a NECO past questions API?

A NECO past questions API is an application programming interface that allows software to retrieve NECO examination questions programmatically.

Instead of storing a question as a paragraph inside a document, the information is separated into fields that software can understand.

For example:

{
  "id": 38472,
  "question": "Which of the following best describes...",
  "option": {
    "a": "Option A",
    "b": "Option B",
    "c": "Option C",
    "d": "Option D"
  },
  "answer": "c",
  "solution": "Explanation of the correct answer.",
  "examtype": "NECO",
  "examyear": "2023",
  "image": null
}

Your application can read those fields individually.

It can display question as the question.

It can turn the values inside option into selectable answers.

It can keep answer hidden until the examination has been submitted.

It can display solution during review.

That is the main advantage of structured examination data.

Why PDFs are different from an API

A PDF containing NECO past questions is designed primarily for people to read.

An API response is designed for software to process.

Suppose you have a PDF containing 100 Chemistry questions.

A student can open the PDF and read it immediately.

Your application cannot easily determine:

Where does Question 17 begin?

Which four options belong to Question 17?

Which option is correct?

Which year is the question from?

Does the question have an image?

What explanation belongs to it?

Someone first needs to convert that information into structured data.

If you are working across many subjects and years, that becomes a substantial project by itself.

With an API, the information is already delivered in a predictable structure.

The actual problem developers are solving

It is easy to describe a CBT application as:

Show students questions and calculate their scores.

But there are two separate systems involved.

The first is your application.

It handles things such as:

Registration
Login
Dashboard
Subscriptions
CBT interface
Timer
Question navigation
Student answers
Scoring
Results
Analytics
Revision

The second is your question-data infrastructure.

It deals with:

Questions
Options
Answers
Explanations
Years
Subjects
Topics
Images
Passages
Question IDs
Metadata

Trying to build both systems simultaneously can increase the amount of work considerably.

A NECO past questions API allows you to use an existing question-data layer while concentrating on your own application.

How a NECO questions API works

Suppose a student wants to practise NECO Economics.

The flow might look like:

Student selects NECO
        ↓
Student selects Economics
        ↓
Application sends request
        ↓
API finds matching questions
        ↓
Structured JSON is returned
        ↓
Application creates practice session

If the student also selects a year, your application can include that requirement.

Conceptually:

exam = neco
subject = economics
year = 2023

The API then searches for questions matching those parameters.

Building a NECO CBT application

Imagine you're creating an application with the following screen:

Start Practice

Examination
[ NECO ]

Subject
[ Biology ]

Year
[ 2023 ]

Number of Questions
[ 30 ]

[ START PRACTICE ]

Once the student taps Start Practice, your backend requests the appropriate question data.

After receiving the response, the application can create an examination session.

The student might see:

NECO BIOLOGY

Question 1 of 30

Which of the following...

A. ...
B. ...
C. ...
D. ...

Previous                     Next

Time Remaining: 24:51

When the student selects an answer, your application records it.

For example:

studentAnswers[question.id] = "c";

The next question is displayed without needing to redesign the underlying data.

At submission, your application compares the selected answers with the correct answers returned for the session.

The API does not determine your product

Two developers can use the same examination-data API and create completely different products.

One developer might build a simple NECO practice website.

Another might build a school CBT platform.

Another might build an adaptive-learning application.

Another could build a mobile application that tracks weak topics.

Another might create an AI-assisted revision platform.

The question source is only one component.

Your product can still determine:

  • How students practise
  • How long examinations last
  • How scoring works
  • Whether explanations appear immediately
  • Whether students can bookmark questions
  • Whether teachers can create tests
  • How subscriptions work
  • How performance is analysed
  • How revision recommendations are generated

This is why using an API does not remove your ability to differentiate your product.

What information should a NECO past questions API contain?

For a basic CBT application, you normally need at least:

Question text

The question presented to the student.

Options

The possible answers.

Correct answer

Required for automatic marking.

Subject

Needed for filtering and organisation.

Examination year

Useful for year-based practice.

Question ID

Useful for tracking, reporting and analytics.

More advanced products may also need explanations, passages, images, topics, subtopics, difficulty levels and other metadata.

Before choosing any question API, developers should inspect the actual response structure rather than looking only at the total number of questions advertised.

Why explanations matter

There is a difference between an examination simulator and a learning platform.

An examination simulator can simply tell the student:

Your answer: B
Correct answer: D

A learning platform should ideally be able to explain why D is correct.

For example:

Your answer: B

Correct answer: D

Explanation:
[Detailed explanation]

This turns a failed question into a learning opportunity.

If explanations are important to your product, make sure the API version or dataset you choose contains enough information to support that experience.

Topic information can make your app much smarter

Suppose a student answers 100 questions and gets 30 wrong.

A normal CBT application might simply show:

Score: 70%

A more useful application can examine those 30 mistakes.

Perhaps:

12 mistakes → Genetics
8 mistakes → Ecology
6 mistakes → Reproduction
4 mistakes → Other topics

Now your application can say:

Your weakest area is Genetics. Practise Genetics next.

To build features like this efficiently, structured topic and metadata information becomes valuable.

Instead of treating every question as an isolated object, your application can understand what the question is testing.

Difficulty information can improve practice sessions

Difficulty metadata can also be useful.

Your application could offer:

Practice Mode

[ Easy ]
[ Normal ]
[ Difficult ]
[ Mixed ]

Or it could adjust automatically.

For example:

Student answers several questions correctly
             ↓
Difficulty gradually increases
             ↓
Student begins struggling
             ↓
System adjusts practice

This is a more advanced use case, but it shows why developers should think beyond simply obtaining question text.

NECO questions with images

Some questions cannot be represented properly using text alone.

A question may reference:

  • Diagram
  • Graph
  • Table
  • Illustration
  • Map
  • Scientific apparatus
  • Mathematical figure

For example:

Study the diagram above and answer Questions 12 and 13.

Without the diagram, the question is incomplete.

Your application therefore needs to handle something such as:

{
  "question": "Study the diagram and identify the labelled part.",
  "image": "https://example.com/question-image.jpg"
}

Your frontend can check:

if (question.image) {
    // Display image
}

and skip the image component when the field is empty.

Testing this before launch is important.

Passages also need proper handling

English and other passage-based questions create another challenge.

Several questions may depend on one passage.

Your application should preserve that relationship.

For example:

PASSAGE

[Long passage...]

Question 1
...

Question 2
...

Question 3
...

A badly structured dataset can separate the questions from the passage they depend on.

When evaluating a NECO question source, developers should therefore check whether passage information is available and how it is represented.

Using SdashAPI for NECO question data

SdashAPI provides an examination-data API designed for developers building educational applications.

A developer can request questions based on supported filters rather than downloading an entire database for every operation.

The general idea is:

Your Application
       ↓
Your Backend
       ↓
SdashAPI
       ↓
NECO Question Data
       ↓
Your Backend
       ↓
Your Application

You can check currently available examination coverage through the SdashAPI Coverage Page.

This is worth checking before designing a feature around a particular subject or examination year.

Don't assume all subjects and years have identical coverage

Historical question databases are rarely perfectly symmetrical.

For example, you shouldn't automatically assume:

NECO Biology 2015 = 50 questions
NECO Biology 2016 = 50 questions
NECO Biology 2017 = 50 questions

Coverage can vary.

Your application should therefore handle the actual number returned.

If the student requests 50 questions and only 37 suitable questions are available, your software needs a sensible fallback.

You might tell the student:

37 questions are available for this selection.

Or allow the student to include multiple years.

Good application design does not assume the underlying dataset is perfectly uniform.

Test your integration before building around it

Before creating an entire NECO practice platform, prove that the basic integration works.

Start with one question.

Make sure you can:

Request it
Receive it
Parse it
Display it
Select an answer
Submit it
Mark it
Display the explanation

Then move to multiple questions.

After that, add filters.

Then add timers and examination sessions.

This incremental approach makes debugging much easier.

Start development with 2,000 free credits

SdashAPI provides developers with 2,000 free credits for testing.

That means you don't have to immediately purchase a large question bank simply because you're experimenting with a NECO CBT idea.

You can use the 2,000 free credits to work on the integration and understand how the question data behaves inside your application.

For example:

Create SdashAPI account
        ↓
Get 2,000 free credits
        ↓
Generate development API key
        ↓
Connect your application
        ↓
Test NECO questions
        ↓
Build CBT functionality

The purpose is development and testing.

You can determine whether the API suits your architecture before moving your application into production.

Start from the SdashAPI Website.

Use a separate production API key

Your development credentials and production credentials do not necessarily need to be the same.

During development:

Local/Test Application
        ↓
Development API Key
        ↓
SdashAPI

Once your application is ready:

Live Application
        ↓
Your Production Backend
        ↓
Production API Key
        ↓
SdashAPI

Separating them can make credential management easier.

If you later need to revoke your development key, your live application does not have to depend on it.

Don't expose your production key unnecessarily

A production API key should be treated like a credential.

Avoid putting it directly inside public frontend code when a backend architecture is available.

Instead of:

Mobile App → SdashAPI

consider:

Mobile App
    ↓
Your Backend
    ↓
SdashAPI

Your server keeps the API credentials.

The mobile application communicates with your server.

This also allows you to implement your own:

Authentication
Usage controls
Subscriptions
Caching
Logging
Rate limiting
Analytics

before returning data to the student.

What about React Native, Flutter and web applications?

A REST API is not tied to one framework.

A NECO past questions API can be integrated into software built with technologies such as:

React
React Native
Next.js
Vue
Flutter
PHP
Laravel
Node.js
Python
Java
C#
Native Android

The basic requirement is the ability to make HTTP requests and process JSON responses.

Your choice of frontend framework doesn't determine whether structured examination data can be used.

NECO API for school CBT software

A NECO question API can also be useful when building software for schools.

For example, a teacher could create a mock examination:

Create Examination

Subject:
Biology

Source:
NECO Practice Questions

Years:
2021–2025

Number:
40 Questions

Duration:
45 Minutes

Your software selects the appropriate questions and creates the examination.

Students write the test.

Your system handles:

Authentication
Timer
Answer submission
Automatic marking
Results
Class performance

The question API handles the question-data layer.

NECO API for examination preparation apps

For a student-facing application, you could provide several modes.

For example:

Quick Practice
10 Questions

Standard Practice
30 Questions

Mock Examination
Full timed session

Topic Practice
Choose a topic

Past Questions
Choose a year

All of these features can use the same underlying question infrastructure.

The difference is how your application selects and presents the data.

NECO API for AI tutoring applications

Structured examination data can also become input for more advanced educational systems.

Suppose a student repeatedly fails questions in one area.

Your application could detect the pattern and recommend targeted learning.

For example:

Student attempts 80 questions
        ↓
Application records mistakes
        ↓
Most mistakes belong to one topic
        ↓
Weak topic identified
        ↓
Application recommends revision
        ↓
New questions target that topic

If your question data includes useful metadata, you can build these systems without manually categorising every question yourself.

API access versus buying a NECO database

A common developer question is whether to use an API or buy the complete question database.

The answer depends on your architecture.

With an API:

Your Application
      ↓
Your Backend
      ↓
API Provider
      ↓
Question Data

You don't maintain the complete source database yourself.

With a bulk dataset:

Licensed Question Dataset
        ↓
Your Database
        ↓
Your Backend
        ↓
Your Application

You are responsible for hosting, indexing and maintaining the data under the relevant licence.

A bulk dataset may make sense for projects requiring extensive offline functionality or specific infrastructure arrangements.

API access can be simpler for applications that want managed question access without maintaining the entire dataset.

For bulk or unusual data requirements, developers can explain their project through the SdashAPI Contact Page.

What happens after the 2,000 free credits?

The free credits are intended to give you room to develop and test.

Once your product is ready for actual users, estimate your expected usage.

For example:

500 students

× 40 questions per session

× 4 sessions per month

= 80,000 question interactions

This type of calculation helps you understand the scale of your application.

You can then compare available production options on the SdashAPI Pricing Page.

If your application is starting small, you don't necessarily need to design your infrastructure around the usage of a platform with hundreds of thousands of students.

Start according to your actual requirements and scale when the product grows.

Build proper error handling

Never assume every request will succeed.

Your application should be prepared for:

No internet connection

Authentication error

No matching questions

Quota exhausted

Server error

Request timeout

Invalid subject

Unsupported year

Students should not see raw technical errors.

Instead of:

TypeError: Cannot read properties of undefined

show:

We couldn't load your questions. Please try again.

If no matching questions exist:

No questions are currently available for this selection. Try another year.

Small details like this make a CBT application feel significantly more reliable.

Avoid unnecessary API requests

If you're creating a 40-question examination, it is usually unnecessary to request a new question every time the student taps Next.

A better approach is:

Request examination questions
        ↓
Receive question batch
        ↓
Create examination session
        ↓
Navigate locally
        ↓
Submit when completed

This provides a smoother experience and reduces unnecessary network requests.

Your application can also decide how to recover if the student's connection disappears after the session has started.

Think about caching carefully

Caching can improve performance, but it should be implemented according to the API provider's terms and your licence.

Useful temporary caching may reduce repeated network requests.

Permanent storage of an entire question database is a different requirement.

Don't assume ordinary API access automatically gives permission to permanently copy and redistribute the underlying dataset.

If your architecture depends heavily on offline storage, discuss that requirement before launch.

The SdashAPI Contact Page can be used for questions about unusual implementation or data requirements.

Keep question IDs when storing student activity

Suppose a student answers:

Question ID: 38472
Selected: B
Correct: C

Saving the question ID allows you to create useful features later.

You can determine:

Questions frequently answered incorrectly

Questions a student bookmarked

Questions previously attempted

Questions reported by users

Questions requiring review

Questions to avoid repeating immediately

Without stable identifiers, these features become much harder.

Add a report-question feature

Educational data needs feedback.

If a student thinks an answer is wrong, give them a way to report it.

For example:

Report this question

What's wrong?

[ ] Question is incomplete
[ ] Answer appears incorrect
[ ] Image is missing
[ ] Explanation needs correction
[ ] Formatting problem
[ ] Other

Send the question ID with the report.

That is far more useful than receiving a support message saying:

One of your Biology questions is wrong.

Developers using SdashAPI can also use the SdashAPI Community for discussions or the SdashAPI Contact Page when direct support is required.

Check coverage before promising features

Before advertising:

All NECO subjects and all years available

verify the actual coverage first.

Historical data availability can differ by subject and year.

The SdashAPI Coverage Page provides a place to review currently available exam data.

Your own application can also dynamically show only combinations that are actually available.

Instead of presenting every possible year and then returning an error, your frontend could populate the year selector based on supported data.

That creates a better experience.

Is SdashAPI an official NECO API?

No.

SdashAPI is an independent examination-data service for developers. It is not the official API of the National Examinations Council.

This should be clear in your own application as well.

Using NECO practice data doesn't mean your application should present itself as an official NECO product.

Clear branding avoids confusion for students.

What should you check before choosing a NECO past questions API?

Don't make the decision based only on the headline number of questions.

Look at the actual product.

Check whether it provides the subjects and years your application needs.

Inspect the JSON.

Check the quality of options and answers.

Determine whether explanations are available.

Check how passages are handled.

Look at images and diagrams.

Understand API limits.

Understand commercial-use conditions.

Check whether you can test before paying.

Understand how errors are returned.

Determine whether support is available when a question or integration problem occurs.

Then test it inside your own application.

That gives you considerably more useful information than a feature list.

A practical development path

If you're starting a NECO CBT application today, a sensible sequence is:

1. Design your basic CBT interface

2. Create your SdashAPI account

3. Start with the 2,000 free credits

4. Generate a development API key

5. Fetch one NECO question

6. Display the question and options

7. Record the student's selection

8. Add automatic marking

9. Display explanations

10. Fetch multiple questions

11. Add subject selection

12. Add year selection

13. Test passages and images

14. Add timers

15. Add proper error handling

16. Test the complete examination flow

17. Generate a separate production API key

18. Select the production plan appropriate for your usage

19. Launch with a small group

20. Monitor usage and scale gradually

You can begin from the SdashAPI Website, review available data through SdashAPI Coverage, check current plans through SdashAPI Pricing, join discussions through the SdashAPI Community, or reach the team directly through SdashAPI Contact.

A NECO past questions API should ultimately make one part of your development process simpler: getting structured NECO examination data into your software without turning the creation and maintenance of the entire question bank into another application you have to build yourself.

Your time can then go into the features that make your product valuable to students: better practice, useful explanations, reliable CBT simulation, performance analysis and a learning experience that helps them understand where they need to improve.

Avatar

How can we help?

We reply immediately

Hello! 👋 How can we help you today?