BLS Official Print (CPI, PPI, CES)
Pricing
$2.00 / 1,000 bls observations
BLS Official Print (CPI, PPI, CES)
One dataset row per BLS Public Data API v2 observation. PPE $0.002 per row.
Pricing
$2.00 / 1,000 bls observations
Rating
0.0
(0)
Developer
oddsmith Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
What does BLS Official Print do?
One dataset row per observation from the BLS Public Data API v2. This is official print, not a scrape of bls.gov HTML. The Actor POSTs to https://api.bls.gov/publicAPI/v2/timeseries/data/.
Why use it
- Drop CPI, PPI, and CES print into a scheduler or a notebook without copying tables off bls.gov.
- Keep suppressed months as
value: nullwithvalue_raw: "-"and the bureau footnote. No fabricated numbers. - Optionally ask BLS for net and percent-change calculations (
calculations: true) and annual averages. - Cite the series. This SKU does not forecast, nowcast, or wrap non-BLS series.
What you get
Each dataset item is one observation. You are billed the row event once per item actually written, including suppressed - months (those are real BLS rows, not invented values).
| Field | Type | Notes |
|---|---|---|
series_id | string | BLS series identifier |
survey | string | Inferred from prefix: CPI, CPI-W, C-CPI, PPI, PPI-industry, CES, ECI, CPS, LAUS, or UNKNOWN |
year | string | Observation year |
period | string | M01–M13 or quarter codes |
period_name | string | January, Annual, etc. |
value | number | null | Numeric print, or null when BLS published - / NA |
value_raw | string | Raw BLS value string |
latest | boolean | True when BLS flagged the point as latest |
footnotes | array | Non-empty footnote objects |
calculations | object | null | BLS net/percent-change object when you set input calculations: true |
catalog_title | string | null | Series title when catalog was returned |
catalog | object | null | Full catalog object when BLS returned one |
retrieved_at | string | UTC timestamp of the API call |
How much it costs
Pay-per-event. One event, charged only on a successful write.
| Event name | Title | Bronze price |
|---|---|---|
row | BLS observation | $0.002 |
No row charge on REQUEST_FAILED, a bad year range, or an unknown preset. Store context (Demand, 2026-08-28, retrieved): BLS/FRED/CPI listings on the Store show roughly 0–1 monthly users. This SKU is official-print plumbing, not a demand leader. It ships because CoS locked it, not because the category is crowded.
Input
See the input tab. Required: presets and/or seriesIds (max 50 series per BLS v2 call).
Presets:
| Input | Series | Survey |
|---|---|---|
cpi_u | CUUR0000SA0 | CPI-U, all items |
ppi_final_demand | WPUFD4 | PPI final demand |
ces_total_nonfarm | CES0000000001 | CES total nonfarm employment |
Other fields:
startYear/endYear(four-digit). Unregistered calls are limited to 10 years; a registration key allows 20.registrationKey(secret, optional). Raises daily limits and unlocks catalog titles. Never stored in git. Get one at https://data.bls.gov/registrationEngine/catalog(default true). Series titles need a registration key.calculations(default false). When true, BLS returns net and percent-change calculations on each observation; this Actor stores that object on the row.annualAverage(default false)latestOnly(default false). Keeps the first observation BLS returns per series (API v2 is newest-first).
Output
Download the dataset as JSON, CSV, Excel, or HTML. Example rows:
{"series_id": "CUUR0000SA0","survey": "CPI","year": "2025","period": "M12","period_name": "December","value": 324.054,"value_raw": "324.054","latest": true,"footnotes": [],"calculations": null,"catalog_title": "All items in U.S. city average, all urban consumers, not seasonally adjusted","catalog": { "series_title": "All items in U.S. city average, all urban consumers, not seasonally adjusted" },"retrieved_at": "2026-08-28T20:00:00+00:00"}
A suppressed month keeps value null, value_raw "-", and the footnote. You still get the row.
Not in v1
Forecasts, nowcasts, hurricane landfall, elections, or any non-BLS series.
Terms of use and takedown
This Actor reads the BLS Public Data API v2 only. It does not scrape bls.gov HTML and does not invent values for suppressed months.
ToS. You must follow BLS terms of use and citation rules for republished series. Do not present observations as a BLS product, as a forecast, or as anything other than the bureau's published print. A registration key, if you use one, stays in Actor input and out of git.
Takedown. BLS public series are generally redistributable with attribution. If the bureau or a downstream licensee needs a series dropped from presets or docs, email nicholas.jaskolski@gmail.com with the subject takedown bls-official-print and the series ID. Confirmed requests are honored.