Last Updated: 3/17/2026
API Reference
LinkAce provides a comprehensive REST API for managing your bookmarks programmatically. All API endpoints are versioned under /api/v2 and require authentication using Laravel Sanctum tokens.
Authentication
All API requests must include a valid API token in the Authorization header:
Authorization: Bearer YOUR_API_TOKENAPI tokens can be created in the User Settings or System Settings sections of LinkAce. See User API Tokens and System API Tokens for more details.
Token Abilities
System API tokens support special abilities:
- ABILITY_SYSTEM_ACCESS_PRIVATE: Grants access to private resources across all users
Rate Limiting
All API endpoints are rate-limited according to your configuration. The default rate limit is configurable via the app.api_rate_limit setting.
Base URL
All endpoints are prefixed with /api/v2:
https://your-linkace-instance.com/api/v2/Common Parameters
Many list endpoints support these query parameters:
order_by: Field to sort by (e.g.,created_at,title,name)order_dir: Sort direction (ascordesc)page: Page number for paginationper_page: Number of items per page
Links API
List Links
GET /api/v2/linksQuery Parameters:
order_by:id,url,title,description,visibility,status,check_disabled,created_at,updated_at,randomorder_dir:ascordesc(default:desc)
Response:
{
"data": [
{
"id": 1,
"user_id": 1,
"url": "https://example.com",
"title": "Example Site",
"description": "An example website",
"icon": "globe",
"visibility": 1,
"status": 1,
"check_disabled": false,
"created_at": "2024-01-15T10:30:00.000000Z",
"updated_at": "2024-01-15T10:30:00.000000Z"
}
],
"links": {...},
"meta": {...}
}Get Link
GET /api/v2/links/{id}Returns a single link with its associated lists and tags.
Create Link
POST /api/v2/linksRequest Body:
{
"url": "https://example.com",
"title": "Example Site",
"description": "An example website",
"visibility": 1,
"lists": [1, 2],
"tags": [3, 4],
"check_disabled": false
}Update Link
PATCH /api/v2/links/{id}Same request body format as Create Link.
Delete Link
DELETE /api/v2/links/{id}Moves the link to trash (soft delete).
Check Link
GET /api/v2/links/check?url=https://example.comChecks if a URL already exists in your LinkAce instance.
Get Link Notes
GET /api/v2/links/{id}/notesReturns all notes associated with a specific link.
Lists API
List All Lists
GET /api/v2/listsQuery Parameters:
order_by:id,name,description,visibility,created_at,updated_at,random,links_countorder_dir:ascordesc
Get List
GET /api/v2/lists/{id}Create List
POST /api/v2/listsRequest Body:
{
"name": "My List",
"description": "A collection of useful links",
"visibility": 1
}Update List
PATCH /api/v2/lists/{id}Delete List
DELETE /api/v2/lists/{id}Get List Links
GET /api/v2/lists/{id}/linksReturns all links associated with a specific list.
Tags API
List All Tags
GET /api/v2/tagsQuery Parameters:
order_by:id,name,visibility,created_at,updated_at,random,links_countorder_dir:ascordesc
Get Tag
GET /api/v2/tags/{id}Create Tag
POST /api/v2/tagsRequest Body:
{
"name": "tutorial",
"visibility": 1
}Update Tag
PATCH /api/v2/tags/{id}Delete Tag
DELETE /api/v2/tags/{id}Get Tag Links
GET /api/v2/tags/{id}/linksReturns all links associated with a specific tag.
Notes API
Create Note
POST /api/v2/notesRequest Body:
{
"link_id": 1,
"note": "This is a helpful note about the link"
}Update Note
PATCH /api/v2/notes/{id}Delete Note
DELETE /api/v2/notes/{id}Bulk Operations API
Bulk Create Links
POST /api/v2/bulk/linksCreate multiple links in one request.
Bulk Create Lists
POST /api/v2/bulk/listsBulk Create Tags
POST /api/v2/bulk/tagsBulk Update Links
PATCH /api/v2/bulk/linksUpdate multiple links in one request.
Bulk Update Lists
PATCH /api/v2/bulk/listsBulk Update Tags
PATCH /api/v2/bulk/tagsBulk Delete
DELETE /api/v2/bulk/deleteDelete multiple resources (links, lists, tags, or notes) in one request.
Search API
Search Links
GET /api/v2/search/links?query=exampleSearch for links by title, description, or URL.
Search by Tags
GET /api/v2/search/tags?tags=tutorial,howtoFind links tagged with specific tags.
Search by Lists
GET /api/v2/search/lists?lists=1,2Find links in specific lists.
Trash API
Get Trashed Links
GET /api/v2/trash/linksGet Trashed Lists
GET /api/v2/trash/listsGet Trashed Tags
GET /api/v2/trash/tagsGet Trashed Notes
GET /api/v2/trash/notesRestore from Trash
PATCH /api/v2/trash/restoreRequest Body:
{
"type": "link",
"ids": [1, 2, 3]
}Clear Trash
DELETE /api/v2/trash/clearPermanently delete all trashed items.
Visibility Levels
The visibility field determines who can see a resource:
1(PRIVATE): Only visible to the owner2(INTERNAL): Visible to all authenticated users3(PUBLIC): Visible to everyone, including guests
Link Status Codes
The status field on links indicates the health check result:
1(STATUS_OK): Link is accessible2(STATUS_MOVED): Link was moved (redirect detected)3(STATUS_BROKEN): Link is broken or inaccessible
Error Responses
All error responses follow a standard format:
{
"message": "Error description",
"errors": {
"field": ["Error detail"]
}
}Common HTTP status codes:
200 OK: Success201 Created: Resource created successfully400 Bad Request: Invalid request data401 Unauthorized: Missing or invalid authentication403 Forbidden: Insufficient permissions404 Not Found: Resource not found422 Unprocessable Entity: Validation failed429 Too Many Requests: Rate limit exceeded500 Internal Server Error: Server error