Base URL: http://localhost:8000
GET /api/notesReturns all notes with their metadata and folder structure.
Example:
curl http://localhost:8000/api/notesGET /api/notes/{note_path}Retrieve the content of a specific note.
Example:
curl http://localhost:8000/api/notes/folder/mynote.mdPOST /api/notes/{note_path}
Content-Type: application/json
{
"content": "# My Note\nNote content here..."
}Response:
{
"success": true,
"path": "test.md",
"message": "Note created successfully",
"content": "# My Note\nNote content here..."
}Note: When creating a new note, the on_note_create hook is triggered, allowing plugins (like Template Generator) to modify the initial content. The response includes the potentially modified content.
Linux/Mac:
curl -X POST http://localhost:8000/api/notes/test.md \
-H "Content-Type: application/json" \
-d '{"content": "# Hello World"}'Windows PowerShell:
curl.exe -X POST http://localhost:8000/api/notes/test.md -H "Content-Type: application/json" -d "{\"content\": \"# Hello World\"}"DELETE /api/notes/{note_path}Example:
curl -X DELETE http://localhost:8000/api/notes/test.mdPOST /api/notes/move
Content-Type: application/json
{
"oldPath": "note.md",
"newPath": "folder/note.md"
}POST /api/folders
Content-Type: application/json
{
"path": "Projects/2025"
}POST /api/folders/move
Content-Type: application/json
{
"oldPath": "OldFolder",
"newPath": "NewFolder"
}POST /api/folders/rename
Content-Type: application/json
{
"oldPath": "Projects",
"newName": "Work"
}GET /api/search?q={query}Example:
curl "http://localhost:8000/api/search?q=hello"GET /api/themesGET /api/themes/{theme_id}Example:
curl http://localhost:8000/api/themes/darkPlugins can hook into various events in the application lifecycle.
| Hook | Triggered When | Can Modify Data |
|---|---|---|
on_note_create |
New note is created | ✅ Yes (return modified content) |
on_note_save |
Note is being saved | ✅ Yes (return transformed content, or None) |
on_note_load |
Note is loaded | ✅ Yes (return transformed content, or None) |
on_note_delete |
Note is deleted | ❌ No |
on_search |
Search is performed | ❌ No |
on_app_startup |
App starts | ❌ No |
See PLUGINS.md for full documentation on creating plugins.
GET /api/pluginsPOST /api/plugins/{plugin_name}/toggle
Content-Type: application/json
{
"enabled": true
}Linux/Mac:
curl -X POST http://localhost:8000/api/plugins/note_stats/toggle \
-H "Content-Type: application/json" \
-d '{"enabled": true}'Windows PowerShell:
curl.exe -X POST http://localhost:8000/api/plugins/note_stats/toggle -H "Content-Type: application/json" -d "{\"enabled\": true}"GET /api/plugins/note_stats/calculate?content={markdown_content}GET /api/graphReturns the relationship graph between notes (internal links).
GET /api/configReturns application configuration.
GET /healthReturns system health status.
GET /apiSelf-documenting endpoint listing all available API routes.
All endpoints return JSON responses:
Success:
{
"success": true,
"data": { ... }
}Error:
{
"detail": "Error message"
}Currently, no authentication is required. Suitable for self-hosted local environments.
💡 Tip: Use the /api endpoint to get a live, self-documented list of all available endpoints!