Skip to the content.

Quick Start Guide

This guide will get you up and running with PyEuropePMC in minutes.

Installation

pip install pyeuropepmc

Basic Usage

from pyeuropepmc.search import SearchClient

# Initialize the client
with SearchClient() as client:
    # Search for articles about cancer
    results = client.search(query="cancer", limit=10)

    # Print article titles
    for article in results["resultList"]["result"]:
        print(article.get("title", "No title"))

Advanced Search with QueryBuilder

from pyeuropepmc.query.query_builder import QueryBuilder

# Build complex queries with type safety
qb = QueryBuilder()

# Simple query
query = qb.keyword("machine learning").build()
print(f"Query: {query}")  # "machine learning"

# Complex query with multiple conditions
complex_query = (qb
    .keyword("cancer", field="title")
    .and_()
    .keyword("therapy")
    .and_()
    .date_range(start_year=2020, end_year=2023)
    .and_()
    .citation_count(min_count=10)
    .build())

print(f"Complex query: {complex_query}")
# "(TITLE:cancer) AND therapy AND (PUB_YEAR:[2020 TO 2023]) AND (CITED:[10 TO *])"
# Search with filters
with SearchClient() as client:
    results = client.search(
        query="machine learning",
        source="MED",
        sort="date",
        limit=20,
        format="json"
    )

    # Access article metadata
    for article in results["resultList"]["result"]:
        print(f"Title: {article.get('title', 'N/A')}")
        print(f"Authors: {article.get('authorString', 'N/A')}")
        print(f"DOI: {article.get('doi', 'N/A')}")
        print(f"Publication Year: {article.get('pubYear', 'N/A')}")
        print("---")

Supported Formats

Using Context Manager

with SearchClient() as client:
    results = client.search("CRISPR", limit=5)
    for article in results["resultList"]["result"]:
        print(article.get("title", "No title"))

Next Steps

Getting Help