Skip to main content

Documentation Index

Fetch the complete documentation index at: https://4cx.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

What you are doing

This is the main place call: you send one or more orders to /session/v2/place. The sample body shows the usual case—resting a new offer on the board.

When orderType is post

  • Use post when you want your risk to sit on the book until another user matches you (or you cancel).
  • If you want to immediately take existing liquidity (coins flow), use Take with coins instead—same URL, different orderType.

Request body (field by field)

FieldMeaning
ordersArray; most integrations send one order object while testing.
orderTypepost = add resting liquidity (not an IOC sweep).
gameIDThe game/market id—must exist in the system.
typemoneyline, spread, total, etc.
oddsAmerican odds from your perspective (e.g. -110).
riskAmount you risk on this offer. With X-API-Version: public the API expects this field name.
sideWhich side you back—valid values depend on the game; team_a is only a placeholder.

Example response

  • createdSessions — one entry per submitted order.
  • matched — instant fills (usually empty for a pure post).
  • unmatched — what is still live: use orderID with Cancel order / Look up single order; offered / remaining show how much risk is still working.
Replace sample ids and side with values from your environment before expecting a real fill.

Request

POST https://api.4cx.io/session/v2/place POST
Headers: Authorization, X-API-Version: public, Content-Type: application/json
{
  "orders": [
    {
      "orderType": "post",
      "gameID": "evt_001",
      "type": "moneyline",
      "odds": -110,
      "risk": 50,
      "side": "team_a"
    }
  ]
}