Estimates API
Create and manage estimates through the Estimates API.
List Estimates
Retrieve all estimates for your organization.
curl https://api.lawnledgercrm.com/api/estimates \
-b cookies.txtResponse:
{
"data": [
{
"id": "est_aaa111",
"estimateNumber": "EST-0015",
"customerId": "cust_abc123",
"status": "sent",
"subtotal": 1200.00,
"tax": 96.00,
"total": 1296.00,
"estimateDate": "2025-05-20",
"expirationDate": "2025-06-20",
"createdAt": "2025-05-20T08:00:00Z"
}
]
}Query Parameters
| Parameter | Type | Description |
|---|---|---|
status | string | Filter: draft, sent, approved, declined, expired |
customerId | string | Filter by customer ID |
page | number | Page number |
limit | number | Results per page |
Get Estimate
Retrieve a single estimate by ID.
curl https://api.lawnledgercrm.com/api/estimates/est_aaa111 \
-b cookies.txtCreate Estimate
Create a new estimate.
curl -X POST https://api.lawnledgercrm.com/api/estimates \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{
"customerId": "cust_abc123",
"propertyId": "prop_def456",
"estimateDate": "2025-06-01",
"expirationDate": "2025-07-01",
"lineItems": [
{
"description": "Spring Cleanup - Full Property",
"quantity": 1,
"unitPrice": 450.00
},
{
"description": "Mulch Installation (10 yards)",
"quantity": 10,
"unitPrice": 75.00
}
],
"notes": "Price includes materials and labor."
}'Required Fields
| Field | Type | Description |
|---|---|---|
customerId | string | Customer ID |
lineItems | array | At least one line item |
Optional Fields
| Field | Type | Description |
|---|---|---|
propertyId | string | Associated property |
estimateDate | string | Date of the estimate (ISO 8601) |
expirationDate | string | When the estimate expires |
notes | string | Notes displayed on the estimate |
Update Estimate
Update a draft estimate.
curl -X PUT https://api.lawnledgercrm.com/api/estimates/est_aaa111 \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{
"expirationDate": "2025-08-01",
"notes": "Extended validity per customer request"
}'Only estimates in Draft status can be fully edited. Sent estimates can have limited fields updated.
Delete Estimate
Delete a draft estimate.
curl -X DELETE https://api.lawnledgercrm.com/api/estimates/est_aaa111 \
-b cookies.txt⚠️
Only draft estimates can be deleted. Sent, approved, or declined estimates are preserved for record-keeping.