Skip to content

Instantly share code, notes, and snippets.

@bizrockman
Created July 10, 2025 16:13
Show Gist options
  • Save bizrockman/7fbca8d1c3d30ef9c54db6f7190c6166 to your computer and use it in GitHub Desktop.
Save bizrockman/7fbca8d1c3d30ef9c54db6f7190c6166 to your computer and use it in GitHub Desktop.
LLM friendly OpenAPI Spec for Context7
{
"openapi": "3.0.0",
"info": {
"title": "Context7 API",
"version": "1.0.0",
"description": "LLM-optimized interface for accessing Context7 developer documentation."
},
"servers": [
{
"url": "https://context7.com/api/v1"
}
],
"paths": {
"/search": {
"get": {
"summary": "Resolve Library ID",
"description": "Resolves a package/product name to a Context7-compatible library ID and returns a list of matching libraries.\n\nYou MUST call this function before 'get-library-docs' to obtain a valid Context7-compatible library ID UNLESS the user explicitly provides a library ID in the format '/org/project' or '/org/project/version' in their query.\n\nSelection Process:\n1. Analyze the query to understand what library/package the user is looking for\n2. Return the most relevant match based on:\n - Name similarity to the query (exact matches prioritized)\n - Description relevance to the query's intent\n - Documentation coverage (prioritize libraries with higher Code Snippet counts)\n - Trust score (consider libraries with scores of 7–10 more authoritative)\n\nResponse Format:\n- Return the selected library ID in a clearly marked section\n- Provide a brief explanation for why this library was chosen\n- If multiple good matches exist, acknowledge this but proceed with the most relevant one\n- If no good matches exist, clearly state this and suggest query refinements\n\nFor ambiguous queries, request clarification before proceeding with a best-guess match.",
"parameters": [
{
"name": "query",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Library name to search for and retrieve a Context7-compatible library ID."
}
],
"responses": {
"200": {
"description": "List of matching libraries with scores and identifiers"
}
}
}
},
"/{libraryId}": {
"get": {
"summary": "Get Library Docs",
"description": "Fetches up-to-date documentation for a library.\n\nYou must call 'resolve-library-id' first to obtain the exact Context7-compatible library ID required to use this tool, UNLESS the user explicitly provides a library ID in the format '/org/project' or '/org/project/version' in their query.\n\nYou may optionally specify a topic and a token budget to narrow the documentation focus and size.",
"parameters": [
{
"name": "libraryId",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Exact Context7-compatible library ID (e.g., '/vercel/next.js')."
},
{
"name": "topic",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Topic to focus documentation on (e.g., 'hooks', 'routing')."
},
{
"name": "tokens",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "Maximum number of tokens to retrieve."
},
{
"name": "type",
"in": "query",
"required": false,
"schema": {
"type": "string",
"default": "txt"
},
"description": "Response format (e.g., 'txt')."
}
],
"responses": {
"200": {
"description": "Library documentation"
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment