API Documentation

LyncView REST API

Public REST API for reading project data and pushing updates programmatically. Available on the Business plan. All endpoints return JSON.

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_KEY

API 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/public

HTTPS 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": "Liberty",
    "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 details
  • GET /projects/:id/tasks — Tasks for a project
  • POST /tasks/:id/complete — Mark a task complete
  • POST /tasks/:id/comments — Add a comment
  • GET /clients — List clients
  • GET /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-Signature header
  • Retries: 3 attempts with exponential backoff
  • Timeout: 10 seconds

Available events

  • task.completed, task.created, task.updated
  • project.created, project.updated, project.completed
  • file.uploaded
  • client.invited
  • comment.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.