Open Science Framework

Science API · Global · Research preprints and projects

TL;DR

The OSF (Open Science Framework) API provides programmatic access to millions of research preprints, registered studies, and academic projects across all scientific fields. Search by keyword, author, or discipline, and retrieve full bibliographic metadata including abstracts, authors, publication dates, license information, and download links. OSF is developed by the Center for Open Science and serves as a central hub for open research — from psychology and medicine to physics and computer science. Essential for literature reviews, research discovery, and meta-science.

Quick start: https://api.osf.io/v2/preprints/?filter[title]=climate

No API key needed — just make a request!

Climate preprints: https://api.osf.io/v2/preprints/?filter[title]=climate

How to Use This API

1. Search Preprints by Title

https://api.osf.io/v2/preprints/?filter[title]=machine%20learning

2. List Preprints by Provider

https://api.osf.io/v2/preprints/?filter[provider]=osf

3. Get a Single Preprint

https://api.osf.io/v2/preprints/abcd1234/

4. Registered Studies

https://api.osf.io/v2/registrations/?filter[description]=clinical%20trial

5. JavaScript — Search Preprints

async function searchPreprints(query) {
  const resp = await fetch(
    `https://api.osf.io/v2/preprints/?filter[title]=${query}&page[size]=5`
  );
  const data = await resp.json();
  
  data.data.forEach(p => {
    const attrs = p.attributes;
    console.log(`Title: ${attrs.title}`);
    console.log(`Date: ${attrs.date_published?.slice(0, 10) || 'N/A'}`);
    console.log(`License: ${attrs.license?.name || 'N/A'}`);
    console.log(`Abstract: ${attrs.description?.slice(0, 100)}...`);
    console.log('---');
  });
}

searchPreprints('quantum computing');

6. Python — Download Preprint Metadata

import requests

def list_preprints(discipline, limit=10):
    resp = requests.get(
        'https://api.osf.io/v2/preprints/',
        params={
            'filter[description]': discipline,
            'page[size]': limit
        }
    )
    data = resp.json()
    
    print(f'Recent preprints related to "{discipline}":')
    for item in data['data']:
        a = item['attributes']
        authors = [c['name'] for c in item.get('relationships', {})
                   .get('contributors', {}).get('links', {})
                   .get('related', {}).get('data', [])]
        print(f'  • {a["title"]}')
        print(f'    Published: {a["date_published"][:10]}')
        print(f'    Download: {a.get("preprint_doi")}')
        print()

list_preprints('neuroscience')

Frequently Asked Questions

What is OSF?
The Open Science Framework is a free, open-source platform that supports researchers in managing their workflow, sharing data, and publishing preprints.
Do I need an API key?
No, read-only access to public data is completely free and requires no authentication.
What scientific disciplines are covered?
All disciplines — psychology, medicine, biology, physics, computer science, engineering, social sciences, arts and humanities, and more.
Can I access full-text articles?
Preprints include an abstract and download link. Some are open access full text. The API returns bibliographic metadata in JSON format.
How is the data paginated?
Use page[size] (default 10, max 100) and page[number] parameters. Response includes links to next/previous pages.
What filter options are available?
Filter by title, description, provider, date_created, date_published, and more. Use the format filter[field]=value.

API Details

API URL
https://api.osf.io/v2/
Documentation
api.osf.io/v2/docs
Category
Science
Authentication
Not Required (read-only)
Geographic Coverage
Global — research from institutions worldwide

What You Can Build