Authentication
All API requests require a Bearer token in the Authorization header. Generate keys from Settings → API Keys in your dashboard. Each key is shown only once at creation time.
Authorization: Bearer YOUR_API_KEYAPI keys are scoped to a single workspace and have the same access level as the owner who created them. Treat them like passwords — never commit to source control, never expose in client-side code.
Base URL
https://lyncview.com/api/publicHTTPS is required. HTTP requests are rejected.
Endpoints
GET /projects
Returns active and on-hold projects in the authenticated workspace.
curl https://lyncview.com/api/public/projects \
-H "Authorization: Bearer YOUR_API_KEY"Response:
[
{
"id": "abc-123",
"name": "456 Oak Ave — Kitchen Renovation",
"address": "456 Oak Ave",
"town": "Springfield",
"client_name": "Sarah Miller",
"status": "active",
"created_at": "2026-04-15T14:32:00Z",
"updated_at": "2026-04-28T09:15:00Z"
}
]Coming soon
Additional endpoints in development:
GET /projects/:id— Single project with full detailsGET /projects/:id/tasks— Tasks for a projectPOST /tasks/:id/complete— Mark a task completePOST /tasks/:id/comments— Add a commentGET /clients— List clientsGET /time-entries— Time tracking data
Rate limits
60 requests per minute per API key. Exceeded requests return 429 Too Many Requests with a Retry-After header indicating seconds to wait.
Need higher limits? Email support@lyncview.com with your use case.
Errors
All errors return JSON with an error field:
{ "error": "Invalid API key" }Status codes:
- 400 Bad Request — Malformed request body or query
- 401 Unauthorized — Missing or invalid API key
- 403 Forbidden — Plan doesn't include API access
- 404 Not Found — Resource doesn't exist or you can't see it
- 429 Too Many Requests — Rate limit hit
- 500 Internal Server Error — Our problem. Retry with exponential backoff.
Webhooks
Configure outbound webhooks from Settings → Webhooks. See Setting up outbound webhooks for the full guide. Brief version:
- POST to your URL on subscribed events
- HMAC-SHA256 signature in
X-Webhook-Signatureheader - Retries: 3 attempts with exponential backoff
- Timeout: 10 seconds
Available events
task.completed,task.created,task.updatedproject.created,project.updated,project.completedfile.uploadedclient.invitedcomment.created
Example payload
{
"event": "task.completed",
"data": {
"task_id": "task-abc-123",
"project_id": "project-xyz-789",
"title": "Plan review approved",
"completed_at": "2026-04-28T10:15:00Z"
},
"timestamp": "2026-04-28T10:15:01Z"
}Need help?
If something in this doc is unclear, an endpoint isn't documented, or you need an integration we don't cover — email support@lyncview.com. We read every message and reply within 1 business day.