Problem
There's no programmatic way to manage links, profile, or settings. Every link-in-bio competitor (Linktree, LinkStack) has an API. Without one, LinkBreeze can't integrate with CI pipelines, scripts, or third-party tools.
Proposed design
Authentication: API key stored in settings table (generated in admin panel). Sent via Authorization: Bearer <key> header.
Endpoints:
GET /api/v1/links List all links
POST /api/v1/links Create a link
PUT /api/v1/links/:id Update a link
DELETE /api/v1/links/:id Delete a link
PUT /api/v1/links/reorder Reorder links (array of IDs)
GET /api/v1/profile Get profile
PUT /api/v1/profile Update profile
GET /api/v1/analytics Get analytics (views, clicks, top links)
Prep work already done
- The queries layer (
src/server/queries/) already abstracts all DB access
- The
metadata JSON column on links was added for future extensibility
- ADR-0004 documents the data abstraction
Scope
This is a larger feature. Could be split into phases:
- API key auth + link CRUD (MVP)
- Profile + analytics endpoints
- Rate limiting + documentation
Acceptance criteria
Problem
There's no programmatic way to manage links, profile, or settings. Every link-in-bio competitor (Linktree, LinkStack) has an API. Without one, LinkBreeze can't integrate with CI pipelines, scripts, or third-party tools.
Proposed design
Authentication: API key stored in settings table (generated in admin panel). Sent via
Authorization: Bearer <key>header.Endpoints:
Prep work already done
src/server/queries/) already abstracts all DB accessmetadataJSON column on links was added for future extensibilityScope
This is a larger feature. Could be split into phases:
Acceptance criteria