Wikidata Scraper - Entity Search, IDs and Claims avatar

Wikidata Scraper - Entity Search, IDs and Claims

Pricing

from $0.19 / 1,000 items

Go to Apify Store
Wikidata Scraper - Entity Search, IDs and Claims

Wikidata Scraper - Entity Search, IDs and Claims

Search Wikidata by name, or resolve a list of Q-ids like Q42 into full records. Each row holds the Q-id, label, description, aliases and link; resolved IDs add instance of, occupation, citizenship, a claims summary and the English Wikipedia link. Facts come back as Q-ids. $0.20 per 1,000 entities.

Pricing

from $0.19 / 1,000 items

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Share

Search Wikidata by name, or turn a list of Q-ids into full records: the label, description and aliases, what the thing is an instance of, occupation, citizenship, a flattened summary of every other claim, and the English Wikipedia link. No API key, no login.

The awkward part first, because it changes how you use it. Facts in Wikidata point at other Wikidata items, so occupation comes back as Q36180, not as the word "writer". If you want words, you resolve those IDs in a second pass.

InputA search term, or a list of Q-ids
OutputOne row per entity: Q-id, label, description, aliases, link. Resolved IDs add instance of, occupation, citizenship, a claims summary and the English Wikipedia article
Ceiling1,000 entities per run resolving IDs, 50 per search
Account neededNone, and no API key
Price$0.20 per 1,000 entities on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 25,000

🔍 What Wikidata Scraper does

search mode runs one free-text lookup against Wikidata and returns matching items with their Q-id, label, description and the alias that matched. Wikidata caps this at 50 results, so maxItems above 50 in search mode gets you 50.

entities mode takes Q-ids and resolves them properly, 50 IDs at a time, as many rounds as your list needs. This is the mode with the real detail in it.

Labels are fetched in your language, and in Wikidata's multilingual mul bucket as well. That matters more than it sounds: Q42's label lives under mul, not under en, so asking for English alone would come back blank.

📋 What data you get from each Wikidata entity

What you getField
The Q-id and its Wikidata pageid, url
Label and short description, in your languagelabel, description
Other names it goes byaliases
What kind of thing it is (P31)instanceOf
Occupation (P106) and country of citizenship (P27)occupation, countryOfCitizenship
Every other property, flattened to plain valuesclaimsSummary
The English Wikipedia articleenwikiTitle, enwikiUrl

Everything below aliases comes from entities mode. A search row stops at the first four lines.

▶️ How to scrape Wikidata

  1. Open Wikidata Scraper and click Try for free.
  2. Pick a Mode. Search if you have names, Entities if you already have Q-ids.
  3. Fill in Search query, or paste your IDs into Wikidata Q-ids.
  4. Set a Language if English is not what you want, then click Start.
  5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost to scrape Wikidata?

$0.20 per 1,000 entities on the Free plan. Paid plans pay a little less: $0.198 on Starter, $0.196 on Scale and $0.194 on Business. On the free plan, the $5 Apify gives you each month covers about 25,000 entities.

You pay per entity row delivered. Q-ids that do not exist are skipped rather than charged, and diagnostic rows are not charged. Set a maximum cost on the run and it stops when it gets there.

📥 What you give it

{
"mode": "entities",
"ids": ["Q42", "Q5"],
"language": "en"
}
FieldDefaultWhat it is
modesearchsearch for free text, entities to resolve Q-ids.
querynone, the form starts with douglas adamsThe term to search for, used in search mode only. An API call has to send its own.
idsnone, the form starts with Q42 and Q5The Q-ids to resolve, used in entities mode only.
languageenLanguage code for labels, descriptions and aliases. Falls back to the multilingual value when your language has none.
maxItems501 to 1,000 in entities mode. In search mode Wikidata stops at 50 whatever you put here.
notionConnectornoneOptional. Writes one Notion page per entity when the run finishes.
notionParentIdnoneOptional. The Notion data source to write into. Leave it empty and the pages land privately in your workspace.
proxyConfigurationoffOptional network settings. A normal run does not need them.

📤 What you get back

A real entities row for Q42, from a run on 5 September 2026, with claimsSummary cut to eight of its properties:

{
"ok": true,
"id": "Q42",
"label": "Douglas Adams",
"description": "British science fiction writer and humorist (1952–2001)",
"aliases": ["Douglas Noël Adams", "Douglas Noel Adams", "Douglas N. Adams"],
"instanceOf": ["Q5"],
"occupation": ["Q214917", "Q28389", "Q6625963", "Q4853732", "Q18844224", "Q245068", "Q36180", "Q639669"],
"countryOfCitizenship": ["Q145"],
"claimsSummary": {
"P31": ["Q5"],
"P21": ["Q6581097"],
"P569": ["+1952-03-11T00:00:00Z"],
"P570": ["+2001-05-11T00:00:00Z"],
"P19": ["Q350"],
"P800": ["Q25169", "Q20736364", "Q7758404"],
"P345": ["nm0010930"],
"P856": ["https://douglasadams.com"]
},
"enwikiTitle": "Douglas Adams",
"enwikiUrl": "https://en.wikipedia.org/wiki/Douglas_Adams",
"url": "https://www.wikidata.org/wiki/Q42"
}

And a real search row for douglas adams, from a run on 3 October 2026:

{
"ok": true,
"id": "Q28421831",
"label": "Douglas Adams",
"description": "American environmental engineer",
"aliases": [],
"url": "https://www.wikidata.org/wiki/Q28421831"
}

That is not the novelist, and it is a fair warning about search mode: several people share a name and Wikidata holds all of them. Read description before you pick one.

FieldHow to read it
aliasesSearch gives you the one alias that matched your term, often none. Resolving an ID gives you all of them, in your language and in mul.
instanceOf, occupation, countryOfCitizenshipQ-ids, not words. Q5 is "human", Q145 is the United Kingdom.
claimsSummaryEvery other property, as { "P569": ["+1952-03-11T00:00:00Z"] }. An item reference stays a Q-id, a time stays its time string, a quantity becomes its amount, coordinates become "lat,lon". Capped at 60 properties with up to 20 values each.
enwikiTitle, enwikiUrlThe English Wikipedia article, or null when there is not one.

🧾 Reading the output

Two kinds of row land in your dataset.

RowHow to spot itBilled
An entityok: true and an idyes
A diagnosticok: false and an errorCodeno
CodeWhat it means
BAD_INPUTAn empty query in search mode, no usable Q-ids in entities mode, or a mode that is not one of the two. The row lists the values it could not read.
NO_RESULTSNothing matched, or none of the Q-ids you sent exist.
NETWORKWikidata was unreachable or answered badly. Re-run it.
TIME_LIMITThe run got close to its time limit and stopped on its own. The entities delivered before that are complete and charged. Give the run more time, or ask for fewer entities, to get the rest.

A run that ends on one of these rows still finishes as succeeded, except one: when the time limit stopped the run before any entity came back, it ends as failed, with a TIME_LIMIT row saying so.

Two things worth knowing. An invalid language code comes back as NETWORK, not as a bad-input error, so check the code first when a run fails for no visible reason. And judge a run by the rows it delivered, not by its status, because a run whose requests all failed can still finish marked as succeeded.

💡 What people use it for

  • Turning a column of names into Q-ids, then resolving those IDs in a second run to get the detail.
  • Pulling the English Wikipedia link for a list of companies or people in one pass.
  • Reading dates, coordinates and identifiers straight out of claimsSummary instead of parsing article text. P345 above is the IMDb id, for instance.
  • Checking whether an entity exists in Wikidata at all before writing it into your own catalogue.

From a name to readable facts, in three runs:

  1. Run search mode with the name in query, and pick the right id by its description.
  2. Put that id, and any others you have, into ids with mode set to entities.
  3. Collect the Q-ids from occupation and countryOfCitizenship and resolve them in one more entities run. Their label is the word you wanted.

🚧 What it does not do

  • Search stops at 50 results. That is Wikidata's cap, and no maxItems raises it. Resolve IDs when you need volume.
  • Items only. Property pages and lexemes are rejected rather than returned.
  • Referenced items stay as Q-ids. Nothing resolves Q36180 to "writer" for you.
  • Claims are flattened. Qualifiers, references and rank are dropped, and the summary is capped at 60 properties with 20 values each.
  • Only the English Wikipedia link comes back, even when the entity has articles in other languages.
  • No SPARQL. This is entity search and entity lookup, not the query service.
  • If a batch fails partway through a long ID list, the run ends with a diagnostic row and the entities already fetched do not land. Split very long lists across runs.
  • It is not an official Wikidata tool. Dami's Studio is independent and is not affiliated with or endorsed by Wikidata or the Wikimedia Foundation, or by any other company named on this page.

🧭 Which reference scraper do you need?

If you wantUse
Wikipedia search results or article textWikipedia Scraper
Wikidata Q-ids, aliases and claims, by name or by IDThis one
Book metadata by keyword, title or ISBNBooks Scraper
Goodreads ratings and rating counts from a book searchGoodreads Books Scraper
Books, audio, film and software held on archive.orgInternet Archive Scraper
Papers with readable abstracts and citation countsOpenAlex Scraper
Wikipedia, arXiv and OpenAlex searches as tools for an AI agentResearch MCP Server

❓ Questions people ask

Why is occupation full of Q-ids?

Because that is how Wikidata stores it. Collect the IDs, then run entities mode on them to get the labels.

Why did my search return the wrong Douglas Adams?

Search matches names, and several people share one. Use description to pick, then resolve that Q-id.

Why did a maxItems of 500 give me 50 rows?

You were in search mode. Wikidata caps it at 50.

Can I get labels in French or Japanese?

Yes, set language. When a term has no value in your language the multilingual one is used instead, so rows stay filled rather than going blank.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/wikidata-scraper. Either way the run happens on your Apify account at the same price.

Can I use Wikidata data in my own product?

Wikidata says its data is published under CC0. Crediting it when you redistribute is still good form. Apify's write-up on the legality of web scraping covers the wider question, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the mode, the query or the ID list, and the run ID. The errorCode on the diagnostic row usually names the problem on its own.