Skip to content

API Notes

Saiful Alam Rakib edited this page Apr 22, 2026 · 1 revision

API – Notes

Add contextual notes to bills or keep general reminders. Notes can be personal (visible only to the creator) or shared with the whole team.

Base path: /api/v1/notes


Endpoints

Method Endpoint Description
GET /notes List notes
POST /notes Create a note
GET /notes/{note} Get a single note
PUT /notes/{note} Update a note
DELETE /notes/{note} Delete a note

GET /notes

List notes visible to the authenticated user.

Query Parameters:

Parameter Type Description
search string Search in title/content
is_pinned boolean Filter by pinned status
team_notes_only boolean Show only team-shared notes
personal_notes_only boolean Show only personal notes
sort_by string Column to sort by
per_page integer Results per page

Response 200:

{
  "data": [
    {
      "id": 1,
      "title": "Payment Reminder",
      "content": "Remember to update payment method",
      "is_pinned": true,
      "team_id": null,
      "was_recently_created": false,
      "created_at": "2026-02-01T00:00:00.000Z"
    }
  ],
  "links": { ... },
  "meta": { ... }
}

team_id: null indicates a personal note. A non-null team_id means the note is shared with that team.


POST /notes

Create a new note.

Request:

{
  "title": "Payment Reminder",
  "content": "Remember to update payment method before March 1st.",
  "is_pinned": false,
  "team_id": 1
}
Field Type Required Description
title string Yes Note title
content string Yes Note body (supports Markdown)
is_pinned boolean No Pin note to the top (default: false)
team_id integer No Team ID to share with; null for personal note

Response 201:

{
  "success": true,
  "message": "Note created successfully",
  "data": {
    "id": 1,
    "title": "Payment Reminder",
    "content": "Remember to update payment method before March 1st.",
    "is_pinned": false,
    "team_id": 1
  }
}

GET /notes/{note}

Get a single note by ID.

Response 200:

{
  "success": true,
  "data": {
    "id": 1,
    "title": "Payment Reminder",
    "content": "Remember to update payment method before March 1st.",
    "is_pinned": true,
    "team_id": null,
    "created_at": "2026-02-01T00:00:00.000Z",
    "updated_at": "2026-02-05T10:00:00.000Z"
  }
}

PUT /notes/{note}

Update an existing note. All fields are optional.

Request:

{
  "title": "Updated Reminder",
  "content": "Updated content here.",
  "is_pinned": true
}

Response 200:

{
  "success": true,
  "message": "Note updated successfully",
  "data": {
    "id": 1,
    "title": "Updated Reminder",
    "content": "Updated content here.",
    "is_pinned": true
  }
}

DELETE /notes/{note}

Permanently delete a note.

Response 200:

{
  "success": true,
  "message": "Note deleted successfully"
}

cURL Examples

TOKEN="YOUR_TOKEN"
BASE="https://bills.msar.me/api/v1"

# List all pinned notes
curl "$BASE/notes?is_pinned=true" \
  -H "Authorization: Bearer $TOKEN" -H "Accept: application/json"

# List team notes only
curl "$BASE/notes?team_notes_only=true" \
  -H "Authorization: Bearer $TOKEN" -H "Accept: application/json"

# Create a personal note
curl -X POST "$BASE/notes" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Reminder","content":"Check Netflix billing","is_pinned":true}'

# Pin an existing note
curl -X PUT "$BASE/notes/1" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"is_pinned":true}'

# Delete a note
curl -X DELETE "$BASE/notes/1" \
  -H "Authorization: Bearer $TOKEN" -H "Accept: application/json"

See Also

  • Notes Export — Download notes as JSON, Markdown, CSV, or plain text from the UI

Live Link: bills.msar.me

API Docs: API

Open API Collection: API Collection

Clone this wiki locally