Docs
Get Procurement
GET /procurements/{procurementId}
GET
/procurements/{procurementId}Required Tokens
| Field | Type | Required | Description |
|---|---|---|---|
| Bearer | Authorization: Bearer <api-key> | Optional | Your API key. Pass it as the Bearer token on every request. |
| Event token | x-Event-Token | Optional | Run **Get Tokens** in the Authorization folder, or call `GET /Events/{eventId}/authorize` manually. |
Returns one procurement with every need, its schedule, pricing breakdown, order lines and linked advance requests.
Event scoping: This endpoint does not include
{eventId} in the URL. The event is determined automatically from your x-Event-Token.Path Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| procurementId | Guid | Required | The procurement. |
Response Fields
| Field | Type | Description |
|---|---|---|
| id | Guid | Procurement. |
| name / description | string | Display fields. |
| status | string | Rolled-up status. |
| totalCost / totalCharge | decimal | Sum of top-level needs; component needs are counted through their parent. |
| groups | array | `{ id, name, notes, index }`. |
| resources | array | The needs. |
| resources[].id | Guid | The need. |
| resources[].status | string | `NeedsOrdered`, `Short`, `OnOrder` or `Excess`. |
| resources[].quantity | decimal | Quantity needed. |
| resources[].groupId | Guid| null | The group it sits in. |
| resources[].area | object| null | `{ id, name }`. |
| resources[].cloneGroupId | Guid| null | Shared by needs cloned from the same source. |
| resources[].rateCardId / rateCardName | Guid? / string | The need's own card. |
| resources[].costPerUnit / chargePerUnit / totalCost / totalCharge | decimal | Priced money. A composite parent's totals are the composite's. |
| resources[].type | object | `{ id, label, trackingType, icon, lineItemLabel }`. |
| resources[].attributeValues | array | `{ id, resourceAttributeId, value }`. |
| resources[].parentProcurementResourceId | Guid| null | Set on a composite's component need. |
| resources[].componentId / componentLabel | Guid? / string | The composite slot a component need fills. |
| resources[].allowedResourceVariantIds | Guid[] | A component need's allowed variants: empty = any. |
| resources[].chargeReplacedByComposite | bool | True on a component need whose parent has a composite card: its charge is not applied (totals already exclude it). |
| resources[].compositeCoverage | object| null | A parent's fill: `{ fulfilledUnits, openUnits, isFilled, status, perComponent[] }`. |
| resources[].compositeMoney | object| null | A parent's money: `{ cost, charge, margin, isChargeDeclared, isPartial }`. |
| resources[].scheduleBlocks | array | `{ id, type: { id, name, color, icon }, name, startDateTime, endDateTime, activityId, notes, area, collaboratorId, costAmount, chargeAmount, requests: [{ id }] }`. |
| resources[].costSegments | array | `{ stateName, period, durationHours, costAmount, chargeAmount, isFallback }`. |
| resources[].costMinimums | array | `{ spanStart, spanEnd, costAmount, chargeAmount }`. |
| resources[].costModifiers | array | `{ modifierId, label, value, application, costAmount, chargeAmount }`. |
| resources[].ruleSets | array | `{ id, name }`. |
| resources[].owner | Guid| null | Owning department. |
| resources[].isUnbilledScope | bool | Bought but never sold: no funded proposal line and no budget assignment. |
| resources[].startDateTime / endDateTime | DateTimeOffset| null | Min and max of the need's blocks. |
| resources[].collaboratorId | Guid| null | Collaborator context. |
| resources[].orderLines | array | `{ id, orderId, orderName, quantity, revisesOnEdit }`. |
| resources[].requests | array | Advance requests linked to the need: `{ id }`. |
| resources[].incomplete | object| null | `{ missingRequired: [{ resourceAttributeId, label, pricingRole }], blocksPricing }`. Null when complete. |
Error Codes
| HTTP Status | Description |
|---|---|
| 404 | Procurement not found. |