DARCHOW

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 URLhttps://darchow.com/api/v1
FormatJSON
TimestampsUTC, 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=isfahan

Authentication

Add your API key to the Authorization header.

Authorization: Bearer darchow_your_key_here

Keys 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.

SlugCoverage
middle-eastIran, Iraq, Syria, Lebanon, Israel, Palestine, Yemen
ukraine-russiaUkraine, Russia, Belarus, Black Sea region
east-asiaTaiwan Strait, South China Sea, Korean Peninsula, Japan
south-asiaIndia, Pakistan, Kashmir, Afghanistan
sahelMali, 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.

ParameterTypeDescription
gradestringFilter by grade: A, B, C, D (comma-separated)
daysintegerLookback window, 1 to 365. Default 30.
limitintegerResults per page, 1 to 100. Default 10.
offsetintegerPagination 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

EndpointAuthDescription
GET /regions/:slug/signals/leadingProLeading signal breakdown by type
GET /regions/:slug/escalation/historyOptionalHistorical escalation data. Days clamped by tier.
GET /regions/:slug/eventsRequiredRaw events list. Params: days, limit, offset, type.
GET /search?q=keywordRequiredKeyword search across events. Max 200 characters.
GET /healthNoneHealth check: database, Redis, config status.

MCP Server

Connect your AI agent to real-time geopolitical intelligence via the Model Context Protocol.

Endpointhttps://darchow.com/api/mcp/sse
ProtocolServer-Sent Events (SSE)
AuthOptional 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)

ToolDescription
get_escalationRegion escalation state with DI, trend, intelligence metadata
get_briefingLatest AI-compiled briefing for a region
get_cardsGraded inference cards, filterable by grade
get_card_detailFull card with provenance and evidence URLs
get_escalation_historyTime-series escalation data
compare_regionsAll regions ranked by escalation
search_eventsFull-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

FeatureFreePro ($100/mo)
Regions, escalation, briefings
Cards with headlines + grades
Intelligence metadata
Data quality transparency
Source provenanceDomain namesFull URLs + timestamps
Event counts (24h/7d)
Signal components
History30 days365 days
Rate limit200/day20,000/mo
MCP accessAnonymousAuthenticated

Rate Limits

AccessRequestsPer Minute
Public (no key)100/day2
Free (with key)200/day5
Pro ($100/mo)20,000/mo100

Every response includes rate limit headers.

X-RateLimit-LimitMaximum requests for the current window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp (milliseconds) when the window resets

Errors

All error responses follow a standard shape.

{
  "error": "Rate limit exceeded",
  "upgrade_url": "https://darchow.com/pricing"
}
CodeMeaning
400Bad request: missing or invalid parameters
401Invalid or missing API key
403Tier insufficient for this endpoint
404Region or resource not found
429Rate limit exceeded. Always includes upgrade_url.
500Internal server error