Normalized structures for market definitions, ordered book events, data-quality state, portfolios, and scenario inputs.
Cross-schema rules
Monetary, price, probability, payoff, and size values are decimal strings. Consumers choose an appropriate fixed-precision type.
Timestamps are RFC 3339 UTC strings. Source precision is retained; absent precision is not invented.
IDs are opaque strings. They carry no ordering or business meaning unless a field explicitly says otherwise.
Unknown additive fields must be ignored. Unknown enum values must be surfaced rather than coerced to a known value.
Null represents known absence; omitted optional fields represent unavailable or inapplicable data as documented per resource.
Normalized event envelope
Every historical and streaming event uses a common envelope so ordering, provenance, and schema interpretation are available without inspecting the payload subtype.
Field
Type
Required
Description
event_id
string
yes
Stable, globally unique normalized event ID.
event_type
enum
yes
book_snapshot, book_delta, sequence_gap, or market_status.
market_id
string
yes
Stable normalized market identifier.
asset_id
string
conditional
Outcome asset affected by the event.
sequence
integer
conditional
Sequence in the documented source domain.
exchange_timestamp
timestamp
yes
Timestamp supplied by the source, normalized to UTC.
received_timestamp
timestamp
yes
First collector receive time, normalized to UTC.
source
object
yes
Provider, connection, region, and raw-record reference.
schema_version
string
yes
Semantic version of the normalized schema.
Market and outcome assets
Field
Type
Required
Description
market_id
string
yes
Stable Expreci market identifier.
source_market_id
string
yes
Identifier assigned by the source venue.
question
string
yes
Canonical market question without interpretation.
resolution_rules
string
yes
Venue-published resolution language.
resolution_source
string
yes
Named source used by venue settlement.
outcomes
array<asset>
yes
Tradable outcome assets and payoff labels.
status
enum
yes
scheduled, open, halted, closed, resolved, or invalid.
open_time
timestamp
conditional
First documented trading time.
close_time
timestamp
conditional
Scheduled or actual close time.
resolved_at
timestamp
conditional
Observed settlement time.
Market record
{
"market_id": "mkt_01K2F7Y9AT4B",
"source_market_id": "0x8f4a21c7",
"question": "Will the policy rate be below 4% on 2026-09-30?",
"resolution_rules": "Resolves YES if the published target rate is below 4%.",
"resolution_source": "Federal Reserve publication",
"outcomes": [
{
"asset_id": "ast_01K2F7Z1CN8Q",
"label": "YES",
"terminal_payoff": "1.00"
},
{
"asset_id": "ast_01K2F7Z41D5X",
"label": "NO",
"terminal_payoff": "1.00"
}
],
"status": "open",
"open_time": "2026-05-01T12:00:00Z",
"close_time": "2026-09-30T23:59:59Z"
}
Book snapshot and levels
Field
Type
Required
Description
snapshot_id
string
yes
Unique snapshot record ID.
asset_id
string
yes
Outcome asset represented by this side pair.
sequence
integer
conditional
Source sequence at snapshot boundary.
bids
array<level>
yes
Descending price levels.
asks
array<level>
yes
Ascending price levels.
checksum
string
conditional
Canonical state checksum when defined.
reconstruction
object
yes
Engine version, starting point, completeness, and contributing gap IDs.
Price level
price
Decimal string in the venue's quote convention, bounded by documented market rules.
size
Aggregate open quantity at the level.
order_count
Number of visible orders when provided or reconstructable; omitted otherwise.
Book delta
A delta changes one or more levels. The normalized set operation replaces aggregate size at a price; a zero size removes the level. If source semantics are additive, the source adapter must resolve them before emitting normalized state.