# GDELT Global News Intelligence **GDELT Global News Intelligence** is an independently documented x402 Atlas bridge at https://gdelt.use.x402atlas.com. This document describes only this bridge; it does not aggregate routes, schemas, or content from any other bridge. ## How payment works Paid operations use the [x402 payment protocol](https://x402.org) and settle in USDC. Atlas supports deployments on Base, Polygon, and Arbitrum, plus configured Solana networks. This bridge currently advertises Arbitrum One (`eip155:42161`), Base (`eip155:8453`), Polygon (`eip155:137`), Solana mainnet (`solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`). 1. Send the HTTP request without a payment signature. 2. Read the `402 Payment Required` response. Its `accepts` entries are the authoritative network, asset, amount, and recipient options for that call. 3. Select an option, sign it with an x402-compatible wallet or SDK, and repeat the request with the `PAYMENT-SIGNATURE` header. The successful response is returned after verification and settlement. TypeScript clients can automate the challenge, signing, and retry flow with [`x402-fetch`](https://www.npmjs.com/package/x402-fetch) or [`x402-axios`](https://www.npmjs.com/package/x402-axios). Fund a dedicated wallet only with the working USDC balance it needs and keep that key separate from treasury accounts. ## Pricing Atlas route prices start at $0.005 per successful call. This bridge's fallback price is $0.005; operations below state their exact configured price in `x-x402` and `x-payment-info`. The live `402` challenge remains authoritative. ## Worked payment example Request one documented operation without a signature to inspect its live terms: ```bash curl -i 'https://gdelt.use.x402atlas.com/search?maxrecords=75&query=%22supply+chain%22+%28drought+OR+flood%29&sort=HybridRel×pan=3d' # HTTP/1.1 402 Payment Required # Read accepts[].network, asset, amount, and payTo from this response. ``` Sign one accepted option and repeat the identical request with the `PAYMENT-SIGNATURE` header. Do not invent or cache payment terms; read them from the current challenge. ## Use this API - Interactive reference: https://gdelt.use.x402atlas.com/docs - OpenAPI 3.1 specification: https://gdelt.use.x402atlas.com/openapi.json - Agent-readable route corpus: https://gdelt.use.x402atlas.com/llms.txt - Endpoint index: https://gdelt.use.x402atlas.com/index.json Use the operation schemas and examples below to construct requests. Copy the server URL, path, method, parameters, and request body from the operation you want to call. Path and query examples are concrete and can be used directly. ## Atlas response metadata Successful JSON responses include an additive top-level `_atlas` block, kept separate from the bridge's data fields. `_atlas.docs` links this bridge's `/llms.txt` corpus. `_atlas.related` suggests adjacent APIs, each with a callable `url`, its own `docs` link, and a short `summary`. Suppress this block by sending `X-Atlas-Meta: none` or by adding `?_atlas=0` to the request. ## Errors and compatibility Validation failures use HTTP `400`. Paid operations may return `402` before dispatch. Upstream and internal failures use the documented `5xx` responses. Clients should rely on documented fields and tolerate additive response fields, including `_atlas` unless they explicitly opt out. ## Protocol reference - x402 protocol and SDKs: https://x402.org ## GDELT Global News Intelligence Docs: https://gdelt.use.x402atlas.com/docs · OpenAPI: https://gdelt.use.x402atlas.com/openapi.json ### GET /search Global news article search by GDELT — normalized fulltext search across worldwide media (query syntax: phrases, OR, sourcecountry, theme, tone) returned as a clean snake_case envelope. Full-text search across GDELT's global news firehose (DOC 2.0 ArtList mode). `query` is **required** and takes GDELT query syntax — quoted phrases, `OR`, `-exclude`, and operators like `domain:`, `sourcelang:`, `sourcecountry:`, `theme:`, `tone>`/`tone<`, `near`. Optional: `timespan` (relative window like `15min`, `1h`, `7d`, `2w`, `3m`; default `3d`, capped at 3 months), `maxrecords` (default 75, max 250), and `sort` (`DateDesc`, `DateAsc`, `ToneDesc`, `ToneAsc`, or `HybridRel` default). Returns a snake_case `articles` array (`url`, `title`, `seen_at` as RFC3339, `domain`, `language`, `source_country`, optional `social_image`) plus a `queried_at` stamp and a mandatory GDELT `attribution` line; a query that matches nothing is a 200 with an empty `articles`, not a 404. For coverage-volume or tone trends over time use `/timeline` instead. **Price:** $0.005 per call. Parameters: - `maxrecords` (optional, integer) — Number of articles to return, capped at 250; default: `75`, minimum: `1`, maximum: `250`; example: `75` - `query` (required, string) — GDELT query syntax — phrases, OR, -exclude, domain:, sourcelang:, sourcecountry:, theme:, tone>/<, near; maxLength: `1024`; example: `"\"supply chain\" (drought OR flood)"` - `sort` (optional, string) — Result ordering; allowed: ["DateDesc","DateAsc","ToneDesc","ToneAsc","HybridRel"], default: `"HybridRel"`; example: `"HybridRel"` - `timespan` (optional, string) — Relative window like 15min, 1h, 7d, 2w, 3m; capped at 90 days; default: `"3d"`, pattern: `"^[0-9]+(min|h|d|w|m)$"`; example: `"3d"` Example: ```sh curl 'https://gdelt.use.x402atlas.com/search?maxrecords=75&query=%22supply+chain%22+%28drought+OR+flood%29&sort=HybridRel×pan=3d' ``` Response example: ```json { "articles": [ { "domain": "reuters.com", "language": "English", "seen_at": "2026-07-01T09:15:00Z", "source_country": "United States", "title": "Drought disrupts supply chains", "url": "https://reuters.com/x" } ], "attribution": "Data from The GDELT Project (https://www.gdeltproject.org)", "count": 1, "queried_at": "2026-07-01T12:00:00Z", "query": "\"supply chain\" (drought OR flood)", "timespan": "3d" } ``` ### GET /timeline News attention & tone timeline by GDELT — coverage-volume and average-tone time series for any query, merged from GDELT's two timeline feeds into one series. Attention-and-tone time series for any `query`, merging GDELT DOC 2.0's `TimelineVol` (coverage volume) and `TimelineTone` (average tone) feeds into one `series` of `{date, volume_pct, tone}` — the two-into-one join you can't get from a single upstream call. `query` is **required** (same syntax as `/search`); optional `timespan` sets the window (`7d`, `2w`, `3m`; default `3m`, capped at 3 months) and `timelinesmooth` applies a 1–30 point moving average. The two feeds are fetched concurrently; if one fails its metric is `null` on every point (a volume-only answer still returns 200) — only both failing is an error. Dates are RFC3339 and each 200 carries the mandatory GDELT `attribution`. For the underlying articles rather than the trend, use `/search`. **Price:** $0.02 per call. Parameters: - `query` (required, string) — GDELT query syntax (see /gdelt/search); example: `"bitcoin"` - `timelinesmooth` (optional, integer) — Moving-average window over the series (optional); minimum: `1`, maximum: `30`; example: `7` - `timespan` (optional, string) — Relative window like 7d, 2w, 3m; capped at 90 days; default: `"3m"`, pattern: `"^[0-9]+(min|h|d|w|m)$"`; example: `"3m"` Example: ```sh curl 'https://gdelt.use.x402atlas.com/timeline?query=bitcoin&timelinesmooth=7×pan=3m' ``` Response example: ```json { "attribution": "Data from The GDELT Project (https://www.gdeltproject.org)", "partial": false, "queried_at": "2026-07-01T12:00:00Z", "query": "bitcoin", "series": [ { "date": "2026-04-01T00:00:00Z", "tone": -1.8, "volume_pct": 0.42 } ], "timespan": "3m", "warnings": [] } ```