View as markdown
Concepts › SignalsPrice Session levels & position

at_session_low

At today’s intraday session low (within tolerance).

Watch this signal live on real tickers: Open in Explore →

At a glance

Definition
price <= session_low * 1.001
Typestate (boolean)
GroupPrice
CategorySession levels & position
Update cadence1 min · mkt hrs
Intervals1m/1h/1d
Universeall tickers
Historyrecent only (forward-only from first computation)
Firingcontinuous
Typical rolemean-reversion / capitulation screen · contrarian-buy filter · +20d swing entry context

Today's session levels (open, high, low) and where price sits relative to them and yesterday's landmarks.

Query it

Every applicable form factor, grouped by endpoint family. Swap YOUR_KEY for the value from /dashboard/keys. Response payloads are real captures, sampled 2026-08-18 and trimmed — your run's values and dates will differ.

Use signals /v2/signals/{signal}

One signal across the market: who matches now, who matched then, and a push when someone starts. Docs →

Live — every ticker where it fires now
curl "https://api.tickerbot.io/v2/signals/at_session_low" \
  -H "Authorization: Bearer YOUR_KEY"
Response (sampled 2026-08-18, trimmed)
{
 "as_of": "2026-08-18T00:22:48.479Z",
 "signal": "at_session_low",
 "condition": null,
 "universe": null,
 "count": 2,
 "results": [
  {
   "ticker": "AAA",
   "name": "Alternative Access First Priority CLO Bond ETF",
   "value": true
  },
  {
   "ticker": "AAAA",
   "name": "Amplius Aggressive Asset Allocation ETF",
   "value": true
  }
 ]
}
As-of — the same read at a past date
curl "https://api.tickerbot.io/v2/signals/at_session_low?asof=2026-05-20" \
  -H "Authorization: Bearer YOUR_KEY"
Response (sampled 2026-08-18, trimmed)
{
 "as_of": "2026-05-20",
 "signal": "at_session_low",
 "condition": null,
 "universe": null,
 "count": 0,
 "results": []
}
Subscribe — webhook when a ticker starts matching
curl -X POST "https://api.tickerbot.io/v2/signals/at_session_low/subscribe" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_KEY" \
  -d '{"target_url": "https://example.com/hooks/tickerbot"}'

Returns 201 with the created webhook — the same shape as GET /v2/webhooks/{id}, plus a one-time signing_secret for HMAC verification.

Use scan /v2/scan

The whole market through a WHERE clause — this signal composed freely with any other column. Docs →

Live — the whole market, filtered on this signal
curl -G "https://api.tickerbot.io/v2/scan" \
  --data-urlencode "q=at_session_low" \
  -H "Authorization: Bearer YOUR_KEY"
Response (sampled 2026-08-18, trimmed)
{
 "as_of": "2026-08-18T00:22:51.084Z",
 "query": {
  "q": "at_session_low",
  "limit": 2,
  "order": "day_change_pct",
  "dir": "desc",
  "fields": [],
  "full": false,
  "universe": null,
  "asset_class": null
 },
 "count": 2,
 "results": [
  {
   "ticker": "GDEVW",
   "name": "GDEV Inc. Warrant",
   "asset_class": "stocks",
   "asset_type": "WARRANT",
   "price": 0.0045,
   "day_change_pct": 4.625,
   "gap_pct": 4.625,
   "relative_volume": null,
   "market_cap": null
  },
  {
   "ticker": "CRACW",
   "name": "Crown Reserve Acquisition Corp. I Warrant",
   "asset_class": "stocks",
   "asset_type": "WARRANT",
   "price": 0.0486,
   "day_change_pct": 0.215,
   "gap_pct": 0.215,
   "relative_volume": null,
   "market_cap": null
  }
 ]
}
As-of — the same scan at a past date
curl -G "https://api.tickerbot.io/v2/scan" \
  --data-urlencode "q=at_session_low" \
  -d "asof=2026-05-20" \
  -H "Authorization: Bearer YOUR_KEY"
Response (sampled 2026-08-18, trimmed)
{
 "as_of": "2026-05-20",
 "query": {
  "q": "at_session_low",
  "asof": "2026-05-20",
  "interval": "auto",
  "limit": 2,
  "order": "day_change_pct",
  "dir": "desc",
  "fields": [],
  "full": false,
  "universe": null,
  "asset_class": null
 },
 "count": 0,
 "results": []
}
Subscribe — webhook on a market-wide condition
curl -X POST "https://api.tickerbot.io/v2/scan/subscribe" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_KEY" \
  -d '{"q": "at_session_low", "target_url": "https://example.com/hooks/tickerbot"}'

Returns 201 with the created webhook object; deliveries carry the tickers matching the condition at each evaluation.

Use series /v2/series

Its history over time, on one aligned grid. Docs →

History — the column on an aligned time grid
curl "https://api.tickerbot.io/v2/series?tickers=AAPL,MSFT&columns=close,at_session_low" \
  -H "Authorization: Bearer YOUR_KEY"
Response (sampled 2026-08-18, trimmed)
{
 "as_of": "2026-08-18T00:22:53.676Z",
 "interval": "1d",
 "tickers": [
  "AAPL",
  "MSFT"
 ],
 "columns": [
  "close",
  "at_session_low"
 ],
 "count": 6,
 "series": {
  "AAPL": [
   {
    "t": "2026-08-12",
    "close": 302.25,
    "at_session_low": false
   },
   {
    "t": "2026-08-13",
    "close": 305.26,
    "at_session_low": false
   },
   {
    "t": "2026-08-14",
    "close": 305.93,
    "at_session_low": false
   }
  ],
  "MSFT": [
   {
    "t": "2026-08-12",
    "close": 492.43,
    "at_session_low": true
   },
   {
    "t": "2026-08-13",
    "close": 496.88,
    "at_session_low": false
   },
   {
    "t": "2026-08-14",
    "close": 495.4,
    "at_session_low": false
   }
  ]
 }
}

Use events /v2/events

The flag as a timeline: each edge as a point event, and the spans it stayed true. Docs →

Firings — every enter edge as a point event
curl -G "https://api.tickerbot.io/v2/events" \
  -d "kind=signal" -d "signal=at_session_low" -d "transition=enter" -d "since=2026-01-10" \
  -H "Authorization: Bearer YOUR_KEY"
Response (sampled 2026-08-18, trimmed)
{
 "as_of": "2026-08-18T00:22:54.091Z",
 "query": {
  "kind": "signal",
  "tickers": null,
  "universe": null,
  "since": "2026-01-10T00:00:00.000Z",
  "until": null,
  "limit": 2,
  "signal": "at_session_low",
  "transition": "enter"
 },
 "count": 2,
 "results": [
  {
   "ticker": "ZTWO",
   "ts": "2026-08-14T20:00:00.000Z",
   "kind": "signal",
   "payload": {
    "signal": "at_session_low",
    "transition": "enter",
    "price": 50.4,
    "definition_version": 6
   }
  },
  {
   "ticker": "ZTR",
   "ts": "2026-08-14T20:00:00.000Z",
   "kind": "signal",
   "payload": {
    "signal": "at_session_low",
    "transition": "enter",
    "price": 6.755,
    "definition_version": 6
   }
  }
 ]
}
Spans — when it was true for one ticker (ZTWO)
curl "https://api.tickerbot.io/v2/signals/at_session_low/ZTWO/events" \
  -H "Authorization: Bearer YOUR_KEY"
Response (sampled 2026-08-18, trimmed)
{
 "as_of": "2026-08-18T00:22:54.223Z",
 "ticker": "ZTWO",
 "signal": "at_session_low",
 "count": 2,
 "events": [
  {
   "started_at": "2026-08-14T20:00:00.000Z",
   "ended_at": "2026-08-15T20:00:00.000Z",
   "start_price": 50.4,
   "end_price": 50.4,
   "definition_version": 6
  },
  {
   "started_at": "2026-08-05T20:00:00.000Z",
   "ended_at": "2026-08-13T20:00:00.000Z",
   "start_price": 50.36,
   "end_price": 50.36,
   "definition_version": 6
  }
 ]
}

Same grammar on scan, series, and webhooks; state reads take ?asof= for point-in-time answers.

Related signals — Session levels & position