Royal Society Publishing APIroyalsocietypublishing.org ↗
Access journals, issues, and articles from Royal Society Publishing. Search across 11 journals, retrieve abstracts, DOIs, authors, and impact factors.
What is the Royal Society Publishing API?
The Royal Society Publishing API provides structured access to all 11 Royal Society journals through 9 endpoints, covering journal metadata, issue listings, full article details, and cross-journal search. The get_article_details endpoint returns abstracts, keywords, author lists, DOI, and publication metrics for any article by DOI or URL. Researchers and developers can query current issues, browse historical volumes, or run full-text searches across the entire catalog.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/1aaa9342-35e0-404d-9ef4-f0527395abd3/list_journals' \ -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 royalsocietypublishing-org-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: Royal Society Publishing SDK — bounded, re-runnable."""
from parse_apis.royal_society_publishing_api import RoyalSociety, JournalCode, ArticleNotFound
client = RoyalSociety()
# List all journals — single-page collection
for journal in client.journals.list(limit=5):
print(journal.code, journal.name)
# Construct a journal by code and get its current issue
bio_letters = client.journal(JournalCode.RSBL)
issue = bio_letters.current_issue()
print(issue.volume, issue.issue, issue.publication_date)
# Browse articles in the current issue
for article in issue.articles[:3]:
print(article.title, article.doi, article.url)
# Get a specific issue by volume and issue number
specific_issue = bio_letters.get_issue(volume="20", issue="1")
print(specific_issue.volume, specific_issue.issue)
for article in specific_issue.articles[:2]:
print(article.title, article.authors)
# Search articles across all journals
for result in client.articles.search(query="evolution", limit=3):
print(result.title, result.url, result.abstract_excerpt)
# Get full article details by DOI — with typed error handling
try:
full_article = client.articles.get(doi="10.1098/rsbl.2026.0087")
print(full_article.title, full_article.journal, full_article.publication_date)
except ArticleNotFound as exc:
print(f"Article not found: {exc.doi}")
# Navigate from search result to full details
result = client.articles.search(query="climate change", limit=1).first()
if result:
detail = result.details()
print(detail.title, detail.doi, detail.abstract[:80])
print("exercised: journals.list / current_issue / get_issue / articles.search / articles.get / result.details")
Get the complete list of Royal Society journals with their short codes, names, and URLs. Returns all 11 journals in a single response.
No input parameters required.
{
"type": "object",
"fields": {
"items": "array of journal objects with code, name, and url"
},
"sample": {
"data": {
"items": [
{
"url": "https://royalsocietypublishing.org/rsbl",
"code": "rsbl",
"name": "Biology Letters"
}
]
},
"status": "success"
}
}About the Royal Society Publishing API
Journal and Issue Data
The list_journals endpoint returns all 11 Royal Society journals in a single call, each with a short code, full name, and url. That code is the key input for most other endpoints. get_journal_info extends this with issn, eissn, description, and impact_factor — note that some fields may be empty strings when the journal page does not surface that information. get_current_issue and get_issue both return volume, issue, publication_date, and an articles array containing title, authors, doi, and url for each article in that issue. Use list_issues_by_year with a four-digit year and a journal_code to enumerate every issue published in a given calendar year.
Article Retrieval and Search
get_article_details accepts either a doi (e.g. 10.1098/rsbl.2026.0087) or a full url on royalsocietypublishing.org — at least one is required. It returns the full abstract, keywords array, authors, journal name, publication_date, and a metrics object. For discovery, search_articles runs full-text queries across all journals and supports pagination via the page parameter; a * wildcard returns all indexed articles. Results include an abstract_excerpt alongside title, authors, doi, and url.
Browsing by Subject and Recency
browse_by_subject filters paginated article results by a numeric subject_id — for example, 24 for behaviour or 104 for ecology — and returns the same article summary shape as search. get_latest_articles retrieves recently published articles sorted by publication date descending, with an optional journal_code filter to narrow results to a single journal. Both endpoints return abstract_excerpt rather than the full abstract; use get_article_details to retrieve the complete text for any specific article.
The Royal Society Publishing API is a managed, monitored endpoint for royalsocietypublishing.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when royalsocietypublishing.org 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 royalsocietypublishing.org 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?+
- Monitor new publications in a specific Royal Society journal by polling
get_current_issueand comparing DOIs. - Build a literature database seeded with abstracts, keywords, and author lists from
get_article_details. - Track journal impact factors and ISSN data over time using
get_journal_infofor all 11 journals. - Aggregate all articles published in a given year by combining
list_issues_by_yearwithget_issue. - Create subject-filtered article feeds for ecology, behaviour, or other disciplines via
browse_by_subject. - Power a cross-journal search interface using
search_articleswith pagination support. - Alert researchers to new articles in their field by querying
get_latest_articleswith a journal filter.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Royal Society Publishing have an official developer API?+
What does `get_article_details` return compared to the article summaries in search results?+
get_article_details returns the full abstract, a keywords array, complete authors list, doi, publication_date, journal name, and a metrics object. Search and browse endpoints (search_articles, browse_by_subject, get_latest_articles) return only an abstract_excerpt alongside title, authors, DOI, and URL — suitable for listing views but not for full-text analysis.Are full article PDFs or HTML body text available?+
Can I retrieve citation counts or reference lists for an article?+
get_article_details endpoint returns a metrics object, but structured citation counts and reference lists are not part of the current response shape. You can fork this API on Parse and revise it to add citation or reference data if the journal pages surface that information.How do I find the correct `subject_id` values for `browse_by_subject`?+
24 for behaviour and 104 for ecology. Other subject IDs correspond to subject categories used on the Royal Society Publishing site. There is currently no dedicated endpoint that lists all valid subject IDs and their labels.