api Public API · v1

Embed Mavion News on any site.

Free, public JSON endpoints for our headline ticker and latest stories. No API key. No rate limits beyond reasonable use. Just credit "Mavion News" somewhere visible.

bolt Try /api/headlines code View source
campaign
Open CORS
All endpoints respond with Access-Control-Allow-Origin: *. Use from any front-end.
key_off
No key required
Just fetch the URL. Edge-cached for 60 seconds so you don't have to.
data_object
Plain JSON
Predictable shape, attribution baked in. Parses cleanly in any language.
refresh
Fresh data
60-second edge cache. Update headlines / publish a story and it propagates within a minute.

Headlines

Current breaking-news ticker items. Same data as the top of mavion.tmc.gg.

GET https://mavion.tmc.gg/api/headlines

Query parameters

ParamDefaultWhat it does
limit25Max items to return (1–100).
allSet to 1 to also include inactive headlines.

Response shape

{
  "ok":    true,
  "count": 4,
  "headlines": [
    {
      "text":    "Major policy change announced at midnight press conference",
      "kicker":  "BREAKING",
      "active":  true,
      "created": "2026-05-20T07:14:00.000Z"
    }
    // …
  ],
  "fetched_at":  "2026-05-20T13:24:51.218Z",
  "attribution": "Mavion News — mavion.tmc.gg. Free for any site to embed; please credit 'Mavion News'.",
  "docs":        "https://mavion.tmc.gg/api"
}

Example — vanilla JS ticker

async function loadMavionTicker() {
  const r = await fetch('https://mavion.tmc.gg/api/headlines?limit=10');
  const d = await r.json();
  document.getElementById('cirya-ticker').textContent =
    d.headlines.map(h => '[' + h.kicker + '] ' + h.text).join('   ·   ');
}
loadMavionTicker();
setInterval(loadMavionTicker, 60_000);

Stories

Latest published Mavion articles. Useful for "More from Mavion" widgets and external aggregators.

GET https://mavion.tmc.gg/api/stories

Query parameters

ParamDefaultWhat it does
limit20Max stories to return (1–50).
sectionFilter by section (e.g. Politics, Technology).
sinceISO date (e.g. 2026-01-01) — only stories created after.
breakingSet to 1 to filter to breaking-flagged only.

Response shape

{
  "ok":    true,
  "count": 20,
  "stories": [
    {
      "slug":        "roblox-stock-plummets-20-percent",
      "url":         "https://mavion.tmc.gg/story/roblox-stock-plummets-20-percent",
      "title":       "Roblox stock plummets 20% after user numbers report",
      "lede":        "Investors reacted sharply...",
      "thumb":       "https://...",
      "section":     "Business",
      "author":      "Alex Mishra",
      "tags":        ["roblox", "stocks"],
      "is_breaking": false,
      "published":   "2026-05-19T22:00:00.000Z"
    }
    // …
  ],
  "fetched_at":  "2026-05-20T13:24:51.218Z",
  "attribution": "Mavion News — mavion.tmc.gg. Free for any site to embed; please credit 'Mavion News'."
}

Attribution

Mavion News content is free for any site to embed via this API. We only ask that you credit Mavion News visibly — a small link, a logo, or "headlines via Mavion" is plenty. Linking headline text to its full story page on mavion.tmc.gg/story/<slug> is even better.