Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.
/api/v1/markets/{id}/newsGET
Find news articles semantically related to a market using AI embeddings
Authorization
bearerAuth *Bearer <token>
Session token from the app, or an API key (the ak_ prefix), sent as a Bearer token or an ?api_key= query parameter.. Token in: header
Query Parameters
min_similarity?number
Minimum cosine similarity a result must reach.
Default: 0.38Min: 0Max: 1
recency_half_life_days?number
Recency half-life in days for the relevance-recency blend applied to the ranking: a result's score is its similarity times 0.5^(age_days / this).
Min: 0
page?integer
Page number
Default: 1Min: 1
per_page?integer
Items per page
Default: 100Min: 1Max: 500
Response
200 · Paginated related news articles
data?object[]
Show item properties
article_id?string
similarity?number
title?stringnull
url?stringnull
published_date?string,null (date-time)
source?stringnull
meta?object
Show properties
total?integernull
Total number of records matching the request across every page, not just the current one. null on an uncounted list; page using has_next. A relevance-ranked search is uncounted, and a searched events list stays uncounted even with sort. A searched markets list with sort returns a total over the ranked matches (at most 10,000).
page?integer
The 1-based page number this response covers.
per_page?integer
Maximum number of items on a page. The last page may hold fewer.
total_pages?integernull
Total number of pages available at the current per_page. null whenever total is null; page using has_next.
has_next?boolean
True when a page exists after this one.
has_prev?boolean
True when this is not the first page.
total_capped?boolean
True when total and total_pages reflect the server's counting ceiling rather than the exact matched count: the real set is at least total large. Render such totals as a lower bound (for example "10,000+"). Omitted when the count is exact. A sorted markets search that fills the 10,000-candidate ceiling sets this flag.
Request example
curl -X GET "https://api.adjacent.markets/api/v1/markets/<id>/news" \ -H "Authorization: Bearer <token>"
Response example
{ "data": [ { "article_id": "a1b2c3d4", "similarity": 0.87, "title": "Senate race tightens in Pennsylvania", "url": "https://example.com/news/senate-pa", "published_date": "2026-06-01T08:00:00Z", "source": "Reuters" }, { "article_id": "e5f6g7h8", "similarity": 0.81, "title": "New polling shifts House outlook", "url": "https://example.com/news/house-outlook", "published_date": "2026-06-01T07:30:00Z", "source": "AP" } ], "meta": { "total": 2, "page": 1, "per_page": 20, "total_pages": 1, "has_next": false, "has_prev": false } }