Developers menu
Developers / LIVE / Webhook events / cvd_line
Markdown copycvd_line
Sent when a CVD line fires: inside one bar of the line's width (15 seconds by default), SPX options printed as calls minus those printed as puts reached the line's value; a volume line (alert.measure total, calls or puts) counts that volume instead.
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 (Layers, Indicators, CVD) and pick Alert at CVD or Alert at volume; a webhook address on Account, Level alerts.
When it is sent
- At the first second the bar's running calls minus puts (or, for a volume line, its volume) reaches the line, read every 5 seconds from the per-second tape.
- At most once a bar; a repeating line can fire again in a later bar.
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"cvd_line" | cvd_line. | |
| symbolstring | SPX, ES, NQ, RTY or a ticker. | |
| levelobject | kind is cvd; value the line's value, in contracts (or delta-contracts, see alert.unit). | |
| pricenumber | null | The price at the event. Null on a premarket event (see phase). | index points |
| bookvolume | measured | volume: the volume book's levels. | |
| tsstring | When it was found, ISO 8601 in New York time. | |
| daystring | The ET trading day. | |
| levelsobject | The volume book's levels at the event. | |
| 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. | |
| directionabove | below | above for a positive line (calls, or a volume line), below for a negative one (puts). | |
| threshold_pointsnumber | Sized events (flip_move, level_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 | The line that fired: value, win, scope (z0 0DTE, nx the next expiries, all), unit (ct contracts, delta |delta|-weighted), measure (net calls minus puts, total calls plus puts, calls, puts), mode. | |
| cvdobject | The bar that fired it: run the calls minus puts (a volume line: its volume) printed in the bar up to the firing second, window_s the bar's width, bar_start its first second, ET. |
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 · price_alert · level_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/cvd_line.md.