AI & LLM data · News & feeds
Wikiquote Scraper
Extract quotes from any Wikiquote page — by person, work, or topic — via the Wikiquote MediaWiki API. Returns each quote with attribution, source work, year, and language, exported to JSON or CSV. Free, multilingual.
Free Apify credit covers a first run. No credit card to try.
What this Actor scrapes
Wikiquote is the world's largest community-edited quotes library — a sister project of Wikipedia with strict citation requirements. This Actor accepts a list of Wikiquote article titles (or full URLs) and writes one dataset row per quote, with full attribution metadata and — when the page supplies it — the source work and year.
Works across every Wikiquote language subdomain: pass language: "de" and get German-language quotes. Unsourced, disputed, and misattributed sections are labelled separately in the section field so you can filter on attribution quality rather than guessing.
What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffireplays real Chrome / Firefox / Safari TLS handshakes so the target sees a real browser, not a Python script. - 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block signal.
- 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts per page,Retry-Afterhonoured. - 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down and wait rather than triggering a ban.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, export-ready as JSON / CSV / Excel from the Apify Console.
- 💰 Pay-Per-Event pricing — you pay only when a result lands in your dataset. No data, no charge.
Use cases
- Daily-quote service — schedule a run for a curated list and push one quote per day to your app or newsletter.
- Citation enrichment — find a properly sourced quote when you have only the speaker's name.
- Multilingual analysis — pull quotes on the same topic across 5 or more language editions.
- Movie / book reference assembly — extract every quote from a film or novel's Wikiquote page for a study guide or quiz app.
- Attribution-real RAG corpus — small, clean, citation-grounded text for LLM retrieval demos where hallucinated attributions are unacceptable.
- Education / language-learning apps — real sourced quotes in the target language, with section labels for difficulty filtering.
Input
Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.
| Field | Type | Required | What it does |
|---|---|---|---|
pages | array | yes | List of Wikiquote article titles (e.g. Albert Einstein) or full URLs. Use the exact title as shown on Wikiquote. |
language | string | no | Wikiquote subdomain ISO code (en, de, fr, etc.). |
maxQuotesPerPage | integer | no | Cap on quotes extracted from a single Wikiquote page. |
{
"pages": [
"Albert Einstein",
"Marcus Aurelius"
],
"language": "en",
"maxQuotesPerPage": 50,
"proxyConfiguration": {
"useApifyProxy": false
}
} Output
One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.
quoteattributionsourceyearpage_urllanguagesectionscraped_at
{
"quote": "Everything should be made as simple as possible, but not simpler.",
"attribution": "Albert Einstein",
"source": "Reader's Digest, October 1977",
"year": "1933",
"section": "Sourced",
"page_url": "https://en.wikiquote.org/wiki/Albert_Einstein",
"language": "en",
"scraped_at": "2026-06-01T09:00:00Z"
} Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.20 | Once per run, covers warm-up and proxy session setup. |
| Result emitted | $0.0010 | Per result written to the dataset. |
You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.
Limitations
- We parse the HTML rendered by Wikiquote's MediaWiki engine. Pages that use unusual templates may surface a quote without a source or year — the
sectionfield tells you whether it came from a verified, attributed, disputed, or misattributed section. - Themed list pages (
List of quotes about X) are supported, but theattributionfield will be the page title rather than an individual speaker. Category:pages (index pages listing many articles) are not yet supported — pass individual article titles. Category enumeration is on the roadmap.- Wikiquote markup varies across language editions; rare edge-case pages may parse with reduced fidelity. We surface the
sectionlabel so you can filter on quality.
FAQ
Is this legal?
Is there a Wikiquote API I can use directly instead?
Can I use this as a free `famous quotes API`?
GET /random endpoint backed by real sources.Why are some quotes missing a source?
section field tells you which attribution tier the quote is in — filter to section: "Sourced" for citation-confirmed quotes only.What if a page is huge?
maxQuotesPerPage to cap output. Some pages have hundreds of quotes; the default of 50 keeps cost predictable. Remove the cap if you need the full page.Do you support multilingual pages?
language to any ISO code with a Wikiquote subdomain — "de", "fr", "es", "pt", "it", "ru", and many more. Each language edition is a separate subdomain with its own article set.Do you support `Category:` pages?
Ready to run it?
Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.
Related Actors