Skip to main content
POST
Create (or preview) a self-serve cross-venue market link

Authorizations

X-Client-Id
string
header
required

Credential client id (kairos_ck_...). Must be sent together with X-Api-Key and X-Api-Secret.

X-Api-Key
string
header
required

64-char hex API key.

X-Api-Secret
string
header
required

64-char hex API secret.

Body

application/json

Body for POST /orders/market-links.

legs
object[]
required

Exactly two legs, on two DIFFERENT venues.

Required array length: 2 elements
title
string | null

Optional display title. Trimmed, truncated to 512 characters; a blank value falls back to the first leg's market name.

similarity
number<double> | null

Matcher confidence, carried through for provenance only.

confirm
boolean
default:false

false (the default) returns a verified preview and writes nothing. true inserts the link, and additionally requires fingerprint.

fingerprint
string | null

REQUIRED when confirm is true — the verification_fingerprint from the preview. The confirm re-resolves against fresh metadata and requires the result to match what you reviewed, so index drift becomes a 409 rather than a silently different link.

Response

A verified preview, a newly created link, or an existing routable link — read status to tell which.

Response for POST /orders/market-links.

status
enum<string>
required

preview (nothing written), created (inserted), or exists (a link the caller can already route).

Available options:
preview,
created,
exists
legs
object[]
required
warnings
string[]
required

Non-blocking advisories (venue expiry gaps, resolution-source divergence). Always includes the standing "venues may resolve on different data sources" notice.

verification_fingerprint
string
required

16-hex-character hash of the verified identity material (ids, tokens, case-folded outcome labels). Echo it back as fingerprint on confirm. Change detection, not security.

Null on a preview.

scope
enum<string> | null

On exists, whether the existing link is global or the caller's own user link. Always user on created; null on preview.

Available options:
global,
user
title
string | null

Null on an exists response.