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 by feature, 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"
    }
  ]
}