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/indices/{id}/newsGET
News articles related to this index, drawn from its constituent markets. Each article is matched against every market in the index (composite indices include their sub-indices' markets) and ranked by its closest match; via_market_id and via_market_question identify that market. Results are ordered best match first and paginated.
Authorization
bearerAuth *Bearer <token>
Clerk session JWT, or an API key (the ak_ prefix), sent as a Bearer token or an ?api_key= query parameter. Each endpoint requires the read scope for its resource (e.g. org:rates:read for rates). Token in: header
Query Parameters
min_similarity?number
Minimum cosine similarity a result must reach. Omit to use the deployment's configured floor (SIMILARITY_MIN_SCORE, default 0.35), which exists so a query with no genuinely related items returns an empty list rather than its closest unrelated one. The floor is calibrated to the embedding model in use and is not comparable across models. Pass 0 to disable filtering and see the raw ranking.
Default: 0.35Min: 0Max: 1
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 (double)
Cosine similarity of the best embedding match.
title?stringnull
url?stringnull
image_url?stringnull
published_date?string,null (date-time)
source?stringnull
Where the article was published: the publisher's name when known, otherwise the site's hostname.
via_market_id?stringnull
The constituent market this article matched most closely. Present only on index news, where results are drawn from the index's constituent markets.
via_market_question?stringnull
The question text of that market.
meta?object
Show properties
total?integer
Total number of records matching the request across every page, not just the number returned in this one.
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?integer
Number of pages available at this per_page. It is at least 1, even when nothing matched.
has_next?boolean
True when a page exists after this one.
has_prev?boolean
True when this is not the first page.
Request example
curl -X GET "https://api.adjacent.markets/api/v1/indices/<id>/news" \ -H "Authorization: Bearer <token>"
Response example
{ "data": [ { "article_id": "a1b2c3d4", "similarity": 0.84, "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.79, "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 } }