Developers menu

flow_cross

Sent when a FLOW cross line fires: the order flow imbalance of SPX options near the money, summed since the open, had the calls' side cross the puts' (calls minus puts changed sign). An event, not a signal: FLOW describes pressure as it happens, and a cross is not a forecast.

POSTyour https addressX-FirmTape-Event: flow_cross
Plan LIVEPayload version 1Signed HMAC-SHA256Schema flow_cross.schema.json

This event serves

Plan: LIVE. LIVE: today's session every second, alerts, ASK, the levels API and the platform integrations, and 5 LAB credits a month. Every finished session is free in REPLAY. Pricing. Turn it on: Right-click the CVD band with FLOW on (Layers, Indicators, CVD) and pick Alert when calls and puts flow cross; a webhook address on Account, Level alerts.

When it is sent

  • At the first second the net since the open reaches or passes zero, read every 5 seconds from the per-second tape.
  • Armed again only once the net stands at least 20% of the day's largest net so far from zero, and never less than 1,000 contracts, so it does not chatter around zero.

Payload

FieldMeaningUnit
version1Payload version, 1.
idstringEvent id, evt_ and 24 hex digits. The same on every try and for every account the event goes to: drop one you have seen.
type"flow_cross"flow_cross.
symbolstringSPX, ES, NQ, RTY or a ticker.
levelobjectkind is flow; value is 0, the zero the net crossed.
pricenumber | nullThe price at the event. Null on a premarket event (see phase).index points
bookvolume | open_interest | measured | volume+open_interestThe book the event was read in, as the account picked it for that card: volume, open_interest, measured (SPX, ES, NQ), or volume+open_interest (levels of interest only, as on the chart). A symbol without the book picked is read in volume.
tsstringWhen it was found, ISO 8601 in New York time.
daystringThe ET trading day.
levelsobjectThe flip and the walls of the book in book at the event (the volume book's for volume+open_interest).
levels.flipnumber | nullFlip.index points
levels.call_wallnumber | nullCall wall.index points
levels.put_wallnumber | nullPut wall.index points
levels.put_supportdeprecatednumber | nullThe put wall under its first name. Deprecated: read put_wall; removed after 2026-11-30.index points
textstringThe sentence Telegram and push show, ending in the time it fired, ET.
directionabove | belowabove: the calls' flow crossed above the puts'; below: the reverse.
threshold_pointsnumberSized events (flip_move, level_near, interest_near, level_touch, interest_touch): the size the account picked, SPX points.index points
threshold_minutesnumberlevel_beyond, interest_beyond: the one-minute closes in a row the account picked.minutes
fromstringES, NQ, RTY: the index whose book moved by the basis gives the levels.
basisnumber | nullES, NQ, RTY: the basis at the event.index points
levels_asofstring | nullSymbols on a five-minute book: when that book was built.
phasepremarketPresent only when a price line fired before the bell, from 04:00 ET to the open on a trading day: premarket. The line was crossed on the premarket's minute prices; price is then null, and levels are the previous session's closing levels. Absent on every event in the session.
alertobjectThe line that fired: scope (z0 0DTE, nx the next expiries, all), mode.
joinsarrayOne event for several levels on one price (a wall and levels of interest): the types it stands for, e.g. ["wall_break", "interest_cross"].
flowobjectnet the calls' minus the puts' order flow since the open at the firing second, in contracts of quoted size; at that second, ET.

Delivery

AnswerAny 2xx within 3 seconds. Redirects are not followed.
RetriesNo answer, a 429 or a 5xx: tried again after 1 s and 4 s, three tries in all, the same id each time.
Switched offAfter 10 failed events in a row; the account page shows why. Saving the address switches it on again.
VolumeUp to 30 events a minute per account; past that they are dropped and counted on the account page.
Testtype: "test", from Send test
LogThe last delivery (time, status, tries) on the account page.

Verify every request before reading it: Webhooks: verify the signature.

flip_cross · wall_break · regime_change · wall_move · flip_move · level_near · level_beyond · level_touch · interest_new · interest_move · interest_drop · interest_cross · interest_near · interest_beyond · interest_touch · chorus_strength · price_alert · level_line · cvd_line · order · test

Measurements of dealer positioning, never a forecast or a trade call. This page is built from FirmTape's public contract, the same files the OpenAPI document is built from; the tests hold them against the route code. Markdown: /docs/developers/live/events/flow_cross.md.