| name | plos-open-access-api |
| description | Search PLOS open access journals with full-text Solr-powered API |
| metadata | {"openclaw":{"emoji":"🔬","category":"literature","subcategory":"search","keywords":["PLOS","open access","biomedical","Solr search","full text","peer reviewed"],"source":"https://api.plos.org/"}} |
PLOS Search API
Overview
PLOS (Public Library of Science) publishes 7 peer-reviewed open access journals covering biology, medicine, genetics, and more. The Search API provides Solr-powered full-text search across all PLOS content — 350K+ articles, all freely available under CC-BY licenses. No authentication required. Particularly valuable for biomedical and life sciences systematic reviews.
API Endpoint
Base URL
https://api.plos.org/search
Search Examples
curl "https://api.plos.org/search?q=CRISPR+gene+editing&rows=20&wt=json"
curl "https://api.plos.org/search?q=title:\"machine learning\"+AND+abstract:biomarker&wt=json"
curl "https://api.plos.org/search?q=microbiome&fq=journal:\"PLOS ONE\"&wt=json"
curl "https://api.plos.org/search?q=COVID-19+vaccine&\
fq=publication_date:[2024-01-01T00:00:00Z TO 2026-12-31T23:59:59Z]&wt=json"
curl "https://api.plos.org/search?q=climate+change&fq=article_type:\"Research Article\"&wt=json"
curl "https://api.plos.org/search?q=deep+learning&fl=id,title,author,publication_date,score&wt=json"
Search Fields
| Field | Description | Example |
|---|
title | Article title | title:"attention mechanism" |
abstract | Abstract text | abstract:neural+network |
body | Full text body | body:transformer |
author | Author name | author:"Vaswani" |
subject | Subject area | subject:"Neuroscience" |
journal | Journal name | journal:"PLOS Medicine" |
Query Parameters
| Parameter | Description | Default |
|---|
q | Solr query (supports AND/OR/NOT) | Required |
fq | Filter query (narrows without affecting score) | None |
fl | Fields to return (comma-separated) | All |
rows | Results per page (max 999) | 10 |
start | Pagination offset | 0 |
sort | Sort order | score desc |
wt | Format: json or xml | xml |
hl | Enable highlighting | false |
Available Return Fields
| Field | Type | Description |
|---|
id | string | DOI |
title | string | Article title |
author | array | Author names |
abstract | string | Abstract text |
body | string | Full text (large) |
publication_date | date | Publication date |
journal | string | Journal name |
article_type | string | Article type |
subject | array | Subject categories |
score | float | Relevance score |
PLOS Journals
| Journal | Scope |
|---|
| PLOS ONE | Multidisciplinary |
| PLOS Biology | Life sciences |
| PLOS Medicine | Clinical medicine |
| PLOS Genetics | Genetics and genomics |
| PLOS Computational Biology | Computational biology |
| PLOS Pathogens | Infectious disease |
| PLOS Neglected Tropical Diseases | Tropical medicine |
Python Usage
import requests
BASE_URL = "https://api.plos.org/search"
def search_plos(query: str, rows: int = 20,
journal: str = None,
from_date: str = None,
fields: str = None) -> list:
"""Search PLOS open access articles."""
params = {
"q": query,
"wt": "json",
"rows": rows,
"fl": fields or "id,title,author,abstract,publication_date,journal,score",
}
fq_parts = []
if journal:
fq_parts.append(f'journal:"{journal}"')
if from_date:
fq_parts.append(
f"publication_date:[{from_date}T00:00:00Z TO NOW]"
)
if fq_parts:
params["fq"] = " AND ".join(fq_parts)
resp = requests.get(BASE_URL, params=params)
resp.raise_for_status()
data = resp.json()
results = []
for doc in data.get("response", {}).get("docs", []):
results.append({
"doi": doc.get("id"),
"title": doc.get("title"),
"authors": doc.get("author", []),
"date": doc.get("publication_date", "")[:],
: doc.get(),
: (doc.get(, [])[])[:]
(doc.get(), )
(doc.get(, ))[:],
})
results
() -> :
params = {
: ,
: ,
: ,
}
resp = requests.get(BASE_URL, params=params)
resp.raise_for_status()
docs = resp.json().get(, {}).get(, [])
docs[].get(, ) docs
papers = search_plos(
,
journal=,
from_date=,
)
p papers:
()
()
papers = search_plos()
p papers:
()
Advanced Solr Queries
q=abstract:"machine learning"~5
q=title:"CRISPR"^2 OR abstract:"CRISPR"
q=title:neuro*
fq=publication_date:[2024-01-01T00:00:00Z TO 2024-12-31T23:59:59Z]
Rate Limits
No formal rate limit, but PLOS requests courtesy delays of 1 request per second for bulk operations. No authentication needed.
References