Starts on the free Starter tier — 1,000 calls/day, 15-minute delay. Upgrade anytime.
GET /v1/state
Poll the current world state as structured JSON. Returns top stories, confidence scores, and source metadata.
GET /v1/stream
Server-sent events for real-time push. Each event is a new story with full metadata as it arrives.
npx @oruk/mcp-server
Model Context Protocol server for AI agents. Exposes tools for querying world state and subscribing to categories.
oruk listen
Command-line interface for terminal-based monitoring. Supports filters, JSON output, and pipe-friendly formatting.
oruk is a real-time broadcast intelligence service that monitors radio, TV, and social streams worldwide and transforms them into structured, machine-readable world state. It provides categorized news stories with confidence scores, source metadata, geographic coordinates, and topic tags — updated continuously.
Base URL: https://api.oruk.io
Categories: finance, politics, disaster, military, tech
All requests require a Bearer token. Generate a free API key:
POST https://api.oruk.io/v1/keys
Content-Type: application/json
{"email": "agent@example.com"}
Response: {"key": "ork_abc123...", "tier": "starter"}
Free tier: 1,000 calls/day, 15-minute delay.
GET /v1/state GET /v1/state?category=finance GET /v1/state?category=military&limit=10 curl -H "Authorization: Bearer ork_YOUR_KEY" https://api.oruk.io/v1/state
{"stories": [{"id": "evt_8f3a2b", "body": "Story text...", "confidence": 0.93, "category": "finance", "source": "BBC World Service", "city": "London", "region": "Europe", "lat": 51.5072, "lon": -0.1276, "topics": ["rates", "inflation"], "timestamp": "2026-03-30T15:42:00Z"}], "meta": {"count": 20, "window": "1h"}}
GET /v1/stream GET /v1/stream?category=disaster curl -N -H "Authorization: Bearer ork_YOUR_KEY" https://api.oruk.io/v1/stream
import sseclient, requests, json
r = requests.get("https://api.oruk.io/v1/stream", headers={"Authorization": "Bearer ork_YOUR_KEY"}, stream=True)
for event in sseclient.SSEClient(r).events():
story = json.loads(event.data)
print(story["body"])
const src = new EventSource("https://api.oruk.io/v1/stream?token=ork_YOUR_KEY");
src.onmessage = e => { const story = JSON.parse(e.data); console.log(story.body); };
npx @oruk/mcp-server --key ork_YOUR_KEY
Available MCP tools: oruk_get_state(category?, limit?), oruk_subscribe(category?), oruk_search(query), oruk_sources()
{"mcpServers": {"oruk": {"command": "npx", "args": ["@oruk/mcp-server", "--key", "ork_YOUR_KEY"]}}}
npm install -g @oruk/cli oruk listen --key ork_YOUR_KEY oruk listen --category finance --format json oruk listen --category disaster | jq '.body' oruk state --category military --limit 5
| Starter | $0/mo | 1,000 calls/day | 15-min delay |
| Growth | $49/mo | 10,000 calls/day | 5-min delay |
| Professional | $299/mo | 100,000 calls/day | 1-min delay |
| Enterprise | Custom | Unlimited | Real-time |
All tiers include all connection methods (REST, SSE, MCP, CLI).
Docs: https://docs.oruk.io | Status: https://status.oruk.io | Email: support@oruk.io