Documentation · REST endpoints

REST endpoints

Cursor-paginated; JSON; UTF-8; all timestamps ISO 8601 in UTC.


Base URL

https://ai-hub.cryptobriefing.com

The endpoints

Method · PathWhat it returnsStatus
GET /pm/v2/newsNews feed: one item per news event, with related markets nested underneath. Cursor-paginated.Current

Authenticate with any of the three methods described in Authentication (Bearer header, X-API-Key header, or ?api_key= query parameter).

GET /pm/v2/news

The news feed. Each item is a single news event with all related markets nested underneath. Includes source metadata, context, rationale, market snapshots, and momentum tags.

Parameters

ParameterTypeNotes
limitinteger1500. Default 50.
cursorISO 8601The last item's max scored_at from the previous page. Returns items strictly older than the cursor.
sinceISO 8601Only items with max(scored_at) >= since.
news_idstringScope to a single news event id.
market_idstringScope to a single sub-market id.

Example

bashbash
curl https://ai-hub.cryptobriefing.com/pm/v2/news \
     -H "Authorization: Bearer $VERA_KEY" \
     -G --data-urlencode "since=2026-06-01T00:00:00Z" \
        --data-urlencode "limit=5"

Response

jsonjson
{
  "items": [
    {
      "news_event": {
        "id": "headline_abc123",
        "headline": "Iran says it will close the Strait of Hormuz",
        "short_headline": "Iran threatens Hormuz closure",
        "source_news_url": null,
        "source_name": "RSS",
        "source_type": "rss",
        "source_tier": "t1",
        "source_url": null,
        "short_context": "Direct closure would resolve multiple geopolitics markets.",
        "long_context": "Extended context on the story...",
        "author": null,
        "feed_categories": ["geopolitics"],
        "source_published_at": "2026-06-10T14:32:00Z",
        "endpoint_published_at": "2026-06-10T14:34:12Z",
        "aggregate_event_relevance": {
          "bucket": "high"
        }
      },
      "related_markets": [
        {
          "main_market": {
            "market_id": "polymarket_event_abc",
            "market_url": "https://polymarket.com/event/...",
            "market_title": "Will Iran close the Strait of Hormuz by EOY 2026?",
            "outcomes": null,
            "news_effect": null,
            "market_snapshot": null,
            "thin_liquidity": null,
            "momentum": null
          },
          "market_relationship": {
            "bucket": "high",
            "summary": "Markets interpret the Iranian statement as supportive of YES."
          },
          "sub_markets": [
            {
              "sub_market_id": "polymarket_0x1a2b...",
              "sub_market_title": "Will Iran close the Strait of Hormuz by EOY 2026?",
              "market_url": "https://polymarket.com/event/...",
              "outcomes": {
                "yes": { "token_id": null },
                "no": { "token_id": null }
              },
              "news_effect": {
                "affected_outcome": "YES",
                "effect": "supports",
                "relevance_bucket": "high",
                "rationale": "Markets appear to interpret the Iranian statement as supportive of YES because direct closure of Hormuz would resolve the market in favour of YES."
              },
              "market_snapshot": {
                "yes_ask": 0.62,
                "no_ask": 0.39,
                "volume_24h": 142351.20,
                "total_volume": 4821550.00,
                "yes_ask_source": "ask",
                "no_ask_source": "ask",
                "yes_tick_age_seconds": 4,
                "no_tick_age_seconds": 9,
                "note": "Reference only."
              },
              "momentum": {
                "passed": true,
                "pre_move_pp": 1.8,
                "criteria": "ANY |+1.8pp| >= 0.5",
                "config": "v4"
              }
            }
          ]
        }
      ],
      "meta": {
        "content_type": "event-driven market intelligence",
        "not_investment_advice": true,
        "not_trading_signal": true
      }
    }
  ],
  "next_cursor": "2026-06-10T14:34:12Z"
}

Pagination

Responses are cursor-paginated. The response includes next_cursor (an ISO 8601 timestamp string, or null when there are no more results). To get the next page, pass cursor=<next_cursor>.

Cursors are ISO 8601 timestamps. They represent the scored_at value of the last item in the page.

Conventions

  • All responses are JSON. UTF-8.
  • All times are ISO 8601, always UTC.
  • Unknown query parameters are silently ignored (forwards-compatible).
  • Every response includes rate-limit headers. See Rate limits.
  • Errors are returned with a 4xx/5xx status code and an error envelope. See Errors.