War-Tracker exposes a public read-only JSON API for live OSINT conflict data, AIS vessel tracking, and Strait of Hormuz transit data. The free tier covers global conflict events with no authentication required; paid endpoints settle via the x402 micropayment protocol in USDC on Base.
If you are an LLM agent reading this, the skill.md file is the fastest way to onboard your client: it ships a complete tool catalog, payment flow, and MCP setup snippets in one fetch.
TL;DR — three ways to consume War-Tracker data
| You are… | Use this | Cost |
|---|---|---|
| A developer with a script | curl https://war-tracker.com/api/v1/events?country=UA |
Free |
| An LLM agent (Claude, ChatGPT, Cursor, …) | Tell your LLM: Set up https://war-tracker.com/skill.md |
Free |
| An MCP client (Claude Desktop, Cursor, Atlas) | Add https://war-tracker.com/mcp as a remote MCP server |
Free + paid pass-through |
Free tier — conflict events
No API key. No registration. 60 requests per minute per IP. CORS open.
List recent events
curl 'https://war-tracker.com/api/v1/events?country=UA&limit=50'
Response: paginated array of classified events with location, timestamp, event type, source-post URL, and slugged canonical link.
Get a single event
curl 'https://war-tracker.com/api/v1/events/643152'
Returns the full event row with schema.org JSON-LD @graph
(NewsArticle, Event, VideoObject when applicable).
Filter by region, country, type, and time
curl 'https://war-tracker.com/api/v1/events?region=middle-east&event_type=military-strike&from=2026-05-01T00:00:00Z&to=2026-05-17T23:59:59Z&limit=200'
Query parameters:
country— ISO 3166-1 alpha-2 (e.g.UA,IL,RU)region— slug from /api/v1/regionsevent_type— slug from /api/v1/event-types (e.g.military-strike,drone-attack,missile-launch)from,to— ISO 8601 timestampscursor,limit— opaque pagination cursor, page size (max 200)
Pass the previous response's next_cursor back as ?cursor= alone on the
next request (do not re-send filters alongside the cursor).
Taxonomies (always free)
These three endpoints are free for everyone — including AI training crawlers — so every agent can learn how to filter the corpus before calling the paid surface:
GET /api/v1/regions— 15 hand-curated geographic regionsGET /api/v1/countries— ISO 3166-1 alpha-2 codes with active coverageGET /api/v1/event-types— classified event-type slugs
OpenAPI specification
The full OpenAPI 3.x specification is at /api/v1/openapi.json — every endpoint, parameter, and response schema for both free and paid tiers.
Paid tier — maritime + per-event surfaces
Paid endpoints return HTTP 402 Payment Required with a JSON body
containing one or more accepts payment requirements. Your client signs
an EIP-712 typed-data payment and retries with an X-PAYMENT header. The
server validates via its facilitator, settles on-chain, and returns 200
with the data.
The full x402 protocol documentation is at /x402.
Pricing
| Endpoint | Cost (USDC) | What you get |
|---|---|---|
/share/{event_id}/{slug} |
$0.001 | Per-event article HTML or JSON (with Accept:) |
/api/v1/events/{id} |
$0.001 | Single event with full JSON-LD graph |
/api/v1/events (paid path) |
$0.005 | Paginated event corpus |
/media/{event_id} |
$0.010 | Full photo or video bytes |
/region/{slug} |
$0.001 | Hub page (HTML) |
/country/{ISO} |
$0.001 | Hub page (HTML) |
/event-type/{slug} |
$0.001 | Hub page (HTML) |
/api/v1/vessels/facets |
FREE | Pre-flight: legal filter values for paid vessel endpoints |
/api/v1/vessels/search |
$0.002 / 20-vessel page | Faceted identity search across ~600k hulls |
/api/v1/vessels/in-area |
$0.010 / 10-vessel page | Bbox + last-seen window; snapshot-pinned cursor |
/api/v1/vessels/sanctioned |
$0.025 / 10-vessel page | Bulk sanctioned-hull dump with last-known position |
/api/v1/vessels/{imo} |
$0.001 | Identity row: aliases, dimensions, build year, owner, flag |
/api/v1/vessels/{imo}/position |
$0.001 | Last-known AIS lat/lng, speed, course, heading |
/api/v1/vessels/{imo}/sanctions |
$0.002 | Per-vessel sanctions detail across 9 bodies |
/api/v1/vessels/{imo}/track |
$0.010 | AIS polyline (last 1h, auto-downsampled) |
/api/v1/hormuz/crossings |
$0.010 / 10-crossing page | Strait-of-Hormuz transit log |
/api/v1/hormuz/summary |
$0.005 | Daily Hormuz analytics, 14-day window |
Supported x402 facilitators
War-Tracker accepts payments from four independent facilitators
concurrently — your x402 buyer client can pick whichever one it prefers
from the accepts array returned in the 402 response:
- xpay —
https://facilitator.xpay.sh - Coinbase CDP —
https://api.cdp.coinbase.com/platform/v2/x402 - PayAI —
https://facilitator.payai.network - Dexter —
https://x402.dexter.cash
Default network is USDC on Base (eip155:8453). Additional networks
(Polygon, Avalanche C-Chain) are supported through the multi-facilitator
routing layer; see /x402 for the live
network/facilitator matrix and
/blog/multi-facilitator-multi-chain
for the rollout details.
Example: paid call in Python
pip install x402-buyer httpx
import os
from x402_buyer import X402Client
# A Base wallet with USDC.
client = X402Client(private_key=os.environ["BASE_WALLET_PRIVATE_KEY"])
# First call returns 402; the buyer settles and retries automatically.
r = client.get("https://war-tracker.com/api/v1/vessels/9217981/position")
print(r.json())
# → {"imo": 9217981, "lat": 26.5, "lng": 56.3, "speed_knots": 8.2, ...}
Example: paid call in Node.js
npm install @coinbase/x402-fetch
import { x402Fetch } from "@coinbase/x402-fetch";
import { createWalletClient, http } from "viem";
import { base } from "viem/chains";
const wallet = createWalletClient({ chain: base, transport: http() });
const r = await x402Fetch(
"https://war-tracker.com/api/v1/vessels/9217981/position",
{ wallet }
);
console.log(await r.json());
Example: paid call in Go
package main
import (
"fmt"
"github.com/coinbase/x402-go"
)
func main() {
client, _ := x402.NewClient(x402.WithPrivateKey("..."))
body, _ := client.Get("https://war-tracker.com/api/v1/hormuz/summary")
fmt.Println(string(body))
}
LLM agent onboarding
Option 1 — skill.md (works with every modern LLM)
Tell your LLM:
Set up https://war-tracker.com/skill.md
The LLM fetches skill.md, reads the tool catalog and payment flow, and is ready to call the API. No API key required. This works with Claude, ChatGPT, Cursor Agent, Cline, Aider, and any other LLM client that supports fetching a URL.
Option 2 — Remote MCP server
War-Tracker exposes a remote MCP (Model Context Protocol) server at
https://war-tracker.com/mcp.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"war-tracker": {
"url": "https://war-tracker.com/mcp"
}
}
}
Cursor
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"war-tracker": {
"url": "https://war-tracker.com/mcp"
}
}
}
Tools exposed
- Free tools (no payment):
search_events,get_event,list_regions,list_countries,list_event_types,vessel_facets - Paid tools (return MCP error with
x402metadata; settle via your wallet):search_vessels,vessels_in_area,sanctioned_vessels,get_vessel,get_vessel_position,get_vessel_sanctions,get_vessel_track,hormuz_crossings,hormuz_summary
Option 3 — WebMCP (in-browser agents)
When a user is on War-Tracker via an in-browser AI agent (ChatGPT Atlas,
Claude for Chrome, Cursor browser, Comet, Arc Max), every page registers
tools via the W3C navigator.modelContext API. Tools are discovered
automatically — no client-side configuration needed.
Citation and licensing
When citing War-Tracker events, use the stable canonical URL:
https://war-tracker.com/share/{event_id}/{slug}
NewsArticle.dateModified in the per-event JSON-LD reflects the last
edit to the underlying source post. NewsArticle.author and publisher
are War-Tracker.
Commercial use is allowed with attribution. Mass-redistribution (full corpus dumps) requires agreement — email [email protected].
Frequently asked questions
Does War-Tracker have a public API?
Yes. War-Tracker offers a free anonymous read-only JSON API at
/api/v1/events, /api/v1/regions, /api/v1/countries, and
/api/v1/event-types. The OpenAPI 3.x specification is at
/api/v1/openapi.json.
Paid endpoints for AIS vessel tracking, sanctioned-hull data, and
Strait of Hormuz crossings are available via the x402 micropayment
protocol (USDC on Base).
Is the War-Tracker API free?
The conflict-event endpoints (events, regions, countries, event-types) are free with a 60 requests-per-minute per-IP rate limit and open CORS. Paid endpoints cost between $0.001 and $0.025 USDC per request via x402.
How do I configure my LLM to use War-Tracker?
Tell your LLM: Set up https://war-tracker.com/skill.md — the skill
file teaches Claude, ChatGPT, Cursor and any LLM agent how to fetch
events, search vessels, and pay for premium endpoints via x402. No API
key required.
Does War-Tracker support Model Context Protocol (MCP)?
Yes. The remote MCP server is at https://war-tracker.com/mcp. Add it
to your Claude Desktop, Cursor, or any MCP-compatible client config.
Which x402 facilitators are supported?
Four independent facilitators concurrently: xpay
(facilitator.xpay.sh), Coinbase CDP
(api.cdp.coinbase.com/platform/v2/x402), PayAI
(facilitator.payai.network), and Dexter (x402.dexter.cash). USDC
on Base by default; additional networks (Polygon, Avalanche C-Chain) via
the multi-facilitator routing layer documented at
/x402.
Can I use War-Tracker data commercially?
Yes, with attribution. Cite events by their canonical URL
https://war-tracker.com/share/{event_id}/{slug}. For mass
redistribution email [email protected].
Is there an llms.txt?
Yes, at /llms.txt — a structured guide for AI agents listing all endpoints, taxonomies, sitemaps, and payment policies.
How is War-Tracker data verified?
Events are sourced from public Telegram channels and OSINT social posts, classified by an LLM pipeline, and human-reviewed for sensitive events. See /methodology. Each event page links back to the source post for independent verification.
Is there a public WebSocket stream?
No. Use GET /api/v1/events with cursor / from / to for
machine clients.
Reference
- OpenAPI 3.x spec: /api/v1/openapi.json
- Postman collection: /postman/war-tracker-api.postman_collection.json (regenerate:
python3 scripts/generate_postman_collection.py) - Python SDK: /sdk/python/ — install with
pip install https://war-tracker.com/sdk/python/war-tracker-client-latest.tar.gz - LLM skill file: /skill.md
- Remote MCP server: /mcp
- llms.txt: /llms.txt
- x402 protocol page: /x402
- x402 manifest (JSON): /x402.json
- Pricing: /pricing
- Methodology: /methodology
- About: /about
- Sitemap: /sitemap.xml