Skip to content
Alerts

Alarm when the price crosses.

Every mark is an exact decimal, so the level you set is the level your rule compares.

The request

One call, every level.

One request carries a mark for every instrument your levels watch, in one quote.

The rule every row is read against
price < levelfiringprice >= levelclearlevel unsetunarmed
Firing · falls below

2of 6

rows where the mark is past the level

Levels armed

6of 6

round numbers off each published mark, set either side so both verdicts show — yours to overwrite

Nearest to crossing

+0.036%BTC

the clear row closest to its level, as a share of it

Every mark against its own levellinear · ±1% of your level

Each instrument is drawn against its own level, one percent either side. The same figures are printed in the table below.

The dashed line is your level, on all six tracks at once. Each mark sits at its real distance from it, as a share of the level — one scale, three magnitudes.

InstrumentMarkYour levelGapVerdict
BTCBitcoin84,230.00USD+30.00+0.036%clear
ETHEthereum2,681.24USD-8.76-0.33%Firingunder your level
AAPLApple336.77USD+0.77+0.23%clear
TSLATesla379.70USD+0.70+0.18%clear
EUREuro1.1387USD+0.0087+0.77%clear
GBPSterling1.3238USD-0.0062-0.47%Firingunder your level
GET /v1/prices/latest?assets=BTC,ETH,AAPL,TSLA,EUR,GBP
The comparisons

One number, four comparisons.

The desk above runs the first two. All four are the same subtraction over the same field — not one is a parameter you add or a plan you upgrade.

  • price < floorbelow

    the mark under your floor

    The stop: true for as long as the mark sits under the number you wrote.

    one levelon the desk above
  • price > ceilingabove

    the mark over your ceiling

    The same subtraction the other way up: a target rather than a stop.

    one levelon the desk above
  • price < low || price > highoutside

    the mark out of your band

    Two levels and an or, for a range you want to hear about leaving either way.

    two levels
  • abs(price - opening) > movechange

    the mark away from a reference

    Keep a mark from an earlier read and the subtraction becomes a move, not a level.

    a mark you kept

Every one of them reads the field this call already answers with:

GET /v1/prices/latest?assets=ETH
The build

One rule, every instrument.

BUILD · THE LEVEL
const { data } = await latest('BTC,ETH')
for (const mark of data) {
  const level = levels[mark.asset]
  if (!level) continue
  if (lessThan(mark.price, level)) page(mark.asset)
}

One comparison, however many instruments you watch. Not a feature you switch on — your own if, over a field the mark already carried.

  • The rule polls.

    Ask on your own timer, and keep the last mark you acted on so one crossing pages once.

  • The price is a string.

    Compare it as a decimal, not a float, or the rule fires on the rounding.

  • The paging stays yours.

    No webhook, no channel, no rule engine — LIAW publishes the mark, and the contract ends there.