ClassX APIgabypiyushsir.classx.co.in ↗
Access course catalog, video metadata, folder trees, demo videos, and live recordings from gabypiyushsir.classx.co.in via 5 structured endpoints.
What is the ClassX API?
This API exposes 5 endpoints covering the full public catalog of GA by Piyush Sir on ClassX, returning course metadata, structured folder-based content trees, and per-video records including title, duration in seconds, thumbnail, and free/paid flag. The list_course_videos endpoint walks an entire course's nested folder hierarchy in one call, while list_courses returns every published course with pricing, exam categories, and video count without any required parameters.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/a6de51c8-3ecb-495f-802d-abee9f90a6c9/list_courses' \ -H 'X-API-Key: $PARSE_API_KEY'
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 gabypiyushsir-classx-co-in-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: ClassX SDK — browse courses, videos, and folder contents."""
from parse_apis.gabypiyushsir_classx_co_in_api import ClassX, InputNotFound
client = ClassX()
# List all available courses (small catalog, returned whole).
for course in client.courses.list(limit=5):
print(course.course_name, f"₹{course.price}", f"({course.videos_count} videos)")
# Drill into the first course's demo videos.
course = client.courses.list(limit=1).first()
if course is not None:
print(f"\nDemo videos for: {course.course_name}")
for video in course.demo_videos.list(limit=3):
print(f" {video.title} — {video.duration} (free={video.is_free})")
# Browse live recordings for the same course.
print(f"\nLive recordings for: {course.course_name}")
for rec in course.live_recordings.list(limit=3):
print(f" {rec.title} — {rec.duration_seconds}s")
# Full content tree: videos + folder structure.
content = course.content()
print(f"\nContent tree: {content.video_count} videos in {content.folder_count} folders (complete={content.complete})")
for folder in content.folders[:3]:
print(f" Folder: {folder.title} ({folder.videos_count} videos)")
# Browse a specific folder page-by-page via folder_contents.
try:
for item in course.folder_contents.list(limit=5):
print(f" [{item.material_type}] {item.title}")
except InputNotFound:
print(" Course or folder not found.")
print("\nexercised: courses.list / demo_videos.list / live_recordings.list / content / folder_contents.list")
Returns every course published on the site with its course_id, name, slug, public course page URL, plain-text description, thumbnail, exam categories, price (INR), start date and the site's reported video count. One round trip; the catalog is small (a handful of courses) and is returned whole. course_id is the key consumed by every other endpoint.
No input parameters required.
{
"type": "object",
"fields": {
"total": "number of courses returned",
"courses": "array of course records: course_id, course_name, course_slug, course_url (public course page), description (HTML stripped), thumbnail, exam_category (comma-separated tags), price and mrp (numbers in `currency`), start_date (YYYY-MM-DD), videos_count (site-reported), demo_video_available"
},
"sample": {
"data": {
"total": 1,
"courses": [
{
"mrp": 2000,
"price": 799,
"currency": "INR",
"course_id": "18",
"thumbnail": "https://appx-content-v2.classx.co.in/paid_course3/2026-06-27-0_21694264645202188.png",
"course_url": "https://gabypiyushsir.classx.co.in/new-courses/18-veteran-bank-warriors-batch",
"start_date": "2026-06-27",
"course_name": "VETERAN BANK WARRIORS BATCH",
"course_slug": "veteran-bank-warriors-batch",
"description": "Transitioning from military service to a successful career in banking is a powerful next step.",
"videos_count": 14,
"exam_category": "Banking,BATCH,SBICLERK",
"demo_video_available": false
}
]
},
"status": "success"
}
}About the ClassX API
Course Catalog and Metadata
The list_courses endpoint requires no inputs and returns every published course on the site. Each record includes course_id, course_name, course_slug, a direct course_url, a plain-text description, thumbnail, price in INR, start_date, exam categories, and the site's reported video_count. The catalog is small, so this single call gives a complete picture of available offerings.
Content Tree and Video Records
The list_course_videos endpoint accepts a course_id (from list_courses) and returns the full nested folder structure alongside every video in that course. Video records include video_id, folder_path (rendered as 'A / B / C' titles from the root), title, description, thumbnail, duration as both site text and integer duration_seconds, a free flag indicating whether the video is freely accessible, a scheduled_date, and a page_url. Folder records include folder_id, parent_folder_id, title, folder_path, and videos_count. The complete field indicates whether the entire tree was walked, and unvisited_folders reports any folders not reached within the request cap.
Paginated Folder, Demo, and Live Recording Access
For incremental access, list_folder_contents returns 20 items per page from a single folder, identified by folder_id; omitting folder_id reads the course root. Each item carries material_type (FOLDER or VIDEO), item_id, title, thumbnail, duration, and children_videos_count for folders. The has_more and next_start fields drive pagination. list_demo_videos pages through the free demo videos tab (10 per page), and list_live_recordings pages through recorded live classes (10 per page, newest first). Both return video_id, thumbnail, duration, duration_seconds, and page_url. Live recording records carry folder_id: -1 to distinguish them from folder-based content.
The ClassX API is a managed, monitored endpoint for gabypiyushsir.classx.co.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when gabypiyushsir.classx.co.in 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 gabypiyushsir.classx.co.in 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a searchable index of all GA by Piyush Sir courses with exam categories, prices, and start dates from
list_courses. - Generate a full syllabus view of a course by mapping the nested folder paths returned by
list_course_videos. - Identify free preview content by filtering video records for the
freeflag inlist_course_videosorlist_demo_videos. - Track course content changes over time by comparing
video_countfromlist_courseswith actual records fromlist_course_videos. - Display scheduled or upcoming content by reading
scheduled_dateon video records returned bylist_course_videos. - Enumerate recorded live classes for a given course, including durations and thumbnails, using
list_live_recordings. - Build a folder-level content browser with pagination using
list_folder_contentsand itsnext_startoffset.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does gabypiyushsir.classx.co.in have an official developer API?+
What does `list_course_videos` return compared to `list_folder_contents`?+
list_course_videos walks the entire content tree in one call and returns all videos and all folders across every nesting level, along with a complete flag and unvisited_folders count. list_folder_contents returns one page (20 items) of a single folder at a time, which is useful when you only need a subset of the tree or want to navigate interactively using the next_start offset.Does the API return video playback URLs or stream content?+
page_url on each video record points to the public course page; actual video playback requires a logged-in session on the site. The API covers public metadata only: titles, durations, thumbnails, folder paths, and free/paid flags.Can I retrieve student enrollment data, quiz results, or instructor profiles?+
How should I handle a `complete: false` response from `list_course_videos`?+
complete is false, the unvisited_folders field tells you how many folders were not walked within the request cap. In that case, use list_folder_contents with the folder_id values from the partial folders array to page through the remaining content incrementally.