Market Radar API
Objects

Issue

One edition of a newsletter: its status, its send, and what each block carries.

{
  "id": 481,
  "number": 15,
  "status": "sent",
  "subject": "Weekly Market Radar, issue 15",
  "send_at": "2026-09-28T07:00:00Z",
  "cutoff_at": "2026-09-28T04:00:00Z",
  "signals": 9,
  "calls": 0,
  "sent_count": 12,
  "web_url": "https://app.trymarketradar.com/i/3xJ9kq0V2mZ8pW1tYc4rLb",
  "pdf_url": "https://app.trymarketradar.com/i/3xJ9kq0V2mZ8pW1tYc4rLb/pdf"
}
  • status: awaiting_review, approved, scheduled (no review), sending, sent, held_back (not approved in time), skipped, empty (nothing to send) or failed.
  • number: given when it is sent; null before.
  • cutoff_at: when it was assembled. What the radars find after goes in the next one.
  • web_url: its public web version, once sent; null before.
  • pdf_url: the same as a PDF, once sent; null before. Anyone with the address can download it, as with web_url.

One issue read alone carries blocks: each radar, rates and prices block in order, with what it carries.

{ "block_id": "r1", "type": "news", "title": "Competitors", "signals": [
  { "id": 4812, "radar_id": 37, "headline": "BNP Paribas signs with Mistral", "summary": "…",
    "url": "https://…", "outlet": "lesechos.fr", "company": "BNP Paribas",
    "filter": "Partnerships", "first_reported_at": "2026-09-24T08:10:00Z", "source_count": 4 } ] }

A tender block's are tenders (id, radar_id, title, url, buyer, closes_at, cancelled, matched); a rates block's are rates (pair, name, rate, day, change in per cent, change_since) and interest_rates (code, name, cadence, rate in per cent, day, change_bp, change_since, changed_on); a prices block's are prices (code, name, unit, cadence, price, day, change, change_since).

To approve or skip one, see Issues.