Limit Operations
resource: limits — pre-flight trading checks and per-session caps
getTradingLimits
Pre-flight check for a specific symbol/side pair — call this before createAttestation to confirm a trade is allowed.
| Field | Type | Required | Description |
|---|---|---|---|
symbol | text | ✓ Yes | GM asset symbol. |
side | select | ✓ Yes | buy or sell. |
Example response:
{
"timestamp": "2026-07-29T14:00:00Z",
"symbol": "AAPLon",
"side": "buy",
"maxTokens": "10000.000000000000000000",
"maxNotionalValue": "1500000.000000000000000000",
"remainingAttestations": 42,
"isAssetTradingOpen": true,
"reason": null
}
403 Forbidden risk: This is a GET, but it can still return
AUTH_FORBIDDEN if the configured API key is read-only / lacks attestation scope —
treat a 403 here the same as you would on a write-style call.
If the asset's market is closed, the result reports status: "closed_market" with
reason populated and the numeric fields null.
getSessionLimits
Per-asset limits broken down by trading session. Ondo models 5 discrete sessions.
| Field | Type | Required | Description |
|---|---|---|---|
symbol | text | No | Omit to get session limits for all assets. |
| Session | Typical Window (ET) |
|---|---|
| Premarket | 4:00 AM – 9:30 AM |
| Regular | 9:30 AM – 4:00 PM |
| Postmarket | 4:00 PM – 8:00 PM |
| Overnight | 8:00 PM – 4:00 AM |
| Offhours | 24/7 mode, active only when the regular market is closed |
Example response:
{
"limits": [
{ "symbol": "AAPLon",
"premarket": { "tradable": true, "maxAttestationCount": 5, "maxActiveNotionalValue": "50000.000000000000000000" },
"regular": { "tradable": true, "maxAttestationCount": 20, "maxActiveNotionalValue": "1500000.000000000000000000" },
"postmarket": { "tradable": true, "maxAttestationCount": 5, "maxActiveNotionalValue": "50000.000000000000000000" },
"overnight": { "tradable": false, "maxAttestationCount": 0, "maxActiveNotionalValue": "0.000000000000000000" },
"offhours": { "tradable": true, "maxAttestationCount": 10, "maxActiveNotionalValue": "250000.000000000000000000" }
}
],
"timestamp": "2026-07-29T14:00:00Z",
"count": 1
}
Tip: Check
offhours.tradable alongside
getMarketStatus's offhours.isOpen before
routing a trade attempt outside regular hours — both must allow it.