DEVELOPER DOCUMENTATION
Get Contract Budget
Read a linked contract's budget: funded milestone volume, consumed work, remaining volume, and the OK / LOW / DEPLETED state.
/api/partner/v1/contracts/{contractId}/budgetReturns the contract’s current budget: funded milestone volume versus consumed work, and the resulting OK / LOW / DEPLETED state. Read-only and side-effect-free — polling it never emits events. Use it to reconcile after downtime or to render budget status in your UI; the usage-sync guide explains how the numbers are computed.
Requirements: contracts:read scope, and the contract’s job must be referenced by a project link on the calling token’s install.
Request
Section titled “Request”contractIdstringpathrequiredThe OpenTrain contract to read.
Response
Section titled “Response”contractIdstringThe contract this budget describes.
paymentTypestring | nullPAY_PER_HOUR, PAY_PER_LABEL, or FIXED_PRICE. Determines the volume unit (hours, labels) — FIXED_PRICE contracts never deplete.
statestringOK (below 80% consumed), LOW (consumedFraction ≥ 0.8), or DEPLETED (≥ 1.0). Always OK for FIXED_PRICE or when nothing is funded.
fundedVolumenumberTotal volume (hours or labels) across funded and completed milestones.
fundedAmountUsdnumberTotal USD across those milestones.
consumedobjectRaw consumption totals across all reported usage and OpenTrain first-party work: seconds, hours, labels, tasks.
consumedVolumenumberConsumption in the contract’s volume unit — hours for PAY_PER_HOUR, labels for PAY_PER_LABEL.
remainingVolumenumberfundedVolume - consumedVolume, floored at 0.
consumedFractionnumberconsumedVolume / fundedVolume, rounded to 4 decimals. 0 when nothing is funded.
activeMilestoneobject | nullThe current funded milestone (id, name, amountUsd, volume, status), or null if none is active.
lastUsageAtstring | nullISO 8601 timestamp of the most recent usage report or first-party work record — null if no work has been recorded.
Errors
Section titled “Errors”| Status | code | Meaning |
|---|---|---|
401 | UNAUTHORIZED | Missing, invalid, or revoked token |
403 | FORBIDDEN | Token lacks contracts:read |
404 | NOT_FOUND | Contract not found, or its job is not linked by this install |