Market Radar API

Examples

curl and TypeScript, from a week of signals to a new radar.

The signals of the last week

curl "https://app.trymarketradar.com/api/v1/signals?since=2026-09-18" \
  -H "Authorization: Bearer $MARKET_RADAR_KEY"

Every signal of a radar, page by page

In TypeScript, following next_cursor and waiting when the rate limit answers 429:

async function allSignals(radarId: number, key: string) {
  const signals = []
  let cursor: string | null = null
  do {
    const url = new URL(`https://app.trymarketradar.com/api/v1/radars/${radarId}/signals`)
    url.searchParams.set("limit", "100")
    if (cursor) url.searchParams.set("cursor", cursor)
    const res = await fetch(url, { headers: { Authorization: `Bearer ${key}` } })
    if (res.status === 429) {
      await new Promise((r) => setTimeout(r, Number(res.headers.get("Retry-After")) * 1000))
      continue
    }
    if (!res.ok) throw new Error((await res.json()).error.message)
    const page = await res.json()
    signals.push(...page.data)
    cursor = page.next_cursor
  } while (cursor)
  return signals
}

Add a company, then a radar watching it

curl -X POST https://app.trymarketradar.com/api/v1/companies \
  -H "Authorization: Bearer $MARKET_RADAR_KEY" -H "Content-Type: application/json" \
  -d '{"name": "Revolut", "website": "revolut.com"}'

curl -X POST https://app.trymarketradar.com/api/v1/radars \
  -H "Authorization: Bearer $MARKET_RADAR_KEY" -H "Content-Type: application/json" \
  -d '{"name": "Revolut", "query": {"lines": [
        {"joiner": null,  "chips": [{"filter": "product_launches"}, {"filter": "partnerships"}]},
        {"joiner": "AND", "chips": [{"company_id": 93}]}]}}'

The second call uses the id the first one returned.