Register for a BLS API key at https://data.bls.gov/registrationEngine/ to access the higher-rate v2 API (unauthenticated v1 is limited to 25 series per query and 500 queries per day)
POST to https://api.bls.gov/publicAPI/v2/timeseries/data/ with a JSON body containing 'seriesid' (array of BLS series IDs), 'startyear', 'endyear', and 'registrationkey': '<API_KEY>'
Identify the correct series ID using the BLS series ID format documentation; for example, CES0000000001 is total nonfarm payroll employment from the CES survey
Parse the response 'Results.series' array; each series contains a 'data' array of objects with 'year', 'period' (e.g., 'M01' for January), 'value', and 'footnotes'
Handle the 'REQUEST_FAILED_OVER_CAPACITY' status code with exponential backoff, as the BLS API has shared infrastructure and may reject requests during high-traffic periods
Known gotchas
BLS series IDs are not guessable — the format encodes survey, industry, area, and measure codes that must be looked up from the BLS series ID structure documentation for each survey program
BLS data is subject to annual benchmark revisions; historical values can be revised significantly, especially for employment series — do not assume values from prior API calls are permanent
The v2 API maximum is 50 series per query and 10 years of data per request; requests exceeding these limits receive partial data or an error without explicit truncation warnings
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp