curl --request POST \
--url https://context7.com/api/v2/add/notion \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workspaceId": "workspace-uuid",
"workspaceName": "Acme Workspace",
"pageIds": [
"page-1",
"page-2"
],
"title": "Product Docs",
"description": "Internal Notion knowledge base",
"projectId": "project-uuid"
}
'import requests
url = "https://context7.com/api/v2/add/notion"
payload = {
"workspaceId": "workspace-uuid",
"workspaceName": "Acme Workspace",
"pageIds": ["page-1", "page-2"],
"title": "Product Docs",
"description": "Internal Notion knowledge base",
"projectId": "project-uuid"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspaceId: 'workspace-uuid',
workspaceName: 'Acme Workspace',
pageIds: ['page-1', 'page-2'],
title: 'Product Docs',
description: 'Internal Notion knowledge base',
projectId: 'project-uuid'
})
};
fetch('https://context7.com/api/v2/add/notion', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://context7.com/api/v2/add/notion",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workspaceId' => 'workspace-uuid',
'workspaceName' => 'Acme Workspace',
'pageIds' => [
'page-1',
'page-2'
],
'title' => 'Product Docs',
'description' => 'Internal Notion knowledge base',
'projectId' => 'project-uuid'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://context7.com/api/v2/add/notion"
payload := strings.NewReader("{\n \"workspaceId\": \"workspace-uuid\",\n \"workspaceName\": \"Acme Workspace\",\n \"pageIds\": [\n \"page-1\",\n \"page-2\"\n ],\n \"title\": \"Product Docs\",\n \"description\": \"Internal Notion knowledge base\",\n \"projectId\": \"project-uuid\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://context7.com/api/v2/add/notion")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspaceId\": \"workspace-uuid\",\n \"workspaceName\": \"Acme Workspace\",\n \"pageIds\": [\n \"page-1\",\n \"page-2\"\n ],\n \"title\": \"Product Docs\",\n \"description\": \"Internal Notion knowledge base\",\n \"projectId\": \"project-uuid\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://context7.com/api/v2/add/notion")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspaceId\": \"workspace-uuid\",\n \"workspaceName\": \"Acme Workspace\",\n \"pageIds\": [\n \"page-1\",\n \"page-2\"\n ],\n \"title\": \"Product Docs\",\n \"description\": \"Internal Notion knowledge base\",\n \"projectId\": \"project-uuid\"\n}"
response = http.request(request)
puts response.read_body{
"libraryName": "/owner/repo",
"message": "Repository submitted successfully"
}Add Notion pages
Submit selected Notion pages for documentation processing. Requires a connected Notion account and a team project.
curl --request POST \
--url https://context7.com/api/v2/add/notion \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workspaceId": "workspace-uuid",
"workspaceName": "Acme Workspace",
"pageIds": [
"page-1",
"page-2"
],
"title": "Product Docs",
"description": "Internal Notion knowledge base",
"projectId": "project-uuid"
}
'import requests
url = "https://context7.com/api/v2/add/notion"
payload = {
"workspaceId": "workspace-uuid",
"workspaceName": "Acme Workspace",
"pageIds": ["page-1", "page-2"],
"title": "Product Docs",
"description": "Internal Notion knowledge base",
"projectId": "project-uuid"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspaceId: 'workspace-uuid',
workspaceName: 'Acme Workspace',
pageIds: ['page-1', 'page-2'],
title: 'Product Docs',
description: 'Internal Notion knowledge base',
projectId: 'project-uuid'
})
};
fetch('https://context7.com/api/v2/add/notion', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://context7.com/api/v2/add/notion",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workspaceId' => 'workspace-uuid',
'workspaceName' => 'Acme Workspace',
'pageIds' => [
'page-1',
'page-2'
],
'title' => 'Product Docs',
'description' => 'Internal Notion knowledge base',
'projectId' => 'project-uuid'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://context7.com/api/v2/add/notion"
payload := strings.NewReader("{\n \"workspaceId\": \"workspace-uuid\",\n \"workspaceName\": \"Acme Workspace\",\n \"pageIds\": [\n \"page-1\",\n \"page-2\"\n ],\n \"title\": \"Product Docs\",\n \"description\": \"Internal Notion knowledge base\",\n \"projectId\": \"project-uuid\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://context7.com/api/v2/add/notion")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspaceId\": \"workspace-uuid\",\n \"workspaceName\": \"Acme Workspace\",\n \"pageIds\": [\n \"page-1\",\n \"page-2\"\n ],\n \"title\": \"Product Docs\",\n \"description\": \"Internal Notion knowledge base\",\n \"projectId\": \"project-uuid\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://context7.com/api/v2/add/notion")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspaceId\": \"workspace-uuid\",\n \"workspaceName\": \"Acme Workspace\",\n \"pageIds\": [\n \"page-1\",\n \"page-2\"\n ],\n \"title\": \"Product Docs\",\n \"description\": \"Internal Notion knowledge base\",\n \"projectId\": \"project-uuid\"\n}"
response = http.request(request)
puts response.read_body{
"libraryName": "/owner/repo",
"message": "Repository submitted successfully"
}Authorizations
Get your API key at context7.com/dashboard. Treat your API key like a password and store it securely.
Body
The Notion workspace ID
The Notion workspace name
List of Notion page IDs to index.
Title for the library
Description of the library
The team project ID to associate these Notion pages with
Response
Library submitted successfully for processing
Response after successfully submitting a library
The library identifier assigned — the URL path of the library on context7.com. /owner/repo for GitHub repositories, or /<source>/<id> for other sources (e.g., /vercel/next.js, /websites/uploadcare_com). See Library ID format.
Human-readable success message
Was this page helpful?