Open Science Framework API
Free Open Science Framework API with no key for public data: projects, registrations, preprints, files and contributors in JSON:API format. Tested example and live response.
Endpoint tested and returned HTTP 200 on 21 Aug 2026
What is the Open Science Framework API?
The Open Science Framework API is a free REST interface to OSF's public research projects, preregistrations, preprints and files. Public data is readable without authentication; a personal access token is only needed for private content or to write.
OSF is where a large slice of psychology, education and social science now keeps its preregistrations, materials and data. The API exposes all of the public side: projects (called nodes), their contributors, their file trees, registrations and the preprint servers OSF hosts. For meta-research and reproducibility tooling it is the primary source, because preregistrations carry timestamps that cannot be edited after the fact.
The API follows JSON:API strictly, which is a mixed blessing. Every object separates `attributes` from `relationships`, and relationships are returned as links rather than embedded data — so getting a project's contributors means following `relationships.contributors.links.related.href` rather than reading an array. Bracketed query parameters (`page[size]`, `filter[title]`) need URL-encoding in most HTTP clients. Anonymous access is throttled fairly aggressively, so anything beyond casual polling wants a token even though the data itself is public.
Quick facts
- Base URL
https://api.osf.io/v2- Authentication
- No key needed to read public nodes, registrations and preprints. A free personal access token raises the rate limit and is required for private projects or any write operation.
- Rate limit
- Anonymous requests are throttled per IP and will return HTTP 429 under sustained use. Authenticated requests with a personal access token get a substantially higher allowance.
- Pricing
- Free. OSF is run by the non-profit Center for Open Science; individual projects set their own licence, exposed as `node_license`.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the Open Science Framework API
Every request below was executed against the live API on 21 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. List public OSF projects, one per page
GET https://api.osf.io/v2/nodes/?page%5Bsize%5D=1
curl 'https://api.osf.io/v2/nodes/?page%5Bsize%5D=1'const res = await fetch("https://api.osf.io/v2/nodes/?page%5Bsize%5D=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.osf.io/v2/nodes/?page%5Bsize%5D=1", timeout=20)
res.raise_for_status()
print(res.json()){
"data": [
{
"id": "wmx2h",
"type": "nodes",
"attributes": {
"title": "The effect of anonymity on willingness to testify",
"description": "",
"category": "project",
"custom_citation": null,
"date_created": "2025-02-05T10:40:56.699961",
"date_modified": "2026-08-21T07:38:31.695545",
"registration": false,
"preprint": false,
"fork": false,
"collection": false,
"tags": [],
"access_requests_enabled": true,
"node_license": null,
"analytics_key": "",
"current_user_can_comment": false,
"current_user_permissions": [
"read"
],
"current_user_is_contributor": false,
"current_user_is_contributor_or_group_member": false,
"wiki_enabled": true,
"public": true,
"subjects": []
},
"relationships": {
"children": {
"links": {
"related": {
"href": "https://api.osf.io/v2/nodes/wmx2h/children/",
"meta": {}
}
}
},
"collected_in": {
"links": {
"related": {
"href": "https://api.osf.io/v2/nodes/wmx2h/collections/",
"meta": {}
}
}
},
"comments": {
"links": {
"related": {
"href": "https://api.osf.io/v2/nodes/wmx2h/comments/?filter%5Btarget%5D=wmx2h",
"meta": {}
}
}
},
"contributors": {
"links": {Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
page[size] | query | Optional | Results per page, up to 100. Bracket characters must be URL-encoded. 10 |
page | query | Optional | One-based page number. 1 |
filter[title] | query | Optional | Filter nodes by title substring. Most attributes support a `filter[...]` form. replication |
embed | query | Optional | Embed a related resource inline instead of returning a link, saving a round trip. contributors |
sort | query | Optional | Sort field; prefix with `-` for descending. -date_modified |
Response fields
data[].idstring- The five-character OSF GUID, which is also the public URL path for the project.
data[].typestring- JSON:API resource type — `nodes`, `registrations`, `preprints`, `files` and so on.
attributes.title / descriptionstring- Project title and description as entered by the researchers.
attributes.categorystring- Self-declared project type such as `project`, `data`, `analysis` or `methods and measures`.
attributes.registrationboolean- True for frozen preregistrations, which cannot be edited after submission.
attributes.publicboolean- Whether the node is publicly visible. The anonymous API only ever returns true here.
relationshipsobject- Links to related resources. Follow the `related.href` values, or use `embed` to inline them.
What you can build with the Open Science Framework API
- Harvest preregistrations for a meta-research study
- Mirror a lab's public project list onto its own website
- Monitor a project for new files or contributors
- Cross-reference preprints to their underlying data and materials
- Check whether an analysis plan was registered before data collection
Common errors and how to fix them
429
Anonymous throttle exceeded.
Fix: Slow down and cache. A free personal access token, sent as a bearer header, raises the ceiling considerably.
400 on filter or page parameters
Square brackets were sent unencoded.
Fix: Encode them as `%5B` and `%5D`. Several HTTP clients do this automatically and several do not.
Empty relationships
JSON:API returns links, not embedded objects.
Fix: Follow `relationships.<name>.links.related.href`, or add `embed=<name>` to inline the resource in the same response.
404 on a project you can see in a browser
The node is private or view-only.
Fix: Anonymous API access sees public nodes only. View-only links are a web-interface feature and do not extend to the API.
Open Science Framework API — frequently asked questions
Do I need an OSF account to use the API?
Not for reading public projects, registrations and preprints — those work anonymously. You need a free personal access token for private content, for writing, and in practice for any sustained read volume because of the anonymous rate limit.
What is the difference between a node and a registration on OSF?
A node is a live project that contributors can edit. A registration is a frozen, timestamped snapshot of a node, typically a preregistered analysis plan, which cannot be changed afterwards. That immutability is why registrations are the interesting object for meta-research.
Why are contributors not included in the project response?
OSF follows the JSON:API specification, which returns relationships as links rather than embedded data. Either follow the link in `relationships.contributors` or request `embed=contributors` to have it inlined.
Can I download files through the API?
Yes. File objects carry download links that resolve through OSF's storage service. The metadata API describes the file tree; the actual bytes come from those separate URLs.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
JSON Path Finder
Evaluate a dot/bracket path against your JSON and list every leaf path for discovery. Free online JSON path finder that runs 100% in your browser.
JSON to CSV Converter
Convert a JSON array of objects to CSV online. Automatic column headers from the union of all keys, delimiter choice and proper quoting — all in-browser.
Alternatives to Open Science Framework API
If Open Science Framework does not fit, these science & space apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| NASA APOD | Free NASA Astronomy Picture of the Day API. Daily space images with expert explanations, HD URLs and archive access back to 1995. Tested curl example. | Key | Yes | 19 Aug 2026 |
| Open Notify ISS | Free API returning the International Space Station's live latitude and longitude. No key, updates in real time. Tested curl example and live JSON response. | No key | Yes | 19 Aug 2026 |
| USGS Earthquake | Free USGS earthquake API with no key: live global seismic events as GeoJSON, filterable by magnitude, time and location. Tested curl example and live response. | No key | Yes | 19 Aug 2026 |
| Launch Library 2 | Free rocket launch API with no key: upcoming and past launches from every space agency, with rockets, missions, pads and live stream links. Tested example. | No key | Yes | 19 Aug 2026 |
| RCSB PDB | Free RCSB Protein Data Bank API with no key: experimental metadata, citations, resolution and assembly details for every deposited 3D macromolecular structure. Tested example included. | No key | Yes | 21 Aug 2026 |
| Reactome ContentService | Free Reactome ContentService API with no key: query curated biological pathways, reactions, participants and cross-references. CC0 licensed. Tested example and live response included. | No key | Yes | 21 Aug 2026 |
Open Science Framework is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.