Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Search and retrieve open access research papers via CORE aggregator
.claude/skills/brycewang-stanford-core-api-guide/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 94% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -45% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 25% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -5% | 0% |
CORE (COnnecting REpositories) is the world's largest aggregator of open access research papers, providing access to over 130 million articles harvested from thousands of data providers worldwide. The CORE API enables programmatic search, retrieval, and analysis of scholarly full-text content across repositories, journals, and preprint servers.
The API is particularly valuable for researchers conducting systematic reviews, bibliometric analyses, and literature mining tasks. Unlike many scholarly APIs that only provide metadata, CORE specializes in delivering full-text content, making it essential for text mining and natural language processing workflows in academic research.
CORE's v3 API provides a RESTful interface with JSON responses, supporting complex search queries with Boolean operators, field-specific filtering, and batch operations. It is free for non-commercial academic use, though an API key is required to access the service.
CORE requires a free API key for all requests. Register at https://core.ac.uk/services/api to obtain one.
Always store your API key in an environment variable and reference it in requests:
bashexport CORE_API_KEY=$CORE_API_KEY
Pass the key via the Authorization header:
bashcurl -H "Authorization: Bearer $CORE_API_KEY" \ "https://api.core.ac.uk/v3/search/works?q=machine+learning"
Search across the entire CORE corpus with full-text and metadata queries.
GET https://api.core.ac.uk/v3/search/works?q={query}&limit={n}&offset={n}Parameters:
q (required): Search query string, supports Boolean operators (AND, OR, NOT)limit: Number of results (default 10, max 100)offset: Pagination offsetentity_type: Filter by type (e.g., journal-article, preprint)Example: Search for climate change papers with full text:
bashcurl -s -H "Authorization: Bearer $CORE_API_KEY" \ "https://api.core.ac.uk/v3/search/works?q=climate+change+adaptation&limit=5" \ | python3 -m json.tool
Python example:
pythonimport requests import os headers = {"Authorization": f"Bearer {os.environ['CORE_API_KEY']}"} params = { "q": "deep learning AND medical imaging", "limit": 20, "offset": 0 } resp = requests.get("https://api.core.ac.uk/v3/search/works", headers=headers, params=params) data = resp.json() for result in data.get("results", []): print(f"Title: {result.get('title')}") print(f"DOI: {result.get('doi')}") print(f"Year: {result.get('yearPublished')}") print(f"Full text length: {len(result.get('fullText', ''))}") print("---")
Retrieve a specific paper by its CORE ID or DOI.
GET https://api.core.ac.uk/v3/works/{core_id}bashcurl -s -H "Authorization: Bearer $CORE_API_KEY" \ "https://api.core.ac.uk/v3/works/doi:10.1234/example.doi" \ | python3 -m json.tool
Retrieve multiple works in a single request using POST with a list of IDs.
bashcurl -s -X POST -H "Authorization: Bearer $CORE_API_KEY" \ -H "Content-Type: application/json" \ -d '[12345, 67890, 11111]' \ "https://api.core.ac.uk/v3/works"
List or search CORE's data providers (repositories, journals).
GET https://api.core.ac.uk/v3/data-providers?q={query}Systematic Literature Review: Use Boolean queries to replicate a search strategy across the full-text corpus. Combine with date filters to identify papers within a specific time window, then export results for screening in tools like Rayyan or Covidence.
Full-Text Mining: Retrieve full-text content programmatically for NLP pipelines. Extract named entities, key phrases, or citation contexts at scale across thousands of papers.
Repository Coverage Analysis: Query data providers to understand which institutional repositories contribute to a specific field, useful for bibliometric and open-access policy research.
Trend Detection: Run time-series queries for specific terms and track publication volume over years to identify emerging research fronts.
offset and limit for large result sets; do not fetch all results in one call| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 12,544 | 18,885 | +51% | 1 | 1 | 0% | 2,095 | 2,439 | +16% | 0 | 0 | — |
case-02 | pass→pass | 10,761 | 5,527 | -49% | 1 | 1 | 0% | 1,806 | 2,290 | +27% | 0 | 0 | — |
case-03 | fail→pass | 6,189 | 2,402 | -61% | 1 | 1 | 0% | 880 | 1,707 | +94% | 0 | 0 | — |
case-04 | pass→pass | 5,374 | 2,289 | -57% | 1 | 1 | 0% | 899 | 1,715 | +91% | 0 | 0 | — |
case-05 | fail→pass | 18,660 | 3,189 | -83% | 1 | 1 | 0% | 3,656 | 2,005 | -45% | 0 | 0 | — |
case-06 | fail→pass | 7,526 | 2,359 | -69% | 1 | 1 | 0% | 1,358 | 1,701 | +25% | 0 | 0 | — |
case-07 | fail→pass | 9,929 | 2,020 | -80% | 1 | 1 | 0% | 1,705 | 1,616 | -5% | 0 | 0 | — |
case-08 | pass→pass | 10,947 | 5,767 | -47% | 1 | 1 | 0% | 1,536 | 2,240 | +46% | 0 | 0 | — |
case-09 | fail→pass | 15,090 | 2,697 | -82% | 1 | 1 | 0% | 2,601 | 1,801 | -31% | 0 | 0 | — |
case-10 | pass→pass | 10,294 | 6,991 | -32% | 1 | 1 | 0% | 1,778 | 2,559 | +44% | 0 | 0 | — |
case-11 | fail→pass | 15,097 | 14,226 | -6% | 1 | 1 | 0% | 2,158 | 3,411 | +58% | 0 | 0 | — |
case-12 | pass→pass | 5,700 | 4,582 | -20% | 1 | 1 | 0% | 919 | 2,027 | +121% | 0 | 0 | — |
case-13 | pass→pass | 8,032 | 6,467 | -19% | 1 | 1 | 0% | 1,357 | 2,305 | +70% | 0 | 0 | — |
case-14 | pass→pass | 7,157 | 3,199 | -55% | 1 | 1 | 0% | 1,164 | 1,923 | +65% | 0 | 0 | — |
case-15 | pass→pass | 4,673 | 2,783 | -40% | 1 | 1 | 0% | 827 | 1,712 | +107% | 0 | 0 | — |
case-16 | pass→pass | 7,505 | 3,364 | -55% | 1 | 1 | 0% | 1,307 | 1,978 | +51% | 0 | 0 | — |
case-17 | pass→pass | 3,290 | 1,882 | -43% | 1 | 1 | 0% | 639 | 1,690 | +164% | 0 | 0 | — |
case-18 | pass→pass | 6,062 | 1,420 | -77% | 1 | 1 | 0% | 942 | 1,582 | +68% | 0 | 0 | — |
case-19 | pass→pass | 12,180 | 12,124 | -0% | 1 | 1 | 0% | 2,099 | 3,335 | +59% | 0 | 0 | — |
case-20 | fail→fail | 19,281 | 16,325 | -15% | 1 | 1 | 0% | 3,129 | 4,470 | +43% | 0 | 0 | — |
case-21 | pass→pass | 6,592 | 2,138 | -68% | 1 | 1 | 0% | 1,180 | 1,678 | +42% | 0 | 0 | — |
case-22 | fail→pass | 15,822 | 13,755 | -13% | 1 | 1 | 0% | 2,670 | 3,854 | +44% | 0 | 0 | — |
case-23 | pass→pass | 6,210 | 1,858 | -70% | 1 | 1 | 0% | 891 | 1,603 | +80% | 0 | 0 | — |
case-24 | pass→pass | 4,330 | 1,740 | -60% | 1 | 1 | 0% | 692 | 1,546 | +123% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted. The headline lift of +33 percentage points is the difference between those two pass rates over the 24 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.