REST API Reference
The NanoLog REST API allows developers, automated CI/CD pipelines, and AI agents to programmatically query and manage changelogs, roadmaps, customer feedback, and project configurations.
Authentication
All API endpoints require authentication via one of the following methods:
1. Bearer Token
Include your API Key or Master Token in the Authorization header:
Authorization: Bearer YOUR_API_KEY
2. Custom Header
Alternatively, provide your key or secret in the x-nanolog-secret header:
x-nanolog-secret: YOUR_API_KEY
Base URL:
https://www.nanolog.dev
Endpoints
1. Projects & Settings
GET /api/v1/projects
List accessible client projects or retrieve detailed configuration for a specific project.
-
Query Parameters:
app_id(optional): Project App ID (UUID). When provided, returns detailed widget and domain configuration for that single project.email(optional): Filter projects by tenant organization membership.
-
Response (List):
{
"projects": [
{
"id": "project_id",
"appId": "cdba58d3-60aa-46d4-bbec-4c3d903a3ae7",
"name": "My SaaS Project",
"organizationName": "TestLS1",
"allowedDomains": "https://example.com"
}
]
}
- Response (Single Project with
?app_id=...):
{
"project": {
"id": "proj_123",
"appId": "cdba58d3-60aa-46d4-bbec-4c3d903a3ae7",
"name": "My SaaS Project",
"allowedDomains": "https://example.com",
"allowLocalhost": true,
"enablePublicPages": true,
"widgetConfig": {
"changelogLabel": "Changelog",
"roadmapLabel": "Roadmap",
"feedbackLabel": "Feedback",
"enablePostVoting": true,
"enableRoadmapVoting": true,
"enableNps": true
}
}
}
PATCH /api/v1/projects
Update project settings, allowed domains, public page availability, or widget configurations.
- Request Body:
{
"app_id": "cdba58d3-60aa-46d4-bbec-4c3d903a3ae7",
"name": "Updated Project Name",
"allowedDomains": "https://myapp.com, https://staging.myapp.com",
"allowLocalhost": true,
"enablePublicPages": true,
"widgetConfig": {
"changelogLabel": "What's New",
"enablePostVoting": true
}
}
2. Changelog Posts
GET /api/v1/posts
Retrieve published and draft changelog posts with pagination and search.
- Query Parameters:
app_id(required): Project App ID.page(optional, default: 1): Page number.limit(optional, default: 25, max: 100): Items per page.category(optional): Filter byfeature,improvement,fix,announcement.search(optional): Search query string for title/content.
POST /api/v1/posts
Create a new changelog post or announcement.
- Request Body:
{
"app_id": "cdba58d3-60aa-46d4-bbec-4c3d903a3ae7",
"title": "Stripe Apple Pay Integration",
"content": "Full markdown description of the release...",
"category": "feature",
"tags": "payments, checkout",
"isPublished": true,
"isPinned": false
}
PATCH /api/v1/posts
Update an existing changelog post.
- Request Body:
{
"app_id": "cdba58d3-60aa-46d4-bbec-4c3d903a3ae7",
"id": "post_uuid_here",
"title": "Updated Title",
"content": "Updated markdown...",
"category": "improvement",
"isPublished": true,
"isPinned": true,
"tags": "checkout, billing"
}
3. Roadmap Items
GET /api/v1/roadmap
Query roadmap items and feature goals.
- Query Parameters:
app_id(required): Project App ID.status(optional):all,planned,in_progress,released.page/limit(optional): Pagination controls.
POST /api/v1/roadmap
Create a new roadmap item.
- Request Body:
{
"app_id": "cdba58d3-60aa-46d4-bbec-4c3d903a3ae7",
"title": "Dark Mode Support",
"description": "System theme preference detection and toggle in widget.",
"status": "planned",
"order": 1
}
PATCH /api/v1/roadmap
Update title, description, order, or transition status between columns.
- Request Body:
{
"app_id": "cdba58d3-60aa-46d4-bbec-4c3d903a3ae7",
"id": "roadmap_item_uuid_here",
"status": "in_progress"
}
4. User Feedback
GET /api/v1/feedback
Fetch customer feedback messages, NPS ratings, and issue reports.
-
Query Parameters:
app_id(required): Project App ID.limit(optional, default: 20): Feedback entries to retrieve.
-
Response:
{
"feedback": [
{
"id": "fb_123",
"message": "Love the new update, would appreciate CSV export!",
"npsRating": 10,
"piiDetected": false,
"createdAt": "2026-09-14T12:00:00.000Z"
}
]
}