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 < level→ firingprice >= level→ clearlevel unset→ unarmed

Reading the feed. Nothing is evaluated until it lands.

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.