Get Escrow Milestones
Read the milestones of one escrow or a batch.
Headers
Content-Type
application/json
x-api-key
<token>
Open API
GET /escrows/{contractId}/milestones
Addressed by the on-chain contract address (C…). Returns the milestone slice of the projected state without the rest of the detail payload — entry shape depends on the contract flavor. Returns 404 only if the escrow is unknown on this network.
On-chain escrow contract address (C…, 56 chars).
CAAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQC526On-chain escrow contract (C...).
Detected contract flavor. Null until the first state.
Raw milestone entries from the projected state (shape depends on the contract flavor). Empty until the first state is projected.
Request body or query params fail schema validation (wrong type, missing required field, unknown property).
Missing, malformed, expired, revoked or invalid API key.
API key is valid but does not have the role required for this operation.
Escrow not found.
Payload is well-formed but a business rule rejects it (e.g. amount out of range, role not allowed for this user).
GET /escrows/{contractId}/milestones HTTP/1.1
Host: beta.api.trustlesswork.com
x-api-key: YOUR_API_KEY
Accept: */*
{
"contractId": "text",
"type": "text",
"milestones": [
{}
]
}Reads one escrow's milestones only — a lighter call than fetching the whole escrow.
contractId
string
path
On-chain escrow address (C…)
GET /escrows/milestones
Bulk companion of GET /escrows/:contractId/milestones: pass up to 50 contract addresses (contractIds=C…&contractIds=C…) and get the milestone slice of each. Unknown ids are silently absent from the response.
On-chain contract addresses (repeat the param: contractIds=C…&contractIds=C…, 1–50). Inaccessible or unknown ids are silently absent from the response.
["CAAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQC526"]Request body or query params fail schema validation (wrong type, missing required field, unknown property).
Missing, malformed, expired, revoked or invalid API key.
API key is valid but does not have the role required for this operation.
Payload is well-formed but a business rule rejects it (e.g. amount out of range, role not allowed for this user).
GET /escrows/milestones?contractIds=CAAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQC526 HTTP/1.1
Host: beta.api.trustlesswork.com
x-api-key: YOUR_API_KEY
Accept: */*
{
"data": [
{
"contractId": "text",
"type": "text",
"milestones": [
{}
]
}
]
}The batch version: milestones for several escrows at once.
contractIds
string[]
query
1–50 addresses. Repeat the param
What this Endpoint returns?
The milestone list of each escrow, including status and the approvals { target, approvalCount, approvedBy } progress used to render approval state.
The batch endpoint is not paginated — the request itself is bounded at 50 ids. Unknown ids are silently absent rather than an error, so check what came back.