DocsSignalPoint

SignalPoint API

Structured trade signals, each with its entry, target, stop and recorded exit. Source signals come from public financial content, momentum signals from price movement.

Open .md

NewLive since September 2026.

Authx-api-key headerBase path/signalsWebSocketREST onlySymbol formatBare ticker (e.g. KO, BTC)

SignalPoint is a partner data add-on, powered by TradeZing: TradeZing builds the signals and answers for their content and method, TickerLayer runs your access, billing and support. Without the add-on, /signals answers 403.

What a signal is

A directional thesis on one instrument, with entry, target and stop set from live prices when it is generated.

Lifetime
Monitored for up to 10 days, then closed exactly once, with the exit reason and the realised move on the record. It can close at its target, at its stop, on its time limit or on expiry; the examples here show one close, not a typical one.
Coverage
US-listed stocks and ETFs during the US session, and major USD crypto pairs around the clock. A symbol gets a signal when something is published about it, so there is no fixed list to subscribe to.
History
Back to June 2026, the start of the record. Page through it with before and meta.next_before.

Two kinds of signal

Each signal names its kind in signal_class; /signals?signal_class= reads one kind on its own.

signal_classBuilt fromAttribution
sourceThird-party financial content: news, analyst notes and creator commentary.The outlet, its publication time and the sentiment read from it, in source.
momentumTradeZing's own system, from price movement.None: no third-party content stands behind it, so there is no source.
GET/signals
Open .md

List signals

Signals newest first. Filters combine with AND. Every response names the partner under meta.attribution; show that notice wherever you show the signals.

tickerstring
Instrument symbol, for example KO or BTC.
directionstring
Trade direction.
Valuesbuysell
timeframestring
Holding horizon.
Valuesintradayshort_termswinglong_term
asset_typestring
Instrument type.
Valuesstockcrypto
signal_classstring
Kind of signal; leave it out for both.
Valuessourcemomentum
statusstring
Open or closed signals.
Valuesopenclosed
since / beforestring
ISO-8601 window on the generation time. To page back, pass meta.next_before as before unchanged: it carries the id, so signals that share a second are never skipped.
updated_sincestring
Everything created, closed or corrected after this point. Start with an ISO-8601 time, then pass back meta.next_updated_since.
limitinteger
Page size, 1 to 100.
Default25
curl -sS "https://api.tickerlayer.com/signals?status=open&limit=3" \
  -H "x-api-key: <YOUR_API_KEY>"

Response 200 OK

JSON
{
  "status": "ok",
  "data": [ { "id": 21141, "ticker": "EL", "...": "..." } ],
  "meta": {
    "count": 3,
    "has_more": true,
    "next_before": "2026-09-03T05:35:16.000Z|21098",
    "attribution": { "provider": "TradeZing", "notice": "Powered by TradeZing" }
  }
}
GET/signals/{id}
Open .md

Get a signal

One signal by id. 404 when the id is unknown.

idintegerRequired
Signal id. Stable for the life of the record, so it is the right primary key for your store.
curl -sS "https://api.tickerlayer.com/signals/21141" \
  -H "x-api-key: <YOUR_API_KEY>"

Response 200 OK

JSON
{
  "id": 21141,
  "ticker": "EL",
  "asset_type": "stock",
  "signal_class": "source",
  "direction": "buy",
  "timeframe": "short_term",
  "entry_price": 99.1,
  "target_price": 107.41,
  "stop_loss": 94.12,
  "max_gain_pct": 8.38,
  "max_loss_pct": 5.03,
  "reasoning": "Strong fiscal Q4 performance and a sizable pre-market gain support bullish post-earnings sentiment.",
  "source": { "name": "The Globe and Mail", "brand": "theglobeandmail" },
  "sentiment": { "positive": 0.82, "negative": 0.1, "neutral": 0.08 },
  "status": "closed",
  "exit": {
    "reason": "profit_target",
    "change_pct": 8.38,
    "exited_at": "2026-08-26T14:18:02Z",
    "data_quality": "ok"
  },
  "content_published_at": "2026-08-19T16:18:31Z",
  "generated_at": "2026-08-19T16:50:24Z",
  "updated_at": "2026-08-26T14:18:02Z"
}
GET/signals/sources
Open .md

Sources

The outlets and creators whose content produces source signals. brand is a stable key that pools one outlet's accounts across platforms.

curl -sS "https://api.tickerlayer.com/signals/sources" \
  -H "x-api-key: <YOUR_API_KEY>"

Response 200 OK

JSON
{
  "status": "ok",
  "data": [
    { "brand": "theglobeandmail", "name": "The Globe and Mail", "platforms": ["news"] }
  ]
}

Signal object

idinteger
Stable identifier.
ticker / asset_typestring
Instrument symbol, and stock or crypto.
signal_classstring
The kind of signal; see Two kinds of signal.
Valuessourcemomentum
direction / timeframestring
buy or sell, over intraday, short_term, swing or long_term.
entry_price / target_price / stop_lossnumber
Price levels set from live prices when the signal was generated.
max_gain_pct / max_loss_pctnumber
Distance to target and to stop in percent, already adjusted for direction.
atr_percentagenumber
Average true range as a percent of price when the levels were set.
sector / industrystring
Company classification for stocks. Absent for ETFs, crypto and unclassified symbols.
reasoningstring
The thesis in one to three plain sentences.
sourceobject
name and brand of the outlet whose content produced the signal. Source signals only, never on a momentum signal.
sentimentobject
positive, negative and neutral, summing to 1.
statusstring
Whether the signal is still monitored.
Valuesopenclosed
exitobject
Absent while open. reason, change_pct, exited_at and data_quality once closed.
content_published_at / generated_at / updated_atstring
ISO-8601 times of the underlying content, the signal, and its last change: open, close or a later correction.
reasonstring
Why the signal closed, as recorded. New reasons can be added; any value means the signal is closed.
Valuesprofit_targetstop_losstime_limitexpirednews_catalystsentiment_shift
change_pctnumber
Realised move from entry to exit, sign-adjusted for direction. Absent on expired.
exited_atstring
ISO-8601 exit time.
data_qualitystring
An exit can be flagged suspect after the fact; leave suspect exits out of anything you compute.
Valuesoksuspect

Fields can be added over time, so ignore what you do not use; a field that does not apply is absent, never null. An exit reason newer than this list arrives as other. change_pct is already adjusted for direction: do not flip its sign for a sell, and do not write zero for an expired signal, which has no realised move.

Delta sync

Do not re-poll history. A record arrives again on every change: when it opens, when it closes, and when a closed exit is corrected (flagged suspect, or its price revised).

  1. Remember

    Keep the newest updated_at you hold.

  2. Poll

    Once a minute, call /signals?updated_since=... and follow meta.next_updated_since until has_more is false. Signals publish on a roughly five-minute cycle, so most polls come back empty.

  3. Upsert

    By id; the newest updated_at wins.

Signals are informational market analytics. They are not investment advice, a recommendation or a solicitation to trade, and recorded outcomes do not indicate future results. Outlet names identify analysed content only.