blog-site/src/content/blog/build-on-worldmonitor-developer-api-open-source.md
Most intelligence platforms are walled gardens. You pay for access, you use their interface, and if you want to build something custom, you're out of luck. The data is locked behind a UI.
World Monitor is designed differently. The entire intelligence platform, every data feed, every scoring algorithm, every aggregation pipeline, is built on a typed API layer that developers can use, extend, and build upon.
World Monitor uses Protocol Buffers (protobuf) as the single source of truth for all API contracts. The codebase contains:
This means every API endpoint has:
Protocol Buffers enforce a contract between client and server that can't drift:
For developers building on World Monitor, this means you can trust the API contracts completely. If the proto says a field is int64, it's int64. If it says repeated string, it's an array of strings.
World Monitor's API is organized into domain-specific services:
| Domain | What It Covers |
|---|---|
| Conflict | ACLED events, UCDP data, hotspot scoring |
| Military | Bases, ADS-B flights, AIS vessels, USNI reports |
| Market | Stock quotes, forex, commodities, sector performance |
| Crypto | BTC signals, stablecoin pegs, ETF flows, Fear & Greed |
| Aviation | Airport delays, flight tracking, airspace data |
| Maritime | Vessel positions, port status, dark vessel detection |
| Climate | Temperature anomalies, precipitation, sea level |
| Imagery | Satellite data via STAC API |
| News | Aggregated RSS feeds, trending keywords |
| Intelligence | CII scores, theater posture, convergence events |
| Infrastructure | Cables, pipelines, nuclear facilities, datacenters |
| Prediction | Polymarket data, forecast probabilities |
| Cyber | Threat feeds, C2 servers, malware URLs |
| Disaster | Earthquakes, fires, volcanic events |
| Displacement | UNHCR refugee and IDP data |
| Travel | Government advisories, risk levels |
| Central Bank | Policy rates, BIS data, REER |
| Tech | AI labs, startups, accelerators, tech hubs |
| Commodity | Mining sites, exchange hubs, energy infrastructure |
| Regulation | AI policy tracking, regulatory changes |
| Health | System health, data freshness, circuit breaker status |
| Bootstrap | Hydration data for initial app load |
Each domain has its own edge function, proto definitions, and TypeScript client.
The API layer runs on Vercel Edge Functions, providing:
API endpoints follow the pattern:
api.worldmonitor.app/api/{domain}/v1/{rpc}
For example:
api.worldmonitor.app/api/market/v1/quotes for stock quotesapi.worldmonitor.app/api/conflict/v1/events for conflict dataapi.worldmonitor.app/api/intelligence/v1/cii for Country Instability Index scoresBuild a domain-specific dashboard that pulls exactly the data you need. Use the typed TypeScript clients for a seamless development experience:
// Auto-generated client with full type safety
const cii = await intelligenceClient.getCII({ countries: ['US', 'CN', 'RU'] });
// cii.scores is typed as CIIScore[] with all fields known at compile time
Feed World Monitor data into your own analytics:
Academic researchers can use the API programmatically:
Build a mobile app that consumes World Monitor's API for a custom mobile intelligence experience. The OpenAPI spec makes it accessible from any language (Swift, Kotlin, Python, Go).
Build alerting bots that post to your team channel when:
World Monitor is AGPL-3.0. You can self-host the entire platform, including local AI capabilities that run without cloud dependencies:
Frontend: React + TypeScript + Vite. Standard npm install && npm run build.
API: Vercel Edge Functions. Deploy to Vercel with vercel deploy, or adapt for Cloudflare Workers, Deno Deploy, or any edge runtime.
Desktop App: Tauri. Build with cargo tauri build for macOS, Windows, or Linux.
Data Layer: Redis for caching, with seed scripts that populate data from public sources.
Self-hosting gives you:
The open-source codebase welcomes contributions:
The proto-first architecture makes contributing safe: the type system catches contract violations at compile time, and auto-generated clients ensure frontend/backend consistency.
For reference, World Monitor is built with:
| Layer | Technology |
|---|---|
| Frontend | React, TypeScript, Vite |
| 3D Globe | globe.gl, Three.js |
| Flat Map | deck.gl, MapLibre |
| API | Vercel Edge Functions |
| Contracts | Protocol Buffers (92 files) |
| Desktop | Tauri (Rust) |
| Sidecar | Node.js |
| Caching | Redis |
| Browser ML | Transformers.js, ONNX |
| Styling | CSS Custom Properties |
| i18n | i18next (21 locales) |
| Testing | Vitest, Playwright |
The intelligence industry has a consolidation problem. A handful of vendors control the data, the algorithms, and the interfaces. Analysts are locked into ecosystems they can't customize, audit, or extend. See how World Monitor compares to traditional intelligence tools in practice.
World Monitor's open, typed, proto-first architecture is the alternative:
The intelligence platform of the future isn't a product. It's an ecosystem. World Monitor is building the foundation.
Is the World Monitor API free to use? Yes. World Monitor is AGPL-3.0 open source. You can use the public API at api.worldmonitor.app or self-host the entire stack. There are no API keys required for public endpoints and no usage fees.
What languages can I use to consume the API? Any language that supports HTTP. The auto-generated OpenAPI spec provides compatibility with Swift, Kotlin, Python, Go, Java, and more. TypeScript clients are generated directly from the proto files for first-class type safety.
How do I add a custom data source to my self-hosted instance? Define your data structures in a proto file, implement a handler function, wire it into the service registry, and add a seed script to populate Redis. The proto-first architecture ensures type safety across the full stack automatically.
Start building at github.com/koala73/worldmonitor. 22 services, 92 proto files, and a global intelligence dataset waiting for your application.