# Europe PMC Date Range Export — All Matching Articles (`jpmarketdata/europepmc-literature-search-export`) Actor

Export every Europe PMC article matching a topic and publication-date range. Preserve bibliographic IDs and indexed accessions; oversized ranges fail before delivery instead of truncating.

- **URL**: https://apify.com/jpmarketdata/europepmc-literature-search-export.md
- **Developed by:** [h ichi](https://apify.com/jpmarketdata) (community)
- **Categories:** Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 1,000 research record delivereds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Europe PMC Complete Date Range Export

Export every article matching a biomedical topic and an inclusive publication-date range into structured bibliographic metadata. This completes a narrow literature curation window without silently substituting a top-results shortlist.

### Input

`query` defaults to `TITLE_ABS:asthma` and accepts1–500characters of Europe PMC topic/field/Boolean syntax. `publishedFrom`/`publishedTo` are inclusive valid ISO dates,default2026-10-01..2026-10-02. FIRST_PDATE and sort_date/sort_cited are reserved and cannot be embedded in query. `maxSafetyItems` defaults1000 and accepts1–1000. It is a safety cap,not an output limit: if source hitCount exceeds it,the run fails `refine-required`,saves count/date coverage metadata,and delivers/charges zero article rows. Narrow the date range to retrieve the complete subset. Invalid types,unknown fields,blank queries,malformed/reversed dates fail before retrieval. Source publication-date descending order and tie order are retained. Ordinary full-range example: TITLE_ABS:"SARS-CoV-2",2023-09-01..2023-09-11.

### Output

One row per matching source:id including title,PMID/PMCID/DOI,first publication date,ordered author/collective names,journal,publication types,indexed citations,open-access flag,hasTextMinedAccessions,all returned accession type labels,database cross-reference identifiers,full-text link metadata,source attribution and retrieval time. Missing optional fields are null/empty arrays. No abstract,affiliation,PDF or full-text content is copied. This is a complete matching article set within the accepted safety cap,not every field of the API or a guaranteed stable future corpus. Accessions are source-indexed metadata and may be absent; no linked datasets are fetched. Clinical evidence quality/reuse rights are not inferred. COVERAGE/SUMMARY record source hitCount,date range,selected rows,pages and coverageComplete; they are uncharged key-value metadata. Zero matching article ranges fail with no-matching-results and coverage metadata.

### Limits

Up to1000articles in ten100-row cursor pages and32HTTP requests including robots. Honor EMBL-EBI robots crawl-delay10seconds,sequential requests. First page establishes total and confirms all matches fit safety/PPE budget before further acquisition. A changed source count,duplicate identity/cursor,invalid date or short page fails the selected run. Acquisition180seconds,delivery90seconds,request30seconds;5MiB per body,64MiB aggregate,24MiB staged output,memory256MiB. Fixed first-party HTTPS API routes,robots gate,public DNS pinning;no credentials,cookies,browser,proxy or paid API. No automatic retry;blocks/rate-limits/timeouts/structure change fail visibly. All matched source data is staged and validated before any row delivery.

### Pricing

Local hypothesis:$0.001 per record-delivered unique article row,no start/trial charge. The complete matched range must fit PPE event allowance; if not,the run fails instead of shortening the range. Recheck allowance before each up-to50-row SDK push;short charge acknowledgement fails. Non-PPE saves results and summaries with uncharged SDK pushes. Source failures and SUMMARY are uncharged. SDK delivery has no full-run transaction or rollback guarantee;earlier successful batches can remain after later delivery failure. Repeated runs charge delivered rows again.

### Privacy

Ordered public author/collective names are bibliographic attribution only. Affiliations,researcher IDs,contacts,credentials,cookies and raw response headers are excluded. EMBL-EBI attribution is included;publishers retain rights over abstracts/article content,which are not copied.

# Actor input Schema

## `query` (type: `string`):

Europe PMC topic/field/Boolean expression,default TITLE_ABS:asthma,1–500characters. FIRST_PDATE and sort_date/sort_cited qualifiers are reserved for structured date/order inputs. On paid runs, saved result rows are billed; the run's spending limit in $ also applies.

## `publishedFrom` (type: `string`):

Inclusive valid ISO YYYY-MM-DD first-publication-date lower bound,default2026-10-01. Cannot exceed publishedTo.

## `publishedTo` (type: `string`):

Inclusive valid ISO YYYY-MM-DD first-publication-date upper bound,default2026-10-02. All matches are required; refine dates if the range exceeds safety cap.

## `maxSafetyItems` (type: `integer`):

Default1000,1–1000. Every matching article must fit this cap and the available run spending budget. If source hitCount exceeds it,the run fails refine-required with no article rows. This never truncates the result.

## Actor input object example

```json
{
  "query": "TITLE_ABS:asthma",
  "publishedFrom": "2026-10-01",
  "publishedTo": "2026-10-02",
  "maxSafetyItems": 1000
}
```

# Actor output Schema

## `results` (type: `string`):

Export every Europe PMC article matching a topic and publication-date range. Preserve bibliographic IDs and indexed accessions; oversized ranges fail before delivery instead of truncating.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("jpmarketdata/europepmc-literature-search-export").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("jpmarketdata/europepmc-literature-search-export").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call jpmarketdata/europepmc-literature-search-export --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jpmarketdata/europepmc-literature-search-export"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/oYCwAhWqmXghVuO1G/builds/kkXD3ngLAaOqVuodR/openapi.json
