fshy

Home / Data APIs

GDELT Project

www.gdeltproject.org/data.htmlNews event dataset and search APIdata-apis/gdeltJSONcomparereport an errorprovider JSON

Free allowance
Every dataset free for unlimited and unrestricted use, with no fee: Event, Mentions and GKG CSV files every 15 minutes and the DOC 2.0 search API over a rolling 3 months, both with no key, and the same tables in Google BigQuery, which needs a Google sign-in.
Verdict
caveatusable, with a named limit or an unprobed read path
Cost
free tier
Identity
anonymousno card, no phone
Binding limit
request-rateDOC 2.0 API: one request every 5 seconds; every call made on 2026-10-30 answered HTTP 429
Evidence
measured46 sources; a live request was made and its output kept
Freshness
stale on 2027-01-03checked 2026-11-03 (live); stale on 2027-01-03
Free tierEvery dataset free for unlimited and unrestricted use, with no fee: Event, Mentions and GKG CSV files every 15 minutes and the DOC 2.0 search API over a rolling 3 months, both with no key, and the same tables in Google BigQuery, which needs a Google sign-in.
unit unlimited; metered on none; The DOC 2.0 API asks for at most one request every 5 seconds and answered HTTP 429 to every call made on 2026-10-30; its 429 body points high-traffic users to the web ngrams dataset.
Pricenone stated
Limits
  • request-rate (binding) DOC 2.0 API: one request every 5 seconds; every call made on 2026-10-30 answered HTTP 429
  • per-object-cap DOC 2.0 API: 250 results a request at most, 75 by default source
  • volume-quota BigQuery route: 1 TiB of processed query data each month in the BigQuery sandbox, which needs a Google Account and a Google Cloud project but no credit card or billing account source
Bindingrequest-rate The DOC 2.0 API throttle is the only limit met; the bulk files carry no stated limit, so a reader that polls the files meets none.
Identityanonymous No account and no key: the bulk files and the DOC 2.0 API take plain GET requests, and an export zip downloaded with no credentials. The BigQuery route is not anonymous: a call to the BigQuery REST API for a GDELT table with no credential answers HTTP 401 with a Bearer challenge for accounts.google.com, so it needs a Google sign-in. The sandbox terms of that route are in the volume-quota limit row.
Egressno fee and no key on data.gdeltproject.org; a 15-minute export zip downloaded with no account
Per-object capDOC 2.0 API: 75 results a request by default, 250 at most; the bulk files are zips of one 15-minute slice each
Retentionthe DOC 2.0 API searches a rolling window of the last 3 months; the GDELT 2.0 files start on February 19, 2015
Interfacerest plain HTTPS downloads from data.gdeltproject.org, indexed by lastupdate.txt and masterfilelist.txt; the DOC 2.0 API as GET with JSON, CSV or HTML output; the tables also sit in public Google BigQuery datasets
Toolingany HTTP client for the files and the API; a BigQuery client for the public tables
Composes withThe bulk path: poll lastupdate.txt every 15 minutes and fetch the listed zips, checking each against the size the listing gives; the DOC 2.0 API serves only ad hoc searches.
ReliabilityThe DOC 2.0 API answered HTTP 429 to every call on 2026-10-30, from a residential ISP address and from a cloud fetch egress, with calls minutes apart. On 2026-11-02, in two series of calls hours apart, it answered HTTP 429 again to calls with different queries, from a residential ISP address under two user agents and from a cloud fetch egress; the only HTTP 200 answers were a 2-byte {} body, for two query URLs, from the residential address, and no call returned an article list. The bulk files answered 200 on both days.
NotesBulk path: data.gdeltproject.org/gdeltv2/masterfilelist.txt lists every 15-minute file since February 19, 2015, and lastupdate.txt the newest; the same tables sit in Google BigQuery.
Evidence notemeasured The newest export zip listed in lastupdate.txt downloaded with no account on 2026-10-30 and on 2026-11-02, at the size the listing gives each time (106145 bytes, then 82391 bytes); the DOC 2.0 API was probed on both days and answered 429 to every call except the calls that answered 200 with a 2-byte {} body. The DOC 2.0 API ceiling stays unmeasured until a call returns articles.
Parsed numbers
  • has-free-tier 1
  • volume-quota 1 TiB
Evidence 46
datesourcewhat it proved
2026-10-30www.gdeltproject.org/about.htmlnot published
2026-10-30www.gdeltproject.org/about.htmlnot published
2026-10-30www.gdeltproject.org/about.htmlnot published
2026-10-30www.gdeltproject.org/data.htmlthe whole database is free and open
2026-10-30www.gdeltproject.org/data.htmlthe full event and graph datasets download as CSV, over 2.5TB for a single year
2026-10-30www.gdeltproject.org/data.htmlthe BigQuery tables update every 15 minutes
2026-10-30blog.gdeltproject.org/gdelt-2-0-our-global-world-in-realtimelastupdate.txt lists the newest 15-minute files
2026-10-30blog.gdeltproject.org/gdelt-2-0-our-global-world-in-realtimemasterfilelist.txt lists every GDELT 2.0 file
2026-10-30blog.gdeltproject.org/gdelt-2-0-our-global-world-in-realtimethe GDELT 2.0 files start on February 19, 2015
2026-10-30blog.gdeltproject.org/gdelt-doc-2-0-api-debuts/the DOC 2.0 API searches the last 3 months
2026-10-30blog.gdeltproject.org/gdelt-doc-2-0-api-debuts/the DOC 2.0 API returns 75 results by default and 250 at most
2026-10-30probe: https://data.gdeltproject.org/gdeltv2/lastupdate.txtlastupdate.txt, read with no account, lists the newest export zip at 106145 bytes
2026-10-30probe: https://data.gdeltproject.org/gdeltv2/lastupdate.txt#recordlastupdate.txt answers 200 with no account
2026-10-30probe: https://data.gdeltproject.org/gdeltv2/20261030130000.export.CSV.zipthe listed export zip downloaded with no account at the 106145 bytes the listing gives
2026-10-30probe: https://api.gdeltproject.org/api/v2/doc/docthe DOC 2.0 API asks for at most one request every 5 seconds
2026-10-30probe: https://api.gdeltproject.org/api/v2/doc/doc#firstthe first DOC 2.0 API call from a residential ISP address answered 429
2026-10-30probe: https://api.gdeltproject.org/api/v2/doc/doc#latera DOC 2.0 API call minutes later answered 429 again
2026-10-30api.gdeltproject.org/api/v2/doc/doc?query=weather&mode=artlithe DOC 2.0 API answered 429 to a cloud fetch egress as well
2026-11-02probe: https://api.gdeltproject.org/api/v2/doc/doc#20261102-429-aa DOC 2.0 API call of 2026-11-02 from a residential ISP address answered HTTP 429
2026-11-02probe: https://data.gdeltproject.org/gdeltv2/20261102104500.export.CSV.zipthe newest export zip listed in lastupdate.txt downloaded with no account at 82391 bytes, the size the listing gives
2026-11-02probe: https://bigquery.googleapis.com/bigquery/v2/projects/gdelt-bq/datasets/gdeltv2/tables/eventsthe BigQuery REST API answers HTTP 401 with a Bearer challenge for accounts.google.com to a call for a GDELT table with no credential
2026-11-02probe: https://bigquery.googleapis.com/bigquery/v2/projects/gdelt-bq/datasets/gdeltv2/tables/events#bodythe BigQuery REST API asks for an OAuth 2 access token or a login cookie on a call for a GDELT table
2026-11-02docs.cloud.google.com/bigquery/docs/sandboxthe BigQuery sandbox gives 1 TiB of processed query data each month
2026-11-02docs.cloud.google.com/bigquery/docs/sandboxthe BigQuery sandbox, which can query a public dataset, needs no credit card and no billing account
2026-11-02docs.cloud.google.com/bigquery/docs/sandboxthe BigQuery sandbox asks for a Google Account, an existing one or a new one
2026-11-02docs.cloud.google.com/bigquery/public-dataquerying a BigQuery public dataset needs a project and no billing for the first terabyte of queries a month
2026-11-02support.google.com/accounts/answer/27441a Google Account can be created with an existing non-Gmail email address
2026-11-02support.google.com/accounts/answer/27441a phone number is optional in the Google Account sign-up steps
2026-11-02blog.gdeltproject.org/google-bigquery-gkg-2-0-sample-queriesthe GDELT tables in BigQuery are queried after a Google BigQuery account is created; the GKG table is gdelt-bq:gdeltv2.gkg
2026-11-02probe: https://bigquery.googleapis.com/bigquery/v2/projects/gdelt-bq/datasets/gdeltv2/tables/events#bodythe BigQuery REST API answers a call for a GDELT table with no credential with HTTP 401 and asks for an OAuth 2 access token or a login cookie
2026-11-02probe: https://api.gdeltproject.org/api/v2/doc/doc#20261102-emptya DOC 2.0 API call of 2026-11-02 from a residential ISP address answered HTTP 200 with a 2-byte body
2026-11-02probe: https://api.gdeltproject.org/api/v2/doc/doc#20261102-emptythe 2-byte body of that HTTP 200 answer has the SHA-256 of {}, an empty JSON object, and is not an article list
2026-11-02probe: https://api.gdeltproject.org/api/v2/doc/doc#20261102-empty-repeatthe same query URL answered HTTP 200 with a 2-byte body again when repeated minutes later from the same residential ISP address
2026-11-02probe: https://api.gdeltproject.org/api/v2/doc/doc#20261102-empty-2a second query URL, a phrase query over three days, answered HTTP 200 with a 2-byte body hours after the first series
2026-11-02probe: https://api.gdeltproject.org/api/v2/doc/doc#20261102-empty-2the 2-byte body of that answer has the SHA-256 of {}, an empty JSON object, and is not an article list
2026-11-02probe: https://api.gdeltproject.org/api/v2/doc/doc#20261102-429-laterthe DOC 2.0 API answered HTTP 429 again to a residential ISP address hours after the first series
2026-11-02api.gdeltproject.org/api/v2/doc/doc?query=election&mode=artlthe DOC 2.0 API answered HTTP 429 to a cloud fetch egress hours after the first series
2026-11-02probe: https://api.gdeltproject.org/api/v2/doc/doc#20261102-429-curl-agentthe DOC 2.0 API answered HTTP 429 to a call with a curl user agent from a residential ISP address
2026-11-02probe: https://api.gdeltproject.org/api/v2/doc/doc#20261102-429-repeatthe query URL that had answered HTTP 200 with {} answered HTTP 429 when repeated from the same residential ISP address
2026-11-02probe: https://api.gdeltproject.org/api/v2/doc/doc#20261102-429-bodythe 429 body still asks for at most one request every 5 seconds
2026-11-02api.gdeltproject.org/api/v2/doc/doc?query=weather&mode=artlithe DOC 2.0 API answered HTTP 429 to a cloud fetch egress for the query URL that answered 200 with {} to a residential ISP address within seconds
2026-11-02github.com/apitube/gdelt-apitube-migration-kita third party reports that on 27 July 2026 the DOC 2.0 API let 1 request of 7 through at 6-second spacing, 4 of 12 at 16 seconds and 3 of 8 at 60 seconds
2026-11-02probe: https://data.gdeltproject.org/gdeltv2/lastupdate.txt#20261102lastupdate.txt, read with no account, lists the newest export zip at 82391 bytes
2026-11-02probe: https://data.gdeltproject.org/gdeltv2/lastupdate.txt#20261102-recordlastupdate.txt answers HTTP 200 with no account
2026-11-02www.gdeltproject.org/data.htmlthe GDELT data page states that all GDELT datasets are available in Google BigQuery, updated every 15 minutes
2026-11-02www.gdeltproject.org/about.htmlevery GDELT dataset is free for unlimited and unrestricted use