Get story clusters

Group redundant coverage into clusters. match=semantic (Max only; Max default) groups one story across outlets by meaning; match=exact (default elsewhere) groups one item syndicated into several feeds by URL/title; both merges the two. Returns canonical article plus also_covered_by.

post/get_story_clusters

Request

  • Base URL: https://newsmind.app/api/v1
  • URL: https://newsmind.app/api/v1/get_story_clusters
  • Auth: OAuth 2 (authorization code, authorization URL https://newsmind.app/oauth/authorize, token URL https://newsmind.app/oauth/token, scopes: mcp)

Request body

match'semantic' | 'exact' | 'both'

How to group: 'semantic' = same story by embedding similarity (Max only; default on Max); 'exact' = same item by canonical URL / near-identical title (default on other plans); 'both' = exact then semantic, de-overlapped (Max only).

since_hoursnumber

Look-back window in hours. Default 48 for semantic, 168 (7 days) for exact. Capped by tier retention.

min_cluster_sizeinteger

Minimum articles per cluster (default 2).

limitinteger

Max clusters to return (default 20). Values outside 1-50 are clamped.

unread_onlyboolean

If true, only cluster unread articles. Default false. Semantic matching only — ignored by 'exact'.

match_by'url' | 'title' | 'either'

Exact-matching strictness, used only when match is 'exact' or 'both'. url = same canonical URL only (strictest); title = same lowercased title; either = url-OR-title.

Response

Success

countinteger
window_hoursinteger
match'semantic' | 'exact' | 'both'
match_bystring

Present only when exact matching ran.

Changes

No recorded changes to this operation across all 1 revision of this API.