Skip to main content
GET
/
api
/
public
/
v1
/
credits
curl -sS https://app.opentrain.ai/api/public/v1/credits \
  -H "Authorization: Bearer $OT_API_TOKEN"
{
  "credits": {
    "availableCents": 5000,
    "reservedCents": 2500,
    "currency": "usd",
    "recentEntries": [
      {
        "id": "<ENTRY_ID>",
        "type": "HOLD",
        "amountCents": -2500,
        "createdAt": "2026-06-12T10:00:00.000Z",
        "holdEntryId": null,
        "jobofferId": "<PROPOSAL_ID>",
        "contractId": "<CONTRACT_ID>",
        "milestoneId": "<MILESTONE_ID>",
        "topUpId": null,
        "note": null
      }
    ]
  }
}
Reads the credits overview for your account. Credits are a prepaid balance that funds hires and milestone escrow without a card-present step — every money move still requires human co-sign; credits only change where the money comes from. Accounts that have never used credits get an all-zero response (not a 404). For full transaction history, page through GET /credits/ledger; to add funds, create a top-up. Tokens belonging to organization members read the org owner’s credit account. Requirements: payments:read scope + the public_api_credits feature. Works pre-claim. No parameters.

Response

credits
object

Errors

StatuscodeMeaning
401UNAUTHORIZEDMissing or invalid token
403FORBIDDENMissing payments:read scope, or public_api_credits disabled for the account (details.featureKey)
curl -sS https://app.opentrain.ai/api/public/v1/credits \
  -H "Authorization: Bearer $OT_API_TOKEN"
{
  "credits": {
    "availableCents": 5000,
    "reservedCents": 2500,
    "currency": "usd",
    "recentEntries": [
      {
        "id": "<ENTRY_ID>",
        "type": "HOLD",
        "amountCents": -2500,
        "createdAt": "2026-06-12T10:00:00.000Z",
        "holdEntryId": null,
        "jobofferId": "<PROPOSAL_ID>",
        "contractId": "<CONTRACT_ID>",
        "milestoneId": "<MILESTONE_ID>",
        "topUpId": null,
        "note": null
      }
    ]
  }
}