Studentsdash API v1
Use our REST API to fetch study materials, quizzes, and categories in your website, React Native app, or any HTTP client.
To request an API key for your app or integration, contact Studentsdash support at info@studentsdash.com.ng.
https://studentsdash.com.ng/api/v1Format: JSON (except file downloads)
Auth required: All endpoints require a valid API key
Authentication
Send your API key with every request using one of these methods:
Authorization header (recommended)
Authorization: Bearer sd_your_api_key_hereX-API-Key header
X-API-Key: sd_your_api_key_hereJavaScript fetch example
const API_KEY = 'sd_your_key';
const res = await fetch('https://studentsdash.com.ng/api/v1/materials?page=1', {
headers: { 'Authorization': `Bearer ${API_KEY}` }
});
const json = await res.json();React Native example
const response = await fetch('https://studentsdash.com.ng/api/v1/quizzes', {
headers: {
'Authorization': 'Bearer ' + API_KEY,
'Accept': 'application/json',
},
});
const { data } = await response.json();Materials
List published materials with pagination and filters.
| Param | Description |
|---|---|
| page | Page number (default 1) |
| per_page | Items per page, max 50 (default 12) |
| category | Filter by category slug |
| uni / university_id | Filter by University ID (includes general-university materials) |
| fac / faculty_id | Filter by Faculty ID (includes general-faculty materials) |
| dept / department_id | Filter by Department ID (includes general-department materials) |
| level | Filter by Level name (e.g. 100) or ID |
| semester | Filter by Semester name or ID |
| type | free or paid |
| sort | newest, oldest, downloads, az, za |
| featured | 1 for featured only |
| include_images | 1 to include inline content photos (content_images) and post gallery (gallery_urls) |
| include_gallery | 1 to include post gallery only (without inline content photos) |
Get full details for one material. Pass access_code query param to check paid download access.
| Param | Description |
|---|---|
| access_code | Optional purchase code for paid materials |
| include_images | 1 — keep photos in description HTML and return content_images + gallery_urls |
| include_gallery | 1 — return gallery_urls only (post gallery, not inline content photos) |
By default, inline photos inside the description are stripped from the HTML. Thumbnail/cover image is always available as thumbnail_url.
// Full material with all photos
GET https://studentsdash.com.ng/api/v1/materials/past-questions?include_images=1
// Response includes:
{
"description": "<p>...<img src=\"https://.../uploads/materials/photo.jpg\">...</p>",
"content_images": [
{ "url": "https://.../uploads/materials/photo.jpg", "alt": "Diagram" }
],
"gallery_urls": [
"https://.../uploads/materials/gallery-1.jpg"
],
"thumbnail_url": "https://.../uploads/materials/cover.jpg"
}Download the material file. Free materials work with API key only. Paid materials require ?access_code=XXXX or X-Access-Code header.
// Free material
fetch('https://studentsdash.com.ng/api/v1/materials/past-questions/download', {
headers: { 'Authorization': 'Bearer ' + API_KEY }
});
// Paid material
fetch('https://studentsdash.com.ng/api/v1/materials/paid-pack/download?access_code=ABCD-1234', {
headers: { 'Authorization': 'Bearer ' + API_KEY }
});PDFs
List all published PDFs, documents (.doc, .docx), spreadsheets (.xls, .xlsx, .csv), presentation slides (.ppt, .pptx), XML, and text files with pagination, search, sorting, and academic hierarchy filters.
| Param | Description |
|---|---|
| page | Page number (default 1) |
| per_page | Items per page, max 50 (default 12) |
| q | Filter by search term (searches title, description, and tags) |
| uni / university_id | Filter by University ID (includes general-university documents) |
| fac / faculty_id | Filter by Faculty ID (includes general-faculty documents) |
| dept / department_id | Filter by Department ID (includes general-department documents) |
| level | Filter by Level name or ID |
| semester | Filter by Semester name or ID |
| sort | newest, oldest, downloads, az, za (default: newest) |
Example Response
{
"success": true,
"data": [
{
"id": 42,
"title": "MTH 101 General Mathematics Lecture Notes",
"slug": "mth-101-lecture-notes",
"description": "Comprehensive guide to differential calculus and algebra for science students.",
"is_free": true,
"price": 0.0,
"currency": "NGN",
"currency_symbol": "₦",
"file_type": "pdf",
"file_size": "2.4 MB",
"is_featured": true,
"author": "Dr. Abel",
"tags": ["math", "calculus", "notes"],
"view_count": 125,
"download_count": 89,
"thumbnail_url": "https://studentsdash.com.ng/uploads/materials/cover.jpg",
"web_url": "https://studentsdash.com.ng/material/mth-101-lecture-notes",
"api_url": "https://studentsdash.com.ng/api/v1/pdfs/mth-101-lecture-notes",
"download_api_url": "https://studentsdash.com.ng/api/v1/pdfs/mth-101-lecture-notes/download",
"requires_access_code": false,
"has_file": true,
"is_general_university": false,
"is_general_faculty": true,
"is_general_department": false,
"uni_abbrs": "UNIZIK, UNILAG",
"fac_names": "Physical Sciences",
"dept_names": "Computer Science, Mathematics",
"fac_abbrs": "PHY",
"dept_abbrs": "CSC, MAT",
"universities": null,
"faculties": null,
"departments": null
}
],
"meta": {
"page": 1,
"per_page": 12,
"total": 1,
"total_pages": 1
}
}Get full details for one PDF file. Response includes targeting attributes like is_general_university, is_general_faculty, is_general_department, and aggregated lists of universities, faculties, and departments.
Example Response
{
"success": true,
"data": {
"id": 42,
"title": "MTH 101 General Mathematics Lecture Notes",
"slug": "mth-101-lecture-notes",
"description": "Comprehensive guide to differential calculus and algebra for science students.",
"is_free": true,
"price": 0.0,
"currency": "NGN",
"currency_symbol": "₦",
"file_type": "pdf",
"file_size": "2.4 MB",
"is_featured": true,
"author": "Dr. Abel",
"tags": ["math", "calculus", "notes"],
"view_count": 125,
"download_count": 89,
"thumbnail_url": "https://studentsdash.com.ng/uploads/materials/cover.jpg",
"web_url": "https://studentsdash.com.ng/material/mth-101-lecture-notes",
"api_url": "https://studentsdash.com.ng/api/v1/pdfs/mth-101-lecture-notes",
"download_api_url": "https://studentsdash.com.ng/api/v1/pdfs/mth-101-lecture-notes/download",
"requires_access_code": false,
"has_file": true,
"is_general_university": false,
"is_general_faculty": true,
"is_general_department": false,
"uni_abbrs": "UNIZIK, UNILAG",
"fac_names": "Physical Sciences",
"dept_names": "Computer Science, Mathematics",
"fac_abbrs": "PHY",
"dept_abbrs": "CSC, MAT",
"universities": [
{ "id": 1, "name": "Nnamdi Azikiwe University", "abbreviation": "UNIZIK", "slug": "unizik" }
],
"faculties": [
{ "id": 3, "name": "Physical Sciences", "abbreviation": "PHY", "slug": "physical-sciences" }
],
"departments": [
{ "id": 8, "name": "Computer Science", "abbreviation": "CSC", "slug": "computer-science" },
{ "id": 9, "name": "Mathematics", "abbreviation": "MAT", "slug": "mathematics" }
],
"can_download": true
}
}Download the PDF file. Paid files require access_code query parameter or header.
// Download a free PDF file via fetch
fetch('https://studentsdash.com.ng/api/v1/pdfs/mth-101-lecture-notes/download', {
headers: { 'Authorization': 'Bearer ' + API_KEY }
})
.then(res => res.blob())
.then(blob => {
// Use blob to download or open the file
});Universities & Levels
List all universities with their IDs, names, abbreviations, slugs, and API URLs for faculties/departments.
List all faculties belonging to a specific university ID.
List all departments belonging to all faculties of a specific university ID.
List all departments belonging to a specific faculty ID.
List all levels belonging to a specific department ID.
Categories
List all active categories with material counts.
Get category details and its materials. Supports page and per_page.
Quizzes
List all published quizzes.
Get quiz details (no answers).
Get randomized questions for taking a quiz. Correct answers are not included.
Submit quiz answers and receive score + corrections.
POST https://studentsdash.com.ng/api/v1/quizzes/jamb-math/submit
Content-Type: application/json
Authorization: Bearer sd_...
{
"user_name": "John",
"user_phone": "08012345678",
"answers": [
{ "id": 12, "answer": 2 },
{ "id": 15, "answer": 0 }
]
}Access codes (paid materials)
Verify a purchase access code before downloading a paid material.
{
"code": "ABCD-1234-5678",
"slug": "material-slug"
}Returns download_api_url with the access code included.
Search
Search materials and quizzes by keyword.
Response format
Successful responses:
{
"success": true,
"data": [ ... ],
"meta": { "page": 1, "per_page": 12, "total": 48, "total_pages": 4 }
}Error responses:
{
"success": false,
"error": "Invalid API key."
}HTTP status codes
| Code | Meaning |
|---|---|
| 200 | Success |
| 401 | Missing or invalid API key |
| 403 | Access code required for paid download |
| 404 | Resource not found |
| 405 | Method not allowed |
| 503 | API temporarily disabled |