curl "https://api.totalis.trade/v1/mm/positions/1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40" \
-H "X-API-Key: $API_KEY"
import requests
rfq_id = "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40"
resp = requests.get(
f"https://api.totalis.trade/v1/mm/positions/{rfq_id}",
headers={"X-API-Key": API_KEY},
)
if resp.status_code == 404:
print("Not one of your active positions")
else:
position = resp.json()["data"]["position"]
for leg in position["legs"]:
print(leg["market_title"], leg["side"])
{
"data": {
"position": {
"position_pda": "7sKq9fGh2mNp4rTv6wXy8zAb1cDe3fGh5jKl7mNp9qRs",
"position_id": "9f2c7a4e1b6d8305c4a9e7f21d8b306e",
"rfq_id": "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40",
"user_id": "did:privy:cmabc123def456ghi789jkl",
"market_maker_id": "did:privy:cmxyz987uvw654rst321opq",
"user_stake": 24.75,
"mm_risk": 74.25,
"mm_collateral_locked": 74.25,
"total_payout": 99,
"status": "active",
"created_at": "2026-06-01T18:45:45.000Z",
"legs": [
{
"market_title": "Lakers",
"event_title": "NBA Finals Winner",
"side": "yes",
"outcome": "yes",
"yes_sub_title": "Los Angeles Lakers",
"no_sub_title": null,
"selection_label": "Lakers",
"bet_group": null,
"venue": "kalshi",
"event_ticker": "KXNBAFINALS-26",
"market_ticker": "KXNBAFINALS-26-LAL",
"exclusivity_group": "KXNBAFINALS-26",
"exclusivity_group_kind": "partition",
"venue_url": "https://kalshi.com/markets/kxnbafinals",
"market_resolved": false,
"market_result": null,
"market_resolved_at": null
}
]
}
}
}
Market maker
Get position
Fetch one of your active market-maker positions by its RFQ id, with full parlay legs.
GET
/
v1
/
mm
/
positions
/
{id}
curl "https://api.totalis.trade/v1/mm/positions/1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40" \
-H "X-API-Key: $API_KEY"
import requests
rfq_id = "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40"
resp = requests.get(
f"https://api.totalis.trade/v1/mm/positions/{rfq_id}",
headers={"X-API-Key": API_KEY},
)
if resp.status_code == 404:
print("Not one of your active positions")
else:
position = resp.json()["data"]["position"]
for leg in position["legs"]:
print(leg["market_title"], leg["side"])
{
"data": {
"position": {
"position_pda": "7sKq9fGh2mNp4rTv6wXy8zAb1cDe3fGh5jKl7mNp9qRs",
"position_id": "9f2c7a4e1b6d8305c4a9e7f21d8b306e",
"rfq_id": "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40",
"user_id": "did:privy:cmabc123def456ghi789jkl",
"market_maker_id": "did:privy:cmxyz987uvw654rst321opq",
"user_stake": 24.75,
"mm_risk": 74.25,
"mm_collateral_locked": 74.25,
"total_payout": 99,
"status": "active",
"created_at": "2026-06-01T18:45:45.000Z",
"legs": [
{
"market_title": "Lakers",
"event_title": "NBA Finals Winner",
"side": "yes",
"outcome": "yes",
"yes_sub_title": "Los Angeles Lakers",
"no_sub_title": null,
"selection_label": "Lakers",
"bet_group": null,
"venue": "kalshi",
"event_ticker": "KXNBAFINALS-26",
"market_ticker": "KXNBAFINALS-26-LAL",
"exclusivity_group": "KXNBAFINALS-26",
"exclusivity_group_kind": "partition",
"venue_url": "https://kalshi.com/markets/kxnbafinals",
"market_resolved": false,
"market_result": null,
"market_resolved_at": null
}
]
}
}
}
Resolve one RFQ id to your position and its full parlay legs. Pass an
rfq_id you already hold, for example from Get vault. This is the by-id counterpart of List positions.
Scoped to you as the market maker. An id that belongs to another maker, does not exist, or has already settled returns 404, so the endpoint never reveals another maker’s book.
Base URL: https://api.totalis.trade
Authentication
API key required. Pass your API key in theX-API-Key header.
X-API-Key: <key>
Path parameters
string
required
The RFQ (parlay ticket) id: the
rfq_id from List positions or Get vault. Must be a UUID.Response
object
Show data
Show data
object
The position. Same shape as each entry in List positions.
Show position
Show position
string
On-chain position PDA.
string
On-chain position id, hex encoded (32 lowercase chars, no
0x). The early cashout join key: match it against the position_id on a broadcast cashout_request to see whether you back that position.string
The RFQ (parlay ticket) id. Matches the
id path parameter.string
The counterparty bettor’s Privy DID (
did:privy:...).string
Your market maker Privy DID (
did:privy:...).number
The bettor’s net stake in USDC (
bet_amount - taker_fee).number
Your maximum risk (max loss) in USDC.
number | null
Collateral this position added to your lock when it opened, in USDC: the rise in your book’s worst-case loss, from 0 up to
mm_risk. null before it lands. See Collateral and the ILP.number
Total pot paid to the winner if the parlay resolves (
user_stake + mm_risk).string
active, or an in-flight release state listed on List positions.string
ISO 8601 creation timestamp.
array
The parlay legs, in leg order. Each leg has the fields documented in List positions.
Errors
| Status | Code | Description |
|---|---|---|
| 401 | UNAUTHORIZED | Missing or invalid API key. |
| 404 | NOT_FOUND | The id is malformed, or is not one of your active positions. |
curl "https://api.totalis.trade/v1/mm/positions/1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40" \
-H "X-API-Key: $API_KEY"
import requests
rfq_id = "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40"
resp = requests.get(
f"https://api.totalis.trade/v1/mm/positions/{rfq_id}",
headers={"X-API-Key": API_KEY},
)
if resp.status_code == 404:
print("Not one of your active positions")
else:
position = resp.json()["data"]["position"]
for leg in position["legs"]:
print(leg["market_title"], leg["side"])
{
"data": {
"position": {
"position_pda": "7sKq9fGh2mNp4rTv6wXy8zAb1cDe3fGh5jKl7mNp9qRs",
"position_id": "9f2c7a4e1b6d8305c4a9e7f21d8b306e",
"rfq_id": "1a6d1f06-9d4f-47cb-994b-3bdfbbef7e40",
"user_id": "did:privy:cmabc123def456ghi789jkl",
"market_maker_id": "did:privy:cmxyz987uvw654rst321opq",
"user_stake": 24.75,
"mm_risk": 74.25,
"mm_collateral_locked": 74.25,
"total_payout": 99,
"status": "active",
"created_at": "2026-06-01T18:45:45.000Z",
"legs": [
{
"market_title": "Lakers",
"event_title": "NBA Finals Winner",
"side": "yes",
"outcome": "yes",
"yes_sub_title": "Los Angeles Lakers",
"no_sub_title": null,
"selection_label": "Lakers",
"bet_group": null,
"venue": "kalshi",
"event_ticker": "KXNBAFINALS-26",
"market_ticker": "KXNBAFINALS-26-LAL",
"exclusivity_group": "KXNBAFINALS-26",
"exclusivity_group_kind": "partition",
"venue_url": "https://kalshi.com/markets/kxnbafinals",
"market_resolved": false,
"market_result": null,
"market_resolved_at": null
}
]
}
}
}
Was this page helpful?

