OpenAIRE Publication Search
openairesearchlegacy/search-publications
Searches the OpenAIRE research graph for publications matching your keywords, optionally narrowed by author and by acceptance-date range, and returns the total match count plus, for each record on the page, its title, authors, date, publisher, journal, access right, DOI, abstract, subjects and links. Up to 20 records per page; sort by acceptance date is optional. OpenAIRE data (CC BY 4.0), flattened from the legacy Search API and served by Eden Engine; not an official OpenAIRE 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
Data from OpenAIRE (OpenAIRE Graph, CC BY 4.0); OpenAIRE is acknowledged as the data source. Served by Eden Engine; not an official OpenAIRE 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: "openairesearchlegacy/search-publications" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "openairesearchlegacy/search-publications" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "openairesearchlegacy/search-publications", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "openairesearchlegacy/search-publications", 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 24, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"keywords"
],
"properties": {
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number, starting at 1. Leave out for the first page."
},
"size": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 1,
"description": "Records per page, 1 to 20. Defaults to 5."
},
"sort": {
"enum": [
"resultdateofacceptance,descending",
"resultdateofacceptance,ascending"
],
"type": "string",
"description": "Sort by acceptance date, newest or oldest first. Leave out for OpenAIRE's own order."
},
"author": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Author name to require, for example 'Hansen'."
},
"to_date": {
"type": "string",
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
"description": "Latest acceptance date, YYYY-MM-DD."
},
"keywords": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Search words, all of which must match, for example 'climate change'."
},
"from_date": {
"type": "string",
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
"description": "Earliest acceptance date, YYYY-MM-DD."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"total",
"results"
],
"properties": {
"page": {
"type": [
"integer",
"null"
],
"description": "Page number answered."
},
"size": {
"type": [
"integer",
"null"
],
"description": "Page size answered."
},
"total": {
"type": "integer",
"description": "Total number of records matching the query, across all pages."
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title"
],
"properties": {
"id": {
"type": [
"string",
"null"
],
"description": "OpenAIRE record id."
},
"doi": {
"type": [
"string",
"null"
],
"description": "DOI without the resolver prefix."
},
"type": {
"type": [
"string",
"null"
],
"description": "publication or dataset."
},
"urls": {
"type": "array",
"items": {
"type": "string"
},
"description": "DOI link and landing pages, up to 5."
},
"title": {
"type": [
"string",
"null"
],
"description": "Main title."
},
"authors": {
"type": "array",
"items": {
"type": "string"
},
"description": "Authors as 'given names, surname', up to 30."
},
"journal": {
"type": [
"string",
"null"
],
"description": "Journal name."
},
"abstract": {
"type": [
"string",
"null"
],
"description": "Abstract with markup removed, cut at 1500 characters."
},
"language": {
"type": [
"string",
"null"
],
"description": "Language code."
},
"subjects": {
"type": "array",
"items": {
"type": "string"
},
"description": "Keywords and fields of science, up to 15."
},
"publisher": {
"type": [
"string",
"null"
],
"description": "Publisher."
},
"identifiers": {
"type": "array",
"items": {
"type": "object",
"required": [
"scheme",
"value"
],
"properties": {
"value": {
"type": "string"
},
"scheme": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "Persistent identifiers (doi, pmid, pmc, handle...), up to 10."
},
"access_right": {
"type": [
"string",
"null"
],
"description": "Access right, for example Open Access."
},
"authors_total": {
"type": "integer",
"description": "Number of authors on the record."
},
"publicly_funded": {
"type": [
"boolean",
"null"
],
"description": "True when the work is marked as publicly funded."
},
"date_of_acceptance": {
"type": [
"string",
"null"
],
"description": "Date of acceptance or publication, YYYY-MM-DD."
},
"open_access_colour": {
"type": [
"string",
"null"
],
"description": "Open access colour: gold, green, bronze, hybrid."
}
},
"additionalProperties": false
},
"description": "The records on this page; empty when nothing matches."
}
},
"additionalProperties": false
}