Search DOAJ Articles
doaj/search-articles
Searches the article index of the Directory of Open Access Journals by text or field (title, doi, issn, publisher, abstract) and returns each article's title, abstract, DOI, authors with affiliation and ORCID, journal, pages, keywords, subjects and full-text links. Metadata from the Directory of Open Access Journals (DOAJ), https://doaj.org, released under CC0 and reduced to the fields listed. Served by Eden Engine; not an official DOAJ product.
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.
Data source
Metadata from the Directory of Open Access Journals (DOAJ), https://doaj.org, released under CC0 and reduced to the fields listed. Served by Eden Engine; not an official DOAJ product.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "doaj/search-articles" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "doaj/search-articles" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "doaj/search-articles", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "doaj/search-articles", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 26, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"pattern": "\\S",
"maxLength": 300,
"minLength": 1,
"description": "Search text, or an Elasticsearch query string with field prefixes. For example climate change, doi:10.1002/ece3.8411, issn:1932-6203 or abstract:herring. Wildcards (*), regular expressions and fuzzy (~) searches are refused."
},
"page": {
"type": "integer",
"default": 1,
"maximum": 1000,
"minimum": 1,
"description": "Page number, starting at 1. DOAJ refuses any page whose last result is beyond the 1000th (page times page_size above 1000 is a validation error)."
},
"sort": {
"enum": [
"title:asc",
"title:desc",
"created_date:desc",
"created_date:asc",
"last_updated:desc"
],
"type": "string",
"description": "Sort order. Leave out for best match first. created_date:desc is newest additions first; last_updated:desc is most recently changed first."
},
"page_size": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Results per page, 1 to 50, default 10."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"items"
],
"properties": {
"page": {
"type": [
"integer",
"null"
],
"description": "Page returned."
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "DOAJ article id (32 hex characters); use it with get-article."
},
"doi": {
"type": [
"string",
"null"
],
"description": "DOI."
},
"year": {
"type": [
"integer",
"null"
],
"description": "Publication year."
},
"issue": {
"type": [
"string",
"null"
],
"description": "Issue number."
},
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "URL."
},
"type": {
"type": [
"string",
"null"
],
"description": "Link type, for example fulltext."
},
"content_type": {
"type": [
"string",
"null"
],
"description": "HTML, PDF, ePUB or XML."
}
},
"description": "A link.",
"additionalProperties": true
},
"description": "Links to the full text."
},
"month": {
"type": [
"integer",
"null"
],
"description": "Publication month, 1 to 12."
},
"title": {
"type": [
"string",
"null"
],
"description": "Article title."
},
"volume": {
"type": [
"string",
"null"
],
"description": "Volume."
},
"authors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "Author name."
},
"orcid": {
"type": [
"string",
"null"
],
"description": "ORCID iD."
},
"affiliation": {
"type": [
"string",
"null"
],
"description": "Affiliation."
}
},
"description": "An author.",
"additionalProperties": true
},
"description": "Authors."
},
"created": {
"type": [
"string",
"null"
],
"description": "When the record was created in DOAJ, UTC."
},
"abstract": {
"type": [
"string",
"null"
],
"description": "Abstract; cut to 500 characters in lists."
},
"end_page": {
"type": [
"string",
"null"
],
"description": "Last page."
},
"keywords": {
"type": "array",
"items": {
"type": "string",
"description": "A keyword."
},
"description": "Author keywords."
},
"subjects": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": [
"string",
"null"
],
"description": "Subject code, for example an LCC class."
},
"term": {
"type": [
"string",
"null"
],
"description": "Subject heading."
},
"scheme": {
"type": [
"string",
"null"
],
"description": "Classification scheme, for example LCC."
}
},
"description": "A subject.",
"additionalProperties": true
},
"description": "Subject classification."
},
"start_page": {
"type": [
"string",
"null"
],
"description": "First page."
},
"last_updated": {
"type": [
"string",
"null"
],
"description": "When the record last changed in DOAJ, UTC."
},
"journal_issns": {
"type": "array",
"items": {
"type": "string",
"description": "An ISSN."
},
"description": "Journal ISSNs."
},
"journal_title": {
"type": [
"string",
"null"
],
"description": "Journal title."
},
"journal_country": {
"type": [
"string",
"null"
],
"description": "Journal country, ISO 3166 code."
},
"journal_publisher": {
"type": [
"string",
"null"
],
"description": "Journal publisher."
},
"abstract_truncated": {
"type": "boolean",
"description": "True when the abstract was cut."
}
},
"description": "An article.",
"additionalProperties": true
},
"description": "Matches in the order requested."
},
"total": {
"type": [
"integer",
"null"
],
"description": "Matches in DOAJ for this query."
},
"page_size": {
"type": [
"integer",
"null"
],
"description": "Results per page."
}
},
"additionalProperties": true
}