API Access
Access dataset files directly from scripts, code, or AI agents.
Browse dataset files
API Access
Access dataset files directly from scripts, code, or AI agents.
Each file has a stable URL (r-link) that you can use directly in scripts, apps, or AI agents. These URLs are permanent and safe to hardcode.
Start with these files — they give you everything you need to understand and access the dataset.
- 1. Fetch datapackage.json to inspect schema and resources
- 2. Download data resources listed in datapackage.json
- 3. Read README.md for full context
Data Views
Brent crude spot price, daily (USD/barrel)
WTI crude spot price, daily (USD/barrel)
Data Files
Explore with AIBrent crude spot price, daily
| Field | Type | Description |
|---|---|---|
| Date | date | Observation date (YYYY-MM-DD). |
| Price | number | Europe Brent spot price FOB, US dollars per barrel. |
Download
Download CSVAbout
- Last updated
- 10 October 2026
- Total rows
- ...
- Format
- CSV
- File size
- 169 kB
Brent crude spot price, weekly
| Field | Type | Description |
|---|---|---|
| Date | date | Friday ending the week (YYYY-MM-DD). |
| Price | number | Europe Brent spot price FOB, US dollars per barrel, weekly average. |
Download
Download CSVAbout
- Last updated
- 10 October 2026
- Total rows
- ...
- Format
- CSV
- File size
- 34.8 kB
Brent crude spot price, monthly
| Field | Type | Description |
|---|---|---|
| Date | date | 15th of the month (YYYY-MM-DD); represents that month's average. |
| Price | number | Europe Brent spot price FOB, US dollars per barrel, monthly average. |
Download
Download CSVAbout
- Last updated
- 10 October 2026
- Total rows
- ...
- Format
- CSV
- File size
- 8.04 kB
Brent crude spot price, annual
| Field | Type | Description |
|---|---|---|
| Date | date | 30 June of the year (YYYY-MM-DD); represents that year's average. |
| Price | number | Europe Brent spot price FOB, US dollars per barrel, annual average. |
Download
Download CSVAbout
- Last updated
- 10 October 2026
- Total rows
- ...
- Format
- CSV
- File size
- 676 B
WTI crude spot price, daily
| Field | Type | Description |
|---|---|---|
| Date | date | Observation date (YYYY-MM-DD). |
| Price | number | Cushing/OK WTI spot price FOB, US dollars per barrel. |
Download
Download CSVAbout
- Last updated
- 10 October 2026
- Total rows
- ...
- Format
- CSV
- File size
- 173 kB
WTI crude spot price, weekly
| Field | Type | Description |
|---|---|---|
| Date | date | Friday ending the week (YYYY-MM-DD). |
| Price | number | Cushing/OK WTI spot price FOB, US dollars per barrel, weekly average. |
Download
Download CSVAbout
- Last updated
- 10 October 2026
- Total rows
- ...
- Format
- CSV
- File size
- 36 kB
WTI crude spot price, monthly
| Field | Type | Description |
|---|---|---|
| Date | date | 15th of the month (YYYY-MM-DD); represents that month's average. |
| Price | number | Cushing/OK WTI spot price FOB, US dollars per barrel, monthly average. |
Download
Download CSVAbout
- Last updated
- 10 October 2026
- Total rows
- ...
- Format
- CSV
- File size
- 8.28 kB
WTI crude spot price, annual
| Field | Type | Description |
|---|---|---|
| Date | date | 30 June of the year (YYYY-MM-DD); represents that year's average. |
| Price | number | Cushing/OK WTI spot price FOB, US dollars per barrel, annual average. |
Download
Download CSVAbout
- Last updated
- 10 October 2026
- Total rows
- ...
- Format
- CSV
- File size
- 687 B
About this dataset
Europe Brent and Cushing/OK WTI crude oil spot prices, US dollars per barrel (FOB), from the U.S. Energy Information Administration, at four frequencies.
See SUMMARY.md for descriptive statistics and what stands out (generated by enrich.ts, node enrich.ts).
| Resource | Coverage |
|---|---|
data/brent-daily.csv | 1987-05-20 → 2026-09-01 |
data/brent-weekly.csv | Friday ending each week |
data/brent-monthly.csv | dated to the 15th; monthly average |
data/brent-year.csv | dated to 30 June; annual average |
data/wti-daily.csv | 1986-01-02 → 2026-09-01 |
data/wti-weekly.csv / wti-monthly.csv / wti-year.csv | as Brent |
build.ts reproduces all eight CSVs from the archived EIA .xls workbooks. Run: npm install && node build.ts. The build script and raw snapshot live in the DataPressr repository, not on DataHub.
Stories using this data
- WTI Went Negative. Brent Didn't.: on 20 April 2020 the WTI spot price was -$36.98 a barrel, the only negative value in these series, while Brent was $17.36.
Source & licence
U.S. Energy Information Administration, Petroleum & Other Liquids — Spot Prices
(eia.gov/dnav/pet/pet_pri_spt_s1_d.htm). Raw .xls workbooks and
retrieval details in archive/PROVENANCE.md, retrieved 2026-09-05.
EIA data are a U.S. Government work and in the public domain; EIA asks for an acknowledgement that includes a publication date, e.g. "Source: U.S. Energy Information Administration (Sep 2026)." This tidy compilation is released as PDDL-1.0.
Notes
- Date conventions come from EIA, not imposed here: daily = observation date, weekly = Friday ending the week, monthly = 15th, annual = 30 June.
- Excel serial dates are timezone-naive. Parsing them via JS
Dateobjects shifts every date by the local UTC offset (it turned 1987-05-20 into 1987-05-19 here).build.tsconverts the raw serials withXLSX.SSF.parse_date_code, which has no offset. - One dependency: SheetJS
xlsx. The EIA files are legacy BIFF8.xls(OLE2 compound documents), whichexceljscannot read. The npm release, 0.18.5, has two high-severity advisories that npm cannot fix: prototype pollution (GHSA-4r6h-8v6p-xvw6, fixed in 0.19.3) and ReDoS (GHSA-5pgg-2g8v-p4x9, fixed in 0.20.2). SheetJS publishes fixed versions only on its own CDN. The build reads only the archived EIA files, so the risk is low. A monitored build that parses freshly downloaded files should move to the CDN release or to the EIA API.
Relation to core/oil-prices
DataHub also has core/oil-prices, git-synced from datasets/oil-prices and auto-updated daily from the same EIA workbooks. This dataset is an independent re-wrangle with the DataPressr structure skill, kept as a dated snapshot rather than a living series. What differs:
- Snapshot vs living. This is EIA as of 2026-09-05; core follows EIA every day, so it has later prices.
- Historical rows EIA has since dropped. Between 6 and 20 September 2026 EIA's daily workbooks dropped hundreds of historical daily observations, about 890 Brent days and 740 WTI days (for example Brent on 1987-12-21): on 2026-10-09 EIA's
RBRTEd.xlshas 9,102 daily rows against 9,967 here. Core follows the current file, so this snapshot keeps days that core no longer has. Refreshing the archive from EIA today would drop them here too.
The days missing from EIA's current daily files
Checked on 2026-10-10 against EIA's workbooks released 7 October 2026. The missing days look like a fault in EIA's published files, not a revision of the data, so this dataset keeps them.
- Which days. 890 Brent days (1987-12-21 to 2014-10-14, mostly 1993–2006; 1994 keeps only 138 of 252 trading days) and 743 WTI days (1986-01-31 to 2015-02-04, heaviest in 1999, 2003 and 2011). They are ordinary trading days spread evenly across Monday to Friday. They are not holidays, and they are not days that repeat the previous day's price. 174 dates are missing from both series.
- Nothing was revised. None of the 9,077 Brent or 9,493 WTI days still in the file changed value. The monthly and annual workbooks lost no rows.
- EIA still publishes the missing values elsewhere. EIA's API (v2,
petroleum/pri/spt) still returns every missing day, with the same price as this snapshot. - EIA's own weekly averages still count them. For 471 of the 475 Brent weeks that contain a missing day, EIA's current weekly price is the mean of the full set of daily prices in this snapshot. Only 12 of them match the mean of the shorter daily file. WTI gives 450 of 469 against 12. The weekly workbooks also dropped some rows at random (3 Brent weeks, 21 WTI weeks), even though those weeks still have daily prices.
- The rows are missing at the source, not lost in download. The rows are absent from the
.xlssheet itself (it ends at row 9,106, not 9,971), and EIA's HTML history page (RBRTED.htm) is missing the same days. Repeat downloads return identical bytes.
Policy. This snapshot keeps the 2026-09-05 values. A future refresh should not just copy the current .xls files, because that would delete these days. Either take the daily series from the EIA API or keep earlier days that the new file drops, and flag them. A few small differences between the API and the workbooks are unrelated to this: the API has some holidays the workbooks lack, and a handful of 2014–2024 dates in each source are not in the other.
- Resource names. Core calls its resources
brent-week/brent-month(and the WTI equivalents); here they arebrent-weekly/brent-monthly. The file paths are the same. - Line endings. LF here, CRLF in core.
At the 2026-09-05 snapshot the eight CSVs were content-identical to core apart from line endings; see docs/structure-benchmark.md in datasets/datapressr for that comparison.