Skip to main content
POST
/
rfqs
Create RFQ
curl --request POST \
  --url https://api.totalis.trade/rfqs \
  --header 'Content-Type: application/json' \
  --header 'TOTALIS_API_KEY: <api-key>' \
  --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>",
  "position_pda": "<string>",
  "position_status": "active"
}

Authorizations

TOTALIS_API_KEY
string
header
required

API key for programmatic access. Generate from the Totalis Dashboard. Format: api_live_xxxxxxxxxxxxxxxxxxxxx. Supported for REST API and WebSocket.

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,
settled
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
position_pda
string | null

Solana position PDA address

position_status
enum<string>

On-chain vault position status

Available options:
active,
settled_win,
settled_loss,
cancelled