LancerWiseAPI v1
← Go to App

API Reference

The LancerWise REST API lets you build automations, integrations, and custom workflows. Use it with n8n, Zapier, Make, or any HTTP client.

Base URL

https://www.lancerwise.com/api/v1

Authentication

curl -H "Authorization: Bearer lw_your_key" \
  https://www.lancerwise.com/api/v1/me

Generate API keys in Settings → API Keys. Read-only keys have GET access only; Read+Write keys can create and modify data.

⚡ Webhook Events

invoice.createdinvoice.paidinvoice.overdueclient.createdproject.createdproposal.acceptedproposal.declinedtest

Authentication

All API requests require a Bearer token. Generate one in your Settings → API Keys page.

curl -H "Authorization: Bearer lw_your_key_here" \
  https://www.lancerwise.com/api/v1/me

Account

GEThttps://www.lancerwise.com/api/v1/me

Your account stats, total revenue, total clients/projects, hours tracked

Analytics

GEThttps://www.lancerwise.com/api/v1/analytics

Rich financial snapshot: earned/projected this month, overdue, pipeline, top clients, 12-month chart

GEThttps://www.lancerwise.com/api/v1/smart-brief

AI-powered daily brief: 3 prioritized actions, headline, insight based on your current data

Invoices

GEThttps://www.lancerwise.com/api/v1/invoices

List invoices. Query: ?status=paid|sent|draft|overdue&limit=50&offset=0

POSThttps://www.lancerwise.com/api/v1/invoices

Create invoice

Body: { client_id, line_items, due_date, currency, notes, time_entry_ids?, hourly_rate? }

GEThttps://www.lancerwise.com/api/v1/invoices/:id

Get single invoice with all details

PATCHhttps://www.lancerwise.com/api/v1/invoices/:id

Update invoice

Body: { status, due_date, notes }

POSThttps://www.lancerwise.com/api/v1/invoices/:id/send

Email invoice to client

Body: { to?, subject?, message? }

GEThttps://www.lancerwise.com/api/v1/invoices/overdue

Overdue invoices with days_overdue — ideal for automated reminders

PATCHhttps://www.lancerwise.com/api/v1/invoices/bulk

Bulk status update

Body: { ids[], action: mark_paid|mark_sent|mark_draft }

POSThttps://www.lancerwise.com/api/v1/invoices/:id/duplicate

Clone invoice as new draft

Body: { due_date?, client_id? }

Recurring Invoices

GEThttps://www.lancerwise.com/api/v1/recurring-invoices

List recurring invoice templates. Query: ?active=true

POSThttps://www.lancerwise.com/api/v1/recurring-invoices

Create recurring invoice

Body: { client_id, title, frequency, next_issue_date, auto_send?, line_items? }

GEThttps://www.lancerwise.com/api/v1/recurring-invoices/:id

Get single recurring invoice

PATCHhttps://www.lancerwise.com/api/v1/recurring-invoices/:id

Update

Body: { title, frequency, next_issue_date, is_active, auto_send }

DELETEhttps://www.lancerwise.com/api/v1/recurring-invoices/:id

Delete recurring invoice

Clients

GEThttps://www.lancerwise.com/api/v1/clients

List all clients

POSThttps://www.lancerwise.com/api/v1/clients

Create client

Body: { name, email?, company?, phone?, status? }

GEThttps://www.lancerwise.com/api/v1/clients/:id

Get single client

PATCHhttps://www.lancerwise.com/api/v1/clients/:id

Update client

Body: { name, email, company, phone, status, notes }

GEThttps://www.lancerwise.com/api/v1/clients/:id/summary

Full relationship: revenue, invoices, projects, hours, last activity

Projects

GEThttps://www.lancerwise.com/api/v1/projects

List projects. Query: ?status=active

POSThttps://www.lancerwise.com/api/v1/projects

Create project

Body: { title, client_id?, budget?, currency?, due_date?, status? }

GEThttps://www.lancerwise.com/api/v1/projects/:id

Get single project

PATCHhttps://www.lancerwise.com/api/v1/projects/:id

Update project

Body: { title, status, budget, currency, deadline }

DELETEhttps://www.lancerwise.com/api/v1/projects/:id

Delete project

GEThttps://www.lancerwise.com/api/v1/projects/:id/summary

Health snapshot: budget vs invoiced, time tracked, milestones, tasks, days_until_deadline

Time Entries

GEThttps://www.lancerwise.com/api/v1/time-entries

List time entries. Query: ?since=2026-01-01&limit=100

POSThttps://www.lancerwise.com/api/v1/time-entries

Log time

Body: { start_time, end_time, description?, project_id?, is_billed? }

GEThttps://www.lancerwise.com/api/v1/time-entries/:id

Get single time entry

PATCHhttps://www.lancerwise.com/api/v1/time-entries/:id

Update time entry

Body: { description, is_billed, project_id }

DELETEhttps://www.lancerwise.com/api/v1/time-entries/:id

Delete time entry

GEThttps://www.lancerwise.com/api/v1/time-entries/summary

Aggregated time by project + daily breakdown

POSThttps://www.lancerwise.com/api/v1/time-entries/start

Start timer — auto-stops running timer first

Body: { description?, project_id? }

POSThttps://www.lancerwise.com/api/v1/time-entries/stop

Stop running timer — returns completed entry with duration_seconds

Expenses

GEThttps://www.lancerwise.com/api/v1/expenses

List expenses. Query: ?since=2026-01-01&category=software

POSThttps://www.lancerwise.com/api/v1/expenses

Create expense

Body: { description, amount, currency, category, expense_date }

GEThttps://www.lancerwise.com/api/v1/expenses/:id

Get single expense

PATCHhttps://www.lancerwise.com/api/v1/expenses/:id

Update expense

Body: { description, amount, category, is_billable, notes }

DELETEhttps://www.lancerwise.com/api/v1/expenses/:id

Delete expense

PATCHhttps://www.lancerwise.com/api/v1/expenses/bulk

Bulk categorize

Body: { ids[], category } or { ids[], is_billable }

DELETEhttps://www.lancerwise.com/api/v1/expenses/bulk

Bulk delete

Body: { ids[] }

Leads

GEThttps://www.lancerwise.com/api/v1/leads

List leads. Query: ?stage=contacted

POSThttps://www.lancerwise.com/api/v1/leads

Create lead

Body: { name, email?, company?, stage?, potential_value? }

GEThttps://www.lancerwise.com/api/v1/leads/:id

Get single lead

PATCHhttps://www.lancerwise.com/api/v1/leads/:id

Update lead

Body: { stage, notes, next_follow_up, potential_value }

DELETEhttps://www.lancerwise.com/api/v1/leads/:id

Delete lead

Proposals

GEThttps://www.lancerwise.com/api/v1/proposals

List proposals. Query: ?status=sent

GEThttps://www.lancerwise.com/api/v1/proposals/:id

Get single proposal

PATCHhttps://www.lancerwise.com/api/v1/proposals/:id

Update proposal

Body: { status, expires_at }

Retainers

GEThttps://www.lancerwise.com/api/v1/retainers

List retainers. Query: ?status=active

POSThttps://www.lancerwise.com/api/v1/retainers

Create retainer

Body: { name, amount, start_date, billing_cycle?, client_id?, hours_per_month? }

GEThttps://www.lancerwise.com/api/v1/retainers/:id

Get single retainer

PATCHhttps://www.lancerwise.com/api/v1/retainers/:id

Update retainer

Body: { status, amount, next_billing_date }

DELETEhttps://www.lancerwise.com/api/v1/retainers/:id

Delete retainer

Notes

GEThttps://www.lancerwise.com/api/v1/notes

List notes. Query: ?search=keyword&linked_type=client&linked_id=uuid

POSThttps://www.lancerwise.com/api/v1/notes

Create note

Body: { content, title?, color?, is_pinned?, linked_type?, linked_id? }

GEThttps://www.lancerwise.com/api/v1/notes/:id

Get single note

PATCHhttps://www.lancerwise.com/api/v1/notes/:id

Update note

Body: { content, title, color, is_pinned, tags }

DELETEhttps://www.lancerwise.com/api/v1/notes/:id

Delete note

Tasks

GEThttps://www.lancerwise.com/api/v1/tasks

Daily tasks. Query: ?date=2026-05-07&completed=false

POSThttps://www.lancerwise.com/api/v1/tasks

Create task

Body: { title, priority?, estimated_minutes?, task_date?, project_id? }

GEThttps://www.lancerwise.com/api/v1/tasks/:id

Get single task

PATCHhttps://www.lancerwise.com/api/v1/tasks/:id

Update task

Body: { title, is_completed, priority, notes }

DELETEhttps://www.lancerwise.com/api/v1/tasks/:id

Delete task

Goals

GEThttps://www.lancerwise.com/api/v1/goals

Revenue goals. Query: ?year=2026 — includes auto-calculated progress_pct

POSThttps://www.lancerwise.com/api/v1/goals

Create goal

Body: { title, target_value, type?, period?, year?, currency? }

GEThttps://www.lancerwise.com/api/v1/goals/:id

Get single goal

PATCHhttps://www.lancerwise.com/api/v1/goals/:id

Update goal

Body: { title, target_value, current_value, is_achieved }

DELETEhttps://www.lancerwise.com/api/v1/goals/:id

Delete goal

Milestones

GEThttps://www.lancerwise.com/api/v1/milestones

Project milestones. Query: ?project_id=uuid&completed=false

POSThttps://www.lancerwise.com/api/v1/milestones

Create milestone

Body: { project_id, title, due_date?, amount? }

GEThttps://www.lancerwise.com/api/v1/milestones/:id

Get single milestone

PATCHhttps://www.lancerwise.com/api/v1/milestones/:id

Update milestone

Body: { title, due_date, is_completed, amount }

DELETEhttps://www.lancerwise.com/api/v1/milestones/:id

Delete milestone

Contracts

GEThttps://www.lancerwise.com/api/v1/contracts

List contracts. Query: ?status=draft|sent|signed|expired&client_id=uuid

POSThttps://www.lancerwise.com/api/v1/contracts

Create contract

Body: { title, client_id?, content?, status?, expires_at? }

GEThttps://www.lancerwise.com/api/v1/contracts/:id

Get single contract (includes full content)

PATCHhttps://www.lancerwise.com/api/v1/contracts/:id

Update contract — auto-sets sent_at/signed_at on status change

Body: { title, content, status, expires_at }

DELETEhttps://www.lancerwise.com/api/v1/contracts/:id

Delete contract

Reports

GEThttps://www.lancerwise.com/api/v1/reports

Business report. Query: ?type=monthly|quarterly|annual&year=2026&month=5

Webhooks

Register HTTPS webhook URLs to receive real-time events. Payloads are signed with HMAC-SHA256 using your webhook secret.

GEThttps://www.lancerwise.com/api/v1/webhooks

List webhooks + supported_events array

POSThttps://www.lancerwise.com/api/v1/webhooks

Register webhook

Body: { url (HTTPS), events[] }

GEThttps://www.lancerwise.com/api/v1/webhooks/:id

Get single webhook

PATCHhttps://www.lancerwise.com/api/v1/webhooks/:id

Update webhook

Body: { url, events, is_active }

DELETEhttps://www.lancerwise.com/api/v1/webhooks/:id

Delete webhook

POSThttps://www.lancerwise.com/api/v1/webhooks/:id/test

Send test payload — returns { ok, status, response }

LancerWise API · www.lancerwise.com