git-scm APIgit-scm.com ↗
Access Git command docs, Pro Git book chapters, glossary terms, and version-specific references via the git-scm.com API. 9 structured endpoints.
What is the git-scm API?
The git-scm.com API exposes 9 endpoints covering the full surface of the official Git documentation site: command reference pages (including version-specific docs via get_command_doc_by_version), the Pro Git book table of contents and chapter text, the complete Git glossary, and a cross-cutting search endpoint. Every response returns structured fields like sections, chapters, and terms rather than raw HTML, so you can consume documentation programmatically without parsing markup.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/8b5ba661-798d-4e0b-ad04-a0eae3fd8286/get_homepage' \ -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 git-scm-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: Git-SCM API — browse commands, read docs, search glossary."""
from parse_apis.git_scm_api import GitScm, DocumentNotFound
client = GitScm()
# List available Git commands (capped to 5 total items).
for cmd in client.commands.list(limit=5):
print(cmd.name, cmd.category, cmd.url)
# Fetch full documentation for a specific command.
doc = client.commanddocs.get(command="git-commit")
print(doc.command, doc.title, list(doc.sections.keys())[:4])
# Use the constructible shortcut to get version-specific docs.
older_doc = client.commanddoc("git-merge").by_version(version="2.40.0")
print(older_doc.command, older_doc.version, len(older_doc.sections))
# Browse Pro Git book table of contents.
chapter = client.bookchapters.list(limit=1).first()
if chapter:
print(chapter.chapter, len(chapter.sections))
# Read a chapter section's full content.
try:
content = client.bookcontents.get(chapter_slug="Getting-Started-About-Version-Control")
print(content.title, content.content[:100])
except DocumentNotFound as exc:
print(f"chapter not found: {exc}")
# Search across commands and glossary terms.
for result in client.searchresults.search(query="merge", limit=3):
print(result.type, result.title)
print("exercised: commands.list / commanddocs.get / commanddoc.by_version / bookchapters.list / bookcontents.get / searchresults.search")
Get the Git homepage content including navigation links, content blocks, and the latest released Git version number. Returns a single Homepage object with the current state of the git-scm.com front page.
No input parameters required.
{
"type": "object",
"fields": {
"title": "string, page title",
"content_blocks": "object containing page content sections keyed by section name",
"latest_version": "string, latest Git release version number",
"navigation_links": "array of navigation link objects with text, url, and description"
},
"sample": {
"data": {
"title": "Git",
"content_blocks": {
"masthead": "Git is a free and open source..."
},
"latest_version": "2.54.0",
"navigation_links": [
{
"url": "/about",
"text": "About",
"description": "Git's performance and ecosystem"
},
{
"url": "/learn",
"text": "Learn",
"description": "Pro Git book, videos, tutorials, and cheat sheet"
}
]
},
"status": "success"
}
}About the git-scm API
Command Reference
The get_reference_index endpoint returns all Git commands organized into categories, each entry carrying the command name and its documentation URL. From there, get_command_doc accepts a hyphenated command name (e.g. git-commit, git-log) and returns a sections object keyed by section name — NAME, SYNOPSIS, DESCRIPTION, OPTIONS, EXAMPLES — with the full documentation text as values. When you need documentation pinned to a specific Git release, get_command_doc_by_version accepts both a command and a version parameter (e.g. 2.45.0); if that exact version is unavailable for the requested command, the response reflects the nearest available version. get_all_commands_list provides a flat array of all commands with their name, category, and url fields, useful for building command indexes without iterating through categories manually.
Pro Git Book
get_book_toc returns the full table of contents as an array of chapter objects, each containing a chapter title and an array of sections with titles and URL paths. Individual sections are retrieved with get_book_chapter, which takes a chapter_slug (derivable from the TOC section URLs) and returns the section title and full plain-text content. This covers every chapter of the Pro Git book as hosted on git-scm.com.
Glossary and Search
get_glossary returns every entry in the official Git glossary as a terms object mapping term names to HTML description strings, plus a total count. The search_docs endpoint accepts a query string and performs case-insensitive matching across glossary term names, glossary descriptions, and the command reference index. Each result includes a type field (glossary or command) so you can distinguish matches and route them to the appropriate follow-up endpoint.
Homepage
get_homepage retrieves the current front page state, including latest_version (the current Git release string), navigation_links as a structured array, and content_blocks keyed by section name. This is the simplest way to programmatically check what version of Git is currently released without parsing a release page.
The git-scm API is a managed, monitored endpoint for git-scm.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when git-scm.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 git-scm.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 CLI tool that fetches and displays Git command documentation inline using get_command_doc sections.
- Generate a changelog diff between two Git releases by comparing get_command_doc_by_version output for the same command at different versions.
- Create a searchable Git reference for an internal developer portal using search_docs and get_glossary.
- Populate a static site with Pro Git book content by iterating get_book_toc chapters and fetching each with get_book_chapter.
- Monitor the latest Git release version by polling get_homepage for the latest_version field.
- Build a Git terminology training tool using the full glossary terms and descriptions from get_glossary.
- Index all Git commands with their categories from get_all_commands_list to power autocomplete in a developer tool.
| 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.