---
title: "Get trending topics from curated sources"
method: GET
path: "/radar"
tags: ["Composition"]
---

# Get trending topics from curated sources

`GET /radar`

## Query parameters

- `after` string
- `category` 'general' | 'tech' | 'dev' | 'science' | 'culture' | 'politics' | 'business' | 'entertainment'
- `hours` integer
- `limit` integer
- `region` string
- `source` 'github' | 'google_trends' | 'hacker_news' | 'polymarket' | 'reddit' | 'trustmrr' | 'wikipedia'

## Response `200`

Radar items

- object
  - `hasMore` boolean, required
  - `items` RadarItem[], required
    - `id` string, required — Radar item identifier.
    - `sourceId` string, required — Source-specific identifier used for deduplication.
    - `title` string, required
    - `url` string
    - `score` number, required
    - `category` 'general' | 'tech' | 'dev' | 'science' | 'culture' | 'politics' | 'business' | 'entertainment', required
    - `source` 'github' | 'google_trends' | 'hacker_news' | 'polymarket' | 'reddit' | 'trustmrr' | 'wikipedia', required
    - `region` string, required
    - `language` string, required
    - `metadata` object, required — Source-specific fields. Shape varies per source: - reddit: { subreddit: string, author: string } - github: { starsToday: number } - hacker_news: { points: number, numberComments: number } - google_trends: { approxTraffic: number } - polymarket: { volume24hr: number } - wikipedia: { views: number } - trustmrr: { mrr, growthPercent, last30Days, total, customers, activeSubscriptions, onSale, xHandle?, category?, askingPrice?, country?, growthMrrPercent?, multiple?, paymentProvider?, rank? }
    - `publishedAt` string, date-time, required
    - `createdAt` string, date-time, required
    - `description` string
    - `imageUrl` string
  - `nextCursor` string — Opaque cursor for the next page (present only when hasMore is true).

## Other responses

- `400` — Invalid input
- `401` — Unauthenticated
- `429` — Xquik tier rate limit exceeded. The response includes a `Retry-After` header with the number of seconds to wait before retrying.

## Changes

- **2026-07-22** `37e31f0b5439` — 192 warning
  - added the new `body_too_large` enum value to the `allOf[#/components/schemas/Error]/error/oneOf[subschema #1: LegacyErrorCode]/` response property for the response status `429`
  - added the new `body_too_large` enum value to the `allOf[#/components/schemas/Error]/error/oneOf[subschema #2: StructuredError]/code` response property for the response status `429`
  - added the new `body_too_large` enum value to the `error/oneOf[subschema #1: LegacyErrorCode]/` response property for the response status `400`
  - added the new `body_too_large` enum value to the `error/oneOf[subschema #1: LegacyErrorCode]/` response property for the response status `401`
  - …188 more
  - …this revision’s changelog is incomplete
- **2026-07-13** `83005363f122` — 5 breaking, 28 info
  - for the `query` request parameter `region`, default value `global` was added
  - for the `query` request parameter `hours`, default value was changed from `24` to `6`
  - for the `query` request parameter `hours`, the max was decreased from `168.00` to `72.00`
  - added `subschema #1: LegacyErrorCode, subschema #2: StructuredError` to the `error` response property `oneOf` list for the response status `401`
  - …29 more
- …earlier changes not shown

[Full history](https://skmtc.dev/xquik-dev/apis/xquik-api/changes/radar/get.md)

---

[API](https://skmtc.dev/xquik-dev/apis/xquik-api.md) · [All operations](https://skmtc.dev/xquik-dev/apis/xquik-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/xquik-dev/xquik-api/revisions/37e31f0b5439/schema)
