Next free-source hunt
We check for new free data every weekday.
Datasets / Research & Grey Literature
osti.gov/

OSTI.GOV API (U.S. DOE research results)

FreeTerms restrict useauth: noneProvider terms#research-grey-literature#papers#technical-reports#historical-data✓ verified Nov 3, 2026

⚠️ Permission needed beyond reading, downloading and analysing

OSTI's FAQs say:

“Although much of the material in OSTI.GOV is subject to copyright protection under U.S. law, OSTI.GOV users may read, download, and analyze the available material by virtue of the Federal Government's reserved rights.”
“If OSTI.GOV users wish to do more than read, download, and analyze available material, they should contact the respective authors or publishers for permission.”
“If you’re interested in using OSTI.GOV records and data for an AI/ML/LLM project, please reach out to OSTI at apis@osti.gov”

Source: OSTI.GOV FAQs (checked Nov 3, 2026). This isn't legal advice.

Catalog entries with CC0 metadata about research outputs include:

Each source has its own terms; read its licence note before you use it.

OSTI.GOV API (U.S. DOE research results)

The OSTI.GOV API from the U.S. Department of Energy's Office of Scientific and Technical Information queries DOE's repository of research information resulting from DOE research funding: technical reports, journal articles and accepted manuscripts, datasets, software, patents, conference papers and more. Records come back as JSON, XML or BibTeX, 20 per page by default, with paging links in the Link header; no key is needed.

Coverage

OSTI says OSTI.GOV makes "over 75 years of research results from DOE and predecessor agencies discoverable". Some records are citation-only, with no full text available from OSTI. The documented v1 API is marked as a release candidate, to be replaced by an official v1 release. Publication delay: Not stated.

Verdict

Use it to search DOE-funded technical reports and other research results, for example energy storage, grid or materials work from the national laboratories. Terms restrict use of the documents: OSTI says users may read, download and analyze the material under the Federal Government's reserved rights and must ask the authors or publishers for permission to do more, while items labelled "U.S. Government Work" may be freely copied and redistributed. OSTI asks anyone planning an AI/ML/LLM project with its records to contact apis@osti.gov first. The v1 API is a release candidate, so expect changes.

Get the free weekly email

Free weekly email of newly verified free data. Unsubscribe by emailing us.

Use in your agent

Load OSTI.GOV records for a search into pandas and Parquet. Checked against the provider's documentation on Nov 3, 2026.

Raw skill file (/skills/osti-api.md)Also in our MCP server: call get_ingestion_skill with {"slug": "osti-api"}.

Access

  • No key or account.
  • Endpoint https://www.osti.gov/api/v1/records with q, field filters, rows and page; send Accept: application/json (or application/xml, application/x-bibtex).

Request

bash
curl -H 'Accept: application/json' 'https://www.osti.gov/api/v1/records?q=grid-scale+battery+storage&publication_date_start=01/01/2025&rows=100&page=1'

Format

A JSON array of records with osti_id, title, product_type, publication_date, doi, authors, research_orgs, sponsor_orgs, description and links (citation and fulltext). X-Total-Count and Link headers carry paging.

Load into pandas and Parquet

Needs Python 3 with requests, pandas and pyarrow.

python
"""OSTI.GOV records (DOE-funded research) -> pandas -> Parquet. No key."""
import requests
import pandas as pd

params = {"q": "grid-scale battery storage", "publication_date_start": "01/01/2025", "rows": 100, "page": 1}
r = requests.get("https://www.osti.gov/api/v1/records", params=params,
                 headers={"Accept": "application/json"}, timeout=90)
r.raise_for_status()
recs = r.json()
rows = [{
    "osti_id": x.get("osti_id"),
    "title": x.get("title"),
    "product_type": x.get("product_type"),
    "publication_date": x.get("publication_date"),
    "doi": x.get("doi"),
    "research_orgs": "; ".join(x.get("research_orgs") or []),
    "url": next((l.get("href") for l in x.get("links", []) if l.get("rel") == "citation"), None),
} for x in recs]
df = pd.DataFrame(rows)
df.to_parquet("osti_records.parquet", index=False)
print(len(df), "records on this page; X-Total-Count:", r.headers.get("X-Total-Count"))

Run by us on 2026-11-03 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 100 records on this page; X-Total-Count: 1892

Limits

  • 20 records per page by default; set rows and page, and follow the Link header rel=next.
  • A request rate limit is not stated.

Quirks

  • The v1 API is a release candidate and may change before the official v1 release.
  • Date filters use MM/DD/YYYY, for example publication_date_start=01/01/2025.

Terms and attribution

  • Material may be read, downloaded and analyzed under the Government's reserved rights; doing more needs permission from the authors or publishers.
  • OSTI asks AI/ML/LLM projects to contact apis@osti.gov first.

Sources

  • https://www.osti.gov/api/v1/docs: “The OSTI.GOV API allows you to query the Department of Energy's repository of research information resulting from DOE research funding.”
  • https://www.osti.gov/api/v1/docs: “Requests that return multiple records will be paginated to 20 records by default”
  • https://www.osti.gov/faqs: “If OSTI.GOV users wish to do more than read, download, and analyze available material, they should contact the respective authors or publishers for permission.”

Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer