API

The feed is served by the same response the page itself reads. No key, read only.

Addresshttps://pulse.arevian.studio
GET/api/news

Stories for the chosen window. Exactly what the front page shows.

Parameters

NameValuesWhat it does
window30m · 3h · 24h · 7d · 30dHow far back to count. Defaults to 24h.
topictech, ai, science, design, business, politics, incidents, society, culture, sport, studioTopics, comma separated. Omit for all of them.
langru · en · hyLanguage of the sources, also comma separated.
geoarmenia · russia · worldWhere the event is — an axis independent of the topic.
mediarss · telegramWhere the story came from: a publisher feed or a Telegram channel.
from, toISO-8601Your own span instead of a window.
limit, offsetnumberPage of results. limit is capped at 50.
GET/api/news/search

Search across stories. Fewer than two characters returns an empty answer, not an error.

Parameters

NameValuesWhat it does
qstringThe query. Anything past 80 characters is cut.

Example

curl "https://pulse.arevian.studio/api/news?window=24h&topic=tech,ai&lang=en&limit=10"

What comes back

  • items — the stories: headline, summary, topics, time of first publication, how many independent sources, and the score.
  • has_more — whether another page exists for the same filters.
  • degraded: true — «we could not count», not «nothing was found». An empty list next to this flag is not a reason to clear what you already show.

Rules

  • The answer is cached for a minute — the worker recalculates the feed every five minutes anyway.
  • No key is needed, but there is a per-address limit: the feed serves every reader, not one client.
  • The texts belong to the outlets. The response carries a link to the source, and that is where the reader should go.