Tue, 3 Nov, 2026

API documentation

You are seeing the public part of the documentation (the free features). Sign in to see every endpoint your plan includes.

Fact-checked stories and newsroom data from World Space News, as JSON over HTTPS. Base address: https://worldspacenews.com/api/v1

Quick start

  1. Sign in and create a key (free).
  2. Send it with every request in the X-API-Key header.
  3. Read the JSON.
curl "https://worldspacenews.com/api/v1/articles?limit=3" -H "X-API-Key: wsk_your_key"
const r = await fetch("https://worldspacenews.com/api/v1/feed", { headers: { "X-API-Key": process.env.WSN_KEY } });
const { top, breaking, latest } = await r.json();
import requests
r = requests.get("https://worldspacenews.com/api/v1/articles", params={"category": "space", "limit": 10}, headers={"X-API-Key": WSN_KEY})
for s in r.json()["items"]: print(s["title"], s["url"])

Keys & authentication

KeyLooks likeSend asWho gets it
API keywsk_xxxxxxxx_…X-API-Key: … or Authorization: Bearer …Anyone, at /developers — up to 10 per account. Its features come from your plan.
App keywsa_…X-WSN-App-Key: … or Authorization: Bearer …Apps approved by the newsroom (video studios, partner sites, screens). More

Keys work like passwords: keep them on your server. Revoke a key at /developers the moment it may have leaked. Browser code should call your own server, which adds the key.

Free, paid and app access

  • Free: News API, Integrity ledger — 1,000 calls a month with a free key (30 a minute).
  • Without a key: only the free features, 120 calls an hour per address.
  • Paid plans: monthly or annual packages add features and allowance (300 calls a minute; unlimited plans more). Subscribe at /developers; your existing keys pick up the new plan immediately.
  • Authorised apps: features and allowance set by the newsroom per app.
FeatureWhat it coversAccess
News API
news.read
Published, fact-checked stories, sections, the home feed, search and live suggestionsFree
Members-only full text
news.premium
The complete text of members-only stories (others get a teaser)Plans
Live coverage & debates
live.read
Live blogs, launches, debates with timers, polls and claim checksPlans
World news map
world.map
News intensity by place for maps and dashboardsPlans
Polls & surveys
polls.run
Read live polls and submit answers from your own site or appPlans
Experts directory
experts.directory
Verified experts and spokespersons by topicPlans
Law & guideline check
law.check
Check any text or page against the rules the newsroom watchesPlans
Space data
space.data
Satellites (GP elements), tonight's sky and the space calendarPlans
Weather, air quality & currency
world.tools
Weather by place, global air quality and exchange ratesPlans
Events
events.read
Upcoming events with dates, places and registration linksPlans
Integrity ledger
ledger.verify
Verify a story's fingerprint and the ledger chainFree
Website & article tracker
tracker.watch
Watch any website for new articles and any article for edits; read the changesPlans

Plans & limits

PlanPriceCalls a monthFeatures
Starter (monthly)₹999 / month50,000News API, Live coverage & debates, Weather, air quality & currency, Space data, Events, Integrity ledger
Starter (annual)₹9,990 / year50,000News API, Live coverage & debates, Weather, air quality & currency, Space data, Events, Integrity ledger
Broadcast (monthly)₹3,999 / month250,000News API, Members-only full text, Live coverage & debates, World news map, Polls & surveys, Space data, Weather, air quality & currency, Events, Experts directory, Integrity ledger
Broadcast (annual)₹39,990 / year250,000News API, Members-only full text, Live coverage & debates, World news map, Polls & surveys, Space data, Weather, air quality & currency, Events, Experts directory, Integrity ledger
Newsroom Pro (monthly)₹11,999 / monthUnlimitedNews API, Members-only full text, Live coverage & debates, World news map, Polls & surveys, Experts directory, Law & guideline check, Space data, Weather, air quality & currency, Events, Integrity ledger, Website & article tracker, studio.app, studio.desktop, newsroom.submit, app.access
Newsroom Pro (annual)₹1,19,990 / yearUnlimitedNews API, Members-only full text, Live coverage & debates, World news map, Polls & surveys, Experts directory, Law & guideline check, Space data, Weather, air quality & currency, Events, Integrity ledger, Website & article tracker, studio.app, studio.desktop, newsroom.submit, app.access

Every answer to a key carries X-API-Plan, and when limits apply X-Quota-Remaining (this month) and X-RateLimit-Limit (per minute). Allowances reset on the 1st of each month (UTC). Over a limit you get 429 with Retry-After when it helps.

Cache answers on your side: stories rarely change once published. Use the change feed to know when to fetch again instead of polling every endpoint.

Errors

StatusMeaningWhat to do
400Bad parameterRead error in the answer.
401Key missing, invalid or revoked — or the endpoint needs a keySend X-API-Key; create a key at /developers.
402The feature is not in your planUpgrade at /developers (the answer names the feature).
404Not foundCheck the slug / id.
429Per-minute limit or monthly allowance reachedWait Retry-After seconds, or upgrade.
{ "error": "Live coverage & debates is not in your plan. See the plans at /developers.", "feature": "live.read", "docs": "/developers/docs" }

Endpoints

News API news.read free

Published, fact-checked stories, sections, the home feed, search and live suggestions

GET/api/v1/articles

Latest published stories. Newest first. Every story has passed the fact-check desk.

ParameterInTypeDescription
categoryquerystringSection slug, e.g. space
qquerystringWords in the headline or text
sortquerystringpopular for most read
pagequeryintegerPage number (from 1)
limitqueryinteger1–50, default 20
Example
curl "https://worldspacenews.com/api/v1/articles?category=space" -H "X-API-Key: wsk_…"
{
  "items": [
    {
      "id": 42,
      "slug": "isro-tests-gaganyaan-crew-module",
      "title": "ISRO tests Gaganyaan crew module parachutes",
      "dek": "Third drop test clears the way for the first uncrewed flight",
      "excerpt": "…",
      "image": "https://example.com/media/cover.jpg",
      "category": {
        "name": "Space",
        "slug": "space",
        "color": "#7048e8"
      },
      "author": "Asha Rao",
      "publishedAt": "2026-10-24T05:30:00.000Z",
      "views": 1820,
      "breaking": false,
      "video": false,
      "verified": true,
      "organisation": false,
      "url": "https://example.com/news/isro-tests-gaganyaan-crew-module"
    }
  ],
  "page": 1,
  "total": 318,
  "pages": 16
}
GET/api/v1/articles/{slug}

One story with its full text. Members-only stories return a teaser (locked: true) unless your plan includes Members-only full text (news.premium).

ParameterInTypeDescription
slug *pathstringThe story's web name
Example
curl "https://worldspacenews.com/api/v1/articles/isro-tests-gaganyaan-crew-module" -H "X-API-Key: wsk_…"
{
  "id": 42,
  "slug": "isro-tests-gaganyaan-crew-module",
  "title": "ISRO tests Gaganyaan crew module parachutes",
  "dek": "Third drop test clears the way for the first uncrewed flight",
  "excerpt": "…",
  "image": "https://example.com/media/cover.jpg",
  "category": {
    "name": "Space",
    "slug": "space",
    "color": "#7048e8"
  },
  "author": "Asha Rao",
  "publishedAt": "2026-10-24T05:30:00.000Z",
  "views": 1820,
  "breaking": false,
  "video": false,
  "verified": true,
  "organisation": false,
  "url": "https://example.com/news/isro-tests-gaganyaan-crew-module",
  "bodyHtml": "<p>…</p>",
  "premium": false,
  "locked": false,
  "highlights": [
    "Third successful drop test"
  ],
  "tags": [
    "isro",
    "gaganyaan"
  ],
  "imageCaption": "The crew module after splashdown",
  "videoUrl": null,
  "location": "Sriharikota",
  "readMins": 4,
  "factCheck": {
    "checkedAt": "2026-10-24T05:10:00.000Z",
    "checkedBy": "Fact desk",
    "evidence": [
      "ISRO press release"
    ]
  },
  "source": null,
  "sponsoredBy": null
}
GET/api/v1/feed

The home feed in one call. Top story, top stories, editor's picks, breaking and latest — what a news app or a ticker needs.

Example
curl "https://worldspacenews.com/api/v1/feed" -H "X-API-Key: wsk_…"
{
  "hero": {
    "id": 42,
    "slug": "isro-tests-gaganyaan-crew-module",
    "title": "ISRO tests Gaganyaan crew module parachutes",
    "dek": "Third drop test clears the way for the first uncrewed flight",
    "excerpt": "…",
    "image": "https://example.com/media/cover.jpg",
    "category": {
      "name": "Space",
      "slug": "space",
      "color": "#7048e8"
    },
    "author": "Asha Rao",
    "publishedAt": "2026-10-24T05:30:00.000Z",
    "views": 1820,
    "breaking": false,
    "video": false,
    "verified": true,
    "organisation": false,
    "url": "https://example.com/news/isro-tests-gaganyaan-crew-module"
  },
  "top": [
    {
      "id": 42,
      "slug": "isro-tests-gaganyaan-crew-module",
      "title": "ISRO tests Gaganyaan crew module parachutes",
      "dek": "Third drop test clears the way for the first uncrewed flight",
      "excerpt": "…",
      "image": "https://example.com/media/cover.jpg",
      "category": {
        "name": "Space",
        "slug": "space",
        "color": "#7048e8"
      },
      "author": "Asha Rao",
      "publishedAt": "2026-10-24T05:30:00.000Z",
      "views": 1820,
      "breaking": false,
      "video": false,
      "verified": true,
      "organisation": false,
      "url": "https://example.com/news/isro-tests-gaganyaan-crew-module"
    }
  ],
  "editorsPicks": [
    {
      "id": 42,
      "slug": "isro-tests-gaganyaan-crew-module",
      "title": "ISRO tests Gaganyaan crew module parachutes",
      "dek": "Third drop test clears the way for the first uncrewed flight",
      "excerpt": "…",
      "image": "https://example.com/media/cover.jpg",
      "category": {
        "name": "Space",
        "slug": "space",
        "color": "#7048e8"
      },
      "author": "Asha Rao",
      "publishedAt": "2026-10-24T05:30:00.000Z",
      "views": 1820,
      "breaking": false,
      "video": false,
      "verified": true,
      "organisation": false,
      "url": "https://example.com/news/isro-tests-gaganyaan-crew-module"
    }
  ],
  "breaking": [
    {
      "id": 41,
      "slug": "…",
      "title": "…"
    }
  ],
  "latest": [
    {
      "id": 42,
      "slug": "isro-tests-gaganyaan-crew-module",
      "title": "ISRO tests Gaganyaan crew module parachutes",
      "dek": "Third drop test clears the way for the first uncrewed flight",
      "excerpt": "…",
      "image": "https://example.com/media/cover.jpg",
      "category": {
        "name": "Space",
        "slug": "space",
        "color": "#7048e8"
      },
      "author": "Asha Rao",
      "publishedAt": "2026-10-24T05:30:00.000Z",
      "views": 1820,
      "breaking": false,
      "video": false,
      "verified": true,
      "organisation": false,
      "url": "https://example.com/news/isro-tests-gaganyaan-crew-module"
    }
  ]
}
GET/api/v1/categories

Sections.

Example
curl "https://worldspacenews.com/api/v1/categories" -H "X-API-Key: wsk_…"
{
  "items": [
    {
      "id": 3,
      "name": "Space",
      "slug": "space",
      "color": "#7048e8",
      "parentId": null
    }
  ]
}
GET/api/v1/search/suggest

Suggestions while typing (also finds stories by ID).

ParameterInTypeDescription
q *querystringWhat has been typed
Example
curl "https://worldspacenews.com/api/v1/search/suggest?q=space" -H "X-API-Key: wsk_…"
{
  "q": "gagan",
  "hits": [
    {
      "group": "Stories",
      "title": "ISRO tests Gaganyaan crew module parachutes",
      "url": "/news/isro-tests-gaganyaan-crew-module",
      "id": "WSN-…"
    }
  ]
}

Live coverage & debates live.read plans

Live blogs, launches, debates with timers, polls and claim checks

🔒 4 endpoints — Sign in with a plan that includes Live coverage & debates to see the details.

World news map world.map plans

News intensity by place for maps and dashboards

🔒 1 endpoint — Sign in with a plan that includes World news map to see the details.

Polls & surveys polls.run plans

Read live polls and submit answers from your own site or app

🔒 2 endpoints — Sign in with a plan that includes Polls & surveys to see the details.

Experts directory experts.directory plans

Verified experts and spokespersons by topic

🔒 1 endpoint — Sign in with a plan that includes Experts directory to see the details.

Law & guideline check law.check plans

Check any text or page against the rules the newsroom watches

🔒 1 endpoint — Sign in with a plan that includes Law & guideline check to see the details.

Space data space.data plans

Satellites (GP elements), tonight's sky and the space calendar

🔒 3 endpoints — Sign in with a plan that includes Space data to see the details.

Weather, air quality & currency world.tools plans

Weather by place, global air quality and exchange rates

🔒 3 endpoints — Sign in with a plan that includes Weather, air quality & currency to see the details.

Events events.read plans

Upcoming events with dates, places and registration links

🔒 1 endpoint — Sign in with a plan that includes Events to see the details.

Integrity ledger ledger.verify free

Verify a story's fingerprint and the ledger chain

GET/api/v1/ledger

Verify the integrity ledger or one story.

ParameterInTypeDescription
storyquerystringWSN-… code: that story's sealed versions
hashquerystringOne ledger entry
Example
curl "https://worldspacenews.com/api/v1/ledger?story=space" -H "X-API-Key: wsk_…"
{
  "ok": true,
  "entries": 10234,
  "head": "9f2c…"
}

Website & article tracker tracker.watch plans

Watch any website for new articles and any article for edits; read the changes

🔒 3 endpoints — Sign in with a plan that includes Website & article tracker to see the details.

Free endpoints (no key needed)

GET/api/v1/changes

Change feed (free, no key): when to fetch again.

ParameterInTypeDescription
pollqueryboolean1 = JSON instead of a server-sent event stream
sincequeryintegerLast id you saw
Example
curl "https://worldspacenews.com/api/v1/changes?poll=1" -H "X-API-Key: wsk_…"
{
  "last": 5120,
  "items": [
    {
      "scope": "news",
      "ref": "42"
    },
    {
      "scope": "live",
      "ref": "9"
    }
  ]
}
GET/api/v1/app

Site name, sections and switched-on features (free, no key).

Example
curl "https://worldspacenews.com/api/v1/app" -H "X-API-Key: wsk_…"
{
  "name": "World Space News",
  "version": "1.6.2",
  "sections": [
    {
      "name": "Space",
      "slug": "space"
    }
  ]
}

Authorised apps

Apps that run the newsroom's stories on air, on screens or on partner sites — such as World Space Studio (news videos and tickers) or the Newspaper Studio — get an app key. Apply here; the newsroom chooses which features each app may use and approves it, and the key is emailed. App keys work on every endpoint above, plus:

GET/api/v1/apps/feed

Authorised apps: live feed of published and approved stories. For apps connected by the newsroom (app key). Newest change first, with which editions already used each story.

ParameterInTypeDescription
statusquerystringpublished,approved
sincequerystringISO time of your last sync
sectionquerystringSection slug
unusedqueryboolean1 = not yet used by this app
limitqueryinteger1–200
Example
curl "https://worldspacenews.com/api/v1/apps/feed?status=space" -H "X-WSN-App-Key: wsa_…"
{
  "items": [
    {
      "id": 42,
      "uid": "WSN-…",
      "title": "…",
      "status": "published",
      "bodyHtml": "<p>…</p>",
      "usedIn": []
    }
  ],
  "next": "2026-10-25T03:00:00.000Z"
}
POST/api/v1/apps/usage

Authorised apps: record which stories an edition / video used.

ParameterInTypeDescription
editionId *bodystringYour id for the edition or video
editionNamebodystringIts title
editionDatebodystringYYYY-MM-DD
stories *bodyobject[{ id | uid, page }]
Example
curl -X POST "https://worldspacenews.com/api/v1/apps/usage" -H "X-WSN-App-Key: wsa_…" -H "Content-Type: application/json" \
  -d '{"editionId":"…","editionName":"…","editionDate":"…","stories":[{"id":42,"page":"1"}]}'
{
  "ok": true,
  "recorded": 6
}

Webhooks & change feed

Change feed (free): GET /api/v1/changes?poll=1&since=LAST_ID answers which scopes changed (news, live, debate, poll…). Poll it every 5–10 seconds and refetch only what changed. Without poll=1 it is a server-sent event stream.

Webhooks (authorised apps): when the newsroom sets your webhook address, we POST story.published, story.updated, live.post, live.status and debate.update events. Each has X-WSN-Event and X-WSN-Signature = HMAC-SHA256 of the raw body, keyed with your app key. Tracker webhooks are signed with the webhookSecret returned when you create the tracker.

// Node / Express — verify a webhook
import crypto from "node:crypto";
app.post("/wsn-hook", express.raw({ type: "application/json" }), (req, res) => {
  const want = crypto.createHmac("sha256", process.env.WSN_APP_KEY).update(req.body).digest("hex");
  if (!crypto.timingSafeEqual(Buffer.from(want), Buffer.from(req.get("X-WSN-Signature") || ""))) return res.sendStatus(401);
  const { event, data } = JSON.parse(req.body); // e.g. "live.post"
  res.sendStatus(204);
});

Guide: connect World Space Studio

World Space Studio turns published stories into news videos and on-air tickers. It already speaks this API — no code changes are needed.

  1. Get a key. Either apply for an app key (choose “Video / broadcast studio”; the newsroom approves it), or subscribe to a plan that includes the features you need (the Broadcast package covers news, members-only full text, live, polls, maps and space data) and create an API key at /developers.
  2. In World Space Studio open Admin → Settings → World News Studio.
  3. World News Studio address: https://worldspacenews.com
  4. App token: paste the key (wsa_… or wsk_…). The studio sends it as Authorization: Bearer …, which this API accepts.
  5. Save. The News desk shows the stories; Make video and Ticker work from the feed, categories, articles and exchange rates.

What the studio calls: /api/v1/app, /api/v1/feed, /api/v1/categories, /api/v1/articles, /api/v1/articles/{slug} (full text — members-only stories need news.premium) and /api/v1/fx (needs world.tools). If a call answers 402, add that feature to the app (newsroom) or your plan.

Guide: a breaking-news ticker

// Refresh the ticker only when the newsroom publishes something
let since = 0;
async function tick() {
  const ch = await (await fetch("https://worldspacenews.com/api/v1/changes?poll=1&since=" + since)).json();
  if (since && ch.items.some(c => c.scope === "news" || c.scope === "site")) await redraw();
  since = ch.last;
}
async function redraw() {
  const f = await (await fetch("/my-server/wsn/feed")).json(); // your server adds X-API-Key
  document.querySelector("#ticker").textContent = [...f.breaking, ...f.latest].slice(0, 10).map(s => s.title).join("  •  ");
}
setInterval(tick, 8000); redraw();

Guide: a headlines widget for your site

<div id="wsn-headlines"></div>
<script>
fetch("/api/wsn-latest") // a tiny route on your server that calls https://worldspacenews.com/api/v1/articles?limit=5 with your key
  .then(r => r.json())
  .then(({ items }) => document.getElementById("wsn-headlines").innerHTML =
    items.map(s => `<a href="${s.url}" target="_blank" rel="noopener">${s.title}</a>`).join("<br>"));
</script>

Please keep the link to the story and the source name (World Space News) visible.

Guide: website & article tracker

🔒 Part of plans with the website & article tracker. Sign in.

Try it

Runs from your browser with the key you type (it is not stored). Without a key you see what the free tier allows.

Questions or higher limits: .