For the complete documentation index, see llms.txt. This page is also available as Markdown.

Get Escrows Details

Batch-read the full state of up to 50 escrows via GET /escrows/details.

This endpoint replaces GET /helper/get-escrow-by-contract-ids. The old path no longer exists.

Headers

Name
Value

Content-Type

application/json

x-api-key

<token>

Open API

Read the full detail of a batch of escrows

get

Bulk companion of GET /escrows/:contractId: pass up to 50 contract addresses (contractIds=C…&contractIds=C…) and get, for each known escrow, its full state (snapshot included) plus the deposit trail. The per-escrow timeline is excluded — page it at GET /escrows/:contractId/events. Unknown ids are silently absent from the response.

Authorizations
x-api-keystringRequired
Query parameters
contractIdsstring[] · min: 1 · max: 50Required

On-chain contract addresses (repeat the param: contractIds=C…&contractIds=C…, 1–50). Inaccessible or unknown ids are silently absent from the response.

Example: ["CAAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQC526"]
Responses
200Success
application/json
get/escrows/details
GET /escrows/details?contractIds=CAAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQC526 HTTP/1.1
Host: beta.api.trustlesswork.com
x-api-key: YOUR_API_KEY
Accept: */*
{
  "data": [
    {
      "escrow": {
        "network": "testnet",
        "contractId": "text",
        "type": "text",
        "apiVersion": "v1",
        "status": "text",
        "anomalies": [],
        "amount": "250.5",
        "balance": "250.5",
        "asset": {
          "name": "USDC",
          "address": "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5",
          "contractId": "CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4WWFEIE3USCIHMXQDAMA",
          "decimals": 7,
          "resolved": true
        },
        "lastLedgerSeq": "5512345",
        "createdAt": "text",
        "updatedAt": "text",
        "firstLedgerClosedAt": "text",
        "lastLedgerClosedAt": "text",
        "snapshot": {
          "ANY_ADDITIONAL_PROPERTY": "anything"
        }
      },
      "deposits": [
        {
          "fromAddress": "text",
          "assetInfo": {
            "name": "USDC",
            "address": "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5",
            "contractId": "CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4WWFEIE3USCIHMXQDAMA",
            "decimals": 7,
            "resolved": true
          },
          "amount": "250.5",
          "txHash": "text",
          "ledgerSeq": "text",
          "ledgerClosedAt": "text"
        }
      ],
      "depositsHasMore": false,
      "depositsTotal": 3
    }
  ]
}

GET /escrows/details

Returns the full state and deposits of up to 50 escrows in one request. No event timeline — use GET /escrows/{contractId}/events for that.

Query parameters

Name
Type
Description

contractIds

string[] (1–50)

Contract addresses (C…) to fetch. Repeat the parameter once per id.

What this Endpoint returns?

An array of escrow objects, each containing the current state, the camelCase snapshot, the resolved asset, and the recorded deposits. Every amount is a decimal string.

Because the request itself is bounded at 50 ids, this endpoint is not paginated.

Use Example:

The old endpoint took a validateOnChain flag to re-check data against the chain. There is no equivalent here: escrow state is recorded from on-chain events automatically, so there is nothing to reconcile. When you need chain-authoritative truth, read the chain.