All data sources

BLS Labor Stats

No authbls

US BLS public API. Anonymous tier (25/day, ≤25 ids, ≤10y) toggle-on. BLS_API_KEY raises caps to 500/day, ≤50/≤20y + unlocks calculations + catalog. - getSeries ⭐ single id + year range - getMultipleSeries ⭐ POST multi, caps validated upfront - findIndustrialSeries ⭐ curated NAICS↔seriesId map (~50 entries, no upstream call) - listSurveys ⭐ all 73 surveys; getSurvey, getPopularSeries, getServiceInfo Differentiator: programmatic NAICS-to-seriesId drifts from BLS docs; BLS exposes no NAICS lookup. Map covers O&G 211, Drilling 213111, Support 213112, Refineries 32411, Pipelines 4861/4862, PPI commodities, state LAUS. upstream quirk: errors hide in HTTP 200 — message[] says "Series X does not exist" while status=REQUEST_SUCCEEDED.

Provenance

PublisherBLS Labor Stats

Freshness & coverage

FreshnessFreshness not declared
GeographicNot declared
TemporalNot declared
AuthenticationNo credentials required

Methods (7)

  • getSeries

    read

    Single time series by id. startYear/endYear slice; calculations+catalog need a BLS API key.

    Returns BLSResponseEnvelope: status, series[].data[], notices[], registered.

  • getMultipleSeries

    read

    Multi-series POST. Anonymous: ≤25 ids / ≤10y. Keyed: ≤50 ids / ≤20y. Caps validated upfront.

    calculations/catalog silently ignored without a key — handler emits a warning.

  • findIndustrialSeries

    read

    Curated NAICS↔seriesId lookup by NAICS, keyword, or surveyHint. Killer feature, no upstream call.

    NAICS supports prefix matching (211 matches 211, 211111).

  • listSurveys

    read

    Catalog of all 73 BLS surveys (CE/EN/WP/PC/PR/JT/OE/LA/CU/EI/SM/MP/IP/CI). 7d cache.

  • getSurvey

    read

    Metadata for one survey by abbreviation (CE, EN, WP, PC, …).

  • getPopularSeries

    read

    Popular series ids for a survey (undocumented BLS endpoint, cold-start UX).

  • getServiceInfo

    read

    Tier delta (anonymous vs registered), curated NAICS coverage, endpoint catalog, upstream quirks.