roadmap APIroadmap.sh ↗
Access roadmap.sh learning roadmaps, topic breakdowns, guides, interview questions, and project ideas via a structured API with 11 endpoints.
What is the roadmap API?
The roadmap.sh API exposes the full content catalog from roadmap.sh across 11 endpoints, covering learning roadmaps, topic nodes, guides, interview question sets, and community projects. The get_roadmap_detail endpoint returns the complete node graph — nodes, edges, titles, and descriptions — for any roadmap slug such as frontend, backend, or devops. Topic-level content, resource links, and rich-text guide bodies are all accessible with no authentication required.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/e532bb5b-2c0c-4c43-a138-11bf4ab04ad5/list_roadmaps' \ -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 roadmap-sh-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: roadmap.sh SDK — discover learning paths, topics, and projects."""
from parse_apis.roadmap_sh_api import RoadmapSh, Slug, TopicContent, RoadmapNotFound
client = RoadmapSh()
# List all roadmaps and inspect the first few
for roadmap in client.roadmaps.list(limit=5):
print(roadmap.title, roadmap.id, roadmap.updated_at)
# Search for resources by keyword across all content types
result = client.roadmaps.search(query="python", limit=3).first()
if result:
print(result.title, result.group, result.url)
# Fetch a specific roadmap's full detail (nodes, edges, graph)
frontend = client.roadmaps.get(id=Slug.FRONTEND)
print(frontend.description, frontend.title)
# Navigate into a roadmap's topic tree via the sub-resource
rm = client.roadmap(id=Slug.FRONTEND)
for topic in rm.topics.list(limit=5):
print(topic.node_id, topic.text, topic.is_optional)
# Fetch detailed content for a specific topic
detail = rm.topics.get(node_id="VlNNwIEDWqQXtqkHWJYzC", topic_slug="internet")
print(detail.description, detail.roadmap_slug)
# List guides and fetch one by id
guide = client.guides.list(limit=3).first()
if guide:
full_guide = client.guides.get(id=guide.id)
print(full_guide.title, full_guide.description)
# Typed error handling — catch a not-found roadmap
try:
bad = client.roadmap(id="nonexistent-roadmap-xyz")
for t in bad.topics.list(limit=1):
print(t.text)
except RoadmapNotFound as exc:
print(f"Roadmap not found: {exc.slug}")
# List beginner projects
for project in client.projects.list(limit=3):
print(project.title, project.description)
print("exercised: roadmaps.list / roadmaps.search / roadmaps.get / topics.list / topics.get / guides.list / guides.get / projects.list")List all available roadmaps. Returns an array of roadmap summaries including id, title, description, group, metadata tags, and last updated date. The full catalog is returned in a single response with no pagination.
No input parameters required.
{
"type": "object",
"fields": {
"roadmaps": "array of roadmap summary objects"
},
"sample": {
"data": {
"roadmaps": [
{
"id": "frontend",
"url": "/frontend",
"group": "Roadmaps",
"title": "Frontend Developer",
"metadata": {
"tags": [
"role-roadmap"
]
},
"renderer": "editor",
"updatedAt": "2026-06-08T07:39:29.714Z",
"shortTitle": "Frontend",
"description": "Step by step guide to becoming a modern frontend developer in @currentYear@"
}
]
},
"status": "success"
}
}About the roadmap API
Roadmap Structure and Topic Content
The list_roadmaps endpoint returns the full catalog of available roadmaps as a single array, each entry including an id, title, description, group, metadata tags, and updatedAt. From there, get_roadmap_detail accepts a slug parameter (e.g., react, sql, devops) and returns the complete flowchart graph as arrays of nodes and edges, along with display titles and a roadmap-level description. To navigate individual learning nodes, get_roadmap_topics returns a hierarchical topic tree — each entry includes a nodeId, a text label showing the full path (e.g., Frontend > Internet > How does the internet work?), associated subjects, guides, and an isOptional flag.
Topic Details and Resources
Once you have a nodeId from get_roadmap_topics, pass it alongside a topic_slug and roadmap_slug to get_topic_detail. The response includes a markdown description of the topic and a resources array containing typed items (article, video, course) with title and url fields. This makes it straightforward to build a topic-by-topic curriculum with linked reading or viewing material.
Guides, Questions, and Projects
list_guides, list_questions, and list_projects each return full catalogs in a single response with id, title, description, and updatedAt fields. Fetching a specific item with get_guide_content, get_question_content, or get_project_detail returns the full rich-text content body (TipTap JSON format), author information, and — for projects — structured metadata including difficulty, skills, topics, and associated roadmapIds. The search_roadmaps endpoint accepts a query string and returns matching items across all content types with id, url, title, description, group, and updatedAt.
The roadmap API is a managed, monitored endpoint for roadmap.sh — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when roadmap.sh 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 roadmap.sh 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 curriculum planner that maps a roadmap's node graph into a structured study schedule using
nodesandedgesfromget_roadmap_detail. - Aggregate learning resources by topic by iterating
get_roadmap_topicsand callingget_topic_detailto collect theresourcesarray for each node. - Generate interview prep sheets by fetching question set content via
get_question_contentfor a given technology slug likejavascriptorpython. - Index all roadmap.sh project ideas with their
difficulty,skills, andtopicsfields for a filterable project discovery tool. - Populate a developer onboarding portal with curated guide content by fetching
get_guide_contentfor relevant technology guides. - Power a search feature across roadmaps, guides, questions, and projects using the
queryparameter insearch_roadmaps. - Track content freshness by comparing
updatedAttimestamps fromlist_roadmaps,list_guides, orlist_projectsagainst a local cache.
| 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 roadmap.sh have an official developer API?+
What does `get_roadmap_topics` return and how does it relate to `get_topic_detail`?+
get_roadmap_topics returns the full hierarchical topic tree for a roadmap, including each node's nodeId, a human-readable text path, subjects, guides, and an isOptional flag. The nodeId values from that response are the required input for get_topic_detail, which returns the actual markdown description and a typed resources array (articles, videos, courses) for that specific node.Are user profiles, community roadmaps, or progress tracking data available?+
Does the API support filtering or paginating the catalog lists?+
list_roadmaps, list_guides, list_questions, and list_projects each return the full catalog in a single response with no pagination or server-side filtering parameters. Filtering must be done client-side. search_roadmaps accepts a query keyword and performs matching across all content types, returning results with group and description fields to help distinguish content type.Is roadmap-specific video content or embedded visuals accessible through the API?+
resources array returned by get_topic_detail, typed as video with a title and url. Embedded SVG roadmap diagrams or image assets from the roadmap pages are not returned as binary content. You can fork this API on Parse and revise it to add an endpoint that surfaces those asset URLs.