Wikidata
- Free allowance
- Reads need no account and no key.
- Verdict
- caveatusable, with a named limit or an unprobed read path
- Cost
- free tier
- Identity
- anonymousno card, no phone
- Binding limit
- request-rate10 requests per minute for an unidentified client, identified by nothing but its IP address; 200 requests per minute for an unauthenticated client with a compliant User-Agent, and for a new account; 2000 per minute for an established...
- Evidence
- measured74 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 tier | Reads need no account and no key. Wikimedia API limits are per minute: 10 requests for an unidentified client, 200 for an unauthenticated client with a compliant User-Agent, 200 for a new account and 2000 for an established editor. The Wikidata Query Service allows 60 seconds of processing per 60 seconds per User-Agent and IP. The whole graph is a weekly JSON dump; latest-all.json.bz2 is 103,565,615,653 bytes. unit requests; metered on request-count; The per-minute limits are new in 2026 and stated to be subject to experimentation and change. A compliant User-Agent carries contact information. Accounts with a bot flag are exempt. The query service at query.wikidata.org holds the main graph; scholarly-article items are in a separate service at query-scholarly.wikidata.org. Daily incremental dumps carry the last 24 hours of additions. |
|---|---|
| Price | none stated |
| Limits |
Every SPARQL query has a hard 60-second deadline. A client that keeps sending past a 429 can be temporarily banned from the query service. The rate-limit page asks for 3 or fewer concurrent requests. Fifteen parallel REST reads sent with a User-Agent that names no contact answered 13 times 200 and twice 404, with no 429. A request with a generic library User-Agent (python-requests) answered 403 with a request to set a User-Agent, and 30 such parallel reads all answered 403. The per-minute ceilings are enforced by the REST gateway, an Envoy rate-limit service that keeps its counters in Redis, on the Action API and the REST API; the rate-limit FAQ says the request limits currently apply to those two APIs, and the query service is throttled by processing time instead. The gateway counts requests whose User-Agent names no contact per source address and requests whose User-Agent carries a contact per contact string. A 429 from the gateway carries Retry-After, the header x-envoy-ratelimited and the text "You are making too many requests to the API." |
| Binding | request-rate An unidentified client gets 10 requests per minute and a compliant User-Agent 200, so a whole-graph read goes to the weekly dump, which is shaped per IP rather than counted. |
| Identity | anonymous No account and no key for the APIs or the dumps: the query service and the REST API answered 200 to requests sent without an account. A descriptive User-Agent is required in practice: a generic library User-Agent answered 403. A User-Agent with contact information moves a client from the 10 to the 200 requests-per-minute class; an account adds rate only for an established editor (2000 per minute) or an account with a bot flag (exempt). |
| Egress | Free, with no byte price; dump downloads are rate limited and capped at 3 connections per IP, and a client without an informative User-Agent may be blocked without notice free allowance: no byte allowance published |
| Per-object cap | a SPARQL query stops at a hard 60-second deadline; the Action API returns entities in groups of up to 50 per request; the full JSON dump is one 103,565,615,653-byte bz2 file read with HTTP ranges |
| Retention | the entity-dump index listed dated directories from 20260914 to 20261028 on 2026-10-30; older RDF and JSON dumps from April 20, 2015 on are kept on the Internet Archive |
| Interface | rest, graphql SPARQL over HTTP GET or POST at https://query.wikidata.org/sparql (the vocabulary has no SPARQL term, so it is filed under rest), the Wikibase REST API, the MediaWiki Action API, the Wikibase GraphQL API, and dumps over HTTPS with Range support: JSON, Turtle and N-Triples (all and truthy), lexemes, and daily incremental dumps. endpoint: https://query.wikidata.org/sparql |
| Tooling | Any HTTP client that sends a descriptive User-Agent; SPARQL clients against the query service; JSON dump readers named on the download page (qwikidata and simple-wikidata-db in Python, wd2sql in Rust, JsonDumpReader in PHP); lbzip2 for the parallel-compressed bz2 dumps. |
| Composes with | The weekly JSON dump is the bulk path for a whole-graph read and the per-minute APIs answer targeted lookups; the Wikimedia Enterprise free account (50,000 on-demand requests and 30 snapshot requests a month, no card) is a second, keyed bulk route to the same data. |
| Reliability | The 2026 per-minute limits are stated to be subject to change; a client that ignores 429 answers can be temporarily banned, and a request with a generic library User-Agent answered 403 at once. |
| Notes | Caveat: an unidentified client is held to 10 requests per minute, and the per-minute classes are new in 2026. The JSON and RDF entity dumps are stable interfaces; the XML dumps are not, and the XML dumps of all wikis are deprecated with a January 2027 sunset. |
| Evidence note | measured The per-minute ceilings are read: requests whose User-Agent carries a contact URL were answered 429 from the 201st request in a minute on the Action API and on the REST API, and requests whose User-Agent names no contact were answered 429 after the first 10 requests from each source address, so from the 41st when the requests left from four source addresses; the query service answered 200 to all 250 queries sent in one minute. The read path was probed: the SPARQL endpoint and the REST API answered 200 with no account, the JSON dump answered a HEAD with its size and a 206 to a 16 MiB range, and reads with a generic library User-Agent answered 403. The 200 per minute of a new account and the 2000 of an established editor were not read: unverified: behind a sign-up. |
| Parsed numbers |
|
Evidence 74
| date | source | what it proved |
|---|---|---|
| 2026-10-30 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits | an unidentified client, identified by nothing but its IP address, is limited to 10 requests per minute |
| 2026-10-30 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits | an unauthenticated client with a compliant User-Agent is limited to 200 requests per minute |
| 2026-10-30 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits | a new or low-edit account is limited to 200 requests per minute |
| 2026-10-30 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits | an established editor's account is limited to 2000 requests per minute |
| 2026-10-30 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits | accounts with a bot flag are exempt from the per-minute API limits |
| 2026-10-30 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits | the limits are counted per minute |
| 2026-10-30 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits | the per-minute limits are new in 2026 and may change |
| 2026-10-30 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits | clients are asked to keep 3 or fewer concurrent requests |
| 2026-10-30 | foundation.wikimedia.org/wiki/Policy:Wikimedia_Foundation_Us | a compliant User-Agent carries contact information, and a script without one may be blocked |
| 2026-10-30 | www.mediawiki.org/wiki/Wikidata_Query_Service/User_Manual | the query service allows 60 seconds of processing per 60 seconds per User-Agent and IP |
| 2026-10-30 | www.mediawiki.org/wiki/Wikidata_Query_Service/User_Manual | the query service allows 30 error queries per minute |
| 2026-10-30 | www.mediawiki.org/wiki/Wikidata_Query_Service/User_Manual | the query service allows 5 parallel queries per IP |
| 2026-10-30 | www.mediawiki.org/wiki/Wikidata_Query_Service/User_Manual | part of the text of Limits, above |
| 2026-10-30 | www.mediawiki.org/wiki/Wikidata_Query_Service/User_Manual | a client that keeps sending past 429 answers can be temporarily banned |
| 2026-10-30 | www.wikidata.org/wiki/Wikidata:Data_access | the query service is reached programmatically by GET or POST at https://query.wikidata.org/sparql |
| 2026-10-30 | www.wikidata.org/wiki/Wikidata:Data_access | query.wikidata.org holds the main graph; scholarly-article items are on query-scholarly.wikidata.org |
| 2026-10-30 | www.wikidata.org/wiki/Wikidata:Data_access | the Action API returns entities in groups of up to 50 per request |
| 2026-10-30 | www.wikidata.org/wiki/Wikidata:Data_access | a GraphQL API exists for Wikidata |
| 2026-10-30 | www.wikidata.org/wiki/Wikidata:Database_download | the JSON entity dumps are produced weekly |
| 2026-10-30 | www.wikidata.org/wiki/Wikidata:Database_download | daily incremental dumps carry the last 24 hours of additions |
| 2026-10-30 | www.wikidata.org/wiki/Wikidata:Database_download | JSON and RDF dumps are stable interfaces and XML dumps are not |
| 2026-10-30 | www.wikidata.org/wiki/Wikidata:Database_download | older RDF and JSON dumps from April 20, 2015 on are on the Internet Archive |
| 2026-10-30 | dumps.wikimedia.org/wikidatawiki/entities/ | latest-all.json.bz2 is 103,565,615,653 bytes, dated 27-Oct-2026 |
| 2026-10-30 | dumps.wikimedia.org/wikidatawiki/entities/ | the oldest dated entity-dump directory listed is 20260914 |
| 2026-10-30 | dumps.wikimedia.org/ | dump downloads are rate limited and capped at 3 connections per IP |
| 2026-10-30 | dumps.wikimedia.org/ | part of the text of Notes, above |
| 2026-10-30 | probe: https://dumps.wikimedia.org/wikidatawiki/entities/latest-all.json.bz2 | a HEAD with no account answered 200 with content-length 103565615653 and accept-ranges bytes |
| 2026-10-30 | probe: https://dumps.wikimedia.org/wikidatawiki/entities/latest-all.json.bz2 | a ranged GET of the first 16 MiB answered 206 with 16,777,216 bytes |
| 2026-10-30 | probe: https://dumps.wikimedia.org/wikidatawiki/entities/latest-all.json.bz2 | the 16 MiB range took 5501.7 ms on one connection |
| 2026-10-30 | probe: https://query.wikidata.org/sparql | a SPARQL GET with no account and no contact User-Agent answered 200 with sparql-results JSON |
| 2026-10-30 | probe: https://www.wikidata.org/w/rest.php/wikibase/v1/entities/items/Q146/labels/en | the Wikibase REST API answered 200 to a label read with no account |
| 2026-10-30 | enterprise.wikimedia.com/pricing/ | the Wikimedia Enterprise free account covers Wikidata and needs no card |
| 2026-10-30 | enterprise.wikimedia.com/pricing/ | the free Enterprise account allows up to 50,000 on-demand requests a month |
| 2026-10-30 | enterprise.wikimedia.com/pricing/ | the free Enterprise account allows up to 30 snapshot requests a month |
| 2026-10-31 | probe: https://www.wikidata.org/w/rest.php/wikibase/v1/entities/items/Q101/labels/en | 15 parallel Wikibase REST label reads with a User-Agent that names no contact answered 13 times 200 and twice 404, none 429 |
| 2026-10-31 | probe: https://www.wikidata.org/w/rest.php/wikibase/v1/entities/items/Q101/labels/en | the reads were sent 15 at a time |
| 2026-10-31 | probe: https://www.wikidata.org/w/rest.php/wikibase/v1/entities/items/Q42/labels/en | a REST read sent with a generic library User-Agent (python-requests) answered 403 asking for a User-Agent |
| 2026-10-31 | probe: https://www.wikidata.org/w/rest.php/wikibase/v1/entities/items/Q207/labels | 30 parallel REST reads sent with a generic library User-Agent all answered 403 |
| 2026-11-02 | probe: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2201&props=labels&languages=en&format=json | the fifth burst of 50 parallel Action API requests, sent in one minute with no account and no key and a User-Agent that carries a contact URL, answered 429 for all 50 |
| 2026-11-02 | probe: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2001&props=labels&languages=en&format=json | the first burst of 50 parallel Action API requests, sent in one minute with no account and no key and a User-Agent that carries a contact URL, answered 200 for all 50 |
| 2026-11-02 | probe: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2051&props=labels&languages=en&format=json | the second burst of 50 parallel Action API requests, sent in one minute with no account and no key and a User-Agent that carries a contact URL, answered 200 for all 50 |
| 2026-11-02 | probe: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2101&props=labels&languages=en&format=json | the third burst of 50 parallel Action API requests, sent in one minute with no account and no key and a User-Agent that carries a contact URL, answered 200 for all 50 |
| 2026-11-02 | probe: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2151&props=labels&languages=en&format=json | the fourth burst of 50 parallel Action API requests, sent in one minute with no account and no key and a User-Agent that carries a contact URL, answered 200 for all 50 |
| 2026-11-02 | probe: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2201&props=labels&languages=en&format=json | the 429 answers to the User-Agent that carries a contact URL on the Action API carried a Retry-After of 47 seconds and came from a server named envoy |
| 2026-11-02 | probe: https://www.wikidata.org/w/rest.php/wikibase/v1/property-data-types?x=1201 | the 429 answers to the User-Agent that carries a contact URL on the REST API carried a Retry-After of 48 seconds and came from a server named envoy |
| 2026-11-02 | probe: https://www.wikidata.org/w/rest.php/wikibase/v1/property-data-types?x=1001 | the first burst of 50 parallel REST API requests, sent in one minute with a User-Agent that carries a contact URL, answered 200 for all 50 |
| 2026-11-02 | probe: https://www.wikidata.org/w/rest.php/wikibase/v1/property-data-types?x=1051 | the second burst of 50 parallel REST API requests, sent in one minute with a User-Agent that carries a contact URL, answered 200 for all 50 |
| 2026-11-02 | probe: https://www.wikidata.org/w/rest.php/wikibase/v1/property-data-types?x=1101 | the third burst of 50 parallel REST API requests, sent in one minute with a User-Agent that carries a contact URL, answered 200 for all 50 |
| 2026-11-02 | probe: https://www.wikidata.org/w/rest.php/wikibase/v1/property-data-types?x=1151 | the fourth burst of 50 parallel REST API requests, sent in one minute with a User-Agent that carries a contact URL, answered 200 for all 50 |
| 2026-11-02 | probe: https://www.wikidata.org/w/rest.php/wikibase/v1/property-data-types?x=1201 | the fifth burst of 50 parallel REST API requests, sent in one minute with a User-Agent that carries a contact URL, answered 429 for all 50 |
| 2026-11-02 | probe: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q7001&props=labels&languages=en&format=json | 60 parallel requests with a User-Agent that names no contact left from four source addresses, shown here as labels; counted over its runs, each address was answered 200 for exactly 10 requests and 429 for each further request |
| 2026-11-02 | probe: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q6001&props=labels&languages=en&format=json | 45 parallel Action API requests with a User-Agent that names no contact, sent with no account and no key, answered 200 for 40 and 429 for 5 |
| 2026-11-02 | probe: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q4001&props=labels&languages=en&format=json | 25 parallel Action API requests with a User-Agent that names no contact answered 200 for all 25 |
| 2026-11-02 | probe: https://www.wikidata.org/w/rest.php/wikibase/v1/property-data-types?x=2001 | 25 parallel REST API requests sent in the same minute with the same User-Agent answered 200 for 15 and 429 for 10, so the two APIs share one count |
| 2026-11-02 | probe: https://query.wikidata.org/sparql?format=json&query=SELECT%20%3Fl%20WHERE%20%7B%20wd%3AQ3101%20rdfs%3Alabel%20%3Fl%20FILTER(LANG(%3Fl)%3D%22en%22)%20%7D%20LIMIT%201 | 50 parallel Wikidata Query Service queries with a User-Agent that names no contact answered 200 for all 50 |
| 2026-11-02 | probe: https://query.wikidata.org/sparql?format=json&query=SELECT%20%3Fl%20WHERE%20%7B%20wd%3AQ3201%20rdfs%3Alabel%20%3Fl%20FILTER(LANG(%3Fl)%3D%22en%22)%20%7D%20LIMIT%201 | the first burst of 50 parallel Wikidata Query Service queries, sent in one minute with a User-Agent that carries a contact URL, answered 200 for all 50 |
| 2026-11-02 | probe: https://query.wikidata.org/sparql?format=json&query=SELECT%20%3Fl%20WHERE%20%7B%20wd%3AQ3251%20rdfs%3Alabel%20%3Fl%20FILTER(LANG(%3Fl)%3D%22en%22)%20%7D%20LIMIT%201 | the second burst of 50 parallel Wikidata Query Service queries, sent in one minute with a User-Agent that carries a contact URL, answered 200 for all 50 |
| 2026-11-02 | probe: https://query.wikidata.org/sparql?format=json&query=SELECT%20%3Fl%20WHERE%20%7B%20wd%3AQ3301%20rdfs%3Alabel%20%3Fl%20FILTER(LANG(%3Fl)%3D%22en%22)%20%7D%20LIMIT%201 | the third burst of 50 parallel Wikidata Query Service queries, sent in one minute with a User-Agent that carries a contact URL, answered 200 for all 50 |
| 2026-11-02 | probe: https://query.wikidata.org/sparql?format=json&query=SELECT%20%3Fl%20WHERE%20%7B%20wd%3AQ3351%20rdfs%3Alabel%20%3Fl%20FILTER(LANG(%3Fl)%3D%22en%22)%20%7D%20LIMIT%201 | the fourth burst of 50 parallel Wikidata Query Service queries, sent in one minute with a User-Agent that carries a contact URL, answered 200 for all 50 |
| 2026-11-02 | probe: https://query.wikidata.org/sparql?format=json&query=SELECT%20%3Fl%20WHERE%20%7B%20wd%3AQ3401%20rdfs%3Alabel%20%3Fl%20FILTER(LANG(%3Fl)%3D%22en%22)%20%7D%20LIMIT%201 | the fifth burst of 50 parallel Wikidata Query Service queries, sent in one minute with a User-Agent that carries a contact URL, answered 200 for all 50 |
| 2026-11-02 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits/FAQ | the request-based rate limits currently apply to the Action API and the REST API |
| 2026-11-02 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits/FAQ | cost-based or concurrency limits for the Wikidata Query Service are only being explored, so the request limits do not apply to it |
| 2026-11-02 | wikitech.wikimedia.org/wiki/External_request_limits | the API rate limits are enforced by the REST gateway |
| 2026-11-02 | wikitech.wikimedia.org/wiki/External_request_limits | the API rate limits apply across sites and services but only to API endpoints |
| 2026-11-02 | wikitech.wikimedia.org/wiki/REST_Gateway/Rate_limiting | the gateway rate limiting is an Envoy rate-limit service with Redis counters |
| 2026-11-02 | wikitech.wikimedia.org/wiki/REST_Gateway/Rate_limiting | requests with no contact in the User-Agent fall in the anon class, whose counter key is the source address |
| 2026-11-02 | wikitech.wikimedia.org/wiki/REST_Gateway/Rate_limiting | requests with a compliant User-Agent are counted per contact string |
| 2026-11-02 | probe: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q6100&props=labels&languages=en&format=json | a 429 answer came from a server named envoy with the header x-envoy-ratelimited: true and a Retry-After of 56 seconds |
| 2026-11-02 | probe: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q6100&props=labels&languages=en&format=json#429-body | the 429 answer body says the caller is making too many requests to the API |
| 2026-11-02 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits | an unidentified caller, identified by nothing but its IP address, is limited to 10 requests per minute |
| 2026-11-02 | probe: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2201&props=labels&languages=en&format=json | the 429 ceiling of the User-Agent class that carries a contact URL was read on the Action API |
| 2026-11-02 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits | an unauthenticated caller with a compliant User-Agent is limited to 200 requests per minute |
| 2026-11-02 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits | a new or low-edit account is limited to 200 requests per minute |
| 2026-11-02 | www.mediawiki.org/wiki/Wikimedia_APIs/Rate_limits | an established editor's account is limited to 2000 requests per minute |