Skip to content

Reference

Macro Education

FXMacroData vs BLS API: CPI and Payrolls Data for FX Traders

A buyer guide for FX traders and developers choosing between the free BLS Public Data API and FXMacroData for US CPI and Non-Farm Payrolls: limits, release timing, revisions, licence, and FX workflow fit.

Share article X LinkedIn Email
Pip, the FXMacroData robot mascot, clips a glowing tag onto a single payroll report card at a workbench while a revision sheet slides toward it from a filing tray of monthly reports.
The BLS API is the free official archive for US CPI and payrolls. FXMacroData keeps each release as first printed, stamped with the second it was published.

This comparison is for FX traders, quant developers, and analysts who need US CPI and Non-Farm Payrolls data in code, and who are deciding whether to call the US Bureau of Labor Statistics Public Data API directly or use FXMacroData. Both routes end at the same official numbers. The question is how much work sits between the 8:30 a.m. ET release and a row your model, alert, or dashboard can act on.

The short answer: the BLS API is the free, authoritative archive for BLS series, with full survey detail and no commercial price. FXMacroData reads the same official BLS releases and adds what an FX workflow needs on release day: a second-level announcement timestamp on every row, the first-printed value kept alongside later revisions, a release calendar, one schema across 22 currencies, and pair context for EUR/USD and USD/JPY.

Decision snapshot

Choose the BLS API when

You need free, source-of-record BLS series: CPI components, regional indexes, payrolls by industry, household survey detail, or long history for research.

Choose FXMacroData when

You trade or model the release itself: exact publication time, first print versus revision, the calendar, and the same data shape for USD, EUR, GBP, JPY and 18 other currencies.

Fast verdict

BLS is the right free archive. FXMacroData is the release-time layer for FX automation. Many research stacks use both.

Takeaway: if the job ends at "what was the number", the BLS API is enough. If it continues to "when could the market have known it, and what did it do to the dollar", you need the release-time layer.

Pricing And Access

There is no price to compare in the usual sense. The BLS Public Data API is a free government service in two versions. Version 1.0 needs no registration and allows 25 queries per day, up to 25 series and 10 years per query. Version 2.0 needs a free registration key and raises the limits to 500 queries per day, 50 series and 20 years per query, and adds optional calculations (net and percent changes), annual averages, and catalog metadata. Both versions share a rate ceiling of 50 requests per 10 seconds; going over returns HTTP 429.

FXMacroData has an Always Free tier with no key: USD data only, 100 requests per day, and USD announcements delayed 15 minutes. The Individual plan is $50/month or $500/year with a 14-day trial and 1,000,000 requests per month (bursts of 300 per minute and 5,000 per hour, 20 concurrent). Business is $250/month or $2,500/year for companies and teams of up to 10 people, with the same allowance and priority support. Enterprise is by custom agreement.

BLS API v1.0

Free, no key*

25 queries/day, 25 series and 10 years per query.

BLS API v2.0

Free, registered key*

500 queries/day, 50 series and 20 years per query, calculations and catalog.

FXMacroData Always Free

$0, no key

USD only, 100 requests/day, announcements delayed 15 minutes.

FXMacroData Individual

$50/month

22 currencies, real-time releases, 1,000,000 requests/month, 14-day trial.

Takeaway: for USD-only research the BLS API costs nothing. You pay FXMacroData for release-time delivery, cross-currency coverage, and the engineering you no longer have to maintain.

* Competitor pricing and limits retrieved from the BLS developer pages and API FAQ in October 2026. BLS lists no paid API tier.

Side-By-Side Comparison

Attribute BLS Public Data API FXMacroData
Core job Official time-series access to published BLS data: prices, employment, wages, productivity. Release-timed FX macro data across 22 currencies, with calendar, pair dashboards, and AI access.
Entry pricing Free (v1 keyless, v2 with free registration).* Always Free USD tier; Individual $50/month; Business $250/month.
Free tier Entire API is free.* USD only, 100 requests/day, 15-minute delay on announcements.
Coverage United States only, but very deep: thousands of BLS series across surveys, industries, regions, and items. 22 currencies, 700+ indicator series from official agencies and central banks, plus FX rates, COT, yields, and commodities.
Release timing Releases post on bls.gov at 8:30 a.m. ET; the BLS API features page states a one-day lag before published data can be retrieved through the API. Typically available within seconds of official publication, with a second-level announcement_datetime; measured publicly.
API format JSON or XLSX; BLS series IDs; values as strings with year and period codes (M01 to M13). REST JSON with OpenAPI, X-API-Key header, SSE streaming, GraphQL, Python and JS SDKs.
Rate limits v1: 25 queries/day. v2: 500 queries/day. Both: 50 requests per 10 seconds.* Paid plans: 1,000,000 requests/month, bursts 300/minute and 5,000/hour, 20 concurrent.
History and revisions Up to 20 years per v2 query; returns the current (revised) value for each period. Release history with first-printed values kept alongside later revisions, for point-in-time backtests.
AI / MCP No MCP server listed; agents call the REST API directly. Official MCP server for Claude, ChatGPT, Cursor, and other clients.
Licence for programmatic use Terms place no controls on end use; ask for an access-date citation and a disclaimer, and bar use of the BLS logo. Plans cover own and team use; public redistribution through the self-serve Commercial Redistribution add-on ($10/month per block).
Best fit US labour and price research, deep CPI and payroll breakdowns, academic and policy work. FX traders, event studies, release alerts, multi-currency dashboards, and AI agents.

* Competitor pricing and limits retrieved from the BLS developer pages, API FAQ, and terms of service in October 2026. BLS lists no paid API tier.

Query Limits In Practice

The BLS limits are generous for research and tight for monitoring. A single v2 query can return 50 series, so headline CPI, core CPI, payrolls, the unemployment rate, and average hourly earnings fit in one request. The constraint is the daily count. Polling once a minute on release morning would use the 25 keyless v1 queries in under half an hour, and a team sharing one v2 key across several notebooks can reach 500 faster than expected.

What each BLS version allows*

Daily queries

v1: 25 · v2: 500

Series per query

v1: 25 · v2: 50

Years per query

v1: 10 · v2: 20

Burst rate

Both: 50 requests per 10 seconds, then HTTP 429.

Takeaway: batch many series into few queries and cache results. The BLS API rewards wide, infrequent pulls rather than release-morning polling.

* Limits retrieved from the BLS API FAQ in October 2026.

Twenty years per query also means long histories need several requests. Headline CPI-U starts in 1913, so a full download takes multiple v2 calls or the BLS flat-file database instead. None of this is a flaw for an archive. It simply shapes how you build on it.

What The BLS API Returns For CPI And Payrolls

The two charts below were built from the keyless v1 endpoint, one request per series, using series CES0000000001 (total nonfarm employment, seasonally adjusted) and CUUR0000SA0 (CPI-U all items, not seasonally adjusted). Payroll changes are month-on-month differences of the employment level; CPI inflation is the 12-month change in the index, rounded to one decimal as BLS reports it.

US nonfarm payrolls, monthly change, October 2025 to September 2026

Thousands of jobs, seasonally adjusted. Current BLS vintage; August and September 2026 are marked preliminary.

Takeaway: payroll growth has been uneven, with four negative months in the last twelve, which is exactly when a surprise moves the dollar. The values shown are today's revised numbers, not what traders saw at 8:30 a.m. on each release day.

Source: U.S. Bureau of Labor Statistics, Current Employment Statistics, series CES0000000001, retrieved from the BLS Public Data API v1 in October 2026.

US CPI-U, percent change from a year earlier, September 2025 to August 2026

All items, US city average, not seasonally adjusted. October 2025 is blank because BLS did not publish that index.

Takeaway: headline inflation rose from 2.4% in January to 4.2% in May 2026 before easing to 3.4% in August. The gap at October 2025 is real: the API returns "-" with a footnote that the data are unavailable due to the 2025 lapse in appropriations, so any pipeline has to handle missing periods explicitly.

Source: U.S. Bureau of Labor Statistics, Consumer Price Index, series CUUR0000SA0, retrieved from the BLS Public Data API v1 in October 2026; year-over-year change computed from the index.

The payroll chart shows the most important limitation for event studies. On 4 September 2026 BLS reported that August payrolls rose by 162,000. In the 2 October release, August was revised down to +133,000 and July from +21,000 to -10,000. The BLS API now returns the revised levels only. A backtest that measures the EUR/USD reaction to the August surprise using API data would score the wrong number. FXMacroData keeps the first-printed value with its release timestamp next to each later revision, so the reaction can be matched to what was actually published.

Release Timing And API Availability

CPI and the Employment Situation are Principal Federal Economic Indicators, scheduled for 8:30 a.m. Eastern Time. The 2026 schedules list CPI for September on 14 October and payrolls for October on 6 November. Since 2020 BLS has removed electronic pre-release transmission from its media lock-up and posts releases on its website immediately at the official time, so every user receives the news release together.

The API is a separate question. The BLS API features page states that there is a one-day lag between published data and its availability for retrieval from the API. The developer FAQ and terms of service do not promise release-time API updates, and the service is provided on an as-available basis. For a research archive that is reasonable. For a trader who wants the value at 8:30:01, it means either parsing the HTML news release or using a feed built for release time.

One payroll release, two data paths

1. 8:30:00 ET

BLS posts the Employment Situation on bls.gov. EUR/USD and USD/JPY reprice within seconds.

2. Seconds later

FXMacroData row: payroll level, change, prior, source URL, and a second-level announcement_datetime.

3. API refresh

The new month becomes retrievable through the BLS API, which BLS describes as following publication by up to a day.

4. Next month

BLS revises the two prior months. The BLS API overwrites them; FXMacroData keeps the first print and adds the revision.

Takeaway: both paths agree on the number eventually. Only one records when it was published and what it was at that moment.

FXMacroData targets one second from publication, measured from the actual BLS publication rather than the schedule, and publishes the record at /release-speed, including the share of releases available within one second by source and every release that took longer. Scheduled times for the next CPI or payrolls print sit on the release calendar, next to the Federal Reserve decisions that the same data feed into.

API Format And Developer Experience

The BLS API is clean and well documented. You send series IDs and receive JSON with a year, a period such as M08 (with M13 for annual averages), a value as a string, and footnote codes like P for preliminary. The work is in knowing the IDs: CUSR0000SA0 for seasonally adjusted headline CPI, CES0000000001 for payrolls, LNS14000000 for the unemployment rate, and similar codes for every component. Version 2.0 adds a latest parameter, calculations, annual averages, and catalog metadata.

FXMacroData uses one route pattern for every currency and indicator. A US payrolls request looks like this:

curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/announcements/usd/non_farm_payrolls"

Example response (abridged, illustrative):

{
  "currency": "USD",
  "indicator": "non_farm_payrolls",
  "source": "BLS",
  "data": [
    {
      "date": "2026-09-30",
      "val": 159044000.0,
      "change": 29000.0,
      "announcement_datetime": 1790944200,
      "announcement_datetime_local": "2026-10-02T08:30:00-04:00",
      "pct_change_mom": 0.02,
      "source_url": "https://www.bls.gov/news.release/archives/empsit_10022026.htm"
    }
  ]
}

Fields an FX model uses

  • announcement_datetime anchors the event to the second.
  • val and change arrive as numbers, not strings.
  • source_url points at the exact BLS release.

The BLS equivalent

year "2026", period "M09", value "159044", footnote "preliminary". Accurate and official, but with no release time and the change left for you to compute.

Takeaway: the same official number, shaped for a different job. BLS describes the period; FXMacroData describes the release event.

The same pattern returns euro-area inflation, UK payrolls, or a euro-area policy rate decision from the ECB, so a USD-versus-EUR model does not need a second parser. The US unemployment rate and the Fed policy rate sit beside CPI and payrolls under the same schema.

Licence And Commercial Use

The BLS terms of service say the data do not and should not include controls over their end use. They ask users to cite the date of access, to state that BLS.gov cannot vouch for the data or analyses after retrieval, and not to use the BLS logo on products BLS does not sponsor. BLS also reserves the right to limit or block access if limits are exceeded. In practice that makes BLS data easy to use commercially, provided you handle attribution and accept an as-available service.

FXMacroData plans cover an individual's or team's own research, dashboards, notebooks, alerts, and API scripts. Showing FXMacroData data to an outside audience is covered by the self-serve Commercial Redistribution add-on at $10/month per block of up to 100 measured users or 1,000 public-feed followers.

How FXMacroData Builds On BLS Data

FXMacroData's US CPI and payroll rows come from the same official BLS releases. It reads them and adds the release time, the first print, the revision trail, source metadata, and a link back to the specific BLS news release. If a figure ever looks odd, the BLS page is the authority, and each row points to it.

What FXMacroData adds sits around that number: the same schema for 22 currencies, a release calendar, FX spot rates, COT positioning, bond yields, central-bank press releases, exports, widgets, and an MCP server, so a US CPI surprise can be read against EUR/USD in one place.

Where The BLS API Is Genuinely Stronger

  • It is the source of record. Every US labour and price number starts here, and BLS documentation explains methods, seasonal adjustment, and revisions in full.
  • Depth. CPI by item and metro area, payrolls by industry, hours and earnings, JOLTS, PPI, import prices, and productivity are all reachable with one API.
  • Cost. It is free, including for commercial work, with no subscription to manage.
  • History. Long series, with headline CPI-U back to 1913, for research that needs decades.
  • Batching. Fifty series per v2 query makes large research pulls efficient.

If you are building a US labour-market model, studying regional inflation, or need a component FXMacroData does not carry, use the BLS API.

Where FXMacroData Is Stronger For FX Teams

FXMacroData strengths

  • Releases typically available within seconds, with a public speed record.
  • First print kept next to revisions for point-in-time tests.
  • One schema, 22 currencies, calendar, FX, COT, yields, MCP.

FXMacroData tradeoffs

  • Paid beyond the delayed USD free tier.
  • Carries FX-relevant headlines, not every BLS component.
  • BLS remains the methodological reference.

BLS API strengths

  • Free, official, and commercially usable with attribution.
  • Very deep US labour and price coverage.
  • Long history and wide batch queries.

BLS API tradeoffs

  • No release timestamp; stated one-day lag to API availability.
  • Current vintage only, so first prints are overwritten.
  • US only; other currencies need other agencies and parsers.

Takeaway: BLS wins on depth and cost for US research. FXMacroData wins when the release moment, the first print, and the cross-currency comparison drive the decision.

The cross-currency point matters more than it first appears. A trader comparing US CPI with euro-area HICP, UK CPI, and Japanese CPI would otherwise integrate BLS, Eurostat, the ONS, and Japan's statistics bureau, each with its own IDs, formats, schedules, and revision habits. FXMacroData returns all of them in the same shape, which is why the pair view for GBP/USD or AUD/USD can show both sides of the macro picture together.

Decision Matrix

User type Better fit Why
US labour-market or inflation researcher BLS API Free, full component detail, long history, official methodology.
FX trader around CPI and NFP FXMacroData Release-time delivery, calendar, and pair dashboards.
Quant building release event studies FXMacroData Second-level timestamps and first-print values avoid look-ahead bias.
Hobby notebook checking the latest CPI Either BLS v1 keyless or FXMacroData Always Free both work at zero cost.
Multi-currency dashboard or AI agent FXMacroData One schema across 22 currencies plus MCP.
Desk needing a rare BLS component Both BLS for the component; FXMacroData for headline release timing.

Recommendation

Use the BLS Public Data API when the work is US-focused research: component-level CPI, payrolls by industry, long histories, or any series FXMacroData does not carry. Register for a free v2 key, batch your series, and cache results. It is a reliable official service and the reference FXMacroData itself relies on.

Use FXMacroData when the work is about the release as a market event: trading or modelling the reaction in EUR/USD and USD/JPY, measuring surprises against first prints, running alerts, or giving an AI assistant timestamped, source-linked macro context across currencies. Compare the plans, read the API reference, and check the measured release-speed record before deciding. AI-focused teams can start from the AI trading guides.

Bottom line: the BLS API is the right free archive for US labour and price data. FXMacroData is the right paid layer for FX teams that need CPI and payrolls timestamped to the second, kept as first printed, and lined up with 21 other currencies. Most serious FX research stacks benefit from both.

Sources Checked

The BLS claims in this article come from the official BLS pages and API responses below, checked in October 2026.

BLS developers

API versions, registration, and v2 signatures.

Developers home · v2 signatures

API FAQ and features

Query, series, year, and rate limits; one-day API lag; version history.

API FAQ · API features

Release schedules

2026 CPI and Employment Situation dates and 8:30 a.m. release time.

CPI · Employment Situation

Dissemination and lock-up

PFEI release times and the 2020 lock-up change.

Dissemination · BLS blog

Terms and releases

Terms of service; August and September 2026 payroll releases.

Terms · Sept 2026 release

FXMacroData plans and docs

Plans, allowances, API reference, and release-speed record.

View plans

Takeaway: every BLS figure here, from query limits to the August payroll revision, can be checked on bls.gov or reproduced with a keyless API call.

FXMacroData API data

Data endpoints used in this article

No FXMacroData API data endpoint is attributed to this article. Its evidence base is identified in the article and source links.

Explore the FXMacroData API reference

Frequently asked

Questions about this topic

Is the BLS API or FXMacroData better for CPI and NFP data?

The BLS Public Data API is the better free source for official US research data, including detailed CPI components and payrolls by industry. FXMacroData is the better fit for FX trading workflows that need releases typically available within seconds of publication, second-level announcement timestamps, first-print values, and the same schema across 22 currencies.

What are the BLS Public Data API limits?

According to the BLS API FAQ checked in October 2026, version 1.0 needs no registration and allows 25 queries per day, 25 series and 10 years per query. Version 2.0 needs a free registration key and allows 500 queries per day, 50 series and 20 years per query. Both versions are limited to 50 requests per 10 seconds.

Does the BLS API update at 8:30 a.m. on release day?

CPI and the Employment Situation are released on bls.gov at 8:30 a.m. Eastern Time. The BLS API features page states there is a one-day lag between published data and its availability for retrieval from the API, and the API terms describe the service as provided on an as-available basis.

Does the BLS API keep first-release payroll numbers?

No. The BLS API returns the current value for each month. For example, August 2026 payrolls were first reported as +162,000 and revised to +133,000 a month later, and the API now shows the revised level. FXMacroData keeps the first-printed value with its release timestamp alongside later revisions.

Is BLS data free to use commercially?

The BLS terms of service say the data do not include controls over end use, but ask users to cite the access date, include a disclaimer that BLS.gov cannot vouch for data after retrieval, and not use the BLS logo. FXMacroData plans cover own and team use, with a self-serve Commercial Redistribution add-on for showing data to outside audiences.

Does FXMacroData use BLS data?

Yes. FXMacroData's US CPI and payroll rows come from the same official BLS releases, with a link to the specific BLS news release. FXMacroData adds release timestamps, first-print and revision history, a release calendar, cross-currency coverage, and MCP access.

Keep reading

Blogroll

AI Answer-Ready

Key Facts

Page
FXMacroData vs BLS API: CPI and Payrolls Data for FX Traders
Section
Articles
Canonical URL
https://fxmacrodata.com/articles/fxmacrodata-vs-bls-api
Source
FXMacroData editorial and official publisher references
Last Updated
2026-10-05 11:46 UTC

Provenance And Trust

Cite the canonical URL and source field above. Where available, this page maps to official publisher releases and timestamped updates.

Quick Q&A

Is the BLS API or FXMacroData better for CPI and NFP data? The BLS Public Data API is the better free source for official US research data, including detailed CPI components and payrolls by industry. FXMacroData is the better fit for FX trading workflows that need releases typically available within seconds of publication, second-level announcement timestamps, first-print values, and the same schema across 22 currencies.

What are the BLS Public Data API limits? According to the BLS API FAQ checked in October 2026, version 1.0 needs no registration and allows 25 queries per day, 25 series and 10 years per query. Version 2.0 needs a free registration key and allows 500 queries per day, 50 series and 20 years per query. Both versions are limited to 50 requests per 10 seconds.

Does the BLS API update at 8:30 a.m. on release day? CPI and the Employment Situation are released on bls.gov at 8:30 a.m. Eastern Time. The BLS API features page states there is a one-day lag between published data and its availability for retrieval from the API, and the API terms describe the service as provided on an as-available basis.

Does the BLS API keep first-release payroll numbers? No. The BLS API returns the current value for each month. For example, August 2026 payrolls were first reported as +162,000 and revised to +133,000 a month later, and the API now shows the revised level. FXMacroData keeps the first-printed value with its release timestamp alongside later revisions.

Prompt Packs

Use these in ChatGPT, Claude, Gemini, Mistral, Perplexity, or Grok for consistent source-aware outputs.

Share page X LinkedIn Email