Formula creation is available from the Order Execution API at
https://execution.kairos.trade/v1/synthetics. It uses the same
X-Client-Id, X-Api-Key, and X-Api-Secret credential set as the rest of
the Kairos APIs. Any authenticated Kairos account can use it; no extra scope,
allowlist, or second credential set is required. The public WebSocket is
subscription-only: it accepts the canonical synthetic_id the response
supplies, not a formula. Do not derive a synthetic_id locally.How to read a synthetic formula
Each leg identifies one tradeable outcome and has a signed weight:- A positive weight means buying that outcome when buying the synthetic.
- A negative weight means selling that outcome when buying the synthetic.
- The absolute weight controls how much of that outcome one synthetic unit uses.
S = A - B:
A - B requires
buying A and selling B. Using ask(B) in the synthetic ask would describe the
wrong trade.
Worked spread example
Suppose the two source books show:
Then the top of book for
A - B is:
Weights change both price and capacity
One unit of2*A - B consumes two units of A and one unit of B. Its price and
available quantity therefore differ from A - B. Weights are not simplified
by dividing the entire formula: the unit definition is economically meaningful.
Book shapes
Synthetic books can be presented at different levels of detail:
Choose the smallest shape that answers the product’s question. A display that
only needs the current spread does not need detailed execution recipes.
Types of synthetic books
The formulas below describe common uses. Their economic labels are declarations, not conclusions produced by Kairos. Always verify that the referenced markets use compatible resolution rules, sources, deadlines, and outcome definitions.1. Cross-venue relative-value spread
2. Strike range
IfABOVE_70 pays when a value finishes above 70 and ABOVE_80 pays when it
finishes above 80:
(70, 80]. This pattern also works for election thresholds,
temperature bands, and other nested outcomes.
Boundary language matters. “Above 70” and “at least 70” are not interchangeable,
and contracts using different observation times do not form a clean range.
3. Binary complement
For a complete binary market:4. Multi-outcome partition
For mutually exclusive and collectively exhaustive outcomes:5. Implication spread
If event A necessarily implies event B:6. Time or venue basis
7. Weighted basket or index
8. Scaled hedge package
Selecting the right structure
Prices, quantities, and fees
Synthetic prices may be negative. A negative ask on a spread means the displayed source prices imply a credit for entering the package; it does not guarantee a risk-free profit. Synthetic asks round up and bids round down so the displayed quote does not overstate the available edge. Quantities are limited by the source leg that runs out first after accounting for weights. Underlying prices remain raw venue prices. Fee information, when available, is carried separately so an execution-aware consumer can estimate all-in cost for the specific price and quantity it plans to use.Missing fee information means unknown, not fee-free.
Freshness and executable status
A package is only as current as its least healthy leg. A synthetic book may report:
Each constituent also carries its own lineage health:
SOURCE_STATUS_BOOTSTRAPPING, SOURCE_STATUS_LIVE, SOURCE_STATUS_GAPPED,
SOURCE_STATUS_STALE, or SOURCE_STATUS_WITHDRAWN.
One unhealthy leg takes down the whole package. Anything other thanLIVEmoves the package toSOURCE_NOT_LIVE— not just the levels that leg touches — and the package is withdrawn. Continuing to display the last good combination would present liquidity that may no longer exist.
Even an executable quote is a point-in-time view. Revalidate the underlying prices, quantities, fees, and account constraints immediately before placing orders.
Canonical definitions
Equivalent formulas resolve to the same synthetic definition regardless of leg ordering. Duplicate outcome legs are combined and zero-weight results are removed. These formulas are equivalent:Definition request format
You submit a definition as JSON. This example constructsA - B, requests ten levels, and includes the source actions for each level:
Leg fields
*Identify the outcome with
token_id or outcome_index.
kalshi is the one merged-book venue. Its per-outcome token is derived as
{contract_id}::{index}, so send the zero-based outcome_index and let the
service build it. If you send a token_id for kalshi it must match that form,
or the leg is rejected token_contract_mismatch — a token that does not
belong to the contract it claims would subscribe to one book and read another.unsupported_quantity_unit), and mixing them with prediction contracts is
mixed_quantity_units — a rejection that will remain after perpetuals ship,
because summing incompatible units needs a conversion nobody has specified.
Weights must be decimal strings, not JSON numbers. Strings preserve the requested value exactly:
Fee annotation
Where Kairos knows a leg’s taker-fee model, it is echoed on the stream. A definition submitted with afee object on any leg is rejected
fee_annotation_not_accepted: the fee model is shared by every consumer of the
same canonical book, including order routing, so it is not client-assertable.
When present, the echoed annotation has this shape:
Enumerations
The supported output modes arebbo, aggregated_l2, and decomposed_l2.
The supported classifications are arbitrary_basket, relative_value,
exact_equivalence, complement, partition, implication, range, and
guaranteed_payout. Classification is reviewed metadata; it does not alter the
formula’s arithmetic or prove the relationship.
The creation response contains the canonical synthetic_id to use on the
stream. Equivalent definitions return the same ID. For the request headers and the
subscription lease lifecycle, see
Synthetic Book Stream → Craft the formula.
Current limits
- A request may contain 1 to 15 outcome legs.
- A canonical definition may use up to 3 venues and 5 legs from one venue.
- Every weight must be nonzero, use at most nine decimal places, and have an absolute value no greater than 1,000.
- Requested depth must be from 1 to 50 price levels.
- All legs must use compatible prediction-contract quantity units.
- Duplicate legs are combined. A definition is rejected if every leg cancels to zero.
- Only weighted-additive formulas are supported; there is no constant term or nested synthetic leg.
What synthetic books do not model
- Multiplicative parlays or conditional-probability products. Formulas are additive.
- Recursive synthetics whose legs are themselves synthetic books.
- A constant or intercept term.
- Account balances, allowances, or position-specific constraints.
- Atomic execution across independent venues.
- Automatic proof that two market descriptions or resolution rules are equivalent.
- A union of venue liquidity where each unit may come from any one venue. A multi-leg package consumes every leg in its formula.
- Mixed prediction-contract and perpetual-futures quantities.
Risk checklist
Before acting on a synthetic quote, confirm:- Every market’s written resolution rules support the intended relationship.
- Outcome identifiers refer to the intended side of each market.
- The source books are live and the package has not expired or been withdrawn.
- Fees and any transfer, settlement, or conversion costs are included.
- Available quantity covers every leg after applying weights.
- The execution plan accounts for partial fills and legging risk.
- Your account can trade every venue and outcome in the package.

