google-devdocs
Google Developer Docs
Search and retrieve official Google developer documentation via the Developer Knowledge REST API. Returns Markdown — no scraping, no MCP server, just curl + jq.
Prerequisites
Set the API key as an environment variable:
export GOOGLE_DEVKNOWLEDGE_API_KEY="your-key-here"
To get a key:
- Enable the Developer Knowledge API in a Google Cloud project
- Create an API key on the Credentials page
- Restrict the key to Developer Knowledge API only
If the variable is missing, tell the user and stop — don't attempt calls without it.
When to Use
- User asks about Google Cloud, Firebase, Android, Chrome, Gemini, TensorFlow, or web.dev APIs
- You need current docs for a Google API (training data may be stale)
- Troubleshooting a Google API error — search for the error message
- Comparing Google services ("Cloud Run vs Cloud Functions for X")
When NOT to Use
- Non-Google documentation (use web search or mise fetch instead)
- Content not in the corpus (GitHub repos, blogs, YouTube, Stack Overflow)
- User already pasted the relevant docs into the conversation
Corpus
ai.google.dev · developer.android.com · developer.chrome.com · developers.home.google.com · developers.google.com · docs.cloud.google.com · docs.apigee.com · firebase.google.com · fuchsia.dev · web.dev · www.tensorflow.org
Re-indexed within 24 hours of publication.
Workflow
1. Search — find relevant chunks
curl -s "https://developerknowledge.googleapis.com/v1alpha/documents:searchDocumentChunks?query=$(python3 -c "import urllib.parse; print(urllib.parse.quote('YOUR QUERY'))")&pageSize=10&key=$GOOGLE_DEVKNOWLEDGE_API_KEY" | jq .
This returns up to 10 chunk snippets with parent document names. Read the snippets — they may answer the question directly.
Tip: Use natural language queries. "How to authenticate with Firebase Admin SDK" works better than keywords.
2. Retrieve — get full document if needed
If snippets aren't enough, fetch the full page Markdown:
curl -s "https://developerknowledge.googleapis.com/v1alpha/PARENT_VALUE?key=$GOOGLE_DEVKNOWLEDGE_API_KEY" | jq -r '.content'
Replace PARENT_VALUE with the parent from a search result (e.g. documents/firebase.google.com/docs/admin/setup).
3. Batch retrieve — multiple docs at once
curl -s "https://developerknowledge.googleapis.com/v1alpha/documents:batchGet?names[]=PARENT1&names[]=PARENT2&key=$GOOGLE_DEVKNOWLEDGE_API_KEY" | jq .
Max 20 documents per batch.
Extracting Results with jq
# List just the parent doc names from search
... | jq -r '.results[].parent'
# Get snippet text from search
... | jq -r '.results[] | "## \(.parent)\n\(.content)\n"'
# Get full doc content as raw markdown
... | jq -r '.content'
Anti-Patterns
| Pattern | Problem | Fix |
|---|---|---|
| Searching without checking the env var | Cryptic 403 error | Check $GOOGLE_DEVKNOWLEDGE_API_KEY first |
| Fetching full docs before reading snippets | Wastes tokens on irrelevant pages | Snippets answer most questions |
| Using keywords instead of natural language | Poor search results | Ask a question: "How do I..." |
| Fetching more than 3 full docs at once | Context overload | Read snippets, fetch only the most relevant |
| Scraping the docs site instead | Fragile, may be blocked, stale | Use this API — that's what it's for |
| Adding a corpus/site filter param | Doesn't exist in the API | Scope via natural language: "Firebase authentication" not "site:firebase.google.com auth" |
Error Handling
| HTTP Status | Meaning | Action |
|---|---|---|
| 400 | Bad request (e.g. pageSize > 20) | Check parameters |
| 403 | API key invalid or API not enabled | Verify key and project setup |
| 404 | Document not found | Check the parent value is correct |
| 429 | Rate limited | Wait and retry |
Integration
- With mise: Use this skill for Google docs; use mise for Drive/Gmail/general web content
- With web search: Fall back to web search for content outside the corpus (blogs, GitHub, SO)
Reference
See references/api-reference.md for full endpoint details, response schemas, and the complete corpus list.
More from spm1001/claude-suite
picture
Generate images using Google Imagen. Use when user needs 'hero image', 'presentation visual', 'conceptual illustration', or 'generate an image'. Composes with itv-styling for brand-constrained outputs. (user)
46server-checkup
Systematic Linux server management. Use BEFORE making changes to capture baseline, then AFTER for verification. Triggers on 'check this server', 'audit', 'set up this machine', 'security audit', 'harden this Pi', 'fresh Pi setup', 'provision this server'. (user)
33diagram
Orchestrates diagram creation with iterative render-and-check workflow. Invoke FIRST when asked to 'create a diagram', 'Venn diagram', 'flow chart', 'architecture diagram', 'visualize this' — ensures CRAP-principled self-critique before showing user, preventing amateur layouts and low-contrast text. Composes with brand skills for styling. (user)
32screenshot
>
24filing
Orchestrates file cleanup with mandatory processing — reads content and extracts actions BEFORE moving files. Prevents lost waiting-fors and buried actions. MANDATORY during weekly review filing phase. Triggers on 'where should this go', 'help me tidy', 'clean up downloads', 'triage inbox'. (user)
20setup
>
16