Skip to content
/NoteForge
Sign in Sign up

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.