too_many_targets; split the subscription across sockets.
Targets
There are two target types, and they carry different data.event-market
A single valuation market. Keyed by
ticker or eventMarketId.market
A company’s spot market. Keyed by
symbol or marketId.event-market
Order flow for one market — one rung of a ladder.
market-update frames where data.type is:
market
A company’s implied-value reading.
market-update frames where data.type is:
These are separate id spaces. Subscribing to a market’s
event-market
does not also get you that company’s implied-value updates, and vice versa.
Subscribe to both if you need both.Naming things
Name a market by itsticker and a company by its symbol. The UUID keys
eventMarketId and marketId are also accepted and are not going away in v1 —
prefer the handle in new code.
Supply exactly one key per target. Sending both, or neither, fails to parse
and the frame is rejected.
Tickers are not symbols
The two handles do not carry the same promise.
If you are storing a reference for the long term, store
marketId. Treat
symbol as a lookup key you re-resolve, not as an identity you persist.
Ticker levels
event-market resolves market tickers only — the individual rung, not the
ladder above it. The error tells you where to go:
Normalization
Handles are trimmed and case-folded, then matched literally against what we have on file. A handle containing anything outside letters, digits,. and - is rejected
rather than cleaned up. …-26Q3-1,05T is an error, not a match on
…-26Q3-105T — which would be a different strike entirely.
Resolution failures
Becausesubscribe replaces your whole set, a target that cannot be resolved
rejects the whole frame with unknown_target and leaves your existing
subscriptions untouched. A partial apply would leave you worse off than doing
nothing.
eventMarketId or marketId is still accepted silently. This
asymmetry is deliberate: handles are checked against a directory, UUIDs are not.
What does not resolve
Newly created markets
A market or company you just created is not resolvable by handle until the directory’s periodic refresh picks it up — within about a minute, not on a deadline. There is no push invalidation on create. A UUID key skips the directory entirely and resolves instantly.Units
- Prices are integer cents, 1–99.
- Sizes are whole shares.
tsis a Unix timestamp in nanoseconds.