API endpoints
Base path: /api/v1
Unless noted, send Authorization: Bearer nd_....
Projects
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/projects | List projects |
| POST | /api/v1/projects | Create project |
| GET | /api/v1/projects/:id | Get one project |
| PATCH | /api/v1/projects/:id | Update project |
| DELETE | /api/v1/projects/:id | Delete project |
Articles
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/articles?projectId= | List articles |
| POST | /api/v1/articles | Create article |
| GET | /api/v1/articles/:id | Get article |
| PATCH | /api/v1/articles/:id | Update article |
| DELETE | /api/v1/articles/:id | Delete article |
Create example:
bashcurl -X POST https://your-domain.com/api/v1/articles \ -H "Authorization: Bearer nd_your_key" \ -H "Content-Type: application/json" \ -d "{\"projectId\":\"PROJECT_ID\",\"title\":\"Hello\",\"contentMarkdown\":"# Hello\\n\\nWorld\" }"
Categories
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/categories?projectId= | List categories |
| POST | /api/v1/categories | Create category |
Media
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/media?projectId= | List media files |
Search
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/search?q=&projectId= | Search articles |
Webhooks
| Method | Path | Description |
|---|---|---|
| POST | /api/v1/webhooks/test | Send a test delivery |
Body: { "webhookId": "..." }
Import / export / tools
| Method | Path | Description |
|---|---|---|
| GET | /api/export/markdown?projectId= | Markdown ZIP |
| GET | /api/export/json?projectId= | JSON dump |
| POST | /api/import/markdown | Import Markdown |
| POST | /api/sync/github | Sync from GitHub |
| POST | /api/broken-links/scan | Scan broken links |
Full table with notes: open /api-docs on your installation.
