Skip to content

Engagements

Engagements represent active client work — retainers, projects, and contracts. Each engagement tracks revenue, headcount, team members, and deliverables.

Routes

GET /api/engagements

List engagements.

Auth: Required
Query params:

ParamTypeDescription
statusstringactive, paused, completed, cancelled
company_idstringFilter by company
productstringFilter by product
limitnumberDefault: 50

Response includes: All engagement fields + company_name from join.


GET /api/engagements/:id

Get a single engagement with company name.

Auth: Required


POST /api/engagements

Create an engagement.

Auth: Required
Request body:

FieldTypeRequiredDescription
company_idstringyesAssociated company
namestringyesEngagement name
engagement_typestringnoretainer, project, consulting. Default: retainer
productstringnoDefault: studios
statusstringnoDefault: active
start_datestringnoISO date
end_datestringnoISO date
monthly_revenuenumbernoMRR
total_valuenumbernoTCV
headcountnumbernoTeam size
cogsnumbernoCost of goods sold
margin_pctnumbernoMargin percentage
team_membersarrayno[{ role, hours, rate }]
toolsarrayno["Jira", "GitHub"]
deliverablesstringnoDeliverables description
notesstringnoInternal notes

PATCH /api/engagements/:id

Update engagement fields.

Auth: Required
Updatable fields: name, engagement_type, product, status, start_date, end_date, monthly_revenue, total_value, headcount, cogs, margin_pct, team_members, tools, deliverables, jira_board_url, notes, plain_status, jira_project_key, contract_renewal_date


Invoices

GET /api/invoices

List invoices.

Auth: Required
Query params: company_id, status (draft, sent, paid, overdue), limit

Response: Includes company_name from join.


POST /api/invoices

Create an invoice.

Auth: Required
Request body:

FieldTypeRequiredDescription
company_idstringyesAssociated company
amountnumberyesTotal amount
engagement_idstringnoAssociated engagement
invoice_numberstringnoInvoice number
currencystringnoDefault: USD
statusstringnoDefault: draft
issued_datestringnoISO date
due_datestringnoISO date
subtotalnumbernoPre-tax amount
taxnumbernoTax amount
discountnumbernoDiscount amount
margin_pctnumbernoMargin %
cogsnumbernoCost of goods sold
profitnumbernoProfit amount
line_itemsarraynoLine items array
notesstringnoNotes
sourcestringnomanual, stripe, quickbooks. Default: manual

Sprint Mode LLC — Internal Platform Documentation