Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Search open access journals and articles in the DOAJ directory
.claude/skills/brycewang-stanford-doaj-api/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -14% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 19% | 0% |
The Directory of Open Access Journals (DOAJ) is a community-curated online directory that indexes and provides access to high quality, open access, peer-reviewed journals. Founded in 2003, DOAJ currently indexes over 20,000 journals and 9 million articles from 130 countries, covering all areas of science, technology, medicine, social sciences, arts, and humanities.
DOAJ serves as a quality filter for open access publishing. Journals must meet strict criteria to be included, including editorial review, transparent policies, and adherence to open access principles. This makes DOAJ particularly valuable for researchers who need to verify whether a journal is a legitimate open access outlet, librarians curating discovery systems, and developers building tools that surface OA content.
The DOAJ API provides free, unauthenticated access to search and retrieve journal and article metadata. All data is available under a CC BY-SA license. The API returns JSON and supports Elasticsearch-style queries for advanced filtering.
No authentication required. The DOAJ API is fully open and free to use. No API key, registration, or email is needed. There are no published rate limits, but users should be respectful and avoid sending excessive concurrent requests. For bulk data access, DOAJ provides data dumps at https://doaj.org/docs/public-data-dump/.
GET https://doaj.org/api/search/articles/{search_query}| Param | Type | Required | Description | |-------|------|----------|-------------| | search_query | string | Yes | Search query (URL path parameter, supports field-specific search) | | page | integer | No | Page number (default: 1) | | pageSize | integer | No | Results per page (default: 10, max: 100) | | sort | string | No | Sort field (e.g., created_date:desc) |
bash curl "https://doaj.org/api/search/articles/climate+change?page=1&pageSize=10"
total count and results array. Each result contains bibjson with title, abstract, author, journal.title, identifier (DOI, ISSN), link (full-text URL), year, month, keywords, and subject.GET https://doaj.org/api/search/journals/{search_query}| Param | Type | Required | Description | |-------|------|----------|-------------| | search_query | string | Yes | Journal search query | | page | integer | No | Page number (default: 1) | | pageSize | integer | No | Results per page (default: 10, max: 100) |
bash curl "https://doaj.org/api/search/journals/bioinformatics?page=1&pageSize=5"
bibjson with title, alternative_title, identifier (ISSN, EISSN), publisher, institution, subject, license, apc (article processing charge info), language, and editorial.review_process.GET https://doaj.org/api/search/articles/doi:{doi}| Param | Type | Required | Description | |-------|------|----------|-------------| | doi | string | Yes | The DOI to look up |
bash curl "https://doaj.org/api/search/articles/doi:10.1371/journal.pone.0213676"
GET https://doaj.org/api/search/journals/issn:{issn}| Param | Type | Required | Description | |-------|------|----------|-------------| | issn | string | Yes | The ISSN to look up |
bash curl "https://doaj.org/api/search/journals/issn:1932-6203"
No published rate limits. DOAJ does not enforce strict API quotas. However, the service is maintained by a small nonprofit team. Best practices include limiting requests to a reasonable rate (2-5 per second), caching results, and using the public data dump for large-scale analyses. Abusive usage may result in IP blocking without notice.
Check if a journal is indexed in DOAJ (a proxy for quality and legitimacy):
bashcurl -s "https://doaj.org/api/search/journals/issn:2045-2322" | jq '{total: .total, title: .results[0].bibjson.title, publisher: .results[0].bibjson.publisher.name, license: .results[0].bibjson.license[0].type}'
Search for articles within a specific discipline with full-text links:
bashcurl -s "https://doaj.org/api/search/articles/bibjson.subject.term:neuroscience?pageSize=20" | jq '.results[] | {title: .bibjson.title, journal: .bibjson.journal.title, url: .bibjson.link[0].url, year: .bibjson.year}'
Determine if a journal charges fees for publishing:
bashcurl -s "https://doaj.org/api/search/journals/issn:2041-1723" | jq '.results[0].bibjson | {title: .title, has_apc: .apc.has_apc, apc_amount: .apc.max[0].price, currency: .apc.max[0].currency}'
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | pass→pass | 11,727 | 8,895 | -24% | 1 | 1 | 0% | 1,900 | 2,997 | +58% | 0 | 0 | — |
case-13 | pass→pass | 16,005 | 3,011 | -81% | 1 | 1 | 0% | 2,743 | 2,019 | -26% | 0 | 0 | — |
case-01 | fail→pass | 22,012 | 15,402 | -30% | 1 | 1 | 0% | 3,386 | 3,974 | +17% | 0 | 0 | — |
case-02 | fail→pass | 24,959 | 12,659 | -49% | 1 | 1 | 0% | 4,407 | 3,780 | -14% | 0 | 0 | — |
case-04 | pass→pass | 10,855 | 7,647 | -30% | 1 | 1 | 0% | 1,732 | 2,804 | +62% | 0 | 0 | — |
case-05 | pass→pass | 8,683 | 7,348 | -15% | 1 | 1 | 0% | 1,653 | 2,725 | +65% | 0 | 0 | — |
case-06 | pass→pass | 10,100 | 2,816 | -72% | 1 | 1 | 0% | 2,054 | 2,060 | +0% | 0 | 0 | — |
case-07 | fail→pass | 8,513 | 2,627 | -69% | 1 | 1 | 0% | 1,498 | 1,995 | +33% | 0 | 0 | — |
case-08 | pass→pass | 9,901 | 3,723 | -62% | 1 | 1 | 0% | 1,719 | 2,226 | +29% | 0 | 0 | — |
case-09 | fail→pass | 14,006 | 5,347 | -62% | 1 | 1 | 0% | 2,285 | 2,614 | +14% | 0 | 0 | — |
case-10 | pass→pass | 8,851 | 4,364 | -51% | 1 | 1 | 0% | 1,373 | 2,218 | +62% | 0 | 0 | — |
case-11 | fail→pass | 11,154 | 3,601 | -68% | 1 | 1 | 0% | 1,743 | 2,080 | +19% | 0 | 0 | — |
case-12 | fail→pass | 8,600 | 6,124 | -29% | 1 | 1 | 0% | 1,522 | 2,586 | +70% | 0 | 0 | — |
case-14 | pass→pass | 7,167 | 5,680 | -21% | 1 | 1 | 0% | 1,072 | 2,550 | +138% | 0 | 0 | — |
case-15 | fail→pass | 7,057 | 4,684 | -34% | 1 | 1 | 0% | 1,231 | 2,340 | +90% | 0 | 0 | — |
case-16 | pass→pass | 6,793 | 4,485 | -34% | 1 | 1 | 0% | 1,175 | 2,276 | +94% | 0 | 0 | — |
case-17 | pass→pass | 6,981 | 5,527 | -21% | 1 | 1 | 0% | 1,149 | 2,511 | +119% | 0 | 0 | — |
case-18 | fail→pass | 11,701 | 3,286 | -72% | 1 | 1 | 0% | 2,137 | 2,123 | -1% | 0 | 0 | — |
case-19 | pass→pass | 8,797 | 6,315 | -28% | 1 | 1 | 0% | 1,572 | 2,709 | +72% | 0 | 0 | — |
case-20 | fail→pass | 5,778 | 1,790 | -69% | 1 | 1 | 0% | 927 | 1,760 | +90% | 0 | 0 | — |
case-21 | pass→pass | 7,534 | 5,498 | -27% | 1 | 1 | 0% | 1,368 | 2,466 | +80% | 0 | 0 | — |
case-22 | pass→pass | 7,854 | 5,537 | -30% | 1 | 1 | 0% | 1,289 | 2,485 | +93% | 0 | 0 | — |
case-23 | pass→pass | 4,159 | 2,132 | -49% | 1 | 1 | 0% | 716 | 1,871 | +161% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +39 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.