Last Updated: 3/13/2026
API Reference
LinkAce provides a comprehensive REST API for programmatic access to your bookmarks, lists, tags, and notes.
Authentication
All API endpoints require authentication using Laravel Sanctum tokens. You must include your API token in the Authorization header:
Authorization: Bearer YOUR_API_TOKENAPI tokens can be generated from the User Settings page in the LinkAce interface.
Rate Limiting
API requests are rate-limited based on your configuration. The default rate limit is defined in config('app.api_rate_limit').
API Version
Current API version: v2
Check the API version:
GET /api/versionLinks API
List Links
GET /api/v2/linksReturns a paginated list of links.
Query Parameters:
page- Page number (default: 1)per_page- Items per pageorder_by- Sort field (id, url, title, description, visibility, status, check_disabled, created_at, updated_at, random)order_dir- Sort direction (asc, desc)
Get Link
GET /api/v2/links/{id}Returns a single link by ID.
Create Link
POST /api/v2/linksRequest Body:
{
"url": "https://example.com",
"title": "Example Site",
"description": "Optional description",
"visibility": 1,
"check_disabled": false,
"tags": [1, 2, 3],
"lists": [1, 2]
}Visibility Values:
1- Public2- Internal3- Private
Update Link
PATCH /api/v2/links/{id}Same request body format as Create Link.
Delete Link
DELETE /api/v2/links/{id}Soft deletes a link (moves to trash).
Check Link Status
GET /api/v2/links/check?url={url}Checks if a URL already exists in your bookmarks.
Get Link Notes
GET /api/v2/links/{id}/notesReturns all notes attached to a specific link.
Lists API
List All Lists
GET /api/v2/listsReturns a paginated list of bookmark lists.
Get List
GET /api/v2/lists/{id}Returns a single list by ID.
Create List
POST /api/v2/listsRequest Body:
{
"name": "My List",
"description": "Optional description",
"visibility": 1
}Update List
PATCH /api/v2/lists/{id}Same request body format as Create List.
Delete List
DELETE /api/v2/lists/{id}Get List Links
GET /api/v2/lists/{id}/linksReturns all links in a specific list.
Tags API
List All Tags
GET /api/v2/tagsReturns a paginated list of tags.
Get Tag
GET /api/v2/tags/{id}Returns a single tag by ID.
Create Tag
POST /api/v2/tagsRequest Body:
{
"name": "technology",
"visibility": 1
}Update Tag
PATCH /api/v2/tags/{id}Same request body format as Create Tag.
Delete Tag
DELETE /api/v2/tags/{id}Get Tag Links
GET /api/v2/tags/{id}/linksReturns all links tagged with a specific tag.
Notes API
Create Note
POST /api/v2/notesRequest Body:
{
"link_id": 1,
"note": "My note text"
}Update Note
PATCH /api/v2/notes/{id}Same request body format as Create Note.
Delete Note
DELETE /api/v2/notes/{id}Bulk Operations API
Bulk Create Links
POST /api/v2/bulk/linksCreate multiple links in a single request.
Bulk Create Lists
POST /api/v2/bulk/listsCreate multiple lists in a single request.
Bulk Create Tags
POST /api/v2/bulk/tagsCreate multiple tags in a single request.
Bulk Update Links
PATCH /api/v2/bulk/linksUpdate multiple links at once.
Bulk Update Lists
PATCH /api/v2/bulk/listsUpdate multiple lists at once.
Bulk Update Tags
PATCH /api/v2/bulk/tagsUpdate multiple tags at once.
Bulk Delete
DELETE /api/v2/bulk/deleteDelete multiple items (links, lists, tags, or notes) at once.
Search API
Search Links
GET /api/v2/search/links?query={query}Search for links by title, description, or URL.
Search by Tags
GET /api/v2/search/tags?tags[]={tag_id}Find links with specific tags.
Search by Lists
GET /api/v2/search/lists?lists[]={list_id}Find links in specific lists.
Trash API
Get Trashed Links
GET /api/v2/trash/linksReturns all soft-deleted links.
Get Trashed Lists
GET /api/v2/trash/listsReturns all soft-deleted lists.
Get Trashed Tags
GET /api/v2/trash/tagsReturns all soft-deleted tags.
Get Trashed Notes
GET /api/v2/trash/notesReturns all soft-deleted notes.
Restore from Trash
PATCH /api/v2/trash/restoreRestore items from trash.
Request Body:
{
"type": "link",
"ids": [1, 2, 3]
}Clear Trash
DELETE /api/v2/trash/clearPermanently delete all items in trash.
Response Format
All API responses follow a consistent JSON format:
Success Response:
{
"data": { ... },
"meta": {
"current_page": 1,
"total": 100
}
}Error Response:
{
"message": "Error description",
"errors": {
"field": ["Validation error message"]
}
}Status Codes
200 OK- Successful request201 Created- Resource created successfully204 No Content- Successful deletion400 Bad Request- Invalid request401 Unauthorized- Missing or invalid authentication403 Forbidden- Insufficient permissions404 Not Found- Resource not found422 Unprocessable Entity- Validation errors429 Too Many Requests- Rate limit exceeded500 Internal Server Error- Server error