Edit Deal
Update a deal by ID (partial update).
PATCH
/v2/pipeline
Request Body
Writeable fields
| Field | Type | Status | Format | Notes |
|---|---|---|---|---|
| data | object | required | - | - |
| data.id | uuid | required | uuid | UUID of the deal to update. Required for PATCH. |
| data.deal_size | number | optional | - | Monetary value (number only, no symbols). |
| data.stage | enum QualificationProposalNegotiationInterestedVerbalDiscoveryWonLost | optional | - | Stage label. |
| data.open_date | ISO 8601 datetime | optional | date-time | ISO datetime the deal opened. |
| data.close_date | ISO 8601 datetime | optional | date-time | ISO datetime if already closed. |
| data.company | string | optional | - | Company associated with the deal. |
| data.notes | string | optional | - | Freeform notes. |
| data.contact_email | string | optional | Email for the primary contact (if no UUID). |
cURl example
curl -X PATCH 'https://lunarsend.com/api/v2/pipeline' \
-H 'x-api-key: $LUNARSEND_API_KEY' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{
"id": "7b1b0e42-1f2a-4e1e-8e5d-1f6a7b0c9d21",
"stage": "Negotiation",
"deal_size": 15000,
"notes": "Updated after pricing review",
"contact_email": "ops@A-BLogistics.com"
}'Response
[
{
success: true,
data: {
id: "7b1b0e42-1f2a-4e1e-8e5d-1f6a7b0c9d21",
user_id: "77f463d7-4107-1957-8b71-ab03acc319a2",
deal_size: 15000,
primary_contact: "150c081d-5d5f-401d-abd1-727c35222054",
stage: "Negotiation",
open_date: "2025-10-04T14:25:11.000Z",
close_date: null,
owner: "John",
company: "A-B Logistics",
notes: "Updated after pricing review",
contact_email: "ops@A-BLogistics.com",
created_at: "2025-10-04T14:25:11.000Z",
},
},
]Response Fields
| Field | Type | Status | Format | Notes |
|---|---|---|---|---|
| status | enum successerror | read-only optional | - | - |
| error | string - Error description (only present on error) | read-only optional | - | - |
| data | object | required | - | - |
| data.id | uuid | required | uuid | UUID of the deal to update. Required for PATCH. |
| data.user_id | uuid | read-only optional nullable | uuid | Defaults to the caller's user_id. |
| data.deal_size | number | optional nullable | - | Monetary value (number only, no symbols). |
| data.primary_contact | uuid | read-only optional nullable | uuid | UUID of the primary contact for this deal, set automatically based off contact_email |
| data.stage | enum QualificationProposalNegotiationInterestedVerbalDiscoveryWonLost | optional nullable | - | Stage label. |
| data.open_date | ISO 8601 datetime | optional nullable | date-time | ISO datetime the deal opened. |
| data.close_date | ISO 8601 datetime | optional nullable | date-time | ISO datetime if already closed. |
| data.owner | string | read-only optional | - | Resolved to the caller's display name. |
| data.company | string | optional nullable | - | Company associated with the deal. |
| data.notes | string | optional nullable | - | Freeform notes. |
| data.contact_email | string | optional nullable | Email for the primary contact (if no UUID). | |
| data.created_at | ISO 8601 datetime | read-only optional nullable | date-time | Server-assigned at creation. |