Skip to main content

Overview

The World Monitor API provides programmatic access to real-time global intelligence data across 19 specialized domains including military operations, economic indicators, cybersecurity threats, natural disasters, and market data.

Proto-First Architecture

World Monitor uses Sebuf (Simple, Efficient Buffers), a Protocol Buffers-based framework that generates both client and server code from .proto schema definitions.

How It Works

  1. Schema Definition: All APIs are defined in .proto files under proto/worldmonitor/{domain}/v1/
  2. HTTP Annotations: The sebuf.http.annotations extension maps RPC methods to HTTP endpoints
  3. Code Generation: TypeScript client/server code is generated from proto definitions
  4. Type Safety: Full end-to-end type safety from request to response

HTTP Annotations

Sebuf uses custom Protocol Buffer extensions to define HTTP routing:
This generates the endpoint: GET /api/wildfire/v1/list-fire-detections

HTTP Methods

Sebuf supports all standard HTTP methods:
  • HTTP_METHOD_GET - Idempotent read operations (most common)
  • HTTP_METHOD_POST - Write operations and complex queries
  • HTTP_METHOD_PUT - Full resource updates
  • HTTP_METHOD_DELETE - Resource deletion
  • HTTP_METHOD_PATCH - Partial resource updates
  • HTTP_METHOD_UNSPECIFIED - Defaults to POST

API Domains

The API is organized into 19 domain-specific services:

Endpoint Patterns

All endpoints follow consistent naming conventions:
  • List operations: /list-{resource} - Returns paginated collections
  • Get operations: /get-{resource} - Returns single resource or computed data
  • Action operations: /{verb}-{resource} - Performs specific actions

Example Endpoints

Versioning

All APIs are versioned using /v1/ in the path. Version numbers follow semantic versioning:
  • Major version (v1, v2): Breaking changes to request/response schemas
  • Minor version: Backward-compatible additions (new fields, endpoints)
  • Patch version: Bug fixes and internal improvements
The current API version is v1 for all services. When breaking changes are required, a new version (v2) will be introduced while maintaining v1 for backward compatibility.

Data Formats

Request Format

  • GET requests: Query parameters (URL-encoded)
  • POST requests: JSON body with camelCase field names

Response Format

All successful responses return JSON with:

Error Format

Errors return JSON with HTTP status codes:
Common status codes:
  • 400 - Bad Request (invalid parameters)
  • 401 - Unauthorized (missing/invalid API key)
  • 403 - Forbidden (origin not allowed)
  • 404 - Not Found (endpoint doesn’t exist)
  • 429 - Too Many Requests (rate limit exceeded)
  • 500 - Internal Server Error

Edge Caching

Endpoints are cached at the edge with different strategies:
  • Fast (2 min): Real-time market data, earthquakes
  • Medium (5 min): Default for most endpoints
  • Slow (15 min): Composite analytics, risk scores
  • Static (1 hour): Historical data, reports
  • No-store: Live vessel tracking, personalized data
Cache tiers are automatically applied based on endpoint characteristics. Add ?_debug=1 to see the cache tier in response headers.

Next Steps

Authentication

Learn how to authenticate API requests

Rate Limits

Understand rate limiting and quotas