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.
7 methodsFreshness not declaredUS imports & exports time series — Census Foreign Trade (no auth). 8 endpoints (hs / porths / statehs / naics × imports / exports). searchExports / searchImports filter HS or NAICS + country + month. searchTradeByPort and searchTradeByState slice by US port / state. getTradeBalance fetches both directions in parallel. getCountryCodes is a built-in CTY_CODE↔ISO map (top 30 partners + USMCA/OECD/NATO/APEC). lookupHsCode is a chapter index (27 fuels, 28/29/39 chem, 72/73 steel, 84/85 machinery, 26 ores). upstream quirk: exports use ALL_VAL_MO + E_COMMODITY; imports use GEN_VAL_MO + I_COMMODITY — search dispatches on direction. upstream quirk: country codes are Census Schedule C/D — NOT ISO. Mexico=2010, Canada=1220, China=5700. Optional CENSUS_API_KEY raises the 500/day per-IP cap.
8 methodsFreshness not declared
