API reference
Read and write NoteForge pages over HTTP. JSON in, JSON out.
Base URL https://noteforge.novaresource.net/api/.
Authentication
Create a key in API keys and send it as a header. Keys map to your account; requests act as you.
Authorization: Api-Key <your-key>
# or
X-Api-Key: <your-key>
Rate limits
Authenticated: 1000 req/hour. Anonymous: 60 req/min.
Exceeding returns 429 Too Many Requests.
GET /api/pages/
List readable pages (public + your own). Pass ?q= to full-text search.
curl https://noteforge.novaresource.net/api/pages/?q=kubernetes \
-H "Authorization: Api-Key $NOTEFORGE_KEY"
GET /api/pages/<slug>/
Fetch one page. 404 if it doesn’t exist or you can’t read it.
{
"slug": "kubernetes",
"title": "Kubernetes",
"content_markdown": "# Kubernetes\n…",
"content_html": "<h1>Kubernetes</h1>…",
"kind": "note",
"visibility": "public",
"created_at": "2026-06-16T01:39:00Z",
"updated_at": "2026-06-16T01:59:00Z"
}
POST /api/pages/
Create (or upsert) a page. slug required; you can’t overwrite
a page owned by someone else (403).
curl -X POST https://noteforge.novaresource.net/api/pages/ \
-H "Authorization: Api-Key $NOTEFORGE_KEY" \
-H "Content-Type: application/json" \
-d '{"slug":"linux","title":"Linux","content_markdown":"# Linux","visibility":"public"}'
PATCH /api/pages/<slug>/
Update fields of your page (PUT or PATCH). Returns the updated page.
curl -X PATCH https://noteforge.novaresource.net/api/pages/linux/ \
-H "Authorization: Api-Key $NOTEFORGE_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Linux notes"}'
Errors
Standard HTTP codes: 401 bad/missing key, 403 not
allowed, 404 not found, 400 validation, 429 rate limited.