# GeoBit AI API
Version: 1.0.0
Base URL: `/api/v1`

Authentication: `X-API-Key: <your_geobit_v1_key>` on every request.
Get a key at https://gis.geobit.ai/settings → API Keys.


## System

_Health checks and API info_

### `GET /health` — Health check

### `GET /info` — API info and capabilities


## API Keys

_API key management (session auth required)_

### `GET /keys/` — List your API keys

### `POST /keys/` — Create a new API key
Requires session auth (login). Raw key returned once.
**Body fields:**
- `name` (string) *(required)*
- `scopes` (array)
- `tier` (string)
- `expires_at` (string)


## Intelligence

_Conflict intelligence and OSINT_

### `POST /intelligence/battle-map` — Generate multi-layer battle map
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*
- `sources` (array)
- `time_range` (string)

### `POST /intelligence/conflicts/search` — AI-powered conflict search
Search for conflicts using Perplexity AI with threat scoring and geocoding.
**Body fields:**
- `query` (string) — example: `military clashes in eastern DRC`
- `country` (string) — example: `Ukraine`
- `locations` (array)
- `time_range` (string)
- `max_locations` (integer)

### `POST /intelligence/gdelt/events` — Query GDELT realtime events
Query GDELT conflict events via BigQuery with CAMEO code filtering.
**Body fields:**
- `countries` (array)
- `event_codes` (array)
- `days` (integer)
- `start_date` (string)
- `end_date` (string)
- `min_goldstein` (number)
- `max_goldstein` (number)
- `actors` (array)
- `max_records` (integer)


## Intel Domains

_Multi-domain intelligence search (20 OSINT categories)_

### `GET /intel/domains` — List available intel search domains

### `POST /intel/search` — Multi-domain intelligence search
Search across 20 specialized OSINT domains (conflict, crime, cyber, demographics, etc.). Cost: $0.05 base + $0.15 per location (max 10).
**Body fields:**
- `domain` (string) *(required)* — example: `conflict`
- `query` (string)
- `country` (string)
- `locations` (array)
- `time_range` (string)
- `color_metric` (string)
- `max_locations` (integer)


## Fusion Center

_Multi-source intelligence fusion and specialized analysis_

### `POST /fusion/analyze` — Specialized fusion analysis
Run proxy groups, force projection, maritime, regime stability, religion, or weapons analysis. Cost: $0.25-$0.50 depending on type.
**Body fields:**
- `type` (string) *(required)*
- `query` (string)
- `region` (string)
- `country` (string)
- `locations` (array)

### `POST /fusion/intelligence` — Get fused intelligence feed
Multi-source fused intelligence. Cost: $0.10.
**Body fields:**
- `days_back` (integer)
- `limit` (integer)

### `POST /fusion/threats` — Get threat summary
Condensed multi-source threat summary. Cost: $0.05.
**Body fields:**
- `days_back` (integer)


## Analysis

_Threat surface, anomaly detection, and MCDA_

### `POST /analysis/anomaly` — Spatial anomaly detection
Detect spatial anomalies using ensemble methods. Cost: $0.10.
**Body fields:**
- `query` (string)
- `geojson` (object)

### `POST /analysis/mcda` — Multi-Criteria Decision Analysis
AI-powered MCDA scoring and ranking. Cost: $0.10.
**Body fields:**
- `query` (string) *(required)*
- `geojson` (object)
- `top_n` (integer)

### `POST /analysis/threat-surface` — Threat surface analysis
Identify vulnerable sites and generate threat zones. Cost: $0.15.
**Body fields:**
- `query` (string) *(required)*
- `geojson` (object)


## Early Warning

_Conflict prediction, connectivity monitoring, escalation analysis_

### `GET /ews/alerts` — Get active early warning alerts
Active conflict and crisis alerts. Cost: $0.01.
**Parameters:**
- `country` (query)  — string
- `limit` (query)  — integer

### `POST /ews/connectivity` — Internet and power connectivity check
Combined IODA/Cloudflare internet status and power grid data. Cost: $0.05.
**Body fields:**
- `country` (string) *(required)*

### `POST /ews/escalation` — Threat escalation analysis
Historical escalation ladder with forward projection. Cost: $0.15.
**Body fields:**
- `country` (string) *(required)*
- `months_back` (integer)

### `POST /ews/prediction` — Conflict prediction
ML-based conflict prediction for a country. Cost: $0.10.
**Body fields:**
- `country` (string) *(required)*


## Search

_Web and social media search_

### `POST /search/web` — AI web search with location extraction
**Body fields:**
- `query` (string) *(required)*
- `region` (string)
- `country` (string)
- `max_searches` (integer)

### `POST /search/x` — Search X/Twitter for geolocated tweets
**Body fields:**
- `query` (string) *(required)*
- `max_results` (integer)
- `lang` (string)
- `has_geo` (boolean)


## Weather

_Weather grid data and air quality monitoring_

### `POST /weather/air-quality` — Air quality data
Get air quality readings for a location. Cost: $0.002.
**Body fields:**
- `lat` (number) *(required)*
- `lng` (number) *(required)*

### `POST /weather/grid` — Weather grid data
Get weather grid data for a location. Cost: $0.002.
**Body fields:**
- `lat` (number) *(required)*
- `lng` (number) *(required)*
- `radius_km` (number) *(required)*
- `metric` (string) *(required)*


## Flight Tracking

_Real-time aircraft tracking via OpenSky Network_

### `POST /flight/aircraft` — Get aircraft in bounding box
Real-time aircraft positions via OpenSky Network. Cost: $0.002.
**Body fields:**
- `bbox` (array) *(required)*
- `icao24` (string)

### `POST /flight/track` — Get aircraft historical track
Historical flight track by ICAO24 code. Cost: $0.002.
**Body fields:**
- `icao24` (string) *(required)*
- `hours` (integer)


## Geospatial

_Map control and spatial operations_

### `POST /geospatial/layers` — Add a GeoJSON layer
**Body fields:**
- `geojson` (object) *(required)*
- `layer_id` (string)
- `layer_type` (string)
- `paint` (object)
- `label` (string)


## Data

_Database queries and data access_

### `POST /data/query` — Execute read-only SQL query
Only SELECT/WITH allowed. Write operations are blocked.
**Body fields:**
- `query` (string) *(required)* — example: `SELECT * FROM conflict_incidents LIMIT 10`
- `max_rows` (integer)
- `as_geojson` (boolean)

### `GET /data/tables` — List available database tables


## Strategy

_Wargaming and strategic analysis_

### `POST /strategy/pmesii-pt` — PMESII-PT analysis — $0.50/call
Generate PMESII-PT analysis for a region. Cost: **$0.50** per call.
**Body fields:**
- `region` (string) *(required)*

### `POST /strategy/wargame` — Run wargame simulation — $0.80/call
Multi-turn Claude wargaming simulation. Cost: **$0.80** per call.


## AI

_AI script execution and chat_

### `POST /ai/chat` — Send message to GeoBit AI chat — $0.20/call
**Body fields:**
- `message` (string) *(required)*
- `context` (object)

### `POST /ai/script` — Execute SDK script from natural language — $0.30/call
AI generates Python, validates safety, and executes in sandbox. Cost: **$0.30** per call.
**Body fields:**
- `request` (string) *(required)* — example: `Find recent conflicts in Sudan`
- `map_state` (object)
- `rendered_geojson` (object)
- `conversation_history` (string)


## Billing

_Usage tracking and billing_

### `GET /billing/analytics/summary` — Credit usage analytics summary
High-level credit analytics: balance, spend by period, top categories, burn rate. Requires platform session.

### `GET /billing/credits` — Get credit balance
Returns current credit balance, lifetime purchased/used, and auto-recharge settings. Requires platform session.

### `GET /billing/credits/history` — Get credit transaction history
Returns recent credit transactions (purchases, debits, refunds). Requires platform session.
**Parameters:**
- `limit` (query)  — integer

### `POST /billing/org/redeem` — Redeem a contract code
Redeem a contract code to activate an org billing plan and receive credits. If the user has no org, one is created automatically. Credits go to the org pool (shared by all members and API keys).
**Body fields:**
- `code` (string) *(required)* — example: `GB-ABC12345`

### `GET /billing/pricing` — Get full pricing table
Returns detailed pricing for all API endpoint categories.

### `GET /billing/usage` — Get usage statistics
**Parameters:**
- `days` (query)  — integer


## Equations

_Proprietary conflict/risk mathematical models (20+ equations: CEWSE, CEE, CPE, CSPE, UWTIE, GMTE, MDTCE, ORCHID-9, AIWAR, EGNN)_

### `POST /equations/chat` — AI-estimated equation analysis — $1.50/call
Claude estimates domain state from natural language, then runs requested equations. Cost: **$1.50**/call.
**Body fields:**
- `entity` (string) *(required)* — example: `Syria`
- `query` (string) — example: `Analyze escalation risk after recent airstrikes`
- `equations` (array)

### `POST /equations/comprehensive` — Run ALL 20+ equations for an entity — $3.50/call
Full threat assessment using every available equation. Cost: **$3.50**/call.
**Body fields:**
- `entity` (string) *(required)* — example: `Syria`
- `country` (string)
- `domain_state` (object)
- `horizon_days` (integer)

### `POST /equations/from-events` — Compute equations from ACLED events — $2.00/call
Auto-derives domain state from raw conflict events. Cost: **$2.00**/call.
**Body fields:**
- `events` (array) *(required)*
- `horizon_days` (integer)
- `mu` (number)

### `GET /equations/list` — List available equations
Returns all available proprietary equations with aliases. Free.

### `POST /equations/run` — Run a single proprietary equation — $0.75/call
Run one of 20+ proprietary conflict/risk mathematical models. Cost: **$0.75**/call.
**Body fields:**
- `equation` (string) *(required)* — example: `cewse`
- `entity` (string) *(required)* — example: `Ukraine`
- `country` (string) — example: `Ukraine`
- `domain_state` (object)
- `crisis_state` (object)
- `special_factors` (object)
- `horizon_days` (integer)


## Autonomous Agents

_Autonomous goal agents — NL objectives decomposed into multi-step analysis plans and executed automatically_

### `GET /agents/modes` — List execution modes

### `POST /agents/start` — Launch autonomous goal agent — $8.00/call
Decomposes a NL goal into multi-step analysis plan and executes it. May take 30-120s. Cost: **$8.00**/call.
**Body fields:**
- `goal` (string) *(required)* — example: `Analyze conflict escalation risks in the Sahel region`
- `mode` (string)

### `POST /agents/suggest` — Generate analysis plan (no full execution) — $1.50/call
Plan + first step only. Cost: **$1.50**/call.
**Body fields:**
- `goal` (string) *(required)*

### `GET /agents/{goal_session_id}/state` — Get agent state
Poll progress of a running or completed agent. Cost: $0.01/call.
**Parameters:**
- `goal_session_id` (path) *(required)* — string

### `POST /agents/{goal_session_id}/stop` — Stop agent and get partial results
Free (already paid for start).
**Parameters:**
- `goal_session_id` (path) *(required)* — string


## Pipeline

_AI-powered analysis DAG builder with 150+ available analysis nodes and 9 pipeline strategies_

### `POST /pipeline/build` — Build analysis pipeline from NL — $3.00/call
AI designs and executes a DAG workflow from 150+ analysis nodes. Cost: **$3.00**/call.
**Body fields:**
- `query` (string) *(required)* — example: `Analyze conflict risks in Horn of Africa`
- `strategy` (string)
- `max_nodes` (integer)
- `use_consensus` (boolean)

### `GET /pipeline/history` — Pipeline execution history
**Parameters:**
- `limit` (query)  — integer
- `status` (query)  — string

### `GET /pipeline/strategies` — List pipeline strategies

### `POST /pipeline/suggest-nodes` — Suggest analysis nodes — $0.40/call
Lightweight suggestion without building full pipeline. Cost: **$0.40**/call.
**Body fields:**
- `query` (string) *(required)*

### `GET /pipeline/{pipeline_id}/results` — Get pipeline execution results
**Parameters:**
- `pipeline_id` (path) *(required)* — string


## Risk Assessment

_Multi-category global risk assessment across 8 domains (climate, economic, political, social, technological, environmental, health, security)_

### `POST /risk/assess` — Multi-category risk assessment — $0.50/call
8-domain risk assessment (climate, economic, political, social, technological, environmental, health, security). Cost: **$0.50**/call.
**Body fields:**
- `country` (string) — example: `Nigeria`
- `region` (string) — example: `West Africa`
- `categories` (array)
- `geojson` (object)

### `GET /risk/categories` — List risk categories


## Satellite Imagery

_Sentinel-2 satellite imagery retrieval, spectral analysis (NDVI, NDWI), mosaics, time series, and change detection_

### `POST /imagery/analyze` — Satellite analysis at a point — $0.30/call
Sentinel-2 spectral analysis. Cost: **$0.30**/call.
**Body fields:**
- `lat` (number) *(required)* — example: `15.5`
- `lng` (number) *(required)* — example: `32.5`
- `analysis_type` (string)
- `radius_km` (number)
- `cloud_max` (number)
- `days_back` (integer)

### `POST /imagery/change-detection` — Pixel-based change detection — $1.00/call
Monthly satellite comparison with colormap visualization. Cost: **$1.00**/call.
**Body fields:**
- `lat` (number) *(required)*
- `lng` (number) *(required)*
- `num_years` (integer)
- `resolution` (integer)

### `POST /imagery/mosaic` — 30-mile satellite mosaic — $0.80/call
16-tile high-resolution mosaic. Cost: **$0.80**/call.
**Body fields:**
- `lat` (number) *(required)*
- `lng` (number) *(required)*
- `resolution` (integer)
- `grid_size` (integer)

### `POST /imagery/time-series` — Multi-temporal satellite time series — $1.50/call
Sequence of satellite mosaics over a date range. Cost: **$1.50**/call.
**Body fields:**
- `lat` (number) *(required)*
- `lng` (number) *(required)*
- `start_date` (string) *(required)*
- `end_date` (string) *(required)*
- `interval` (string)

### `GET /imagery/types` — List analysis types


## Disruption

_Supply chain and geopolitical disruption affection model (DAM) — 16-step orchestrated pipeline_

### `POST /disruption/analyze` — Full disruption affection analysis — $1.00/call
16-step orchestrated pipeline for supply chain and geopolitical impact. Cost: **$1.00**/call.
**Body fields:**
- `query` (string) *(required)* — example: `Strait of Hormuz closure impact`
- `region` (string) *(required)* — example: `Persian Gulf`
- `analysis_type` (string)
- `time_range` (string)
- `sectors` (array)

### `GET /disruption/chokepoints` — Global strategic chokepoints
8 major chokepoints with throughput percentages. Cost: $0.01.

### `POST /disruption/discover-chokepoints` — AI-powered chokepoint discovery — $0.40/call
Discover dynamic chokepoints for a region. Cost: **$0.40**/call.
**Body fields:**
- `region` (string) *(required)* — example: `Eastern Mediterranean`
- `include_maritime` (boolean)
- `include_land` (boolean)
- `max_results` (integer)

### `POST /disruption/scenario` — What-if scenario simulation — $1.50/call
Scenario simulation with custom conditions and baseline comparison. Cost: **$1.50**/call.
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*
- `conditions` (array)
- `time_range` (string)

### `GET /disruption/sectors` — 9-sector disruption taxonomy


## Trade

_International trade flow analysis, UN Comtrade, and AI trade intelligence search_

### `POST /trade/analyze` — Trade flow analysis — $0.25/call
Country or bilateral trade analysis. Cost: **$0.25**/call.
**Body fields:**
- `country` (string) *(required)* — example: `United States`
- `partner` (string) — example: `China`
- `commodities` (array)
- `year` (integer)

### `POST /trade/comtrade` — UN Comtrade statistics — $0.15/call
Official trade statistics from UN Comtrade. Cost: **$0.15**/call.
**Body fields:**
- `reporter` (string) *(required)* — example: `Germany`
- `partner` (string)
- `commodity_code` (string)
- `flow` (string)
- `year` (integer)

### `POST /trade/search` — AI trade intelligence search — $0.25/call
Perplexity-powered trade intelligence. Cost: **$0.25**/call.
**Body fields:**
- `query` (string) *(required)* — example: `EU sanctions impact on Russian gas imports`
- `region` (string)
- `country` (string)


## Security DSS

_Security decision support — optimal positioning, coverage, extraction planning, evacuation route analysis_

### `POST /security/analyze` — Comprehensive security analysis — $0.50/call
Security DSS — positioning, coverage, deployment. Cost: **$0.50**/call.
**Body fields:**
- `query` (string) *(required)* — example: `Optimal checkpoint positions for Baghdad`
- `lat` (number) *(required)*
- `lng` (number) *(required)*
- `radius_km` (number)
- `analysis_type` (string)

### `POST /security/evacuation` — Evacuation route analysis — $0.80/call
Danger zones, safe locations, multi-route. Cost: **$0.80**/call.
**Body fields:**
- `evacuation_point` (string) *(required)* — example: `Khartoum`
- `danger_zone_radius_km` (number)
- `country` (string)
- `transport_profile` (string)

### `POST /security/extraction` — Tactical extraction planning — $0.80/call
Safe havens, exit routes, threat intel. Cost: **$0.80**/call.
**Body fields:**
- `location` (string) *(required)* — example: `Kabul`
- `insertion_method` (string)
- `insertion_point` (string)
- `country` (string)
- `search_radius_km` (number)

### `GET /security/location-types` — List security location types

### `POST /security/positioning` — Optimal asset positioning — $0.50/call
Find optimal positions for security assets. Cost: **$0.50**/call.
**Body fields:**
- `query` (string) *(required)*
- `lat` (number) *(required)*
- `lng` (number) *(required)*
- `location_types` (array)
- `radius_km` (number)


## Projects

_Project management — create, list, update, and delete projects with map data_

### `GET /projects/` — List your projects
**Parameters:**
- `limit` (query)  — integer
- `offset` (query)  — integer

### `POST /projects/` — Create a new project
Create a project with optional GeoJSON/map data. Scoped to authenticated user.
**Body fields:**
- `name` (string) *(required)* — example: `My Analysis Project`
- `description` (string)
- `geojson` (object)
- `map_data` (object)
- `center` (array)
- `zoom` (number)
- `goals` (array)

### `DELETE /projects/{project_id}` — Delete project
**Parameters:**
- `project_id` (path) *(required)* — integer

### `GET /projects/{project_id}` — Get project details
**Parameters:**
- `project_id` (path) *(required)* — integer

### `PUT /projects/{project_id}` — Update project
**Parameters:**
- `project_id` (path) *(required)* — integer
**Body fields:**
- `name` (string)
- `description` (string)
- `geojson` (object)
- `map_data` (object)


## OGC Data Sharing

_Publish layers as OGC WFS/WMS/OGC API Features/ArcGIS REST services, discover external services, export in standard formats (GeoJSON, KML, Shapefile, GeoPackage)_

### `POST /ogc/connect` — Connect to external OGC/ArcGIS service
Validate and inspect an external service endpoint. Supports WMS, WFS, WCS, ArcGIS, OGC API, STAC.
**Body fields:**
- `url` (string) *(required)* — example: `https://example.com/wfs`
- `service_type` (string)

### `POST /ogc/discover` — Discover OGC services for a region
Search government registries, ArcGIS Hub, STAC catalogs for geospatial services.
**Body fields:**
- `query` (string) *(required)* — example: `rainfall data Africa`
- `region` (string)
- `service_types` (array)
- `max_results` (integer)

### `POST /ogc/export/{layer_id}` — Export layer in standard formats
Export as GeoJSON, CSV, KML, KMZ, Shapefile, or GeoPackage.
**Parameters:**
- `layer_id` (path) *(required)* — string
**Body fields:**
- `format` (string) *(required)*
- `name` (string)

### `POST /ogc/publish` — Publish layer as OGC/ArcGIS service
Publish a feature layer as WFS, WMS, OGC API Features, or ArcGIS REST endpoints.
**Body fields:**
- `layer_id` (string) *(required)*
- `name` (string) *(required)* — example: `My WFS Layer`
- `description` (string)
- `protocols` (array)
- `is_public` (boolean)
- `expires_in_days` (integer)

### `GET /ogc/services` — List your published OGC/ArcGIS services

### `DELETE /ogc/services/{service_key}` — Unpublish a service
**Parameters:**
- `service_key` (path) *(required)* — string

### `GET /ogc/services/{service_key}/urls` — Get service endpoint URLs
**Parameters:**
- `service_key` (path) *(required)* — string

### `GET /ogc/types` — List supported service types
WMS, WFS, WCS, ArcGIS Map/Feature, OGC API, STAC.


## OSINT

_Open-source intelligence — 37 endpoints covering Perplexity domain searches (conflict, troop, health, crime, economics, demographics, banking, border, terrorism, weapons, religion, risk, cyber, agriculture, maritime, regime stability), GDELT, FIRMS fire detection, Cloudflare Radar, energy blackout monitoring_

### `POST /osint/agriculture-search` — Agriculture/food security intelligence ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/asset-fire-monitor` — Asset fire proximity monitor ($0.25)
**Body fields:**
- `assets` (array)
- `radius_km` (number)

### `POST /osint/banking-search` — Banking/financial intelligence ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/border-search` — Border security intelligence ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/city-boundary-search` — City-level boundary search ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/cloudflare-radar` — Cloudflare Radar internet monitoring ($0.10)
**Body fields:**
- `country` (string)
- `metric` (string)

### `POST /osint/conflict-search` — Search conflict events via Perplexity AI ($0.50)
AI-powered conflict OSINT: battles, military operations, ceasefire violations. Returns geocoded GeoJSON.
**Body fields:**
- `query` (string)
- `country` (string)
- `locations` (array)
- `max_locations` (integer)
- `time_range` (string)

### `POST /osint/crime-search` — Crime intelligence ($0.25)
Search organized crime, trafficking, cartel activity, narcotics.
**Body fields:**
- `query` (string)
- `country` (string)
- `time_range` (string)

### `POST /osint/cyber-search` — Cyber intelligence ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/db-discovery` — Database discovery ($0.15)
Discover available databases and data sources for a given topic.
**Body fields:**
- `query` (string)

### `POST /osint/demographics-search` — Demographics intelligence ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/disputed-territories` — Disputed territories intelligence ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/economics-search` — Economic intelligence ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/energy-blackout` — Energy blackout monitoring ($0.15)
**Body fields:**
- `country` (string)
- `region` (string)

### `POST /osint/event-reconstruction` — Multi-source event reconstruction ($0.75)
Reconstruct an event timeline from multiple OSINT sources.
**Body fields:**
- `query` (string) *(required)*
- `region` (string)
- `time_range` (string)

### `POST /osint/firms-fire` — NASA FIRMS fire detection ($0.25)
Satellite fire detection analysis from NASA FIRMS.
**Body fields:**
- `region` (string)
- `country` (string)
- `days` (integer)

### `POST /osint/firms-incident-correlator` — FIRMS fire + conflict incident correlation ($0.35)
**Body fields:**
- `region` (string)
- `country` (string)

### `POST /osint/gdelt-actor-analysis` — GDELT actor analysis ($0.25)
**Body fields:**
- `actors` (array)
- `countries` (array)
- `days` (integer)

### `POST /osint/gdelt-realtime` — GDELT realtime event feed ($0.15)
Query GDELT for realtime conflict and geopolitical events.
**Body fields:**
- `countries` (array)
- `event_codes` (array)
- `days` (integer)

### `POST /osint/health-search` — Health/disease OSINT ($0.25)
Search health crises, disease outbreaks, hospital conditions, medical supply chains.
**Body fields:**
- `query` (string)
- `country` (string)
- `time_range` (string)

### `POST /osint/intelligence-search` — Intelligence search ($0.50)
Search intelligence reports, espionage, information operations.
**Body fields:**
- `query` (string)
- `country` (string)
- `time_range` (string)

### `POST /osint/location-search` — Location data extraction + web search ($0.50)
Web search with location data extraction and geocoding.
**Body fields:**
- `query` (string) *(required)*
- `country` (string)

### `POST /osint/maritime-search` — Maritime intelligence ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/ontology-search` — Ontology-guided search ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/regime-stability` — Regime stability analysis ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/religion-search` — Religion/ethnic tensions intelligence ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/risk-search` — Risk intelligence ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/security-threats` — Security threats intelligence ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/temporal-search` — Temporal intelligence with timeline ($0.35)
**Body fields:**
- `query` (string)
- `country` (string)
- `time_range` (string)

### `POST /osint/terrorism-search` — Terrorism intelligence ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/troop-search` — Track troop movements via OSINT ($0.50)
Search troop deployments, reinforcements, and movement patterns.
**Body fields:**
- `query` (string)
- `country` (string)
- `locations` (array)
- `time_range` (string)

### `POST /osint/weapons-search` — Weapons intelligence ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /osint/web-search` — General AI web search ($0.50)
Perplexity AI-powered web search with geocoding.
**Body fields:**
- `query` (string) *(required)*
- `country` (string)
- `max_locations` (integer)


## Social Intelligence

_Social media intelligence — X/Twitter (keyword, boolean, authoritative, GDELT sync, threat/troop, trends), Telegram OSINT, YouTube (search, transcript, transcript-to-map), podcasts, articles, Reddit, sentiment analysis, radicalization tracking_

### `POST /social/area-social-map` — Area-based social media map ($0.25)
**Body fields:**
- `query` (string)
- `region` (string)
- `bbox` (array)

### `POST /social/article-reader` — Article reader ($0.10)
**Body fields:**
- `url` (string) *(required)*

### `POST /social/deep-article` — Deep article analysis ($0.35)
**Body fields:**
- `query` (string)
- `url` (string)

### `POST /social/podcast-search` — Podcast intelligence ($0.25)
**Body fields:**
- `query` (string) *(required)*

### `POST /social/radicalization-tracking` — Radicalization tracking ($0.25)
**Body fields:**
- `query` (string)
- `region` (string)

### `POST /social/reddit-search` — Reddit monitor ($0.15)
**Body fields:**
- `query` (string) *(required)*
- `subreddit` (string)
- `limit` (integer)

### `POST /social/sentiment-analysis` — Multi-source sentiment analysis ($0.50)
**Body fields:**
- `query` (string) *(required)*
- `country` (string)

### `POST /social/single-article-extract` — Single article location extraction ($0.25)
**Body fields:**
- `url` (string) *(required)*

### `POST /social/telegram-osint` — Telegram OSINT monitoring ($0.25)
**Body fields:**
- `query` (string)
- `region` (string)

### `POST /social/x-authoritative` — X authority + Perplexity cross-reference ($0.25)
**Body fields:**
- `query` (string)
- `country` (string)
- `region` (string)

### `POST /social/x-boolean` — X advanced boolean search via Grok ($0.20)
**Body fields:**
- `query` (string)
- `boolean_query` (string)
- `count` (integer)
- `mode` (string)

### `POST /social/x-gdelt-sync` — X + GDELT + Perplexity fusion ($0.35)
**Body fields:**
- `query` (string)
- `country` (string)

### `POST /social/x-keyword` — X/Twitter keyword search ($0.15)
Search X/Twitter with geolocation and event mapping.
**Body fields:**
- `query` (string) *(required)*
- `lang` (string)
- `count` (integer)

### `POST /social/x-threat-troop` — X threat/troop monitoring ($0.25)
**Body fields:**
- `query` (string)
- `region` (string)

### `POST /social/x-trends` — X/Twitter trending topics ($0.10)
**Body fields:**
- `woeid` (integer)
- `country` (string)

### `POST /social/youtube-search` — YouTube intelligence search ($0.15)
**Body fields:**
- `query` (string) *(required)*
- `max_results` (integer)

### `POST /social/youtube-transcript` — YouTube transcript extraction ($0.25)
**Body fields:**
- `url` (string) *(required)*

### `POST /social/youtube-transcript-map` — YouTube transcript to map ($0.35)
**Body fields:**
- `url` (string) *(required)*


## Advanced Search

_Multi-source fusion searches — concurrent multi-search, intelligence sweep, OSINT fusion, chat-search, countrywide geospatial, multi-lingual conflict, link analysis, corroboration_

### `POST /search-advanced/chat-search` — AI chat-powered search ($0.50)
**Body fields:**
- `query` (string) *(required)*

### `POST /search-advanced/concurrent-multi` — Concurrent multi-source search ($0.75)
Run searches across multiple sources simultaneously.
**Body fields:**
- `query` (string) *(required)*
- `sources` (array)
- `country` (string)
- `region` (string)

### `POST /search-advanced/countrywide-geospatial` — Countrywide geospatial search ($0.50)
**Body fields:**
- `query` (string) *(required)*
- `country` (string) *(required)*

### `POST /search-advanced/intelligence-sweep` — Intelligence events sweep ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `country` (string)

### `POST /search-advanced/multi-lingual-conflict` — Multi-lingual conflict search ($0.50)
**Body fields:**
- `query` (string) *(required)*
- `languages` (array)

### `POST /search-advanced/osint-corroboration` — OSINT corroboration ($0.75)
Cross-reference claims across multiple sources for validation.
**Body fields:**
- `query` (string) *(required)*
- `sources` (array)

### `POST /search-advanced/osint-fusion` — OSINT fusion search ($1.00)
Fuse multiple OSINT sources into unified intelligence product.
**Body fields:**
- `query` (string) *(required)*
- `country` (string)
- `region` (string)

### `POST /search-advanced/unified-link-search` — Unified link search ($0.50)
**Body fields:**
- `url` (string) *(required)*
- `query` (string)


## Strategy Advanced

_Advanced strategy — ASCOPE, DST builder, IPB, human terrain, actor network, timeline reconstruction, supply chain risk, spatial reasoning, geostrategic assessment, Geneva Convention overlay, convergence analysis, consensus engine, info-ops effects_

### `POST /strategy-advanced/actor-network` — Actor network analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/ascope` — ASCOPE analysis ($1.00)
Areas, Structures, Capabilities, Organizations, People, Events analysis.
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*
- `focus_areas` (array)

### `POST /strategy-advanced/asset-valuation` — Strategic asset valuation ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/conflict-zone` — Conflict zone analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/consensus-analysis` — Multi-AI consensus analysis ($0.75)
Multiple LLMs debate and converge on validated conclusions.
**Body fields:**
- `query` (string) *(required)*
- `models` (array)
- `rounds` (integer)

### `POST /strategy-advanced/convergence-analysis` — Convergence analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/dst-builder` — Decision Support Template builder ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/geneva-overlay` — Geneva Convention overlay ($0.15)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/geostrategic` — Geostrategic assessment ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/global-risk` — Global risk assessment ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string)

### `POST /strategy-advanced/human-security` — Human security assessment ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/human-terrain` — Human terrain mapping ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/info-ops-effects` — Information operations effects ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/ipb` — Intelligence Preparation of the Battlefield ($1.25)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/link-analysis` — Link analysis ($0.50)
**Body fields:**
- `query` (string) *(required)*
- `region` (string)

### `POST /strategy-advanced/network-analyzer` — Network analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string)

### `POST /strategy-advanced/security-geo` — Security geo-strategist ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/spatial-reasoning` — Spatial reasoning analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/supply-chain-risk` — Supply chain risk analysis ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string)

### `POST /strategy-advanced/threat-analysis` — Threat analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /strategy-advanced/timeline-reconstruction` — Timeline reconstruction ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string)
- `time_range` (string)

### `POST /strategy-advanced/travel-risk` — Travel risk assessment ($0.50)
**Body fields:**
- `query` (string) *(required)*
- `origin` (string)
- `destination` (string)


## Military

_Military analysis — strike vectors, artillery fires/range fans, air defense tracking, maneuver-fire coordination, BDA, weapons capability, arms trafficking, troop tracking, force disposition, ISW frontlines, line of control, amphibious landing, UAS tactical swarm_

### `POST /military/air-defense` — Air defense coverage tracking ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /military/amphibious-landing` — Amphibious landing analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /military/arms-trafficking` — Arms trafficking network ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /military/artillery-fires` — Artillery fire pattern analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*
- `time_range` (string)

### `POST /military/artillery-range-fan` — Artillery range fan generator ($0.50)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /military/attack-vector` — Attack vector analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /military/bda` — Battle Damage Assessment ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*
- `time_range` (string)

### `POST /military/force-disposition` — Force disposition analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /military/isw-frontlines` — ISW frontline data ($0.25)
**Body fields:**
- `conflict` (string)
- `date` (string)

### `POST /military/launch-point` — Launch point identification ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /military/line-of-control` — Line of control / ceasefire analysis ($0.50)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /military/maneuver-fire` — Maneuver-fire coordination ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /military/strike-vector` — Strike origin-to-impact vectors ($1.00)
Generate strike vectors with blast radii and OSINT corroboration.
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*
- `time_range` (string)
- `include_osint` (boolean)

### `POST /military/tactical-swarm` — UAS tactical swarm analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /military/troop-tracking` — Troop movement tracking ($0.50)
Track military troop movements and force positioning via OSINT.
**Body fields:**
- `query` (string) *(required)*
- `country` (string)
- `region` (string)
- `time_range` (string)

### `POST /military/weapons-tracker` — Weapons capability tracker ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*


## Wargaming

_Wargaming & mission planning — comprehensive wargaming, battle map (14 parallel services), mission ops center (OPORD/FRAGORD/WARNORD), scenario modeler, theater simulation, agent-based simulation, SITREP, situational awareness, election intelligence_

### `POST /wargaming/agent-simulation` — Agent-based simulation ($2.50)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /wargaming/battle-map` — Multi-layer battle map — 14 parallel services ($10.00)
Most comprehensive analysis: frontlines, forces, strikes, air defense, terrain, logistics, ISR, weather, and more.
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*
- `sources` (array)
- `time_range` (string)

### `POST /wargaming/comprehensive` — Comprehensive wargaming simulation ($2.50)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*
- `turns` (integer)
- `blue_forces` (string)
- `red_forces` (string)

### `POST /wargaming/election-intelligence` — Election intelligence analysis ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `country` (string)

### `POST /wargaming/mission-ops-center` — Mission planning operations center ($5.00)
Full OPORD/FRAGORD/WARNORD generation with phased operations.
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*
- `mission_type` (string)
- `order_type` (string)

### `POST /wargaming/mission-planning` — Mission planning ($1.50)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /wargaming/ops-builder` — Operations builder ($2.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /wargaming/scenario-modeler` — AI scenario modeler with mind-map ($2.00)
Build scenarios with D3 force-directed graph, supports PMESII-PT/ASCOPE/COA/wargaming.
**Body fields:**
- `query` (string) *(required)*
- `scenario_type` (string)

### `POST /wargaming/sitrep` — SITREP generator ($1.50)
Generate structured military situation report with real-time intelligence.
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*
- `classification` (string)

### `POST /wargaming/situational-awareness` — Situational awareness briefing ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /wargaming/theater-simulation` — Theater-level simulation ($3.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*
- `turns` (integer)


## Prediction

_Predictive analysis — data-driven conflict prediction, geospatial forecasting, battle location prediction, terrorist pattern analysis, dynamic risk assessment_

### `POST /prediction/battle` — Battle location prediction ($2.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /prediction/data-driven` — Data-driven conflict prediction ($1.50)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*
- `time_horizon` (string)

### `POST /prediction/dynamic-risk` — Dynamic risk analysis ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /prediction/geospatial` — Geospatial prediction ($1.50)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /prediction/terrorist-pattern` — Terrorist attack pattern analysis ($1.50)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*


## Routing

_Mission routing — VIP escort, evacuation, extraction, patrol optimization, surveillance detection, concealment, supply line, convoy/military isochrone, drone mission, helicopter, airplane, ambush risk, LZ analysis_

### `POST /routing/airplane` — Airplane route planning ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `origin` (string)
- `destination` (string)

### `POST /routing/ambush-risk` — Ambush risk route analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `origin` (string)
- `destination` (string)

### `POST /routing/concealment` — Concealment route ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `origin` (string)
- `destination` (string)

### `POST /routing/convoy-isochrone` — Convoy isochrone analysis ($0.50)
**Body fields:**
- `query` (string) *(required)*
- `origin` (string)

### `POST /routing/drone-mission` — Drone mission planning ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `origin` (string)
- `region` (string)

### `POST /routing/evacuation` — Evacuation routing ($1.50)
**Body fields:**
- `query` (string) *(required)*
- `origin` (string)
- `destination` (string)
- `region` (string)

### `POST /routing/extraction` — Extraction route planning ($1.50)
**Body fields:**
- `query` (string) *(required)*
- `origin` (string)
- `destination` (string)
- `region` (string)

### `POST /routing/helicopter` — Helicopter route planning ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `origin` (string)
- `destination` (string)

### `POST /routing/lz-analysis` — Landing zone analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string)

### `POST /routing/military-isochrone` — Military isochrone ($0.50)
**Body fields:**
- `query` (string) *(required)*
- `origin` (string)

### `POST /routing/patrol-optimization` — Patrol route optimization ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string)

### `POST /routing/supply-line` — Supply line routing ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `origin` (string)
- `destination` (string)

### `POST /routing/surveillance-detection` — Surveillance detection route ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `origin` (string)
- `destination` (string)

### `POST /routing/vip` — VIP escort route ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `origin` (string)
- `destination` (string)
- `region` (string)
- `waypoints` (array)


## Tactical

_Tactical analysis — urban operations, terrain analysis (KOCOA), battlefield simulation, global battleforge, electronic warfare, logistics supply chain, tactical mission planning, IRAM analysis_

### `POST /tactical/battlefield-simulation` — Battlefield simulation ($2.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /tactical/electronic-warfare` — Electronic warfare analysis ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /tactical/global-battleforge` — Comprehensive terrain battleforge ($2.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /tactical/iram-analysis` — IRAM analysis ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /tactical/logistics-supply-chain` — Logistics supply chain optimization ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /tactical/tactical-mission-planning` — Real-time tactical mission planning ($1.50)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /tactical/terrain-analysis` — Terrain analysis (KOCOA) ($0.75)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /tactical/urban-operations` — Urban operations analysis ($1.00)
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*


## Boundaries

_Administrative boundaries — 198 countries, 7 admin levels (country→microhood), sub-boundaries, enrichment, internet monitoring, radar enrichment, choropleth_

### `GET /boundaries/countries` — List 198 countries with admin levels (FREE)

### `POST /boundaries/enrich` — Enrich boundaries with data ($0.15)
**Body fields:**
- `country_code` (string) *(required)*
- `boundary_type` (string)
- `enrichment_type` (string)

### `POST /boundaries/query` — Query admin boundaries ($0.05)
198 countries, 7 admin levels (country, region, county, locality, neighborhood, macrohood, microhood).
**Body fields:**
- `country_code` (string) *(required)*
- `boundary_type` (string)
- `name_filter` (string)
- `bbox` (array)

### `POST /boundaries/sub-boundaries` — Query sub-boundaries ($0.05)
**Body fields:**
- `country_code` (string) *(required)*
- `parent_name` (string) *(required)*
- `parent_level` (string)
- `child_level` (string)


## Tilesets

_Vector tileset intelligence — 40+ tileset types (power, airports, ports, hospitals, military bases, land use, maritime, etc.)_

### `GET /tilesets/catalog` — Full tileset catalog (FREE)
List all available tileset types and their coverage.

### `POST /tilesets/query` — Query vector tileset intelligence ($0.10)
40+ tileset types including power grid, airports, ports, hospitals, military bases.
**Body fields:**
- `query` (string) *(required)*
- `location` (string)
- `categories` (array)
- `radius_m` (integer)


## Infrastructure

_Infrastructure data — 21 layer types (airports, railway, ports, power, military_bases, hospitals, schools, roads, bridges, dams, communications, water, barriers, government, etc.)_

### `POST /infrastructure/multi` — Multi-layer infrastructure query ($0.10)
**Body fields:**
- `layers` (array) *(required)*
- `region` (string)
- `bbox` (array)

### `POST /infrastructure/query` — Query infrastructure by type ($0.05)
21 infrastructure types: airports, railway, ports, power, military_bases, hospitals, schools, roads, bridges, dams, communications, water_infra, barriers, waste, government, education, religious, construction, residential, resource_extraction.
**Body fields:**
- `layer` (string) *(required)*
- `region` (string)
- `bbox` (array)
- `radius_m` (integer)

### `GET /infrastructure/types` — List infrastructure types (FREE)


## Visualization

_Map visualization — AI drawing agent, intelligent labeling, GeoNarrative engine, country/alliance highlighting_

### `POST /visualization/alliance-highlight` — Highlight alliance countries ($0.05)
**Body fields:**
- `alliance` (string) *(required)*

### `POST /visualization/country-highlight` — Highlight countries ($0.05)
**Body fields:**
- `countries` (array) *(required)*
- `color` (string)

### `POST /visualization/draw` — AI drawing agent ($0.25)
Generate GeoJSON shapes and annotations from natural language.
**Body fields:**
- `query` (string) *(required)*
- `draw_type` (string)

### `POST /visualization/gnge` — GeoNarrative engine ($0.50)
Generate narrative maps with storyline and data overlays.
**Body fields:**
- `query` (string) *(required)*
- `region` (string) *(required)*

### `POST /visualization/label` — Intelligent labeling ($0.15)
**Body fields:**
- `query` (string) *(required)*


## Chat Dispatch

_Universal natural language dispatch — send plain English commands to access 200+ platform capabilities with automatic AI routing_

### `POST /chat/dispatch` — Universal natural language dispatch ($0.05 base + route cost)
Send any command in plain English or structured {route, parameters}. AI routes to the appropriate service from 200+ capabilities.
**Body fields:**
- `message` (string)
- `route` (string)
- `parameters` (object)


## MCP

_Model Context Protocol server — 121 tools (45 COP + 76 SDK) for external AI agents (Claude Desktop, Cursor, Windsurf). SSE transport with JSON-RPC 2.0_

### `GET /mcp/health` — MCP server health check

### `POST /mcp/message` — MCP JSON-RPC message endpoint
JSON-RPC 2.0 endpoint for MCP tool calls. Supports tools/list, tools/call, resources/list, resources/read.
**Body fields:**
- `jsonrpc` (string) *(required)*
- `id` (string)
- `method` (string) *(required)*
- `params` (object)

### `GET /mcp/sse` — MCP SSE stream
Server-Sent Events stream for endpoint discovery and keep-alive.

### `GET /mcp/tools` — List all MCP tools
Returns all available MCP tools (76+ COP + 20 SDK tools) with schemas and descriptions.


## Account

_Identity — `/me` returns the calling user's user_id, username, email (verbatim from the users table), org, role, account tier, and credit balance_

### `GET /me` — Who am I — return the calling user (free)
Returns the calling user's identity verbatim from the users table. The `email` field is exactly what the user has on file in their GeoBit account — never derived or guessed. Use to confirm which account an API key is bound to.

```bash
curl https://api.geobit.ai/api/v1/me \
  -H "X-API-Key: $GEOBIT_API_KEY"
```

Response:
```json
{
  "user_id": 1,
  "username": "ben",
  "email": "benjamin@geobit.ai",
  "organization_id": null,
  "organization_name": null,
  "org_role": "member",
  "is_admin": true,
  "is_org_admin": false,
  "account_tier": "standard",
  "billing_mode": "self_serve",
  "credit_balance": 100.0,
  "created_on": "2024-...T..."
}
```


## AOI

_Area of Interest — CRUD plus continuous monitoring (events, stats, alert config) using GeoBit intelligence data feeds_

### `POST /aoi-monitor/create` — Create an AOI ($0.002)
Create a new Area of Interest tied to the calling user.

```bash
curl -X POST https://api.geobit.ai/api/v1/aoi-monitor/create \
  -H "X-API-Key: $GEOBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Tel Aviv perimeter",
    "geometry": {"type":"Polygon","coordinates":[[[34.7,32.0],[34.85,32.0],[34.85,32.15],[34.7,32.15],[34.7,32.0]]]},
    "monitoring_sources": ["gdelt","firms","rss"],
    "monitoring_interval": 3600
  }'
```
**Body fields:**
- `name` (string) *(required)* — example: `Tel Aviv perimeter`
- `geometry` (object) *(required)*
- `location` (string)
- `geometry_type` (string) — example: `polygon`
- `color` (string) — example: `#3b82f6`
- `properties` (object)
- `monitoring_sources` (array)
- `monitoring_interval` (integer) — example: `3600`

### `DELETE /aoi-monitor/{aoi_id}` — Delete an AOI ($0.001)
```bash
curl -X DELETE https://api.geobit.ai/api/v1/aoi-monitor/42 \
  -H "X-API-Key: $GEOBIT_API_KEY"
```
**Parameters:**
- `aoi_id` (path) *(required)* — integer

### `GET /aoi-monitor/{aoi_id}` — Get AOI by id ($0.001)
```bash
curl https://api.geobit.ai/api/v1/aoi-monitor/42 \
  -H "X-API-Key: $GEOBIT_API_KEY"
```
**Parameters:**
- `aoi_id` (path) *(required)* — integer

### `PATCH /aoi-monitor/{aoi_id}` — Update an AOI ($0.001)
```bash
curl -X PATCH https://api.geobit.ai/api/v1/aoi-monitor/42 \
  -H "X-API-Key: $GEOBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"New name","color":"#ef4444","monitoring_enabled":true}'
```
**Parameters:**
- `aoi_id` (path) *(required)* — integer
**Body fields:**
- `name` (string)
- `color` (string)
- `is_visible` (boolean)
- `monitoring_enabled` (boolean)
- `monitoring_sources` (array)
- `monitoring_interval` (integer)
- `properties` (object)


## Scenario Modeler

_Mind-map scenario builder — graph CRUD (nodes/edges), versioned snapshots, pre-built templates (conflict escalation, natural disaster response, maritime disruption)_

### `GET /scenarios` — List scenarios ($0.001)
```bash
curl "https://api.geobit.ai/api/v1/scenarios?status=draft&limit=20" \
  -H "X-API-Key: $GEOBIT_API_KEY"
```
**Parameters:**
- `project_id` (query)  — integer
- `status` (query)  — string
- `limit` (query)  — integer
- `offset` (query)  — integer

### `POST /scenarios` — Create a scenario ($0.005)
Create a new mind-map scenario for the calling user.

```bash
curl -X POST https://api.geobit.ai/api/v1/scenarios \
  -H "X-API-Key: $GEOBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Black Sea grain corridor disruption",
    "description": "Model escalation pathways",
    "region": "Black Sea",
    "scenario_type": "maritime_disruption"
  }'
```
**Body fields:**
- `name` (string) *(required)* — example: `Black Sea grain corridor disruption`
- `description` (string)
- `region` (string) — example: `Black Sea`
- `scenario_type` (string) — example: `maritime_disruption`
- `project_id` (integer)
- `original_prompt` (string)

### `DELETE /scenarios/{scenario_id}` — Delete scenario ($0.001)
```bash
curl -X DELETE https://api.geobit.ai/api/v1/scenarios/$SCENARIO_ID \
  -H "X-API-Key: $GEOBIT_API_KEY"
```
**Parameters:**
- `scenario_id` (path) *(required)* — string

### `GET /scenarios/{scenario_id}` — Get scenario with full graph ($0.002)
```bash
curl https://api.geobit.ai/api/v1/scenarios/$SCENARIO_ID \
  -H "X-API-Key: $GEOBIT_API_KEY"
```
**Parameters:**
- `scenario_id` (path) *(required)* — string

### `PATCH /scenarios/{scenario_id}` — Update scenario ($0.002)
```bash
curl -X PATCH https://api.geobit.ai/api/v1/scenarios/$SCENARIO_ID \
  -H "X-API-Key: $GEOBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Renamed scenario","status":"active"}'
```
**Parameters:**
- `scenario_id` (path) *(required)* — string

### `POST /scenarios/{scenario_id}/edges` — Add an edge to a scenario ($0.002)
```bash
curl -X POST https://api.geobit.ai/api/v1/scenarios/$SCENARIO_ID/edges \
  -H "X-API-Key: $GEOBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source_node_id": "$NODE_A",
    "target_node_id": "$NODE_B",
    "edge_type": "leads_to"
  }'
```
**Parameters:**
- `scenario_id` (path) *(required)* — string
**Body fields:**
- `source_node_id` (string) *(required)*
- `target_node_id` (string) *(required)*
- `edge_type` (string) — example: `leads_to`
- `label` (string)

### `POST /scenarios/{scenario_id}/nodes` — Add a node to a scenario ($0.002)
```bash
curl -X POST https://api.geobit.ai/api/v1/scenarios/$SCENARIO_ID/nodes \
  -H "X-API-Key: $GEOBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "node_type": "event",
    "label": "Initial trigger event",
    "latitude": 32.07, "longitude": 34.78
  }'
```
**Parameters:**
- `scenario_id` (path) *(required)* — string
**Body fields:**
- `node_type` (string) *(required)* — example: `event`
- `label` (string) *(required)* — example: `Initial trigger event`
- `description` (string)
- `position_x` (number)
- `position_y` (number)
- `latitude` (number) — example: `32.07`
- `longitude` (number) — example: `34.78`
- `analysis_route` (string)
- `analysis_config` (object)

### `POST /scenarios/{scenario_id}/snapshots` — Save a snapshot of the scenario graph ($0.003)
```bash
curl -X POST https://api.geobit.ai/api/v1/scenarios/$SCENARIO_ID/snapshots \
  -H "X-API-Key: $GEOBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"label":"Pre-COA-revision"}'
```
**Parameters:**
- `scenario_id` (path) *(required)* — string
**Body fields:**
- `label` (string)

### `POST /scenarios/{scenario_id}/templates/{template_name}` — Populate scenario from a pre-built template ($0.005)
```bash
curl -X POST https://api.geobit.ai/api/v1/scenarios/$SCENARIO_ID/templates/conflict_escalation \
  -H "X-API-Key: $GEOBIT_API_KEY"
```
**Parameters:**
- `scenario_id` (path) *(required)* — string
- `template_name` (path) *(required)* — string


## Prediction Suite

_Unified prediction pipeline — fuses GeoBit intelligence feeds with historical patterns to produce structured WHO/WHAT/WHERE/WHEN/WHY forecasts, risk scoring, and a GeoJSON layer_

### `POST /prediction-suite/run` — Run the unified Prediction Suite ($0.50)
Runs the full GeoBit Prediction Suite: multi-source data fusion across the GeoBit intelligence APIs plus historical patterns, producing structured WHO/WHAT/WHERE/WHEN/WHY forecasts with risk scoring and a GeoJSON layer.

```bash
curl -X POST https://api.geobit.ai/api/v1/prediction-suite/run \
  -H "X-API-Key: $GEOBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "What conflict events are likely in southern Lebanon next week?",
    "region": "Southern Lebanon",
    "country": "Lebanon",
    "time_horizon": "7d"
  }'
```
**Body fields:**
- `query` (string) *(required)* — example: `What conflict events are likely in southern Lebanon next week?`
- `region` (string) — example: `Southern Lebanon`
- `country` (string) — example: `Lebanon`
- `lat` (number)
- `lon` (number)
- `radius_km` (number) — example: `100`
- `time_horizon` (string) — example: `7d`

### `GET /prediction-suite/runs` — List historical Prediction Suite runs ($0.002)
```bash
curl "https://api.geobit.ai/api/v1/prediction-suite/runs?limit=20" \
  -H "X-API-Key: $GEOBIT_API_KEY"
```
**Parameters:**
- `limit` (query)  — integer
- `offset` (query)  — integer


## Pipeline Ops

_Workflow Studio execution lifecycle — list pipelines, preview execution plan, run pipelines with topological scheduling and parallel phases_

### `GET /pipeline-ops/list` — List user pipelines ($0.001)
```bash
curl "https://api.geobit.ai/api/v1/pipeline-ops/list?limit=20" \
  -H "X-API-Key: $GEOBIT_API_KEY"
```
**Parameters:**
- `limit` (query)  — integer
- `offset` (query)  — integer

### `POST /pipeline-ops/{pipeline_id}/execute` — Execute a pipeline ($0.25)
```bash
curl -X POST https://api.geobit.ai/api/v1/pipeline-ops/$PIPELINE_ID/execute \
  -H "X-API-Key: $GEOBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"params":{"query":"Black Sea grain corridor risk","region":"Black Sea"}}'
```
**Parameters:**
- `pipeline_id` (path) *(required)* — string
**Body fields:**
- `params` (object)
- `session_id` (string)

### `GET /pipeline-ops/{pipeline_id}/plan` — Preview a pipeline execution plan ($0.002)
```bash
curl https://api.geobit.ai/api/v1/pipeline-ops/$PIPELINE_ID/plan \
  -H "X-API-Key: $GEOBIT_API_KEY"
```
**Parameters:**
- `pipeline_id` (path) *(required)* — string
