Next free-source hunt
We check for new free data every weekday.
Datasets / Research & Grey Literature
doaj.org/

DOAJ (Directory of Open Access Journals) API

Freeauth: none for search (API keys are mainly for publishers)CC0-1.0#research-grey-literature#papers#historical-data✓ verified Nov 3, 2026

DOAJ (Directory of Open Access Journals) API

DOAJ's public API searches its directory of open access journals and the article records held for them: titles, journal, year, identifiers such as DOI and ISSN, abstracts and full-text links, plus journal details such as the licence. Search routes take Elasticsearch query-string syntax with short field names such as title, doi, issn and publisher; no key is needed to search, as DOAJ API keys are mainly for publishers who submit data.

Coverage

Journals listed in DOAJ and the article records supplied for them; DOAJ notes that "not all fields will be available on all records." Access to DOAJ's data dumps is granted case by case. Publication delay: Not stated.

Verdict

Use it to check whether a journal is listed in DOAJ, pull open access article records for a topic, or resolve an ISSN or DOI to journal and licence details. DOAJ waives copyright in article metadata under CC0, while its website content is CC BY-SA 4.0. All API routes are limited to two requests a second on average, with bursts of up to five queued.

Get the free weekly email

Free weekly email of newly verified free data. Unsubscribe by emailing us.

Use in your agent

Load DOAJ article records for a search into pandas and Parquet. Checked against the provider's documentation on Nov 3, 2026.

Raw skill file (/skills/doaj-api.md)Also in our MCP server: call get_ingestion_skill with {"slug": "doaj-api"}.

Access

  • No key to search; API keys are mainly for publishers who submit data.
  • Base URL https://doaj.org/api/; search routes are /search/articles/{query} and /search/journals/{query} with page and pageSize.

Request

bash
curl 'https://doaj.org/api/search/articles/bibjson.title:%22systemic%20risk%22?page=1&pageSize=50'

Format

JSON with total, page, pageSize and results; each article has id and bibjson with title, year, journal (title, ISSNs, publisher), identifier (type doi, eissn, pissn), abstract, keywords and link (type fulltext).

Load into pandas and Parquet

Needs Python 3 with requests, pandas and pyarrow.

python
"""DOAJ article metadata -> pandas -> Parquet. No key for search; 2 requests a second."""
import requests
import pandas as pd

r = requests.get("https://doaj.org/api/search/articles/bibjson.title:%22systemic%20risk%22",
                 params={"page": 1, "pageSize": 50}, timeout=60)
r.raise_for_status()
js = r.json()
rows = []
for a in js["results"]:
    b = a["bibjson"]
    rows.append({
        "doaj_id": a["id"],
        "title": b.get("title"),
        "journal": (b.get("journal") or {}).get("title"),
        "year": b.get("year"),
        "doi": next((i.get("id") for i in b.get("identifier", []) if i.get("type", "").lower() == "doi"), None),
        "fulltext": next((l.get("url") for l in b.get("link", []) if l.get("type") == "fulltext"), None),
    })
df = pd.DataFrame(rows)
df.to_parquet("doaj_articles.parquet", index=False)
print(len(df), "articles on this page of", js["total"], "matches")

Run by us on 2026-11-03 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 50 articles on this page of 395 matches

Limits

  • Two requests per second on all API routes; bursts of up to five requests per user are queued.
  • Not all fields are available on all records.

Quirks

  • The query goes in the URL path, so URL-encode quotes and spaces.
  • Short field names (title, doi, issn, publisher, abstract) cannot take the .exact suffix; use the full bibjson path for exact matches.

Terms and attribution

  • Article metadata copyright is waived under CC0; DOAJ website content is CC BY-SA 4.0.
  • Data dumps are granted case by case under the licences that accompany the data.

Sources

Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer