Gemini Notebook API
Google launched a Public Preview of the Gemini Notebook API, allowing developers to programmatically create and manage notebooks from external content.
Decoder
- MCP (Model Context Protocol): An open standard that enables AI models to safely connect to local or remote data sources, tools, and IDEs.
Original article
Gemini Notebook API
Stay organized with collections. Save and categorize content based on your preferences.
The Gemini Notebook API is a REST interface for programmatically creating and managing notebooks and sources in Gemini Notebook. Ingest web pages, YouTube videos, plain text, and Markdown into persistent notebooks.
Just want to get started? Go to the Quickstart, copy the setup prompt, and give it to your coding agent.
Python
import requests
API = "https://notebook.googleapis.com/v1"
headers = {
"Authorization": f"Bearer {ACCESS_TOKEN}",
"x-goog-user-project": PROJECT_ID,
"Content-Type": "application/json",
}
# 1. Create a notebook
nb = requests.post(f"{API}/notebooks", headers=headers, json={
"display_name": "My Research"
}).json()
# 2. Add a source
requests.post(f"{API}/{nb['name']}/sources", headers=headers, json={
"display_name": "Gemini API Guide",
"web_content": {"url": "https://ai.google.dev/gemini-api/docs"}
})
JavaScript
const API = "https://notebook.googleapis.com/v1";
const headers = {
"Authorization": `Bearer ${ACCESS_TOKEN}`,
"x-goog-user-project": PROJECT_ID,
"Content-Type": "application/json"
};
// 1. Create a notebook
const nb = await (await fetch(`${API}/notebooks`, {
method: "POST",
headers,
body: JSON.stringify({ display_name: "My Research" })
})).json();
// 2. Add a source
await fetch(`${API}/${nb.name}/sources`, {
method: "POST",
headers,
body: JSON.stringify({
display_name: "Gemini API Guide",
web_content: { url: "https://ai.google.dev/gemini-api/docs" }
})
});
REST
# 1. Create a notebook
NOTEBOOK=$(curl -s -X POST "https://notebook.googleapis.com/v1/notebooks" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "x-goog-user-project: $PROJECT_ID" \
-H "Content-Type: application/json" \
-d '{"display_name": "My Research"}')
NOTEBOOK_NAME=$(echo "$NOTEBOOK" | python3 -c "import sys, json; print(json.load(sys.stdin)['name'])")
# 2. Add a source
curl -s -X POST "https://notebook.googleapis.com/v1/${NOTEBOOK_NAME}/sources" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "x-goog-user-project: $PROJECT_ID" \
-H "Content-Type: application/json" \
-d '{
"display_name": "Gemini API Guide",
"web_content": {"url": "https://ai.google.dev/gemini-api/docs"}
}'
Guides and resources
Notebooks
Create, list, and update notebooks.
Sources
Add web pages, YouTube videos, plain text, or Markdown to a notebook.
Model Context Protocol (MCP)
Connect AI coding agents and IDEs to the remote Gemini Notebook MCP server.
Authentication
Configure OAuth 2.0 access tokens and scopes for API requests.
Rate limits and quotas
Review request rate limits, per-source word limits, and tier capacity.
Roadmap
See items on the Gemini Notebook API roadmap.
Feedback
We'd love to hear what you want the Gemini Notebook API and MCP server to do. See our roadmap for upcoming capabilities, and file feature requests or bug reports in our Issue Tracker.
Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi