Korea's official government releases and world headlines — no key, no signup, no 'contact sales' wall. Hit it over REST or paste an iframe, your call. You won't have to email anyone for a token; just call it. (Korean public data is §24-2 free-use; international outlets via standard RSS.)
Pick an endpoint, tweak the params, hit Run for a real response. Copy the curl command and paste it straight into a terminal. No auth key needed.
Latest articles
GET /api/v1/articles?limit=10&locale=kocurl -s 'https://odinbox-news.com/api/v1/articles?limit=10&locale=ko'All GET. CORS allow-all. JSON only. /api/v1/ prefix guarantees stability.
Latest articles. Supports limit (≤50), category, locale
curl 'https://odinbox-news.com/api/v1/articles?limit=10&category=tech&locale=ko'Single article by id
curl 'https://odinbox-news.com/api/v1/articles/123?locale=ko'Right-now trending — keywords + searches + hot articles in one call
curl 'https://odinbox-news.com/api/v1/trending?locale=ko'Curated topic hubs (Trump, AI, Bitcoin, etc.)
curl 'https://odinbox-news.com/api/v1/topics?locale=ko'Upcoming events (elections, central banks, earnings). include_past=1 for archive
curl 'https://odinbox-news.com/api/v1/events?locale=ko'Roster of Korean public bodies + international outlets (60+). Filter with lang=ko|en
curl 'https://odinbox-news.com/api/v1/sources?lang=ko'Category metadata (labels, colors, emoji, icons) — 10 entries
curl 'https://odinbox-news.com/api/v1/categories?locale=ko'17 Korean provinces + auto-detected caller location. ?slug=seoul to scope by region
curl 'https://odinbox-news.com/api/v1/region?slug=seoul'Curated long-running storylines (BOK rates, housing, disasters, elections). ?slug=<slug> returns the storyline + 30 latest articles
curl 'https://odinbox-news.com/api/v1/storylines?slug=korea-monetary-policy'Everyday calculators — fn=loan|savings|income-tax|net-pay|fx|bmi|… (returns JSON)
curl 'https://odinbox-news.com/api/v1/calc?fn=loan&principal=30000000&rate=4.5&months=36'Daily metric trends — metric=usdkrw|kospi|wti|seoul_pm25, days=7–365
curl 'https://odinbox-news.com/api/v1/metrics?metric=usdkrw&days=30'Local info — live weather/air + city hall for 17 regions. region=<slug>
curl 'https://odinbox-news.com/api/v1/local?region=seoul'Read live chat (poll) — room=…, after=<id>. Post via POST /api/chat
curl 'https://odinbox-news.com/api/chat?room=general'Chat stats — online count, per-room, today's messages, popular
curl 'https://odinbox-news.com/api/chat/stats?room=general'// Fetch the 10 latest articles
const res = await fetch(
"https://odinbox-news.com/api/v1/articles?limit=10&locale=ko"
);
const { items } = await res.json();
items.forEach((a) =>
console.log(a.title, "—", a.source.name)
);import requests
r = requests.get(
"https://odinbox-news.com/api/v1/articles",
params={"limit": 10, "locale": "ko"},
)
for item in r.json()["items"]:
print(item["title"], "—", item["source"]["name"])import { fetch } from "undici"; // or built-in in Node 22+
const r = await fetch(
"https://odinbox-news.com/api/v1/trending?locale=ko"
);
const data = await r.json();
console.log("Top keywords:",
data.keywords.map((k) => k.word).join(", ")
);curl -s 'https://odinbox-news.com/api/v1/topics?locale=ko' | jq '.items[].name'Nobody gets inspired staring at an endpoint list. Copy one, change a word, ship it.
WordPress, Ghost, plain HTML — one line. Pick color and count in the widget builder below.
<iframe src="https://odinbox-news.com/embed/headlines?count=5&theme=light&locale=en"
width="100%" height="284" style="border:0;border-radius:12px"
loading="lazy" title="OdinBox News"></iframe>Embed the anonymous live chat in one line. Pick a room and theme — general·issue·worldcup·free / dark·light.
<iframe src="https://odinbox-news.com/embed/chat?room=general&theme=dark"
width="100%" height="520" style="border:0;border-radius:16px"
loading="lazy" title="OdinBox Live Chat"></iframe>Fixtures, live scores and group standings as a card widget.
<iframe src="https://odinbox-news.com/embed/worldcup?theme=dark&locale=en"
width="100%" height="420" style="border:0;border-radius:12px"
loading="lazy" title="OdinBox World Cup"></iframe>Government safety + weather releases, straight to your team channel. Five minutes.
const { items } = await (await fetch(
"https://odinbox-news.com/api/v1/articles?category=disaster&limit=5&locale=en"
)).json();
for (const a of items) {
await fetch(process.env.SLACK_WEBHOOK, {
method: "POST",
body: JSON.stringify({ text: a.title + "\n" + a.original_url }),
});
}Pull economy/policy releases for keyword trends or source analysis.
import requests, pandas as pd
r = requests.get("https://odinbox-news.com/api/v1/articles",
params={"category": "economy", "limit": 50, "locale": "en"})
df = pd.DataFrame(r.json()["items"])
print(df[["title", "category", "published_at"]].head())Paste a single iframe into any blog or site to display live OdinBox headlines. Supports light/dark themes and Korean/English.
<iframe
src="https://odinbox-news.com/embed/headlines?count=5&theme=light&locale=en"
width="100%"
height="284"
style="border:0;border-radius:12px"
loading="lazy"
title="OdinBox News headlines">
</iframe>Embed Korea's matches + live scores from the 2026 World Cup.
<iframe
src="https://odinbox-news.com/embed/worldcup?theme=light&locale=en"
width="100%" height="360" style="border:0;border-radius:12px"
loading="lazy" title="2026 World Cup"></iframe>Attribution helps a lot. Not required — but pick a color and paste the HTML or Markdown straight in.
Endpoint requests, bug reports, project show-and-tell — all welcome. Free for students + hackathons; just credit us.
support@odinbox.co.kr →