Skip to content

API reference

The Radar REST API. Base URL https://api.radar.example/v1. All requests require a workspace-scoped bearer token; see Authentication.

200 OK 201 Created 400 Bad Request 401 Unauthorized 404 Not Found 429 Rate Limit 5xx Server
GET /v1/signals List signals in the workspace

Query params

typestring
One of hiring, funding, ma, tech, press, leadership.
min_scoreint
Lowest score to include. Default 0.
sinceISO 8601
Lower bound for first_seen_at.
limitint
Max records (1–500). Default 50.

Returns

Array of Signal objects ordered by score desc.

Example response

{
  "data": [
    {
      "id": "sig_01HZ9...",
      "type": "hiring",
      "score": 87,
      "company": { "domain": "acme.com" },
      "event": "+4 SDR roles (7d)",
      "source_url": "https://acme.com/careers",
      "first_seen_at": "2026-05-12T02:41:08Z"
    }
  ],
  "next_cursor": "c_xyz789"
}
GET /v1/signals/:id Fetch a single signal

Path params

idstring
Signal id (prefix sig_).

Errors

404 401

Example

curl https://api.radar.example/v1/signals/sig_01HZ9 \
  -H "Authorization: Bearer $TOKEN"
GET /v1/signals/stream SSE stream of new signals

Headers

Acceptrequired
text/event-stream

Behaviour

Holds the connection open. Emits one signal event per detected signal. Heartbeat every 15s.

Example event

event: signal
data: {"id":"sig_...","type":"funding","score":94}
POST /v1/webhooks Create a webhook subscription

Body

urlstring · required
Your HTTPS endpoint.
eventsstring[]
e.g. ["signal.created"]
filterobject
Optional. e.g. {"min_score": 80}

Example payload

{
  "url": "https://hooks.acme.com/radar",
  "events": ["signal.created"],
  "filter": { "min_score": 80 }
}

Authentication

All requests use a workspace-scoped bearer token. Generate from Workspace → Settings → API tokens. Tokens are scoped per workspace and per read/write role.

Rate limits

1,000 req/min on read endpoints, 100 req/min on writes. X-RateLimit-Remaining header on every response. 429 response includes Retry-After.

Book a demo