Skip to content
Back

API Reference

LiveFolio REST API — use for CI/CD pipelines, custom integrations, and debugging. For AI agent workflows, use MCP instead.

When to Use the REST API

Use caseRecommended approach
AI agent publishing foliosMCP — higher-level, agent-native
CI/CD pipelineREST API — simple HTTP calls, no handshake
Custom integration (non-AI)REST API — direct JSON requests
Debugging MCP issuesREST API — curl examples for testing
Local file syncCLIlivefolio-init sync

Base URL

https://livefolio.cloud

Authentication

All requests require an API key. Generate one from Settings → API Keys.

Authorization: Bearer lf_agent_xxxxxxxxxxxx

Endpoints

Files

MethodPathDescription
GET/api/filesList all folios
GET/api/files/{id}Get full folio details
POST/api/filesCreate a new folio
PUT/api/files/{id}Update folio metadata
DELETE/api/files/{id}Delete a folio

Comments

MethodPathDescription
GET/api/files/{id}/commentsList comments (public)
POST/api/files/{id}/commentsAdd a comment (public)
PATCH/api/files/{id}/comments/{cid}Resolve a comment
DELETE/api/files/{id}/comments/{cid}Delete a comment

Reactions

MethodPathDescription
GET/api/files/{id}/reactionsGet reaction counts (public)
POST/api/files/{id}/reactionsAdd a reaction (public)

AI Generation

MethodPathDescription
POST/api/files/{id}/aiGenerate/modify folio content
POST/api/files/{id}/ai-streamStreaming AI generation

Other

MethodPathDescription
GET/api/files/{id}/publicPublic folio view
GET/api/files/{id}/briefCurated design brief
GET/api/files/{id}/analyticsView analytics
POST/api/files/{id}/syncCLI file sync
GET/api/keysList API keys
POST/api/keysGenerate API key
DELETE/api/keys/{id}Revoke API key

Create a Folio

curl -X POST https://livefolio.cloud/api/files \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer lf_agent_xxxxxxxxxxxx" \
  -d '{
    "title": "My Folio",
    "initialHtml": "<!DOCTYPE html><html>...</html>",
    "projectMode": "document"
  }'

Add a Comment

curl -X POST https://livefolio.cloud/api/files/my-folio/comments \
  -H "Content-Type: application/json" \
  -d '{
    "text": "The header needs more contrast",
    "x": 50,
    "y": 5
  }'

Comments are public — no auth required.

Error Responses

{
  "error": "Human-readable description"
}
StatusMeaning
400Bad request — invalid parameters
401Unauthorized — missing or invalid API key
403Forbidden — insufficient permissions
404Not found — invalid folio ID
429Rate limit exceeded
500Internal server error

Rate Limits

Responses include rate limit headers:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1718400000

Check your plan for specific limits.