Files

119 lines
3.7 KiB
Markdown

---
title: "NIST Data APIs"
task: ""
lineage_type: import
upstream_source: https://github.com/K-Dense-AI/scientific-agent-skills/blob/9c9bd2e9/skills/database-lookup/references/nist.md
upstream_sha: 9c9bd2e9
imported_at: 2026-06-26
prompt_class: prompt
upstream_changes: accepted
author: upstream
validated: false
---
# NIST Data APIs
## Overview
NIST provides several scientific databases. REST API availability varies by dataset.
## 1. NIST CODATA Fundamental Physical Constants
### Base URL
```
https://physics.nist.gov/cgi-bin/cuu
```
**No formal REST API.** Data is served via CGI scripts returning HTML. The constants can be accessed programmatically via structured URLs but responses are HTML, not JSON/XML.
**Workaround — machine-readable ASCII:**
```
https://physics.nist.gov/cuu/Constants/Table/allascii.txt
```
Returns a tab-delimited text file of all fundamental constants with values, uncertainties, and units.
**Individual constant lookup:**
```
https://physics.nist.gov/cgi-bin/cuu/Value?{constant_key}
```
Example keys: `bohrrada0` (Bohr radius), `c` (speed of light), `h` (Planck constant), `e` (electron charge), `me` (electron mass), `na` (Avogadro number), `k` (Boltzmann constant).
Example:
```
https://physics.nist.gov/cgi-bin/cuu/Value?h
```
Returns HTML page. Parse the value from the page content.
**No API key required. No rate limits documented.**
## 2. NIST Atomic Spectra Database (ASD)
### Base URL
```
https://physics.nist.gov/cgi-bin/ASD
```
**No formal REST API.** Queries are CGI-based, returning HTML. However, machine-readable output is available via specific parameters.
**Spectral lines query:**
```
https://physics.nist.gov/cgi-bin/ASD/lines1.pl?spectra={element}&low_w={min_wavelength}&upp_w={max_wavelength}&unit={unit}&format={format}
```
| Parameter | Type | Description |
|------------|--------|-------------|
| `spectra` | string | Element symbol or ion (e.g., `H`, `Fe`, `He+I`, `O+II`). |
| `low_w` | float | Lower wavelength bound. |
| `upp_w` | float | Upper wavelength bound. |
| `unit` | int | `0` = Angstroms, `1` = nm, `2` = um. |
| `format` | int | `0` = HTML, `1` = ASCII, `2` = CSV, `3` = tab-delimited. |
| `line_out` | int | `0` = all, `1` = only observed, `2` = only Ritz. |
| `show_obs_wl` | int | `1` = show observed wavelengths. |
| `show_calc_wl` | int | `1` = show Ritz wavelengths. |
| `A_out` | int | `1` = include transition probabilities. |
**Example — Hydrogen lines 3000-7000 Angstroms as CSV:**
```
https://physics.nist.gov/cgi-bin/ASD/lines1.pl?spectra=H&low_w=3000&upp_w=7000&unit=0&format=2&line_out=0&show_obs_wl=1&A_out=1
```
**Energy levels query:**
```
https://physics.nist.gov/cgi-bin/ASD/energy1.pl?spectra={element}&units={units}&format={format}
```
**No API key required. No formal rate limits but automated bulk queries are discouraged.**
## 3. NIST Chemistry WebBook
### Base URL
```
https://webbook.nist.gov/cgi/cbook.cgi
```
**No formal REST API.** CGI-based with HTML output. Structured URLs can be used.
**Search by name:**
```
https://webbook.nist.gov/cgi/cbook.cgi?Name={compound}&Units=SI
```
**Search by CAS number:**
```
https://webbook.nist.gov/cgi/cbook.cgi?ID={cas_number}&Units=SI
```
**Search by formula:**
```
https://webbook.nist.gov/cgi/cbook.cgi?Formula={formula}&Units=SI
```
**JCAMP-DX spectra (machine-readable):**
```
https://webbook.nist.gov/cgi/cbook.cgi?ID={cas_number}&Type=IR-Spec&Index=0&JCAMP=C{cas_no_dashes}
```
## Summary
NIST databases generally do **not** offer modern REST/JSON APIs. Data access is primarily through CGI endpoints returning HTML or delimited text. For programmatic use, the ASCII/CSV output options from ASD are the most practical. No authentication is required for any NIST endpoint.