API · Read

Get mandate

Pulls the active Investment Policy Statement as a structured bundle. Always call this before sizing a proposal — the response tells you exactly what's allowed.

GET/api/agent/v1/mandatescope: read

Request

No parameters.

bash
curl -H "Authorization: Bearer ac_live_…" \
  https://api.advisorscrypto.com/api/agent/v1/mandate

Response

The fields you’ll use most often:

  • limits — the hard bands. Allocation min/target/max per sleeve, cash floor, max drawdown, max slippage.
  • snapshot — current portfolio state used in the most recent evaluation.
  • utilization — how much of each band is already used. The agent’s sizing dial.
200 OK
{
  "hasIps": true,
  "ipsVersion": 7,
  "tier": 2,
  "limits": {
    "cryptoMin": 0.10,
    "cryptoTarget": 0.20,
    "cryptoMax": 0.35,
    "tradfiMin": 0.55,
    "tradfiTarget": 0.65,
    "tradfiMax": 0.80,
    "cashFloor": 0.05,
    "maxDrawdown": 0.25,
    "maxSlippage": 0.01
  },
  "snapshot": {
    "totalValue": 482310,
    "cryptoValue": 106108.20,
    "tradfiValue": 342440.10,
    "cashValue": 33761.70,
    "cryptoPct": 0.22,
    "tradfiPct": 0.71,
    "cashPct": 0.07,
    "snapshotDate": "2026-06-14",
    "currentDrawdownPct": 0.136
  },
  "utilization": {
    "cryptoUsedPct": 0.48,
    "tradfiUsedPct": 0.64,
    "driftFromTarget": 0.02,
    "drawdownHeadroomPct": 0.114
  }
}

No active IPS

If the user has not encoded an IPS, hasIps is false and the typed limits/snapshot/utilization fields are null. Every validate_trade from this user will return a no_active_ips violation. Tell the user to finish onboarding.

Errors

401 Unauthorized
{ "statusCode": 401, "message": "Missing scope: read" }
Last updated 2026-06-15