Open Access Books Scraper — DOAB Metadata, ISBN & DOI
Pricing
from $6.00 / 1,000 book scrapeds
Open Access Books Scraper — DOAB Metadata, ISBN & DOI
Export open access books from the Directory of Open Access Books (DOAB): titles, authors, ISBNs, DOIs and PDF links for libraries. $9 per 1,000 books.
Pricing
from $6.00 / 1,000 book scrapeds
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Open Access Books Scraper exports scholarly open access books from the Directory of Open Access Books (DOAB) as clean records with title, authors, publisher, year, subjects, languages, ISBNs, DOI, DOAB handle, and a full-text link when DOAB lists one. It is built for librarians, researchers, and data teams, and costs $9.00 per 1,000 books on the FREE tier plus a $0.005 start fee.
What data does the open access books scraper return?
It returns one dataset record per unique DOAB book, with the fields below. Values that DOAB does not provide stay null or an empty list; nothing is guessed.
| Field | What it contains |
|---|---|
title, subtitle | Book title and subtitle |
authors | Authors and editors, as listed by DOAB |
publisher | Publishing house, for example Beltz Juventa or Taylor & Francis |
publicationYear | Four-digit publication year |
description | Abstract or blurb |
subjects | Subject keywords and classifications |
languages | Language codes such as eng or ger |
isbn | All ISBNs DOAB lists for the book |
doi | Book DOI when present |
handle | DOAB handle, for example 20.500.12854/175637 |
license | Licence text or URL when the record provides one |
recordUrl | DOAB record page |
fullTextUrl | Open access PDF or landing page when DOAB lists one |
source, scrapedAt | Always DOAB, plus the retrieval timestamp |
How does it search the Directory of Open Access Books?
It first queries DOAB's REST search; if that endpoint refuses access (HTTP 403, 404, 410, or 429), it reads DOAB's official public JSON metadata feed instead and filters it record by record. In October 2026 the REST search returned HTTP 403 ("address not allowed") to public networks, cloud runs included, so runs use the feed.
- REST mode supports DOAB's full query syntax, such as
history AND migrationordc.title:"open science", with paging bymaxPagesandpageSize. - Feed mode supports case-insensitive words, quoted phrases, AND/OR/NOT, and the fields
dc.title,dc.creator,dc.contributor.author,dc.publisher,dc.subject,dc.language.iso,dc.identifier.isbn,dc.identifier.doi,dc.date.issued,dc.rights, andhandle. Ranges, wildcards, and parentheses are rejected with a clear message instead of being approximated. - Feed mode scans the whole catalog (about 97,000 books in October 2026; a full no-match scan took about 2.5 minutes at the default 256 MB) and stops early once
maxResultsormaxPages × pageSizematches are found. Results follow the feed's export order, not relevance. A rare term that matches nothing ends withstatus: emptyafter a full scan;status: limitedappears only if a scan is cut short by the runtime guard.
Every run writes a SUMMARY record with status, accessMode (rest or metadata_feed), stopReason, feedRecordsExamined, counts, and warnings.
When should I use it, and when not?
Use it when you need:
- a list of open access books on a subject, from a publisher, or in a language, with ISBN and DOI for library catalog work;
- a book's DOAB record and full-text link from its handle;
- structured open access book metadata for a bibliography, a reading list, or an AI or RAG pipeline.
Do not use it when you need:
- journal articles, abstracts, or citation counts for papers: use Semantic Scholar Scraper or Google Scholar Scraper;
- who cites a work: use Citation Count & DOI Citations Scraper;
- rare, used, or for-sale book listings with prices: use viaLibri Scraper;
- the book files themselves: this Actor returns links, it does not download PDFs.
How do I run it?
Search by keyword or DOAB syntax:
{"query": "migration","maxResults": 25,"maxPages": 3,"pageSize": 25,"includeMetadata": true}
Fetch one exact book by handle:
{"handle": "20.500.12854/175637","maxResults": 1}
maxResults (1–500) caps the books returned and billed. maxPages (1–25) and pageSize (1–50) bound how far the search goes; in feed mode, maxPages × pageSize caps the number of matching books examined. Set includeMetadata to false for title, handle, and record URL only.
JavaScript (apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/doab-open-access-books-scraper').call({query: 'migration',maxResults: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((book) => [book.title, book.isbn, book.fullTextUrl]));
Python (apify-client 3.x)
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("muhammadafzal/doab-open-access-books-scraper").call(run_input={"query": "migration", "maxResults": 25})for book in client.dataset(run.default_dataset_id).iterate_items():print(book["title"], book["isbn"], book["fullTextUrl"])
Use it from an AI assistant
The Actor works from Claude, ChatGPT, Cursor, or any MCP client through Apify's MCP server. Add https://mcp.apify.com/?tools=muhammadafzal/doab-open-access-books-scraper as a server, then ask in plain language, for example: "Find 20 open access books about migration in DOAB and list each title with its ISBN and PDF link."
What does the output look like?
Records from the prefill run on 2026-10-26 (descriptions and subjects shortened):
[{"title": "Film and the Natural History of Destruction","subtitle": "Walter Benjamin for the Anthropocene","authors": ["Wright, Alan"],"publisher": "Taylor & Francis","publicationYear": 2026,"description": "Film and the Natural History of Destruction explores the interface between film, memory and ecological thought…","subjects": ["Environmental humanities", "Media archaeology"],"languages": ["eng"],"isbn": ["9781003695509", "9781040841945", "9781040844496"],"doi": "10.4324/9781003695509","handle": "20.500.12854/175637","license": null,"recordUrl": "https://directory.doabooks.org/handle/20.500.12854/175637","fullTextUrl": "https://library.oapen.org/bitstream/20.500.12657/112472/1/9781040841945.pdf","source": "DOAB","scrapedAt": "2026-10-26T06:51:26.182Z"},{"title": "Politische Artikulation von Zugewanderten","subtitle": "Beiräte, Vereine und Biografien","authors": ["Freuwört, Anke"],"publisher": "Beltz Juventa","publicationYear": 2026,"subjects": ["Migration", "Demokratie", "Teilhabe"],"languages": ["ger"],"isbn": ["9783593464794"],"doi": "10.12907/978-3-593-46479-4","handle": "20.500.12854/176141","recordUrl": "https://directory.doabooks.org/handle/20.500.12854/176141","fullTextUrl": "https://library.oapen.org/bitstream/20.500.12657/112736/1/9783593464794.pdf","source": "DOAB"}]
How much does it cost to scrape open access books?
You pay per book delivered, plus one start fee. Platform usage is included in these prices.
| Event | FREE | BRONZE | SILVER | GOLD, PLATINUM, DIAMOND |
|---|---|---|---|---|
| Book scraped (per book) | $0.009 | $0.008 | $0.007 | $0.006 |
| Actor start (per started GB of allocated memory) | $0.005 | $0.005 | $0.005 | $0.005 |
The default memory is 256 MB, so a run normally pays one start event. Worked totals on the FREE tier:
- Prefill run, 5 books: $0.005 + 5 × $0.009 = $0.050.
- Default run, 25 books: $0.005 + 25 × $0.009 = $0.230 (GOLD: $0.155).
A duplicate book is never charged twice, and the run stops cleanly when your maximum charge is reached.
Limits and reliability
- Up to 500 books per run; a 240-second search deadline keeps runs short. The 5-book prefill run finished in about 4 seconds.
- Results are deduplicated by handle, DOI, or record URL before they are saved and charged.
- Invalid input (a malformed handle, out-of-range limits) is rejected before any book is charged.
- A source failure ends the run as failed with a
SUMMARYdiagnostic; books already delivered are kept. - DOAB metadata depends on what publishers submit, so licences, DOIs, and full-text links are sometimes missing.
FAQ
Can I download the open access book PDFs?
No. The Actor returns fullTextUrl, the PDF or landing page DOAB links to, often in the OAPEN library. Download the files yourself under each book's licence.
Can I fetch one book by its DOAB handle?
Yes. Put the handle, such as 20.500.12854/175637, in handle and leave query empty. Handles must start with 20.500.12854/.
Why does my search say limited?
The REST search was unavailable, so the Actor scanned DOAB's metadata feed, and the scan was cut short by the runtime guard before it covered the whole catalog. feedRecordsExamined in SUMMARY shows how far it got. More matching books may exist; run it again or narrow the query with a field such as dc.subject:.
How many books can one run return?
Up to 500. The run stops earlier if the search runs out of matches, reaches maxPages × pageSize, or hits your maximum charge.
Is DOAB metadata free to reuse?
DOAB publishes its catalog metadata openly for reuse; check DOAB's metadata page for the current terms. Each book's own licence governs the content behind fullTextUrl.
Can I export the books to CSV or Excel?
Yes. Export the run's dataset as JSON, CSV, Excel, XML, or RSS from Apify Console, or read it through the API.
Can I run it on a schedule?
Yes. Save your input as a Task and attach an Apify schedule, for example to collect newly listed books on a subject each week.
Related Actors
- Citation Count & DOI Citations Scraper: incoming citations, references, and counts by DOI.
- Semantic Scholar Scraper: papers, authors, and citation counts.
- Google Scholar Scraper: Google Scholar search results.
- viaLibri Scraper: rare and antiquarian book listings with prices.
- US Government Datasets Scraper: Data.gov dataset metadata.
Legal and responsible use
The Actor reads public DOAB catalog metadata only. It does not log in, bypass access controls, or download book files. Reuse the metadata and linked books according to DOAB's terms and each book's licence; this tool grants no rights to copyrighted content.
Last verified: 2026-10-27