Skip to main content
POST
/
rfqs
Create RFQ
curl --request POST \
  --url https://api.totalis.com/rfqs \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "legs": [
    {
      "kalshi_market_ticker": "KXBTC-25FEB07-T100000",
      "side": "yes"
    },
    {
      "kalshi_market_ticker": "KXETH-25FEB07-T3500",
      "side": "no"
    }
  ],
  "bet_amount": 100,
  "expires_in_seconds": 300
}
'
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "<string>",
"legs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kalshi_event_ticker": "<string>",
"kalshi_market_ticker": "<string>",
"side": "yes",
"event_title": "<string>",
"market_title": "<string>",
"current_yes_price": 123,
"current_no_price": 123
}
],
"status": "open",
"created_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"bet_amount": 5000.5,
"implied_probability": 123,
"accepted_quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cancellation_reason": "<string>",
"escrow_pda": "<string>",
"escrow_status": "created"
}

Authorizations

Authorization
string
header
required

Privy JWT token. Use Authorization: Bearer <token>. Supported for REST API only.

Body

application/json
legs
object[]
required

Parlay legs (2-5 required)

Required array length: 2 - 5 elements
bet_amount
number
required

Bet amount in USDC

Required range: 1 <= x <= 10000
expires_in_seconds
integer
default:300

RFQ expiration time in seconds

Required range: 60 <= x <= 3600

Response

RFQ created successfully

id
string<uuid>
required
user_id
string
required
legs
object[]
required
Required array length: 2 - 5 elements
status
enum<string>
required

Lifecycle status of an RFQ

Available options:
open,
quoted,
accepted,
confirmed,
executed,
cancelled,
expired
created_at
string<date-time>
required
expires_at
string<date-time>
required
bet_amount
number
required
Required range: 1 <= x <= 10000
implied_probability
number

Combined implied probability of all legs

accepted_quote_id
string<uuid> | null
cancellation_reason
string | null
escrow_pda
string | null

Solana escrow PDA address

escrow_status
enum<string>

On-chain escrow status

Available options:
created,
user_funded,
active,
settled_win,
settled_loss,
cancelled