Skip to content
Signalcrest
Developers

API & MCP documentation

Programmatic access to cross-source momentum scores from ten developer and builder communities. Every account gets 100 requests a month free; Relay gives 5,000 for $19 and Radar 10,000 — not a four-figure add-on. The same key works for the REST API and the MCP server, and both spend the same quota.

Authentication

Generate a key in your dashboard — a free account is enough. Keys are shown once and stored only as a hash — if you lose it, revoke and generate a new one. Pass it as a bearer token or in x-api-key:

curl -H "Authorization: Bearer sk_live_..." \
  "https://www.signalcrest.app/api/v1/entities?limit=10"

# equivalent
curl -H "x-api-key: sk_live_..." "https://www.signalcrest.app/api/v1/entities?limit=10"

What a key returns

A key returns what its plan sees on the website, so the API never gives away more than the page does.

PlanFeedHistoryFresh signals
FreeTop 5 in full, corroborated first; the rest as locked rows7 daysLocked for 48h unless in the free top 5
ScoutThe full feed, corroborated first90 daysOpen
Relay, RadarThe full feed, in score orderFullOpen

Locked rows come back with "locked": true and no id, url or first_seen_at. Their score, source, spread and category stay, as they do on the website.

Endpoints

Two layers: entities are trends aggregated across communities (one row per technology) — signals are the item-level evidence underneath them. Start with entities.

GET/api/v1/entities

Entities ranked by cross-source momentum.

Query: category (optional), limit (default 50; max 200 on Relay, Radar and Scout, 30 on the free plan).

Returns name, locked, category, audience, signal_score, lifecycle, item_count, source_count, sources, first_seen_at.

GET/api/v1/entities/:name

Detail for one entity: current composite, score history for your plan's window, and the member items the score aggregates. 404s with the list endpoint named if the entity is unknown.

GET/api/v1/signals

Live item-level signals.

Query: category (optional), limit (default 50; max 200 on Relay, Radar and Scout, 30 on the free plan).

Returns id, locked, source, title, url, category, summary, audience, lifecycle, signal_score, source_spread, spread_entity, first_seen_at.

GET/api/v1/topics/:id

Topic detail including its score history for your plan's window.

Example response

{
  "count": 2,
  "entities": [
    {
      "name": "langchain",
      "locked": false,
      "category": "ai",
      "signal_score": 61.4,
      "lifecycle": "Heating",
      "item_count": 13,
      "source_count": 4,
      "sources": ["github", "hackernews", "npm", "devto"],
      "first_seen_at": "2026-07-19T04:31:12.000Z"
    }
  ]
}

Quotas & errors

StatusMeaning
401Missing or invalid key
403The signal is locked on your plan: it is fresh and outside the free top 5. It opens to free keys once it is 48 hours old.
404Unknown topic or entity
429Burst or monthly quota exceeded
503API temporarily unavailable, or the quota could not be checked — retry

MCP server

Query the same data from Claude Code, Claude Desktop, or Cursor — ask “what's heating up in AI tooling this week?” and the model pulls live scores. Same key, same quota.

Add to CursorInstalls with a placeholder key — or generate a key in your dashboard, which offers the same button with your real key filled in.

Claude Code:

claude mcp add --transport http signalcrest https://www.signalcrest.app/api/mcp --header "Authorization: Bearer YOUR_KEY"

Or in any client's JSON config:

{
  "mcpServers": {
    "signalcrest": {
      "type": "http",
      "url": "https://www.signalcrest.app/api/mcp",
      "headers": { "Authorization": "Bearer sk_live_..." }
    }
  }
}

Four tools are exposed:

  • list_entities — trends aggregated across communities
  • get_entity — one entity with history and evidence
  • list_signals — item-level signals
  • get_topic — one signal with its history

No-key surfaces

Free, no authentication, rate-limited by CDN cache:

How the scores are computed — every term, weight, and known limitation — is on the methodology page.