Thursday, 27 August 2026

Aube.

News of progress
Public API

Developers

Aube exposes its good news read-only: published stories, full articles, topics and sourced long-run figures. One key, one quota, one rule — credit the source.

Getting started

Every route lives under /api/v1 and authenticates with an Authorization: Bearer header. Responses are UTF-8 JSON, CORS is open for GET: calling from a browser works.

Full specification (OpenAPI 3.1): /api/v1/openapi.json

Getting a key

No self-service in this first version: write to us describing the intended use, the expected volume and where the attribution will appear. We create the key by hand and send it to you.

The key is shown ONCE: we only keep a SHA-256 fingerprint, so we cannot read it back to you. If it is lost or exposed, it gets revoked and replaced — a revoked key is dead for good.

Write to us: [email protected]

Endpoints

GET/api/v1/stories?lang=fr&topic=batteries&limit=20

Published stories, newest first. Opaque cursor pagination.

GET/api/v1/stories/{slug}?lang=en

The full article: TL;DR, summaries, Markdown body, original sources, available languages.

GET/api/v1/topics?lang=fr

Topics and their published story counts.

GET/api/v1/metrics?lang=fr

“The number that climbs”: long-run series, each with its primary source.

GET/api/v1/openapi.json

The specification itself (public, no key needed).

Parameters

  • lang — ISO 639-1 code (fr, en, zh…). Content is served translated when a translation exists, otherwise in English, otherwise in the original language.
  • topic — topic slug (see /topics).
  • limit — 1 to 50 (20 by default).
  • cursor — the nextCursor from the previous response. Opaque: do not parse it, its encoding will change.

Examples

# the latest stories
curl -H "Authorization: Bearer $AUBE_KEY" \
  "https://aube.news/api/v1/stories?lang=en&limit=5"

# one article, in English
curl -H "Authorization: Bearer $AUBE_KEY" \
  "https://aube.news/api/v1/stories/mon-slug?lang=en"

# next page (opaque cursor)
curl -H "Authorization: Bearer $AUBE_KEY" \
  "https://aube.news/api/v1/stories?limit=5&cursor=$CURSOR"
{
  "stories": [ /* … */ ],
  "nextCursor": "bzE6NQ",
  "lang": "en",
  "attribution": { "name": "Aube", "url": "https://aube.news" }
}

Quotas and errors

Each key carries a daily quota, reset at midnight. Responses carry X-RateLimit-Limit and X-RateLimit-Remaining; beyond that the API returns 429 with Retry-After (in seconds) — and the rejected call is not counted.

  • 400 — invalid parameter (limit out of range, unreadable cursor…).
  • 401 — key missing, unknown or revoked.
  • 404 — unknown or unpublished story.
  • 429 — daily quota reached.
  • 500 — our fault: retry, then tell us about it.

Attribution

Every response carries an attribution object. Any public reuse must credit “Aube” and link to the original page (the story’s url field). This is not vanity: our own articles link back to their primary sources, and that chain of citations is what separates information from rumour.

In practice:

  • credit “Aube” next to the reused content, with a clickable link to story.url;
  • for /metrics series, ALSO credit the primary source provided (source.name / source.url);
  • do not republish an article’s full body (bodyMd): reuse the TL;DR or an excerpt and link back to Aube;
  • keep the “sponsored content” label (isSponsored) wherever it is set — no exceptions.

Embeddable widget

Today’s good news, 180 pixels tall, no cookie and no third-party script. Paste this iframe wherever you like:

<iframe src="https://aube.news/widget?lang=en&theme=light"
        width="100%" height="180" frameborder="0"
        title="Aube — today’s good news"
        loading="lazy"></iframe>

Parameters: lang=fr|en|es|pt|de|it and theme=light|dark. The widget carries its own attribution and opens the article on Aube in a new tab.

Preview

Fair use

One call a minute is plenty to stay current: articles are published through the day, not by the second. Cache responses on your side, identify your client with a readable User-Agent, and warn us before a volume spike — we would rather raise the quota than cut you off.

How Aube works

Developers · Aube. · Aube.