Skip to content

Notes API

The Notes API lets you manage notes programmatically.

Get all notes in a workspace.

GET /api/note
ParameterTypeDescription
workspaceIdstringFilter by workspace (uses default if not provided)
groupIdstringFilter by group (optional)
isDeletedbooleanInclude deleted notes (default: false)
searchstringSearch in name and content (optional)
sortstringSort field and direction, e.g. name:asc or updatedAt:desc
pagenumberPage number (default: 1)
limitnumberResults per page (default: 50, max: 100)
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My Note",
"content": "# Hello\n\nThis is my note.",
"workspaceId": "660e8400-e29b-41d4-a716-446655440001",
"groupId": "770e8400-e29b-41d4-a716-446655440002",
"userId": "880e8400-e29b-41d4-a716-446655440003",
"icon": null,
"isDeleted": false,
"deletedAt": null,
"deletedBy": null,
"isEncrypted": false,
"encryptionMetadata": null,
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T14:45:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 42,
"totalPages": 1
},
"count": 42,
"filters": {
"workspaceId": "660e8400-e29b-41d4-a716-446655440001",
"groupId": null,
"isDeleted": false,
"search": null
}
}
Terminal window
curl -X GET "https://sidvy.com/api/note?limit=10&sort=updatedAt:desc" \
-H "Authorization: Bearer sidvy_abc123..."

Create a new note.

POST /api/note
{
"name": "My New Note",
"content": "# New Note\n\nContent here.",
"workspaceId": "660e8400-e29b-41d4-a716-446655440001",
"groupId": "770e8400-e29b-41d4-a716-446655440002"
}
FieldTypeRequiredDescription
namestringYesNote title
contentstringNoNote content (markdown)
workspaceIdstringNoTarget workspace (uses default if not provided)
groupIdstringNoTarget group
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My New Note",
"content": "# New Note\n\nContent here.",
"workspaceId": "660e8400-e29b-41d4-a716-446655440001",
"groupId": "770e8400-e29b-41d4-a716-446655440002",
"userId": "880e8400-e29b-41d4-a716-446655440003",
"icon": null,
"isDeleted": false,
"deletedAt": null,
"deletedBy": null,
"isEncrypted": false,
"encryptionMetadata": null,
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T10:30:00.000Z"
},
"count": 1
}
Terminal window
curl -X POST "https://sidvy.com/api/note" \
-H "Authorization: Bearer sidvy_abc123..." \
-H "Content-Type: application/json" \
-d '{"name": "My New Note", "content": "# Hello World"}'

Update an existing note.

PUT /api/note
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Updated Title",
"content": "# Updated Content",
"groupId": "770e8400-e29b-41d4-a716-446655440002"
}
FieldTypeRequiredDescription
idstringYesNote ID to update
namestringNoNew note title
contentstringNoNew note content
groupIdstringNoMove to group (set to null to remove from group)

Returns the updated note object in the same format as create.

Terminal window
curl -X PUT "https://sidvy.com/api/note" \
-H "Authorization: Bearer sidvy_abc123..." \
-H "Content-Type: application/json" \
-d '{"id": "550e8400-e29b-41d4-a716-446655440000", "name": "New Title"}'

Move a note to trash (soft delete).

DELETE /api/note
{
"id": "550e8400-e29b-41d4-a716-446655440000"
}
FieldTypeRequiredDescription
idstringYesNote ID to delete
{
"data": {
"deleted": true,
"noteId": "550e8400-e29b-41d4-a716-446655440000",
"movedToTrash": true
},
"count": 1
}
Terminal window
curl -X DELETE "https://sidvy.com/api/note" \
-H "Authorization: Bearer sidvy_abc123..." \
-H "Content-Type: application/json" \
-d '{"id": "550e8400-e29b-41d4-a716-446655440000"}'
{
"error": "NOT_FOUND",
"message": "Note not found"
}
{
"error": "VALIDATION_ERROR",
"message": "name: Required field is missing"
}

When creating or updating notes, storage limits are enforced:

{
"error": "VALIDATION_ERROR",
"message": "Note exceeds maximum size (1MB)"
}
{
"error": "VALIDATION_ERROR",
"message": "User storage quota exceeded"
}