API Documentation
REST API reference for Darchow geopolitical intelligence.
Overview
The Darchow API provides programmatic access to real-time escalation levels, Admiralty-graded inference cards, AI-compiled briefings and leading signals across five theatre regions.
| Base URL | https://darchow.com/api/v1 |
| Format | JSON |
| Timestamps | UTC, ISO 8601 |
All responses follow a standard envelope: { "data": ..., "meta": { ... } }
Quick Start
# Get all regions with escalation levels
curl https://darchow.com/api/v1/regions
# Get Middle East escalation with intelligence metadata
curl https://darchow.com/api/v1/regions/middle-east/escalation
# Get Grade A confirmed cards
curl https://darchow.com/api/v1/regions/middle-east/cards?grade=A
# Search events (requires API key)
curl -H "Authorization: Bearer darchow_your_key_here" \
https://darchow.com/api/v1/search?q=isfahanAuthentication
Add your API key to the Authorization header.
Authorization: Bearer darchow_your_key_hereKeys use the format darchow_ followed by 32 hex characters, 40 characters total. Generate keys in your dashboard.
Public endpoints work without a key but are limited to 100 requests per day by IP address. Authenticated requests receive higher limits based on your plan.
Regions
All region endpoints accept one of these slugs as a path parameter.
| Slug | Coverage |
|---|---|
| middle-east | Iran, Iraq, Syria, Lebanon, Israel, Palestine, Yemen |
| ukraine-russia | Ukraine, Russia, Belarus, Black Sea region |
| east-asia | Taiwan Strait, South China Sea, Korean Peninsula, Japan |
| south-asia | India, Pakistan, Kashmir, Afghanistan |
| sahel | Mali, Burkina Faso, Niger, Chad, Sudan, Libya |
Endpoints
GET /regions
List all regions with their current escalation levels. No authentication required.
curl https://darchow.com/api/v1/regions{
"data": [
{
"slug": "middle-east",
"name": "Middle East",
"escalation_level": 3,
"darchow_index": 67,
"delta_24h": 12,
"trend": "escalating",
"escalation_label": "HIGH",
"data_quality_confidence": "high",
"surge_active": false,
"manual_override": false
}
],
"meta": {
"total": 5,
"generated_at": "2026-03-06T12:00:00Z",
"tier": "public",
"rate_limit_remaining": 95
}
}GET /regions/:slug/briefing
Current AI-compiled briefing for a region. Public access returns the lede and developments. Pro accounts receive full source provenance.
curl -H "Authorization: Bearer darchow_your_key_here" \
https://darchow.com/api/v1/regions/middle-east/briefing{
"data": {
"lede": "Escalation in southern Lebanon...",
"developments": [...],
"generated_at": "2026-03-06T06:00:00Z",
"sources": {
"gated": true,
"reason": "Pro tier required for full source provenance",
"upgrade_url": "https://darchow.com/pricing",
"domain_count": 14,
"source_count": 28,
"domains": ["reuters.com", "t.me", "aljazeera.com"]
}
},
"meta": {
"region": "middle-east",
"source_count": 14,
"tier": "free",
"rate_limit_remaining": 180
}
}GET /regions/:slug/cards
Inference cards for a region, sorted by confidence score. Each card represents a cluster of correlated events graded by the Admiralty Engine.
| Parameter | Type | Description |
|---|---|---|
| grade | string | Filter by grade: A, B, C, D (comma-separated) |
| days | integer | Lookback window, 1 to 365. Default 30. |
| limit | integer | Results per page, 1 to 100. Default 10. |
| offset | integer | Pagination offset. Default 0. |
curl -H "Authorization: Bearer darchow_your_key_here" \
"https://darchow.com/api/v1/regions/middle-east/cards?limit=10&grade=A,B"Free tier response
{
"data": [
{
"id": "a1b2c3d4-...",
"admiralty_grade": "B",
"confidence_score": 0.74,
"headline": "Artillery strikes reported near Kherson",
"summary": "Multiple RSS and Telegram sources report...",
"sources": {
"gated": true,
"reason": "Pro tier required for full source provenance",
"upgrade_url": "https://darchow.com/pricing",
"domain_count": 2,
"source_count": 4,
"domains": ["liveuamap.com", "t.me"]
},
"provenance": {
"gated": true,
"reason": "Pro tier required for full provenance timeline",
"upgrade_url": "https://darchow.com/pricing"
},
"event_time": "2026-03-06T08:30:00Z"
}
],
"meta": { "region": "ukraine-russia", "total": 42, "tier": "free" }
}Pro tier response
{
"data": [
{
"id": "a1b2c3d4-...",
"admiralty_grade": "B",
"confidence_score": 0.74,
"headline": "Artillery strikes reported near Kherson",
"summary": "Multiple RSS and Telegram sources report...",
"sources": [
{ "type": "rss", "domain": "liveuamap.com", "headline": "..." },
{ "type": "telegram", "channel": "ua_south_front", "headline": "..." }
],
"provenance": {
"unique_source_count": 2,
"has_physical_proof": false,
"coordinates": { "lat": 46.63, "lng": 32.62 }
},
"event_time": "2026-03-06T08:30:00Z"
}
],
"meta": { "region": "ukraine-russia", "total": 42, "tier": "pro" }
}GET /regions/:slug/cards/:id
Single inference card by UUID. Returns the same fields as the cards list endpoint, with sources and provenance gated by tier.
curl -H "Authorization: Bearer darchow_your_key_here" \
https://darchow.com/api/v1/regions/middle-east/cards/a1b2c3d4-...GET /regions/:slug/cards/:id/provenance
Pro only
Full source provenance for a card: every source event, its origin URL or channel, coordinates and the Admiralty confidence breakdown.
curl -H "Authorization: Bearer darchow_your_key_here" \
https://darchow.com/api/v1/regions/middle-east/cards/a1b2c3d4-.../provenance{
"data": {
"sources": [
{
"source_type": "rss",
"headline": "Clashes reported near...",
"url": "https://example.com/article",
"occurred_at": "2026-03-06T08:15:00Z"
}
],
"confidence_breakdown": {
"admiralty_grade": "B",
"unique_sources": 2,
"event_count": 4
}
},
"meta": { "region": "middle-east", "card_id": "a1b2c3d4-...", "tier": "pro" }
}Free tier requests to this endpoint receive a 403 with an upgrade URL.
GET /regions/:slug/escalation
Current escalation level for a region. Pass ?history=true&days=30 to include historical data points.
curl https://darchow.com/api/v1/regions/east-asia/escalation{
"data": {
"level": 2,
"darchow_index": 38,
"delta_24h": -4,
"trend": "de-escalating",
"label": "ELEVATED",
"confirmed_at": "2026-03-06T03:45:00Z",
"surge_active": false,
"intelligence": {
"cards_active": 12,
"cards_by_grade": { "A": 0, "B": 3, "C": 5, "D": 4 },
"sources_active": 3,
"source_types": ["rss", "telegram", "firms"],
"has_physical_corroboration": false
},
"data_quality": {
"confidence": "high",
"warnings": [],
"active_weight_pct": 94
}
},
"meta": {
"region": "east-asia",
"tier": "public",
"rate_limit_remaining": 88
}
}The darchow_index field is a 0 to 100 integer remapping of the raw escalation score. It is available on all tiers. The delta_24h field is the change in index points over the past 24 hours, null if less than 24 hours of history is available.
Authenticated requests include additional fields: component breakdown, raw mechanical score and escalation history when requested.
Additional endpoints
| Endpoint | Auth | Description |
|---|---|---|
| GET /regions/:slug/signals/leading | Pro | Leading signal breakdown by type |
| GET /regions/:slug/escalation/history | Optional | Historical escalation data. Days clamped by tier. |
| GET /regions/:slug/events | Required | Raw events list. Params: days, limit, offset, type. |
| GET /search?q=keyword | Required | Keyword search across events. Max 200 characters. |
| GET /health | None | Health check: database, Redis, config status. |
MCP Server
Connect your AI agent to real-time geopolitical intelligence via the Model Context Protocol.
| Endpoint | https://darchow.com/api/mcp/sse |
| Protocol | Server-Sent Events (SSE) |
| Auth | Optional Bearer token (anonymous access available) |
Claude Desktop Config
Add to your Claude Desktop configuration:
{
"mcpServers": {
"darchow": {
"url": "https://darchow.com/api/mcp/sse"
}
}
}For authenticated access with full provenance:
{
"mcpServers": {
"darchow": {
"url": "https://darchow.com/api/mcp/sse",
"headers": {
"Authorization": "Bearer darchow_your_key_here"
}
}
}
}Available Tools (7)
| Tool | Description |
|---|---|
| get_escalation | Region escalation state with DI, trend, intelligence metadata |
| get_briefing | Latest AI-compiled briefing for a region |
| get_cards | Graded inference cards, filterable by grade |
| get_card_detail | Full card with provenance and evidence URLs |
| get_escalation_history | Time-series escalation data |
| compare_regions | All regions ranked by escalation |
| search_events | Full-text event search across regions |
What Your Agent Gets
An AI agent connected via MCP can:
- Check escalation levels before making recommendations
- Ground responses in source-graded intelligence
- Access satellite evidence URLs for physical confirmation
- Compare regions in real-time
- Search events by keyword
MCP-only keys with scope mcp_read provide read-only access, suitable for MCP clients that store configuration in plaintext on disk.
API Tiers
| Feature | Free | Pro ($100/mo) |
|---|---|---|
| Regions, escalation, briefings | ✓ | ✓ |
| Cards with headlines + grades | ✓ | ✓ |
| Intelligence metadata | ✓ | ✓ |
| Data quality transparency | ✓ | ✓ |
| Source provenance | Domain names | Full URLs + timestamps |
| Event counts (24h/7d) | — | ✓ |
| Signal components | — | ✓ |
| History | 30 days | 365 days |
| Rate limit | 200/day | 20,000/mo |
| MCP access | Anonymous | Authenticated |
Rate Limits
| Access | Requests | Per Minute |
|---|---|---|
| Public (no key) | 100/day | 2 |
| Free (with key) | 200/day | 5 |
| Pro ($100/mo) | 20,000/mo | 100 |
Every response includes rate limit headers.
| X-RateLimit-Limit | Maximum requests for the current window |
| X-RateLimit-Remaining | Requests remaining in the current window |
| X-RateLimit-Reset | Unix timestamp (milliseconds) when the window resets |
Errors
All error responses follow a standard shape.
{
"error": "Rate limit exceeded",
"upgrade_url": "https://darchow.com/pricing"
}| Code | Meaning |
|---|---|
| 400 | Bad request: missing or invalid parameters |
| 401 | Invalid or missing API key |
| 403 | Tier insufficient for this endpoint |
| 404 | Region or resource not found |
| 429 | Rate limit exceeded. Always includes upgrade_url. |
| 500 | Internal server error |