Discover/MySchool API
live

MySchool APImyschool.ng

Access Nigerian school listings, course data, admission requirements, and education news via the MySchool.ng API. Covers universities, polytechnics, and colleges.

Endpoint health
verified 3d ago
search
get_latest_news
list_schools_by_type
get_school_info
get_school_courses
6/6 passing latest checkself-healing
Endpoints
6
Updated
17d ago

What is the MySchool API?

The MySchool.ng API exposes 6 endpoints covering Nigerian schools, courses, admission requirements, and education news. Use get_course_requirements to retrieve UTME subject combinations and O'Level requirements for a specific programme, list_schools_by_type to enumerate all universities, polytechnics, or colleges of education by slug, and search to query across news, events, materials, and more in a single call.

Try it
Search keyword (e.g. 'Unilag', 'admission', 'engineering')
api.parse.bot/scraper/024e7b9b-f175-4efa-9c90-874b24500823/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/024e7b9b-f175-4efa-9c90-874b24500823/search?query=admission' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace myschool-ng-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Myschool.ng SDK — explore Nigerian schools, courses, and news."""
from parse_apis.Myschool_ng_API import Myschool, SchoolType, NewsCategory, NotFound

client = Myschool()

# Search across all content types — limit caps total items fetched.
for result in client.search_results.search(query="engineering", limit=5):
    print(result.title, result.type, result.url)

# List universities and drill into the first one's details.
school_summary = client.school_summaries.list(type=SchoolType.UNIVERSITY, limit=1).first()
if school_summary:
    school = school_summary.details()
    print(school.name, school.details.location, school.details.aka)

    # Walk courses offered by this school, fetch admission requirements.
    for course in school.courses.list(limit=3):
        print(course.name, course.requirements_path)
        reqs = course.requirements()
        print(reqs.requirements.utme_subject_combination)
        print(reqs.requirements.olevel_requirements)

# Browse latest JAMB news using the enum.
for article in client.news_articles.list(category=NewsCategory.JAMB, limit=3):
    print(article.title, article.slug, article.url)

# Typed error handling: catch NotFound for a bad slug.
try:
    detail = client.schools.get(slug="nonexistent-school-12345")
    print(detail.name)
except NotFound as exc:
    print(f"School not found: {exc.slug}")

print("exercised: search_results.search / school_summaries.list / school.details / school.courses.list / course.requirements / news_articles.list / schools.get")
All endpoints · 6 totalmissing one? ·

Full-text search across all content types on myschool.ng — news, questions, events, groups, materials, and marketplace listings. Returns deduplicated results with title, URL, and content type. Results are not paginated; a single request returns all matches.

Input
ParamTypeDescription
queryrequiredstringSearch keyword (e.g. 'Unilag', 'admission', 'engineering')
Response
{
  "type": "object",
  "fields": {
    "query": "string, the search query submitted",
    "results": "array of search result objects with title, url, and type",
    "total_results": "integer, count of results returned"
  },
  "sample": {
    "data": {
      "query": "admission",
      "results": [
        {
          "url": "https://myschool.ng/news/category/admission",
          "type": "news",
          "title": "Admission News"
        },
        {
          "url": "https://myschool.ng/news/category/jamb",
          "type": "news",
          "title": "JAMB News"
        }
      ],
      "total_results": 52
    },
    "status": "success"
  }
}

About the MySchool API

School and Course Data

The list_schools_by_type endpoint accepts a type parameter — 'university', 'polytechnic', or 'education' — and returns an array of school objects each with a name and slug. That slug feeds directly into get_school_info, which returns the full institution name, abbreviation (AKA), Institution Type, Location, and official Website when available. The same slug is used by get_school_courses to retrieve every programme a school offers, each carrying a requirements_path field that chains into the next endpoint.

Admission Requirements

get_course_requirements takes the requirements_path from get_school_courses results and returns structured admission data keyed by requirement type: 'UTME Subject Combination', "O'Level Requirements", and 'Direct Entry Requirements'. Keys appear only when the source has data for them, so callers should check for key presence before reading. This makes it straightforward to build JAMB brochure lookups or admission eligibility checks programmatically.

News and Search

get_latest_news returns an array of articles — each with title, slug, url, and a summary (nullable) — and can be filtered by category slug such as 'jamb', 'post-utme', 'admission', or 'o-level'. The search endpoint accepts a free-text query and returns deduplicated results across content types including 'news', 'questions', 'events', 'groups', 'materials', and 'marketplace', with each result carrying a title, url, and type field plus a total_results count.

Reliability & maintenanceVerified

The MySchool API is a managed, monitored endpoint for myschool.ng — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when myschool.ng changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official myschool.ng API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
6/6 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a JAMB subject combination checker using get_course_requirements keyed on UTME data.
  • Aggregate a searchable directory of all Nigerian universities and polytechnics from list_schools_by_type.
  • Surface institution details — location, website, type — in a school comparison tool via get_school_info.
  • Monitor Nigerian admissions news by polling get_latest_news with the 'admission' or 'post-utme' category filter.
  • Power a course search feature by listing all programmes per school with get_school_courses and their associated slugs.
  • Build a cross-content search bar over Nigerian education materials, events, and questions using the search endpoint.
  • Automate O'Level requirement lookups to check subject eligibility across multiple schools and courses.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does MySchool.ng offer an official developer API?+
MySchool.ng does not publish an official public developer API or documented REST interface. This Parse API provides structured programmatic access to the data available on the site.
What does `get_course_requirements` actually return, and are all keys always present?+
get_course_requirements returns a requirements object that may include 'UTME Subject Combination', "O'Level Requirements", and 'Direct Entry Requirements'. Keys are only present when the source has data for that requirement type, so you should guard against missing keys in your code rather than assuming all three are always populated.
Does the `search` endpoint support pagination or returning more than one page of results?+
The search endpoint returns a single deduplicated result set with a total_results count but does not currently expose pagination parameters. It covers content types including news, questions, events, groups, materials, and marketplace listings in one response. You can fork this API on Parse and revise it to add offset or page-based pagination if your use case requires deeper result sets.
Does the API cover private universities or only federal and state institutions?+
The list_schools_by_type endpoint returns all schools indexed under each type on MySchool.ng, which includes a mix of federal, state, and private institutions. Coverage depends on what the source lists. You can fork the API on Parse and revise it to add filtering by ownership type if that distinction matters for your application.
Is post-UTME cut-off score data available through any endpoint?+
Cut-off scores are not currently returned by any endpoint. The API covers admission requirement structures (UTME subjects, O'Level grades, Direct Entry conditions) and news articles that may mention cut-offs. You can fork the API on Parse and revise it to add a dedicated cut-off score endpoint if that data is present on the site.
Page content last updated . Spec covers 6 endpoints from myschool.ng.
Related APIs in EducationSee all →
ibass.jamb.gov.ng API
Search Nigerian educational institutions and discover their specific course requirements, including UTME subjects and O'level prerequisites, to make informed decisions about your tertiary education options. Find institutions by type and browse the detailed admission criteria for your desired programs all in one place.
shiksha.com API
Search and browse Shiksha colleges by stream/course, then fetch detailed institute profiles and course offerings, plus upcoming exam schedules by stream.
gradschools.com API
Search graduate programs across multiple categories and discover articles about funding, financial aid, and admissions to help guide your grad school journey. Find specific program information and detailed resources all in one place to support your application and enrollment decisions.
niche.com API
Search and retrieve data on K-12 schools and colleges from Niche.com, including rankings, report card grades, stats, and user reviews.
opendays.com API
Search and discover open day events at educational institutions, view detailed event information and institution profiles, and browse the complete calendar of upcoming visits. Find the perfect school or university open day by searching institutions or exploring all available options with their program details and dates.
scholarshipportal.com API
Search and discover scholarships, degree programmes, and universities across StudyPortals' global education database, with the ability to filter by countries, disciplines, and other criteria. Get detailed information about specific scholarships and programmes to compare educational opportunities that match your academic interests.
ucas.com API
Search and explore UK university courses, apprenticeships, and scholarships all in one place, while discovering detailed information about education providers and their offerings. Find the perfect educational path by filtering courses and apprenticeships by your preferences and accessing comprehensive provider details to inform your decisions.
kys.udiseplus.gov.in API
Search for schools across India by geographic region and management type, then access detailed information about any school including academic performance, facilities, and enrollment data. Navigate through states, districts, and blocks to find schools that match your criteria and compare their profiles.