Get deal
Retrieve a single deal by ID.
GET/api-deals/:id
Requires the crm:read scope (the legacy contacts:read alias also works).
Path parameters
Path
| Name | Type | Description |
|---|---|---|
idrequired | uuid | The deal ID. Must belong to the caller's organization. |
Example request
bash
curl -X GET \
'https://api.wundertreos.com/functions/v1/api-deals/d1e2f3a4-1111-2222-3333-444455556666' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'Response
json
{
"data": {
"id": "d1e2f3a4-1111-2222-3333-444455556666",
"org_id": "a1b2c3d4-1111-2222-3333-444455556666",
"contact_id": "c8b1f3a0-4d2e-4f9a-9b1c-2d4e5f6a7b8c",
"company_id": null,
"pipeline_id": "p1a2b3c4-1111-2222-3333-444455556666",
"stage_id": "s1a2b3c4-1111-2222-3333-444455556666",
"title": "Acme — Annual plan",
"value": 12000,
"currency": "USD",
"expected_close_date": "2026-06-30",
"assigned_to": "u1b1f3a0-4d2e-4f9a-9b1c-2d4e5f6a7b8c",
"notes": null,
"won_at": null,
"lost_at": null,
"lost_reason": null,
"created_at": "2026-05-01T10:00:00Z",
"updated_at": "2026-05-17T12:00:00Z",
"created_by": "u1b1f3a0-4d2e-4f9a-9b1c-2d4e5f6a7b8c"
}
}Response
| Field | Type | Description |
|---|---|---|
data.id | uuid | |
data.org_id | uuid | |
data.contact_idnullable | uuid | Linked contact. |
data.company_idnullable | uuid | Linked company. |
data.pipeline_id | uuid | Pipeline this deal lives in. |
data.stage_id | uuid | Current stage within the pipeline. Resolve names and won/lost flags via List pipelines. |
data.title | string | |
data.value | number | Monetary value of the deal. 0 when unset. |
data.currency | string | ISO 4217 code (e.g. USD). |
data.expected_close_datenullable | string (ISO 8601 date) | |
data.assigned_tonullable | uuid | Owner user ID. |
data.notesnullable | string | |
data.won_atnullable | string (ISO 8601) | When the deal last entered a won stage. Historical — the current stage is the source of truth. |
data.lost_atnullable | string (ISO 8601) | When the deal last entered a lost stage. |
data.lost_reasonnullable | string | |
data.created_at | string (ISO 8601) | |
data.updated_at | string (ISO 8601) | |
data.created_bynullable | uuid |
Is this deal won?
Check whether stage_id points at a stage with is_won: true (see List pipelines). won_at is set when a deal enters a won stage and is kept as history if the deal is later moved back to an open stage, so it alone does not mean the deal is currently won.
Errors
| Status | error | When |
|---|---|---|
| 403 | forbidden | The credential lacks the crm:read scope. |
| 404 | not_found | No deal with that ID in the caller's organization. |
