Live API Project — BA/DA Portfolio

BLS Veteran Employment
Live Dashboard

Monthly unemployment data pulled live from the U.S. Bureau of Labor Statistics Public Data API v2 on every page load. The numbers you see below were not written here — they were fetched from BLS servers seconds ago.

Connecting to BLS API...
Pulled: —
Records: —
Series: LNU04049526 · LNS14000000 · BLS API v2
Current Veteran Unemployment Rate
Loading most recent BLS release...
Overall Rate (Same Month)
Vet vs. Overall Gap
Negative = vets outperform
Month-over-Month Change
vs. prior month
⚠ Fallback mode active. The BLS API was unreachable in this environment. Verified historical data is displayed. Open this file in a standard browser and the live API call will succeed.
Last 24 Months — Monthly Unemployment Rate
Veterans vs. Overall — Monthly Trend (Last 24 Months)
Pulling from BLS API... Series: LNU04049526 (Veterans, NSA) · LNS14000000 (Overall, SA)
Month-over-Month Δ — Veteran Rate
Red = rate rose. Green = rate improved. Shows volatility in monthly figures.
Monthly Data Table — Most Recent First
Month Veteran Rate Overall Rate Gap (Vet−Overall) MoM Δ (Vet) BLS Series
Loading live data from BLS API...

Highlighted row = most recent data point. LNU04049526 is not seasonally adjusted; LNS14000000 is seasonally adjusted — comparison should be interpreted as directional, not exact.

API Call — How This Page Gets Its Data
Live POST Request to BLS Public Data API v2
// Every page load fires this request — no hardcoded data in the display layer // BLS API v2 — docs: https://www.bls.gov/developers/api_signature_v2.htm const response = await fetch('https://api.bls.gov/publicAPI/v2/timeseries/data/', { method : 'POST', headers: { 'Content-Type': 'application/json' }, body : JSON.stringify({ seriesid : ['LNU04049526', 'LNS14000000'], startyear : '2023', // pulls 2023–present endyear : '2026', registrationkey: '[BLS API KEY]', // registered at bls.gov/developers annualaverage : false // monthly data, not annual averages }) }); const json = await response.json(); // → json.Results.series[0].data = array of { year, period (M01-M12), value } // → Sort by date, render KPIs + charts + table from live values
LNU04049526 — Unemployment Rate, Total Veterans 18+, Not Seasonally Adjusted. Monthly frequency. Source: BLS Current Population Survey.
LNS14000000 — Unemployment Rate, All Civilian Workers 16+, Seasonally Adjusted. Monthly frequency. Source: BLS CPS.
Why monthly? Annual averages update once a year. Monthly data updates every month — this is the difference between a data file and a live dashboard.
Raw JSON Response from BLS API
BLS API Response — Parsed This Session Waiting...
Loading...