ScienceDirect APIsciencedirect.com ↗
Fetch article title, authors, abstract, DOI, journal, publisher, and PDF URL from ScienceDirect by PII with one API call.
What is the ScienceDirect API?
The ScienceDirect API exposes 1 endpoint and returns 8 structured fields per article — including title, authors, abstract, DOI, journal name, publisher, PII, and a direct PDF download URL. The get_article endpoint accepts a PII string and delivers complete bibliographic metadata for any indexed ScienceDirect article, making it straightforward to integrate peer-reviewed literature data into research tools, reference managers, or data pipelines.
curl -X GET 'https://api.parse.bot/scraper/3d107287-66a2-41d3-803c-e0fa2eda1812/get_article?pii=S2590207524000108' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace sciencedirect-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: ScienceDirect SDK — fetch article metadata by PII."""
from parse_apis.sciencedirect_com_api import ScienceDirect, ArticleNotFound, InvalidPII
client = ScienceDirect()
# Fetch a single article by its Publisher Item Identifier (PII).
try:
article = client.articles.get(pii="S2590207524000108")
except ArticleNotFound:
print("Article not found for the given PII")
raise
# Access typed fields on the returned Article instance.
print(article.title)
print("Authors:", ", ".join(article.authors))
print("Journal:", article.journal)
print("DOI:", article.doi)
print("Publisher:", article.publisher)
print("PDF:", article.pdf_url)
print("Abstract preview:", article.abstract[:200])
print("exercised: articles.get")
Fetch metadata for a single ScienceDirect article by its PII (Publisher Item Identifier). Returns the article title, authors, publisher, journal name, DOI, abstract text, and PDF download URL. One upstream request per call; Cloudflare protection is solved automatically.
| Param | Type | Description |
|---|---|---|
| piirequired | string | ScienceDirect Publisher Item Identifier (PII) for the article, e.g. S2590207524000108. Found in the article URL path after /pii/. |
{
"type": "object",
"fields": {
"doi": "string — DOI identifier",
"pii": "string — the PII used to fetch the article",
"title": "string — article title",
"authors": "array of author full names (given name + surname)",
"journal": "string — journal title",
"pdf_url": "string — direct URL to the article PDF",
"abstract": "string — full abstract text",
"publisher": "string — publisher name (e.g. Elsevier, Cell Press)"
},
"sample": {
"data": {
"doi": "10.1016/j.bioflm.2024.100185",
"pii": "S2590207524000108",
"title": "The use of biomimetic surfaces to reduce single- and dual-species biofilms of Escherichia coli and Pseudomonas putida",
"authors": [
"Rita Teixeira-Santos",
"Ana Azevedo",
"Maria J. Romeu",
"Cristina I. Amador",
"Luciana C. Gomes",
"Kathryn A. Whitehead",
"Jelmer Sjollema",
"Mette Burmølle",
"Filipe J. Mergulhão"
],
"journal": "Biofilm",
"pdf_url": "https://www.sciencedirect.com/science/article/pii/S2590207524000108/pdfft",
"abstract": "The ability of bacteria to adhere to and form biofilms on food contact surfaces poses serious challenges...",
"publisher": "Elsevier"
},
"status": "success"
}
}About the ScienceDirect API
What the API Returns
The get_article endpoint accepts a single required parameter — pii — the Publisher Item Identifier found in the article's URL (e.g. S2590207524000108). The response includes the article title, a doi string, the journal name, the publisher (such as Elsevier or Cell Press), and a full abstract text field. Authors are returned as an array of full names constructed from given name and surname, so downstream parsing to separate first and last names is straightforward.
PDF and Identifier Fields
Two fields are especially useful for automated workflows: pdf_url provides a direct link to the article PDF, and pii echoes back the identifier used in the request. The doi field is a standard Digital Object Identifier, usable for cross-referencing with other bibliographic databases such as CrossRef or PubMed. Note that PDF access may still depend on institutional or personal subscription status at the destination URL.
Scope and Input Format
Every call maps one-to-one with a single ScienceDirect article. The PII must be well-formed — the 17-character alphanumeric identifier Elsevier assigns to each article. There is no batch endpoint; to retrieve metadata for multiple articles, issue one get_article call per PII. The API handles Cloudflare protection transparently, so no custom headers or session management is required on the caller's side.
The ScienceDirect API is a managed, monitored endpoint for sciencedirect.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sciencedirect.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official sciencedirect.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Populate a reference manager by resolving PII codes to full bibliographic records including authors and DOI.
- Build a literature review dashboard that displays abstracts and journal names for a curated reading list.
- Automate PDF archiving workflows using the
pdf_urlfield returned per article. - Enrich citation graphs by pairing the
doifield with CrossRef or PubMed lookups. - Power a research alert system that surfaces article titles and abstracts for newly published PIIs.
- Aggregate publisher-level statistics by collecting the
publisherandjournalfields across a corpus of articles.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ScienceDirect have an official developer API?+
What does `get_article` return for the authors field?+
authors field is an array of full name strings, each composed of a given name and surname. The order matches the author order listed on the article page. No additional author metadata such as ORCID identifiers, affiliations, or corresponding-author flags is included in the current response.Can I look up articles by DOI or keyword search instead of PII?+
Is the full article text available, or only the abstract?+
abstract field. Full-text content is not exposed. A pdf_url is returned, but access to the PDF itself depends on the requester's subscription status with Elsevier. You can fork this API on Parse and revise it to attempt full-text extraction where access permits.Does the API support batch requests for multiple PIIs at once?+
get_article call resolves exactly one PII. To retrieve metadata for a list of articles, you need to issue one request per PII. You can fork this API on Parse and revise it to add a batch endpoint that fans out requests internally.