How to query Wikidata using SPARQL in JavaScript

The Wikidata Query Service allows you to get data from Wikidata using SPARQL. There are many interesting SPARQL queries you can run, such as finding all the paintings by a specific artist or all the cities in a specific country, and you can use this data to create visualizations, build applications, and so on.

The service is available at https://query.wikidata.org/sparql and supports CORS, so you can send your queries directly on the client. Here's an example of how you can run a query in JS:

const response = await fetch("https://query.wikidata.org/sparql", {
method: "POST", // It's better to use POST because the query can be long
headers: {
Accept: "application/sparql-results+json", // This makes sure you get JSON results
"Content-Type": "application/x-www-form-urlencoded",
},
body: `query=${encodeURIComponent(`
SELECT ?item ?itemLabel
WHERE {
?item wdt:P31 wd:Q3305213.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
LIMIT 10
`)}`,
});
const json = await response.json();
console.log(json);

See also

Made by Anton Vasetenkov.

If you want to say hi, you can reach me on LinkedIn or via email. If you like my work, you can support me by buying me a coffee.