Developers menu

chorus_strength

Sent when the chorus's strength (the CHORUS panel's -100 to 100 reading of how far the counted sets move together with SPX or NDX) reaches your chosen size, up or down.

POSTyour https addressX-FirmTape-Event: chorus_strength
Plan LIVEPayload version 1Signed HMAC-SHA256Schema chorus_strength.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: Account, Level alerts: a webhook address, and a chorus card on with its size, the symbol SPX or NDX on that card.

When it is sent

  • Read on each closed minute of the chorus of the symbol on the card, SPX or NDX.
  • Each size and way fires once, then re-arms only after the strength has fallen back under 20 that way.
  • The first minute of a day only arms: a day that opens past the size sends nothing until it re-arms.

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"chorus_strength"chorus_strength.
symbolstringSPX, ES, NQ, RTY or a ticker.
levelobjectThe level the event is about.
level.kindflip | call_wall | put_wall | net_gamma | price | cvd | level_of_interest | chorus | nullflip, call_wall, put_wall, net_gamma, price for a price line, level_of_interest for C1 to C4 and P1 to P4 (with rank), cvd for a CVD line (its value in contracts of calls minus puts in one bar), or chorus for the chorus's strength (its value from -100 to 100).
level.valuenumber | nullIts value at the event.index points
level.fromnumber | nullMoves: where it stood before.index points
level.rankstringLevels of interest: the rank, C1 to C4 or P1 to P4, as on the chart.
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.
directionup | downThe way the strength reached the size: up at +size or above, down at -size or below.
threshold_pointsnumberSized events (flip_move, level_near, interest_near): the size the account picked, SPX points.index points
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.
alertobjectAlert lines only: the line that fired.
alert.idstringThe line, al_....
alert.kindstringprice, level or delta (a CVD line).
alert.levelstring | nullA level line: flip, call_wall or put_wall.
alert.pricenumber | nullA price line: its price.index points
alert.modestringonce or repeat.
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"].
thresholdnumberThe size you picked: 40, 60 or 80, a strength, not points.
setsobjectThe counted sets at that minute: how many move in unison up, down, how many go against the index, and how many are counted.
sets.upinteger
sets.downinteger
sets.againstinteger
sets.ofinteger | null

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 · interest_new · interest_move · interest_drop · interest_cross · interest_near · 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/chorus_strength.md.