Pricing for AI crawlers
War-Tracker is free for humans and for any bot that brings a human to us. AI training crawlers pay a USDC micropayment per request, on-chain, via the open x402 protocol. There are no API keys, no contracts, and no minimums — a bot pays per request and gets the resource on the very next response.
What costs money
Pricing is per-request, USDC-denominated, settled on Base Sepolia (testnet) (eip155:84532). All amounts are charged on top of the bot’s own gas; the facilitator covers gas via EIP-3009 transferWithAuthorization, so payments are signature-only on the bot side.
| Path pattern | Price | Atomic units | What you get |
|---|---|---|---|
^/(region|country|event-type)/[^/?]+/?$ | $0.0005 | 500 µUSDC | Hub page (region / country / event-type) with aggregated CollectionPage + Dataset JSON-LD. |
^/share/\d+(/[^/?]*)?/?$ | $0.001 | 1000 µUSDC | Per-event article at /share/{id}/{slug}. Default response is the SEO-canonical HTML page with an embedded JSON-LD @graph (NewsArticle + Event + VideoObject + FAQPage). Content-negotiable: send `Accept: application/json` or `application/ld+json` to receive the same data as a pure JSON payload (the same shape as /api/v1/events/{id}). One payment covers either representation. |
^/api/v1/events/\d+/?$ | $0.001 | 1000 µUSDC | Single event at /api/v1/events/{id}. Returns the canonical machine-readable event payload: scalar fields (id, date, country, event_type, lat/lng, ...), the rendered headline + TL;DR + article paragraphs, the full schema.org JSON-LD @graph (NewsArticle + Event + VideoObject + BreadcrumbList + FAQPage), media URLs (thumbnail free, full media paid via /media/{id}), transcript (when available), per-event FAQ, and super-event metadata. This is the same payload returned by /share/{id}/{slug} when Accept: application/json is set. |
^/api/v1/events/?$ | $0.005 | 5000 µUSDC | Paginated event corpus at /api/v1/events (up to 200 rows per call). |
^/media/\d+/?$ | $0.01 | 10000 µUSDC | Full media bytes (photo or video) for an event at /media/{event_id}. Flat price. |
Atomic units are the on-wire integer (USDC has 6 decimals, so 1 USDC = 1,000,000 µUSDC). Prices may change; the table above is rendered live from the current gate configuration on every request. The machine-readable mirror is at /x402.json.
Who pays
The following user-agents are classified as AI training crawlers and must pay for paid surfaces: anthropic_ai, applebot_extended, bytespider, ccbot, claudebot, cohere_ai, diffbot, google_extended, gptbot, meta_externalagent.
Everyone else is free:
- Humans — any normal browser visit.
- Classic search engines — Googlebot, Bingbot, DuckDuckBot, etc.
- AI-search index crawlers — OAI-SearchBot, Claude-SearchBot, PerplexityBot. These index us so AI search results can cite us; we want that traffic.
- User-triggered runtime fetchers — ChatGPT-User, Claude-User, Perplexity-User. These fire only when a real person asks the assistant a question; the human pays the assistant, the assistant comes to us, we let it through.
- Link-preview bots — facebookexternalhit, Twitterbot, LinkedInBot, TelegramBot.
Free surfaces (even for training crawlers)
Discovery has to be free or this whole arrangement breaks. Training crawlers are explicitly allowed to fetch the policy, the sitemap, the OpenAPI spec, and the site root without paying: /, /about, /methodology, /robots.txt, /llms.txt, /sitemap.xml, /pricing, /x402, /x402.json, /api/v1/openapi.json, /api/v1/docs.
How to pay
The protocol is intentionally short:
- Make a normal HTTPS GET. We reply
HTTP 402 Payment Requiredwith aPAYMENT-REQUIREDheader (base64 JSON) describing the price, network, asset, and our wallet. - Sign a USDC
transferWithAuthorization(EIP-3009) for that exact amount with your bot’s wallet. Base64 the payload, replay the request with aPAYMENT-SIGNATUREheader. - We forward the signature to the public facilitator at
https://www.x402.org/facilitator, which verifies and settles on-chain. On success we return the resource with aPAYMENT-RESPONSEheader containing the transaction hash.
Off-the-shelf clients handle all three steps. The Python SDK is pip install 'x402[httpx]'; the TypeScript fetch wrapper is @x402/fetch. Wire format, curl examples, replay protection, fail-closed behavior, and the kill switch are documented at /x402.
Sample requests & responses
Real, captured probe + paid round-trips against this site — verbatim headers, decoded PAYMENT-REQUIRED / PAYMENT-SIGNATURE / PAYMENT-RESPONSE JSON, and an on-chain transaction hash for each settlement. Click a row to expand. Samples are regenerated on demand by scripts/capture_pricing_samples.py; the snapshot below was captured at 2026-05-13T19:40:27Z from buyer wallet 0xF710A8075F72Bb0B83F1221C9cfC0780dd764f6a against network eip155:84532 via facilitator https://www.x402.org/facilitator.
Long base64 wire-format fields (PAYMENT-REQUIRED, PAYMENT-SIGNATURE, PAYMENT-RESPONSE) are truncated with their middle-byte count for readability; the full decoded JSON for each is shown directly underneath.
Single event JSON (/api/v1/events/{id}) · pattern /api/v1/events/{event_id} · on-chain: 0x289949ec…a42889
1. Unauthenticated probe (training-bot User-Agent)
$ curl -i \
-H 'User-Agent: GPTBot' \
'https://war-tracker.com/api/v1/events/397003'
> host: war-tracker.com
> accept: */*
> accept-encoding: gzip, deflate
> user-agent: Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)
< HTTP/2 402 Payment Required
< content-type: application/json
< content-length: 3484
< access-control-allow-origin: *
< cache-control: private, no-store, no-cache, must-revalidate, max-age=0
< link: <https://war-tracker.com/x402>; rel="payment"
< payment-required: eyJhY2NlcHRzIjpbeyJhbW91bnQiOiIxMDAwIiwiYXNzZXQiOiIweDAzNkNiRDUzODQyYzU0…<4556 bytes>…Ing0MDJWZXJzaW9uIjoyfQ==
< server: cloudflare
< vary: User-Agent
< x-payment-required: eyJhY2NlcHRzIjpbeyJhbW91bnQiOiIxMDAwIiwiYXNzZXQiOiIweDAzNkNiRDUzODQyYzU0…<4556 bytes>…Ing0MDJWZXJzaW9uIjoyfQ==
< x-x402-gate: 1
< cf-cache-status: DYNAMIC
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< cf-ray: 9fb4226ce91b5439-TLL
Decoded PAYMENT-REQUIRED body (also returned verbatim as the response body):
{
"accepts": [
{
"amount": "1000",
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"extra": {
"name": "USDC",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:84532",
"payTo": "0x038A1960445c689A432186d174e39142979d2439",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE header is required",
"extensions": {
"bazaar": {
"info": {
"input": {
"inputSchema": {
"properties": {
"event_id": {
"description": "Numeric event id.",
"pattern": "^[0-9]+$",
"type": "string"
}
},
"required": [
"event_id"
],
"type": "object"
},
"method": "GET",
"pathParams": {
"event_id": "12345"
},
"type": "http"
},
"output": {
"example": {
"article_paragraphs": [
"..."
],
"canonical_url": "https://war-tracker.com/share/12345/syria-strike-2026-05-12",
"confidence": "HIGH",
"country": "SY",
"country_name": "Syria",
"date": "2026-05-12",
"description": "Open-source posts described a strike on infrastructure ...",
"event_type": "Strike",
"faq": [
{
"a": "...",
"q": "..."
}
],
"has_media": true,
"headline": "Strike – Aleppo",
"id": 12345,
"is_video": false,
"jsonld_graph": {
"@context": "https://schema.org",
"@graph": [
"...NewsArticle, Event, VideoObject, BreadcrumbList, FAQPage..."
]
},
"lat": 36.2,
"lng": 37.13,
"location": "Aleppo",
"media_url": "https://war-tracker.com/media/12345",
"modified": "2026-05-12T17:32:00Z",
"region_slug": "middle-east",
"source_url": null,
"super_event": {
"name": "Russo-Ukrainian War",
"startDate": "2022-02-24",
"url": "..."
},
"thumbnail_url": "https://war-tracker.com/video/thumb/12345",
"tldr": "On May 12, 2026 ...",
"transcript": null
},
"schema": {
"properties": {
"article_paragraphs": {
"items": {
"type": "string"
},
"type": "array"
},
"canonical_url": {
"type": "string"
},
"confidence": {
"type": [
"string",
"null"
]
},
"country": {
"type": [
"string",
"null"
]
},
"country_name": {
"type": [
"string",
"null"
]
},
"date": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"event_type": {
"type": [
"string",
"null"
]
},
"faq": {
"items": {
"properties": {
"a": {
"type": "string"
},
"q": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"has_media": {
"type": [
"boolean",
"null"
]
},
"headline": {
"type": "string"
},
"id": {
"type": "integer"
},
"is_video": {
"type": [
"boolean",
"null"
]
},
"jsonld_graph": {
"type": "object"
},
"lat": {
"type": [
"number",
"null"
]
},
"lng": {
"type": [
"number",
"null"
]
},
"location": {
"type": [
"string",
"null"
]
},
"media_url": {
"type": [
"string",
"null"
]
},
"modified": {
"type": [
"string",
"null"
]
},
"region_slug": {
"type": [
"string",
"null"
]
},
"source_url": {
"type": [
"string",
"null"
]
},
"super_event": {
"properties": {
"name": {
"type": "string"
},
"startDate": {
"type": "string"
},
"url": {
"type": "string"
}
},
"type": [
"object",
"null"
]
},
"thumbnail_url": {
"type": [
"string",
"null"
]
},
"tldr": {
"type": [
"string",
"null"
]
},
"transcript": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"canonical_url",
"jsonld_graph"
],
"type": "object"
},
"type": "json"
}
}
}
},
"resource": {
"description": "Single event at /api/v1/events/{id}. Returns the canonical machine-readable event payload: scalar fields (id, date, country, event_type, lat/lng, ...), the rendered headline + TL;DR + article paragraphs, the full schema.org JSON-LD @graph (NewsArticle + Event + VideoObject + BreadcrumbList + FAQPage), media URLs (thumbnail free, full media paid via /media/{id}), transcript (when available), per-event FAQ, and super-event metadata. This is the same payload returned by /share/{id}/{slug} when Accept: application/json is set.",
"iconUrl": "https://war-tracker.com/favicon-512.png",
"mimeType": "application/json",
"serviceName": "War-Tracker Event Detail",
"tags": [
"war",
"conflict",
"event",
"news",
"json"
],
"url": "https://war-tracker.com/api/v1/events/397003"
},
"x402Version": 2
}
2. Paid retry with PAYMENT-SIGNATURE
$ curl -i \
-H 'User-Agent: GPTBot' \
-H 'PAYMENT-SIGNATURE: <base64(json{x402Version,scheme,network,payload})>' \
'https://war-tracker.com/api/v1/events/397003'
> host: war-tracker.com
> accept: */*
> accept-encoding: gzip, deflate
> user-agent: Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)
> payment-signature: eyJ4NDAyVmVyc2lvbiI6MiwicGF5bG9hZCI6eyJhdXRob3JpemF0aW9uIjp7…<4876 bytes>…dHlwZSI6Impzb24ifX19fX0=
< HTTP/2 200 OK
< content-type: application/json
< content-length: 1851
< access-control-allow-origin: *
< cache-control: private, no-store, no-cache, must-revalidate, max-age=0
< payment-response: eyJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMyIiwicGF5ZXIiOiIweEY3MTBBODA3NUY3MkJiMEI4…<140 bytes>…N2NmMDZiMjZkNGE0Mjg4OSJ9
< server: cloudflare
< vary: User-Agent, accept-encoding
< x-payment-response: eyJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMyIiwicGF5ZXIiOiIweEY3MTBBODA3NUY3MkJiMEI4…<140 bytes>…N2NmMDZiMjZkNGE0Mjg4OSJ9
< x-x402-gate: 1
< cf-cache-status: DYNAMIC
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< cf-ray: 9fb4226deaa85439-TLL
Decoded PAYMENT-SIGNATURE payload (EIP-3009 transferWithAuthorization over USDC):
{
"x402Version": 2,
"payload": {
"authorization": {
"from": "0xF710A8075F72Bb0B83F1221C9cfC0780dd764f6a",
"to": "0x038A1960445c689A432186d174e39142979d2439",
"value": "1000",
"validAfter": "1778700622",
"validBefore": "1778701282",
"nonce": "0x700d3bfcecac7bd8b9f485e7fd58f6885531aa3d79724d7c4343f65dc13555f4"
},
"signature": "0xaec156c997147474fd64faef9c15d501b6d24d7c239e4af929829eb126d25cb17214a12c64c58a42f0ffe2ee89312a43babd30f67cbbacae75ef2d1ba5548b441b"
},
"accepted": {
"scheme": "exact",
"network": "eip155:84532",
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"amount": "1000",
"payTo": "0x038A1960445c689A432186d174e39142979d2439",
"maxTimeoutSeconds": 60,
"extra": {
"name": "USDC",
"version": "2"
}
},
"resource": {
"url": "https://war-tracker.com/api/v1/events/397003",
"description": "Single event at /api/v1/events/{id}. Returns the canonical machine-readable event payload: scalar fields (id, date, country, event_type, lat/lng, ...), the rendered headline + TL;DR + article paragraphs, the full schema.org JSON-LD @graph (NewsArticle + Event + VideoObject + BreadcrumbList + FAQPage), media URLs (thumbnail free, full media paid via /media/{id}), transcript (when available), per-event FAQ, and super-event metadata. This is the same payload returned by /share/{id}/{slug} when Accept: application/json is set.",
"mimeType": "application/json"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"inputSchema": {
"properties": {
"event_id": {
"description": "Numeric event id.",
"pattern": "^[0-9]+$",
"type": "string"
}
},
"required": [
"event_id"
],
"type": "object"
},
"method": "GET",
"pathParams": {
"event_id": "12345"
},
"type": "http"
},
"output": {
"example": {
"article_paragraphs": [
"..."
],
"canonical_url": "https://war-tracker.com/share/12345/syria-strike-2026-05-12",
"confidence": "HIGH",
"country": "SY",
"country_name": "Syria",
"date": "2026-05-12",
"description": "Open-source posts described a strike on infrastructure ...",
"event_type": "Strike",
"faq": [
{
"a": "...",
"q": "..."
}
],
"has_media": true,
"headline": "Strike – Aleppo",
"id": 12345,
"is_video": false,
"jsonld_graph": {
"@context": "https://schema.org",
"@graph": [
"...NewsArticle, Event, VideoObject, BreadcrumbList, FAQPage..."
]
},
"lat": 36.2,
"lng": 37.13,
"location": "Aleppo",
"media_url": "https://war-tracker.com/media/12345",
"modified": "2026-05-12T17:32:00Z",
"region_slug": "middle-east",
"source_url": null,
"super_event": {
"name": "Russo-Ukrainian War",
"startDate": "2022-02-24",
"url": "..."
},
"thumbnail_url": "https://war-tracker.com/video/thumb/12345",
"tldr": "On May 12, 2026 ...",
"transcript": null
},
"schema": {
"properties": {
"article_paragraphs": {
"items": {
"type": "string"
},
"type": "array"
},
"canonical_url": {
"type": "string"
},
"confidence": {
"type": [
"string",
"null"
]
},
"country": {
"type": [
"string",
"null"
]
},
"country_name": {
"type": [
"string",
"null"
]
},
"date": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"event_type": {
"type": [
"string",
"null"
]
},
"faq": {
"items": {
"properties": {
"a": {
"type": "string"
},
"q": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"has_media": {
"type": [
"boolean",
"null"
]
},
"headline": {
"type": "string"
},
"id": {
"type": "integer"
},
"is_video": {
"type": [
"boolean",
"null"
]
},
"jsonld_graph": {
"type": "object"
},
"lat": {
"type": [
"number",
"null"
]
},
"lng": {
"type": [
"number",
"null"
]
},
"location": {
"type": [
"string",
"null"
]
},
"media_url": {
"type": [
"string",
"null"
]
},
"modified": {
"type": [
"string",
"null"
]
},
"region_slug": {
"type": [
"string",
"null"
]
},
"source_url": {
"type": [
"string",
"null"
]
},
"super_event": {
"properties": {
"name": {
"type": "string"
},
"startDate": {
"type": "string"
},
"url": {
"type": "string"
}
},
"type": [
"object",
"null"
]
},
"thumbnail_url": {
"type": [
"string",
"null"
]
},
"tldr": {
"type": [
"string",
"null"
]
},
"transcript": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"canonical_url",
"jsonld_graph"
],
"type": "object"
},
"type": "json"
}
}
}
}
}
Decoded PAYMENT-RESPONSE (facilitator settlement receipt):
{
"network": "eip155:84532",
"payer": "0xF710A8075F72Bb0B83F1221C9cfC0780dd764f6a",
"success": true,
"transaction": "0x289949ec9a9fd4f70d3183b90da8b405c8d5f2358637747d7cf06b26d4a42889"
}
Response body preview (7,702 bytes, application/json):
{
"id": 397003,
"date": "2026-04-16T10:44:26",
"modified": "2026-04-16T10:44:32",
"event_type": "Military Withdrawal",
"location": "Qasrak, Syria",
"country": "SY",
"country_name": "Syria",
"lat": 36.8,
"lng": 40.7,
"has_media": true,
"is_video": true,
"source_url": null,
"confidence": "HIGH",
"description": "The U.S. has ended its military presence in Syria with the last convoy leaving Qasrak base in the northeast. Control of the area is now shifting to Syrian forces, effectively ending the U.S. ground presence that began in 2014.",
"canonical_url": "https://war-tracker.com/share/397003/military-withdrawal-qasrak-syria",
"headline": "Military Withdrawal – Qasrak, Syria",
"region_slug": "middle-east",
"media_url": "https://war-tracker.com/media/397003",
"thumbnail_url": "https://war-tracker.com/video/thumb/397003",
"tldr": "On April 16, 2026 10:44 UTC, a Military Withdrawal was reported in Qasrak, Syria in Syria. The U.S. has ended its military presence in Syria with the last convoy leaving Qasrak base in the northeast. Control of the area is now shifting to Syrian forces, effectively ending the U.S. ground…",
"article_paragraphs": [
"The U.S. has ended its military presence in Syria with the last convoy leaving Qasrak base in the northeast. Control of the area is now shifting to Syrian forces, effectively ending the U.S. ground presence that began in 2014."
],
… (253 more lines)
Full media bytes (/media/{event_id}) · pattern /media/{event_id} · on-chain: 0x95ade183…514472
1. Unauthenticated probe (training-bot User-Agent)
$ curl -i \
-H 'User-Agent: GPTBot' \
'https://war-tracker.com/media/397003'
> host: war-tracker.com
> accept: */*
> accept-encoding: gzip, deflate
> user-agent: Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)
< HTTP/2 402 Payment Required
< content-type: application/json
< content-length: 1155
< cache-control: private, no-store, no-cache, must-revalidate, max-age=0
< link: <https://war-tracker.com/x402>; rel="payment"
< payment-required: eyJhY2NlcHRzIjpbeyJhbW91bnQiOiIxMDAwMCIsImFzc2V0IjoiMHgwMzZDYkQ1Mzg0MmM1…<1444 bytes>…fSwieDQwMlZlcnNpb24iOjJ9
< server: cloudflare
< vary: User-Agent
< x-payment-required: eyJhY2NlcHRzIjpbeyJhbW91bnQiOiIxMDAwMCIsImFzc2V0IjoiMHgwMzZDYkQ1Mzg0MmM1…<1444 bytes>…fSwieDQwMlZlcnNpb24iOjJ9
< x-x402-gate: 1
< cf-cache-status: DYNAMIC
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< cf-ray: 9fb42274c841c7fb-TLL
Decoded PAYMENT-REQUIRED body (also returned verbatim as the response body):
{
"accepts": [
{
"amount": "10000",
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"extra": {
"name": "USDC",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:84532",
"payTo": "0x038A1960445c689A432186d174e39142979d2439",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE header is required",
"extensions": {
"bazaar": {
"info": {
"input": {
"inputSchema": {
"properties": {
"event_id": {
"description": "Numeric event id from /api/v1/events; check has_media=true before paying.",
"pattern": "^[0-9]+$",
"type": "string"
}
},
"required": [
"event_id"
],
"type": "object"
},
"method": "GET",
"pathParams": {
"event_id": "12345"
},
"type": "http"
},
"output": {
"example": "binary image/* or video/mp4 bytes; Content-Type reflects the underlying media (image/jpeg, image/png, video/mp4). Range requests supported on video responses.",
"type": "bytes"
}
}
}
},
"resource": {
"description": "Full media bytes (photo or video) for an event at /media/{event_id}. Flat price.",
"iconUrl": "https://war-tracker.com/favicon-512.png",
"mimeType": "application/octet-stream",
"serviceName": "War-Tracker Event Media",
"tags": [
"war",
"conflict",
"media",
"video",
"photo"
],
"url": "https://war-tracker.com/media/397003"
},
"x402Version": 2
}
2. Paid retry with PAYMENT-SIGNATURE
$ curl -i \
-H 'User-Agent: GPTBot' \
-H 'PAYMENT-SIGNATURE: <base64(json{x402Version,scheme,network,payload})>' \
'https://war-tracker.com/media/397003'
> host: war-tracker.com
> accept: */*
> accept-encoding: gzip, deflate
> user-agent: Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)
> payment-signature: eyJ4NDAyVmVyc2lvbiI6MiwicGF5bG9hZCI6eyJhdXRob3JpemF0aW9uIjp7…<1772 bytes>…cGUiOiJieXRlcyJ9fX19fQ==
< HTTP/2 200 OK
< content-type: video/mp4
< content-length: 5401350
< cache-control: private, no-store, no-cache, must-revalidate, max-age=0
< payment-response: eyJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMyIiwicGF5ZXIiOiIweEY3MTBBODA3NUY3MkJiMEI4…<140 bytes>…YTJkYmY2YzdhMDUxNDQ3MiJ9
< server: cloudflare
< vary: User-Agent
< x-payment-response: eyJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMyIiwicGF5ZXIiOiIweEY3MTBBODA3NUY3MkJiMEI4…<140 bytes>…YTJkYmY2YzdhMDUxNDQ3MiJ9
< x-x402-gate: 1
< cf-cache-status: DYNAMIC
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< cf-ray: 9fb4227558e8c7fb-TLL
Decoded PAYMENT-SIGNATURE payload (EIP-3009 transferWithAuthorization over USDC):
{
"x402Version": 2,
"payload": {
"authorization": {
"from": "0xF710A8075F72Bb0B83F1221C9cfC0780dd764f6a",
"to": "0x038A1960445c689A432186d174e39142979d2439",
"value": "10000",
"validAfter": "1778700623",
"validBefore": "1778701283",
"nonce": "0x0431d8333e02dab15b9ec294c9729c36d00a315baced5fc7790657310292bdcb"
},
"signature": "0x1c18aae7a1400a98f3bc94a50c3b58a9636d86ea0a8ddb8fb2c452b1d8c5a1a8703dc4170d92fa17aebafe93c61411b9115bf36d03e52b13c2c9c2e1039bd76b1c"
},
"accepted": {
"scheme": "exact",
"network": "eip155:84532",
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"amount": "10000",
"payTo": "0x038A1960445c689A432186d174e39142979d2439",
"maxTimeoutSeconds": 60,
"extra": {
"name": "USDC",
"version": "2"
}
},
"resource": {
"url": "https://war-tracker.com/media/397003",
"description": "Full media bytes (photo or video) for an event at /media/{event_id}. Flat price.",
"mimeType": "application/octet-stream"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"inputSchema": {
"properties": {
"event_id": {
"description": "Numeric event id from /api/v1/events; check has_media=true before paying.",
"pattern": "^[0-9]+$",
"type": "string"
}
},
"required": [
"event_id"
],
"type": "object"
},
"method": "GET",
"pathParams": {
"event_id": "12345"
},
"type": "http"
},
"output": {
"example": "binary image/* or video/mp4 bytes; Content-Type reflects the underlying media (image/jpeg, image/png, video/mp4). Range requests supported on video responses.",
"type": "bytes"
}
}
}
}
}
Decoded PAYMENT-RESPONSE (facilitator settlement receipt):
{
"network": "eip155:84532",
"payer": "0xF710A8075F72Bb0B83F1221C9cfC0780dd764f6a",
"success": true,
"transaction": "0x95ade1830d7c05ae5577caf1b64cb9d516aa67cd72d47236a2dbf6c7a0514472"
}
Response body preview (5,401,350 bytes, video/mp4):
(binary media — 5,401,350 bytes, Content-Type: video/mp4) first-byte sniff: ISO BMFF (.mp4) box header
Country hub (/country/{ISO}) · pattern /country/{ISO} · on-chain: 0x2f966773…7ad374
1. Unauthenticated probe (training-bot User-Agent)
$ curl -i \
-H 'User-Agent: GPTBot' \
'https://war-tracker.com/country/UA'
> host: war-tracker.com
> accept: */*
> accept-encoding: gzip, deflate
> user-agent: Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)
< HTTP/2 402 Payment Required
< content-type: application/json
< content-length: 1173
< cache-control: private, no-store, no-cache, must-revalidate, max-age=0
< link: <https://war-tracker.com/x402>; rel="payment"
< payment-required: eyJhY2NlcHRzIjpbeyJhbW91bnQiOiI1MDAiLCJhc3NldCI6IjB4MDM2Q2JENTM4NDJjNTQy…<1468 bytes>…fSwieDQwMlZlcnNpb24iOjJ9
< server: cloudflare
< vary: User-Agent
< x-payment-required: eyJhY2NlcHRzIjpbeyJhbW91bnQiOiI1MDAiLCJhc3NldCI6IjB4MDM2Q2JENTM4NDJjNTQy…<1468 bytes>…fSwieDQwMlZlcnNpb24iOjJ9
< x-x402-gate: 1
< cf-cache-status: DYNAMIC
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< cf-ray: 9fb4227d0ff75438-TLL
Decoded PAYMENT-REQUIRED body (also returned verbatim as the response body):
{
"accepts": [
{
"amount": "500",
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"extra": {
"name": "USDC",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:84532",
"payTo": "0x038A1960445c689A432186d174e39142979d2439",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE header is required",
"extensions": {
"bazaar": {
"info": {
"input": {
"inputSchema": {
"properties": {
"hub_type": {
"enum": [
"region",
"country",
"event-type"
],
"type": "string"
},
"slug": {
"description": "URL slug for the hub (lowercase, dash-separated).",
"type": "string"
}
},
"required": [
"hub_type",
"slug"
],
"type": "object"
},
"method": "GET",
"pathParams": {
"hub_type": "country",
"slug": "ukraine"
},
"type": "http"
},
"output": {
"example": "<html>...CollectionPage JSON-LD + linked Dataset distribution...<section>aggregated events for this slice</section>...</html>",
"type": "html"
}
}
}
},
"resource": {
"description": "Hub page (region / country / event-type) with aggregated CollectionPage + Dataset JSON-LD.",
"iconUrl": "https://war-tracker.com/favicon-512.png",
"mimeType": "text/html; charset=utf-8",
"serviceName": "War-Tracker Hub Page",
"tags": [
"war",
"conflict",
"region",
"country",
"news"
],
"url": "https://war-tracker.com/country/UA"
},
"x402Version": 2
}
2. Paid retry with PAYMENT-SIGNATURE
$ curl -i \
-H 'User-Agent: GPTBot' \
-H 'PAYMENT-SIGNATURE: <base64(json{x402Version,scheme,network,payload})>' \
'https://war-tracker.com/country/UA'
> host: war-tracker.com
> accept: */*
> accept-encoding: gzip, deflate
> user-agent: Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)
> payment-signature: eyJ4NDAyVmVyc2lvbiI6MiwicGF5bG9hZCI6eyJhdXRob3JpemF0aW9uIjp7…<1792 bytes>…InR5cGUiOiJodG1sIn19fX19
< HTTP/2 200 OK
< content-type: text/html; charset=utf-8
< cache-control: private, no-store, no-cache, must-revalidate, max-age=0
< x-content-type-options: nosniff
< payment-response: eyJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMyIiwicGF5ZXIiOiIweEY3MTBBODA3NUY3MkJiMEI4…<140 bytes>…NDkzZThlZjM3YzdhZDM3NCJ9
< server: cloudflare
< vary: User-Agent, accept-encoding
< x-payment-response: eyJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMyIiwicGF5ZXIiOiIweEY3MTBBODA3NUY3MkJiMEI4…<140 bytes>…NDkzZThlZjM3YzdhZDM3NCJ9
< x-x402-gate: 1
< cf-cache-status: DYNAMIC
< x-frame-options: SAMEORIGIN
< cf-ray: 9fb4227dc8a95438-TLL
Decoded PAYMENT-SIGNATURE payload (EIP-3009 transferWithAuthorization over USDC):
{
"x402Version": 2,
"payload": {
"authorization": {
"from": "0xF710A8075F72Bb0B83F1221C9cfC0780dd764f6a",
"to": "0x038A1960445c689A432186d174e39142979d2439",
"value": "500",
"validAfter": "1778700624",
"validBefore": "1778701284",
"nonce": "0x2726f2bc56158be8c246c0379f595c2e67fc4e83724200cebb08788c38d1a755"
},
"signature": "0x42079e84e6f6e41e17a5929c2a39dc7c8330e2148d46e5063ce166577e3a20d334be3da7439d2a5988fe8d5992e8a91b4c2d00de14d74c2ef84f4aa36e8128591c"
},
"accepted": {
"scheme": "exact",
"network": "eip155:84532",
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"amount": "500",
"payTo": "0x038A1960445c689A432186d174e39142979d2439",
"maxTimeoutSeconds": 60,
"extra": {
"name": "USDC",
"version": "2"
}
},
"resource": {
"url": "https://war-tracker.com/country/UA",
"description": "Hub page (region / country / event-type) with aggregated CollectionPage + Dataset JSON-LD.",
"mimeType": "text/html; charset=utf-8"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"inputSchema": {
"properties": {
"hub_type": {
"enum": [
"region",
"country",
"event-type"
],
"type": "string"
},
"slug": {
"description": "URL slug for the hub (lowercase, dash-separated).",
"type": "string"
}
},
"required": [
"hub_type",
"slug"
],
"type": "object"
},
"method": "GET",
"pathParams": {
"hub_type": "country",
"slug": "ukraine"
},
"type": "http"
},
"output": {
"example": "<html>...CollectionPage JSON-LD + linked Dataset distribution...<section>aggregated events for this slice</section>...</html>",
"type": "html"
}
}
}
}
}
Decoded PAYMENT-RESPONSE (facilitator settlement receipt):
{
"network": "eip155:84532",
"payer": "0xF710A8075F72Bb0B83F1221C9cfC0780dd764f6a",
"success": true,
"transaction": "0x2f966773f7c688dd73a11c774af31c27db0c31ec0989440a493e8ef37c7ad374"
}
Response body preview (16,156 bytes, text/html; charset=utf-8):
<title>Live conflict tracker — Ukraine — War-Tracker</title> # Live conflict tracker — Ukraine 4,056 events recorded in the last 30 days in Ukraine. Top categories: Military Strike, Security Incident, Military Recruitment. # Recent events (last 30 days) - Military Strike – Kharkov and Zhitomir regions, Ukraine 2026-05-13 - Political Development – Zakarpattia Oblast, Ukraine 2026-05-13 - Military Strike – Zakarpattia, Ukraine 2026-05-13
Region hub (/region/{slug}) · pattern /region/{slug} · on-chain: 0xce22528e…8e1a9c
1. Unauthenticated probe (training-bot User-Agent)
$ curl -i \
-H 'User-Agent: GPTBot' \
'https://war-tracker.com/region/middle-east'
> host: war-tracker.com
> accept: */*
> accept-encoding: gzip, deflate
> user-agent: Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)
< HTTP/2 402 Payment Required
< content-type: application/json
< content-length: 1181
< cache-control: private, no-store, no-cache, must-revalidate, max-age=0
< link: <https://war-tracker.com/x402>; rel="payment"
< payment-required: eyJhY2NlcHRzIjpbeyJhbW91bnQiOiI1MDAiLCJhc3NldCI6IjB4MDM2Q2JENTM4NDJjNTQy…<1480 bytes>…LCJ4NDAyVmVyc2lvbiI6Mn0=
< server: cloudflare
< vary: User-Agent
< x-payment-required: eyJhY2NlcHRzIjpbeyJhbW91bnQiOiI1MDAiLCJhc3NldCI6IjB4MDM2Q2JENTM4NDJjNTQy…<1480 bytes>…LCJ4NDAyVmVyc2lvbiI6Mn0=
< x-x402-gate: 1
< cf-cache-status: DYNAMIC
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< cf-ray: 9fb422839eac542f-TLL
Decoded PAYMENT-REQUIRED body (also returned verbatim as the response body):
{
"accepts": [
{
"amount": "500",
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"extra": {
"name": "USDC",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:84532",
"payTo": "0x038A1960445c689A432186d174e39142979d2439",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE header is required",
"extensions": {
"bazaar": {
"info": {
"input": {
"inputSchema": {
"properties": {
"hub_type": {
"enum": [
"region",
"country",
"event-type"
],
"type": "string"
},
"slug": {
"description": "URL slug for the hub (lowercase, dash-separated).",
"type": "string"
}
},
"required": [
"hub_type",
"slug"
],
"type": "object"
},
"method": "GET",
"pathParams": {
"hub_type": "country",
"slug": "ukraine"
},
"type": "http"
},
"output": {
"example": "<html>...CollectionPage JSON-LD + linked Dataset distribution...<section>aggregated events for this slice</section>...</html>",
"type": "html"
}
}
}
},
"resource": {
"description": "Hub page (region / country / event-type) with aggregated CollectionPage + Dataset JSON-LD.",
"iconUrl": "https://war-tracker.com/favicon-512.png",
"mimeType": "text/html; charset=utf-8",
"serviceName": "War-Tracker Hub Page",
"tags": [
"war",
"conflict",
"region",
"country",
"news"
],
"url": "https://war-tracker.com/region/middle-east"
},
"x402Version": 2
}
2. Paid retry with PAYMENT-SIGNATURE
$ curl -i \
-H 'User-Agent: GPTBot' \
-H 'PAYMENT-SIGNATURE: <base64(json{x402Version,scheme,network,payload})>' \
'https://war-tracker.com/region/middle-east'
> host: war-tracker.com
> accept: */*
> accept-encoding: gzip, deflate
> user-agent: Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)
> payment-signature: eyJ4NDAyVmVyc2lvbiI6MiwicGF5bG9hZCI6eyJhdXRob3JpemF0aW9uIjp7…<1804 bytes>…dHlwZSI6Imh0bWwifX19fX0=
< HTTP/2 200 OK
< content-type: text/html; charset=utf-8
< cache-control: private, no-store, no-cache, must-revalidate, max-age=0
< x-content-type-options: nosniff
< payment-response: eyJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMyIiwicGF5ZXIiOiIweEY3MTBBODA3NUY3MkJiMEI4…<140 bytes>…NmM1ZDU4YTY2YjhlMWE5YyJ9
< server: cloudflare
< vary: User-Agent, accept-encoding
< x-payment-response: eyJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMyIiwicGF5ZXIiOiIweEY3MTBBODA3NUY3MkJiMEI4…<140 bytes>…NmM1ZDU4YTY2YjhlMWE5YyJ9
< x-x402-gate: 1
< cf-cache-status: DYNAMIC
< x-frame-options: SAMEORIGIN
< cf-ray: 9fb422845f8b542f-TLL
Decoded PAYMENT-SIGNATURE payload (EIP-3009 transferWithAuthorization over USDC):
{
"x402Version": 2,
"payload": {
"authorization": {
"from": "0xF710A8075F72Bb0B83F1221C9cfC0780dd764f6a",
"to": "0x038A1960445c689A432186d174e39142979d2439",
"value": "500",
"validAfter": "1778700625",
"validBefore": "1778701285",
"nonce": "0x19a77aeaf42d57949555d49a2caf86b62f6c0170aaa32b42fd6feed583523132"
},
"signature": "0x6b097bb68ef30ef8fae6235402b65b25b6f99c51eecdf1e65548510476e453514a002f980ad947e88286ca77e1ebb8ae4417a1c838cd95413ba709ef9caedd1c1b"
},
"accepted": {
"scheme": "exact",
"network": "eip155:84532",
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"amount": "500",
"payTo": "0x038A1960445c689A432186d174e39142979d2439",
"maxTimeoutSeconds": 60,
"extra": {
"name": "USDC",
"version": "2"
}
},
"resource": {
"url": "https://war-tracker.com/region/middle-east",
"description": "Hub page (region / country / event-type) with aggregated CollectionPage + Dataset JSON-LD.",
"mimeType": "text/html; charset=utf-8"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"inputSchema": {
"properties": {
"hub_type": {
"enum": [
"region",
"country",
"event-type"
],
"type": "string"
},
"slug": {
"description": "URL slug for the hub (lowercase, dash-separated).",
"type": "string"
}
},
"required": [
"hub_type",
"slug"
],
"type": "object"
},
"method": "GET",
"pathParams": {
"hub_type": "country",
"slug": "ukraine"
},
"type": "http"
},
"output": {
"example": "<html>...CollectionPage JSON-LD + linked Dataset distribution...<section>aggregated events for this slice</section>...</html>",
"type": "html"
}
}
}
}
}
Decoded PAYMENT-RESPONSE (facilitator settlement receipt):
{
"network": "eip155:84532",
"payer": "0xF710A8075F72Bb0B83F1221C9cfC0780dd764f6a",
"success": true,
"transaction": "0xce22528e909b4e28bde97049f09f61f3d02390649359a2d76c5d58a66b8e1a9c"
}
Response body preview (15,899 bytes, text/html; charset=utf-8):
<title>Live conflict tracker — Middle East — War-Tracker</title> # Live conflict tracker — Middle East 14,708 events recorded in the last 30 days across Middle East. Top categories: Military Strike, Security Incident, Political Development. Most affected: Iran, Lebanon, Israel. # Recent events (last 30 days) - Civilian Casualty – Minab, Iran 2026-05-13 - Military Strike – An-Nabatiyah, Lebanon 2026-05-13 - Civilian Protest – Yasouj, Iran 2026-05-13
Event-type hub (/event-type/{slug}) · pattern /event-type/{slug} · on-chain: 0x0ef6babf…e9a750
1. Unauthenticated probe (training-bot User-Agent)
$ curl -i \
-H 'User-Agent: GPTBot' \
'https://war-tracker.com/event-type/military-strike'
> host: war-tracker.com
> accept: */*
> accept-encoding: gzip, deflate
> user-agent: Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)
< HTTP/2 402 Payment Required
< content-type: application/json
< content-length: 1189
< cache-control: private, no-store, no-cache, must-revalidate, max-age=0
< link: <https://war-tracker.com/x402>; rel="payment"
< payment-required: eyJhY2NlcHRzIjpbeyJhbW91bnQiOiI1MDAiLCJhc3NldCI6IjB4MDM2Q2JENTM4NDJjNTQy…<1492 bytes>…Ing0MDJWZXJzaW9uIjoyfQ==
< server: cloudflare
< vary: User-Agent
< x-payment-required: eyJhY2NlcHRzIjpbeyJhbW91bnQiOiI1MDAiLCJhc3NldCI6IjB4MDM2Q2JENTM4NDJjNTQy…<1492 bytes>…Ing0MDJWZXJzaW9uIjoyfQ==
< x-x402-gate: 1
< cf-cache-status: DYNAMIC
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< cf-ray: 9fb4228aac66c6b0-TLL
Decoded PAYMENT-REQUIRED body (also returned verbatim as the response body):
{
"accepts": [
{
"amount": "500",
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"extra": {
"name": "USDC",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:84532",
"payTo": "0x038A1960445c689A432186d174e39142979d2439",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE header is required",
"extensions": {
"bazaar": {
"info": {
"input": {
"inputSchema": {
"properties": {
"hub_type": {
"enum": [
"region",
"country",
"event-type"
],
"type": "string"
},
"slug": {
"description": "URL slug for the hub (lowercase, dash-separated).",
"type": "string"
}
},
"required": [
"hub_type",
"slug"
],
"type": "object"
},
"method": "GET",
"pathParams": {
"hub_type": "country",
"slug": "ukraine"
},
"type": "http"
},
"output": {
"example": "<html>...CollectionPage JSON-LD + linked Dataset distribution...<section>aggregated events for this slice</section>...</html>",
"type": "html"
}
}
}
},
"resource": {
"description": "Hub page (region / country / event-type) with aggregated CollectionPage + Dataset JSON-LD.",
"iconUrl": "https://war-tracker.com/favicon-512.png",
"mimeType": "text/html; charset=utf-8",
"serviceName": "War-Tracker Hub Page",
"tags": [
"war",
"conflict",
"region",
"country",
"news"
],
"url": "https://war-tracker.com/event-type/military-strike"
},
"x402Version": 2
}
2. Paid retry with PAYMENT-SIGNATURE
$ curl -i \
-H 'User-Agent: GPTBot' \
-H 'PAYMENT-SIGNATURE: <base64(json{x402Version,scheme,network,payload})>' \
'https://war-tracker.com/event-type/military-strike'
> host: war-tracker.com
> accept: */*
> accept-encoding: gzip, deflate
> user-agent: Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)
> payment-signature: eyJ4NDAyVmVyc2lvbiI6MiwicGF5bG9hZCI6eyJhdXRob3JpemF0aW9uIjp7…<1816 bytes>…eXBlIjoiaHRtbCJ9fX19fQ==
< HTTP/2 200 OK
< content-type: text/html; charset=utf-8
< cache-control: private, no-store, no-cache, must-revalidate, max-age=0
< x-content-type-options: nosniff
< payment-response: eyJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMyIiwicGF5ZXIiOiIweEY3MTBBODA3NUY3MkJiMEI4…<140 bytes>…OTEyZDBjZDY1NGU5YTc1MCJ9
< server: cloudflare
< vary: User-Agent, accept-encoding
< x-payment-response: eyJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMyIiwicGF5ZXIiOiIweEY3MTBBODA3NUY3MkJiMEI4…<140 bytes>…OTEyZDBjZDY1NGU5YTc1MCJ9
< x-x402-gate: 1
< cf-cache-status: DYNAMIC
< x-frame-options: SAMEORIGIN
< cf-ray: 9fb4228b6f1ec6b0-TLL
Decoded PAYMENT-SIGNATURE payload (EIP-3009 transferWithAuthorization over USDC):
{
"x402Version": 2,
"payload": {
"authorization": {
"from": "0xF710A8075F72Bb0B83F1221C9cfC0780dd764f6a",
"to": "0x038A1960445c689A432186d174e39142979d2439",
"value": "500",
"validAfter": "1778700626",
"validBefore": "1778701286",
"nonce": "0xce71ce655b527efa682d5785d784d76bb676dda065322af79f9d527b9cac8e1d"
},
"signature": "0x5a7601b7ee23ebc874c53a8f3f6a597f0eaacaa08785b723daabb1da1a16f1cb31d8e16acdd65f64aa732946c12fe82c29b99e71154f2d39d769e82dfde3bd331c"
},
"accepted": {
"scheme": "exact",
"network": "eip155:84532",
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"amount": "500",
"payTo": "0x038A1960445c689A432186d174e39142979d2439",
"maxTimeoutSeconds": 60,
"extra": {
"name": "USDC",
"version": "2"
}
},
"resource": {
"url": "https://war-tracker.com/event-type/military-strike",
"description": "Hub page (region / country / event-type) with aggregated CollectionPage + Dataset JSON-LD.",
"mimeType": "text/html; charset=utf-8"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"inputSchema": {
"properties": {
"hub_type": {
"enum": [
"region",
"country",
"event-type"
],
"type": "string"
},
"slug": {
"description": "URL slug for the hub (lowercase, dash-separated).",
"type": "string"
}
},
"required": [
"hub_type",
"slug"
],
"type": "object"
},
"method": "GET",
"pathParams": {
"hub_type": "country",
"slug": "ukraine"
},
"type": "http"
},
"output": {
"example": "<html>...CollectionPage JSON-LD + linked Dataset distribution...<section>aggregated events for this slice</section>...</html>",
"type": "html"
}
}
}
}
}
Decoded PAYMENT-RESPONSE (facilitator settlement receipt):
{
"network": "eip155:84532",
"payer": "0xF710A8075F72Bb0B83F1221C9cfC0780dd764f6a",
"success": true,
"transaction": "0x0ef6babf5bad81f02dfeb545f77212e339fa4e509b000a39912d0cd654e9a750"
}
Response body preview (15,494 bytes, text/html; charset=utf-8):
<title>Live conflict tracker — Military Strike — War-Tracker</title> # Live conflict tracker — Military Strike 13,621 events recorded in the last 30 days of type "Military Strike". Most affected: Lebanon, Ukraine, Russia. # Recent events (last 30 days) - Military Strike – An-Nabatiyah, Lebanon 2026-05-13 - Military Strike – Belgorod, Bryansk, Kaluga, Kursk, Novgorod, Pskov, Smolensk, Tver, Moscow region, and Republic of Crimea, Russia 2026-05-13 - Military Strike – Kharkov and Zhitomir regions, Ukraine 2026-05-13
Discovery (x402 Bazaar)
Every 402 we serve carries the x402 Bazaar extension, so buyers can find War-Tracker through the public catalog without ever talking to us first:
GET https://www.x402.org/facilitator/discovery/resources → filter by tag war, conflict, events, or by serviceName War-Tracker. Each entry carries pricing, input/output JSON Schemas, and the same routes shown in the table above.
Wallet & settlement
Pay to: 0x038A1960445c689A432186d174e39142979d2439
Asset: USDC at 0x036CbD53842c5426634e7929541eC2318f3dCF7e
Network: Base Sepolia (testnet) (eip155:84532)
Facilitator: https://www.x402.org/facilitator
Payments are final on-chain. Erroneous charges (e.g. a 5xx response after we settled) are reconciled manually — contact us via /about.
Enterprise & bulk access
Need a higher rate limit, a private allow-list, or a flat-rate monthly agreement instead of per-request micropayments? Reach out via the channels on /about. We’re happy to issue an X-API-Key for partners with predictable, high-volume needs.