API Documentation
Build integrations with LinkBrain. Save, search, and organize links programmatically.
Authentication
All API requests require an API key sent via the Authorization header.
Authorization: Bearer lb_your_api_key_hereGenerate API keys in your Settings. Keys are shown once on creation — store them securely.
Base URL: https://linkbrain.co
Rate Limits
100
requests/min · Free
1,000
requests/min · Pro
Rate limit headers are included in every response:
X-RateLimit-Limit— Max requests per windowX-RateLimit-Remaining— Remaining requestsX-RateLimit-Reset— Unix timestamp when the window resets
Endpoints
/api/links/saveSave a new link to your library.
Request Body
url—string (required) — The URL to savetitle—string (optional) — Custom titletags—string[] (optional) — Array of tagscollection_id—string (optional) — UUID of target collectionResponse
{
"link": {
"id": "uuid",
"url": "https://example.com",
"title": "Example",
"tags": ["dev"],
"source": "api",
"saved_at": "2025-01-15T10:30:00Z"
}
}Example
curl -X POST https://linkbrain.co/api/links/save \
-H "Authorization: Bearer lb_your_key" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "title": "Example", "tags": ["dev"]}'/api/links/listList your saved links with pagination.
Query Parameters
page—number (default: 1)limit—number (default: 20, max: 100)tag—string — Filter by tagcollection_id—string — Filter by collection UUIDResponse
{
"links": [...],
"pagination": {
"page": 1,
"limit": 20,
"total": 142,
"pages": 8
}
}Example
curl "https://linkbrain.co/api/links/list?page=1&limit=20" \
-H "Authorization: Bearer lb_your_key"/api/links/:idDelete a saved link by ID.
Response
{ "success": true }Example
curl -X DELETE "https://linkbrain.co/api/links/LINK_ID" \
-H "Authorization: Bearer lb_your_key"/api/searchSearch your links using keyword and semantic (AI) search.
Query Parameters
q—string (required) — Search queryResponse
{
"results": [
{
"id": "uuid",
"url": "https://...",
"title": "...",
"similarity": 0.87,
"match_type": "semantic"
}
],
"hasSemanticResults": true
}Example
curl "https://linkbrain.co/api/search?q=react+hooks" \
-H "Authorization: Bearer lb_your_key"/api/collectionsList all your collections.
Response
{
"collections": [
{ "id": "uuid", "name": "Dev Resources", "link_count": 23 }
]
}Example
curl "https://linkbrain.co/api/collections" \
-H "Authorization: Bearer lb_your_key"/api/collectionsCreate a new collection.
Request Body
name—string (required) — Collection nameResponse
{
"collection": { "id": "uuid", "name": "My Collection" }
}Example
curl -X POST https://linkbrain.co/api/collections \
-H "Authorization: Bearer lb_your_key" \
-H "Content-Type: application/json" \
-d '{"name": "My Collection"}'Error Codes
400Bad Request — Missing or invalid parameters401Unauthorized — Invalid or missing API key409Conflict — Link already saved429Rate Limited — Too many requests500Server Error — Something went wrongWebhooks
Receive real-time notifications when events happen in your LinkBrain account. Configure webhook URLs in your Settings.
Available Events
link.saved—Fired when a new link is savedlink.deleted—Fired when a link is deletedlink.processed—Fired when AI processing completes (embedding, summary)collection.created—Fired when a new collection is createdcollection.shared—Fired when a collection is shared publiclyimport.completed—Fired when a bulk import finishesPayload Format
{
"event": "link.saved",
"timestamp": "2026-02-15T10:30:00Z",
"data": {
"id": "uuid",
"url": "https://example.com",
"title": "Example Page",
"tags": ["dev"]
}
}Webhook requests include a X-LinkBrain-Signature header for verifying authenticity. Compute HMAC-SHA256 of the raw body using your webhook secret.
SDKs
Official SDKs are coming soon. In the meantime, the REST API works great with any HTTP client.
JavaScript / TypeScript
@linkbrain/sdkComing Soon
Python
linkbrainComing Soon
Go
go-linkbrainPlanned
Want to build a community SDK? Let us know at api@linkbrain.co.