Developers menu
Developers / LIVE / Webhook events / chorus_strength
Markdown copychorus_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.
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
| Field | Meaning | Unit |
|---|---|---|
| version1 | Payload version, 1. | |
| idstring | Event 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. | |
| symbolstring | SPX, ES, NQ, RTY or a ticker. | |
| levelobject | The level the event is about. | |
| level.kindflip | call_wall | put_wall | net_gamma | price | cvd | level_of_interest | chorus | null | flip, 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 | null | Its value at the event. | index points |
| level.fromnumber | null | Moves: where it stood before. | index points |
| level.rankstring | Levels of interest: the rank, C1 to C4 or P1 to P4, as on the chart. | |
| pricenumber | null | The price at the event. Null on a premarket event (see phase). | index points |
| bookvolume | open_interest | measured | volume+open_interest | The 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. | |
| tsstring | When it was found, ISO 8601 in New York time. | |
| daystring | The ET trading day. | |
| levelsobject | The flip and the walls of the book in book at the event (the volume book's for volume+open_interest). | |
| levels.flipnumber | null | Flip. | index points |
| levels.call_wallnumber | null | Call wall. | index points |
| levels.put_wallnumber | null | Put wall. | index points |
| levels.put_supportdeprecatednumber | null | The put wall under its first name. Deprecated: read put_wall; removed after 2026-11-30. | index points |
| textstring | The sentence Telegram and push show. | |
| directionup | down | The way the strength reached the size: up at +size or above, down at -size or below. | |
| threshold_pointsnumber | Sized events (flip_move, level_near, interest_near): the size the account picked, SPX points. | index points |
| fromstring | ES, NQ, RTY: the index whose book moved by the basis gives the levels. | |
| basisnumber | null | ES, NQ, RTY: the basis at the event. | index points |
| levels_asofstring | null | Symbols on a five-minute book: when that book was built. | |
| phasepremarket | Present 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. | |
| alertobject | Alert lines only: the line that fired. | |
| alert.idstring | The line, al_.... | |
| alert.kindstring | price, level or delta (a CVD line). | |
| alert.levelstring | null | A level line: flip, call_wall or put_wall. | |
| alert.pricenumber | null | A price line: its price. | index points |
| alert.modestring | once or repeat. | |
| joinsarray | One event for several levels on one price (a wall and levels of interest): the types it stands for, e.g. ["wall_break", "interest_cross"]. | |
| thresholdnumber | The size you picked: 40, 60 or 80, a strength, not points. | |
| setsobject | The 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
| Answer | Any 2xx within 3 seconds. Redirects are not followed. |
| Retries | No answer, a 429 or a 5xx: tried again after 1 s and 4 s, three tries in all, the same id each time. |
| Switched off | After 10 failed events in a row; the account page shows why. Saving the address switches it on again. |
| Volume | Up to 30 events a minute per account; past that they are dropped and counted on the account page. |
| Test | type: "test", from Send test |
| Log | The last delivery (time, status, tries) on the account page. |
Verify every request before reading it: Webhooks: verify the signature.
Related events
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.