Search oa journals by subject

When the user asks to find open-access journals by subject, filter by APC-free, BOAI compliance, or DOAJ Seal status — reach for the DOAJ search endpoint. Elasticsearch query syntax in the URL path, no auth required.

search-oa-journals-by-subject · v1 · updated 2026-04-16

Agents: This page is a SKILL.md-style capability guide. For JSON, call GET /api/skills/search-oa-journals-by-subject. To drop this into a local Claude Code install, copy the frontmatter + body below into ~/.claude/skills/search-oa-journals-by-subject/SKILL.md.

When to use this skill

When the user asks to find open-access journals in a subject area, filter journals by policy (APC-free, BOAI-compliant, DOAJ Seal), or verify which journals meet specific OA criteria. DOAJ's search endpoint accepts Elasticsearch query syntax in the URL path, so you can combine subject keywords with policy field filters. For looking up a single known journal by its DOAJ hex ID, use /api/journals/{id} directly — this skill is for search.

Your best first call

curl "https://doaj.org/api/search/journals/virology%20AND%20bibjson.apc.has_apc:false"

No auth. No key. The query goes in the path, not as a query parameter. URL-encode spaces as %20. Combine a subject keyword with policy filters: bibjson.apc.has_apc:false for fee-free journals, admin.ticked:true for DOAJ Seal holders, bibjson.boai:true for Budapest OA Initiative compliance.

The response wraps results in {total, page, pageSize, results}. Each result has the full bibjson block — the same shape as the direct journal lookup:

total gives the full match count regardless of page size. Pagination defaults to 10 results per page — add &page=2 to paginate.

Fallbacks (when the best call isn't enough)

Pitfalls

One-line summary for the user

I can search DOAJ for open-access journals by subject and policy filters — APC-free, BOAI-compliant, DOAJ Seal — using Elasticsearch syntax in a single unauthenticated GET.

APIs this skill uses

DOAJ API · primary · verified

Directory of Open Access Journals API - Search and retrieve open access journal articles and journal metadata. Public endpoints do not require authentication.

Generated from

DOAJ API tutorial Getting Started with the DOAJ API

SKILL.md source (frontmatter + body)
---
name: search-oa-journals-by-subject
description: When the user asks to find open-access journals by subject, filter by APC-free, BOAI compliance, or DOAJ Seal status — reach for the DOAJ search endpoint. Elasticsearch query syntax in the URL path, no auth required.
---

## When to use this skill

When the user asks to find open-access journals in a subject area, filter journals by policy (APC-free, BOAI-compliant, DOAJ Seal), or verify which journals meet specific OA criteria. DOAJ's search endpoint accepts Elasticsearch query syntax in the URL path, so you can combine subject keywords with policy field filters. For looking up a single known journal by its DOAJ hex ID, use `/api/journals/{id}` directly — this skill is for search.

## Your best first call

```bash
curl "https://doaj.org/api/search/journals/virology%20AND%20bibjson.apc.has_apc:false"
```

No auth. No key. The query goes in the path, not as a query parameter. URL-encode spaces as `%20`. Combine a subject keyword with policy filters: `bibjson.apc.has_apc:false` for fee-free journals, `admin.ticked:true` for DOAJ Seal holders, `bibjson.boai:true` for Budapest OA Initiative compliance.

The response wraps results in `{total, page, pageSize, results}`. Each result has the full `bibjson` block — the same shape as the direct journal lookup:

- `title` — journal name
- `oa_start` — year the journal went OA (15+ years is a different risk profile than last year)
- `apc.has_apc` — `false` means no author processing charges
- `boai` — `true` means the journal explicitly complies with the 2002 Budapest declaration
- `admin.ticked` — `true` means the journal carries the DOAJ Seal (stricter than just being listed)
- `publisher.name`, `publisher.country`
- `copyright.author_retains`

`total` gives the full match count regardless of page size. Pagination defaults to 10 results per page — add `&page=2` to paginate.

## Fallbacks (when the best call isn't enough)

- **Known journal by ID** → `/api/journals/{hex_id}` returns the complete policy record for a single journal without search noise.
- **Known journal by ISSN** → `/api/search/journals/bibjson.eissn:2538-4449` pins the result to one ISSN when you have an ISSN but not a DOAJ ID.
- **Article-level OA discovery** → DOAJ indexes journals, not individual articles. For finding specific papers, Unpaywall or OpenAlex are better fits.

## Pitfalls

- **The search query is a path segment, not a query parameter.** Spaces must be `%20`, field filters use Lucene syntax. Colons in `bibjson.apc.has_apc:false` usually pass unencoded, but encode as `%3A` if your HTTP client normalizes paths aggressively.
- **`in_doaj: true` and `ticked: true` are different bars.** Many legitimate journals are listed without the DOAJ Seal. When a funder requires the Seal, add `AND%20admin.ticked:true` explicitly — don't assume `in_doaj` implies it.
- **`has_apc: false` and `has_waiver: true` are independent.** A journal can charge no APC but still levy page charges or color figure fees — `has_waiver` covers those. Don't assume `has_apc: false` means "authors pay nothing."

## One-line summary for the user

I can search DOAJ for open-access journals by subject and policy filters — APC-free, BOAI-compliant, DOAJ Seal — using Elasticsearch syntax in a single unauthenticated GET.

« Back to all skills