Runoob APIrunoob.com ↗
Access Runoob.com programming tutorials via API. Browse categories, retrieve full tutorial content, search lessons, and extract metadata across thousands of coding guides.
What is the Runoob API?
The Runoob.com API exposes 7 endpoints for extracting structured data from one of the largest Chinese-language programming tutorial sites. Use list_homepage_categories to enumerate all top-level tutorial categories, get_tutorial_page_content to retrieve full lesson text and navigation links, or search_tutorials to query across thousands of coding topics including HTML, CSS, Python, and more.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/bf324a74-606a-4bf2-9a08-01dcb9e3caf5/list_homepage_categories' \ -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 runoob-com-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: Runoob tutorial API — discover categories, search, and read content."""
from parse_apis.runoob_api import Runoob, CategoryName, TutorialNotFound
client = Runoob()
# List all tutorial categories on the homepage.
for cat in client.categories.list(limit=5):
print(cat.name, cat.category_id)
# Filter tutorials by category name using the CategoryName enum.
for group in client.categorywithtutorialses.list(category_name=CategoryName.PYTHON, limit=2):
print(group.category)
for tut in group.tutorials[:3]:
print(" ", tut.title, tut.url)
# Search for tutorials across the site.
result = client.searchresults.search(query="CSS", limit=1).first()
if result:
print(result.title, result.url, result.description[:60])
# Get the directory (sidebar) of a tutorial section.
directory = client.tutorialdirectories.get(url="html/html-tutorial.html")
print(directory.tutorial_url)
for entry in directory.directory[:5]:
print(" ", entry.title, entry.url)
# Typed error handling: catch a not-found tutorial.
try:
page = client.tutorialpages.get(url="html/html-intro.html")
print(page.title, page.url)
for nav in page.navigation_links[:2]:
print(" ->", nav.text, nav.url)
except TutorialNotFound as exc:
print(f"Tutorial not found: {exc.url}")
print("Exercised: categories.list / categorywithtutorialses.list / searchresults.search / tutorialdirectories.get / tutorialpages.get")
Returns all top-level tutorial categories from the runoob.com homepage. Each category has a name and identifier. Categories group tutorials by topic domain (e.g. Python, frontend, database). The full list is returned in a single page.
No input parameters required.
{
"type": "object",
"fields": {
"items": "array of category objects each with name and category_id"
},
"sample": {
"data": {
"items": [
{
"name": "Python / 数据科学",
"category_id": "python_data"
},
{
"name": "AI / 智能开发",
"category_id": "ai"
},
{
"name": "前端开发",
"category_id": "frontend"
}
]
},
"status": "success"
}
}About the Runoob API
Browse and Navigate Tutorial Content
list_homepage_categories returns an array of category objects, each with a name and category_id, covering every top-level subject area on the Runoob.com homepage. list_tutorials_by_category builds on this by returning the full list of tutorials nested under each category; pass a category_name string (e.g. 'Python' or 'HTML') to filter results case-insensitively, or omit it to retrieve all tutorials across all categories at once. Each result in the tutorials array is scoped to its parent category name.
Retrieve Tutorial Structure and Page Content
get_tutorial_directory accepts a url parameter — either a full URL or a relative path like 'html/html-tutorial.html' — and returns the sidebar navigation for that tutorial as a structured directory array of topic links. This gives you the complete table of contents for any tutorial section without loading individual pages. get_tutorial_page_content fetches the main content area of any tutorial page, returning title, content text, and a navigation_links array containing previous and next page links for sequential traversal.
Search and Metadata
search_tutorials takes a query string and returns an array of matching results, each with title, url, and description fields. This is useful for building search interfaces or cross-referencing topics across the site's catalog. get_tutorial_metadata returns page-level SEO fields — title, description, keywords, and canonical_url — for any tutorial URL, which can be used to index or classify content programmatically. get_top_navbar_links retrieves the top navigation bar as an array of name/url pairs.
Coverage Notes
All endpoints operate against Runoob.com's publicly accessible tutorial pages. Content is primarily in Chinese (Simplified), reflecting the site's audience. Interactive exercises, quizzes, and user account data (login-required sections) are not exposed by these endpoints.
The Runoob API is a managed, monitored endpoint for runoob.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when runoob.com 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 runoob.com 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 Chinese-language programming tutorial aggregator using
list_tutorials_by_categoryto organize content by subject. - Generate a full course index for any Runoob tutorial using
get_tutorial_directoryto extract the sidebar table of contents. - Automate content auditing by iterating pages with
get_tutorial_page_contentand collectingtitleandcontentfields. - Create a cross-topic search tool for developers using
search_tutorialswith keyword queries like 'CSS grid' or 'Django'. - Index tutorial SEO metadata at scale using
get_tutorial_metadatato capturekeywords,description, andcanonical_url. - Map the full Runoob site structure by combining
list_homepage_categorieswithget_top_navbar_linksoutput. - Build sequential lesson navigation by chaining
navigation_linksreturned fromget_tutorial_page_content.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.
Does Runoob.com have an official public developer API?+
What does `get_tutorial_page_content` return, and how is it different from `get_tutorial_directory`?+
get_tutorial_page_content returns the main lesson body — title, full content text, and a navigation_links array for previous/next pages. get_tutorial_directory returns only the sidebar navigation structure (a directory array of topic links) for the broader tutorial section, not the individual page text.Does `list_tutorials_by_category` support pagination or return all results at once?+
data array contains every tutorial listed under the requested category on the homepage.Does the API expose interactive exercises, code runners, or user quiz results from Runoob.com?+
Is the tutorial content returned in English or Chinese?+
content, title, description, and keywords fields are primarily in Simplified Chinese. Topic names like programming languages (Python, HTML, CSS) appear in their standard Latin forms within the content.