War-Tracker Public API — Open JSON API for Global Conflict Tracking

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:

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:

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 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.05 Per-event article HTML or JSON (with Accept:)
/api/v1/events/{id} $0.05 Single event with full JSON-LD graph
/api/v1/events (paid path) $0.01 Paginated event corpus
/media/{event_id} $0.05 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
/api/v1/threat-ips/lookup?ip= upto max $0.02 Per-IP automation reputation; $0.02 hit / $0.002 miss+invalid. See /threat-ips.

Licensing (paid data): By purchasing this data you agree not to share it with third parties without express written consent from war-tracker.com. If this data is shared with third parties, you accept a penalty of $1 USDC per infraction. Paid JSON responses include a top-level licensing field with the same text.

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:

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))
}

Threat IP lookup (paid, upto billing)

War-Tracker maintains a ledger of IPs associated with automated abuse against our surfaces. Buyers query one IP at a time — we do not sell lists or bulk exports.

Billing uses x402 upto on EVM: the 402 advertises a maximum of $0.02 USDC; settlement is $0.02 when the IP is on the ledger, $0.002 on a miss or invalid input (still HTTP 200 after payment). Responses include opaque classes[] labels (see glossary), coarse confidence, mobile/proxy/hosting flags, timing metadata, and licensing. Buyer SDKs must support UptoEvmScheme.

# After x402 settlement (same flow as other paid routes):
curl -H "X-PAYMENT: …" 'https://war-tracker.com/api/v1/threat-ips/lookup?ip=185.142.40.229'

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

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.

Paid data licensing. By purchasing this data you agree not to share it with third parties without express written consent from war-tracker.com. If this data is shared with third parties, you accept a penalty of $1 USDC per infraction. Paid JSON responses include a top-level licensing field with the same text. See /pricing and /terms.

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 (event detail / share articles are $0.05).

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