I'm trying to find an open data source to use for estimating average salaries based on job titles and locations. I had initially considered using Glassdoor's API, but it seems to be too basic for my needs.

Searching further, I stumbled across the Department of Labor's dev portal, but I'm having a difficult time grokking it for my specific purpose. It sounds like the data I'm looking for is tucked away in the BLS (Bureau of Labor Statistics) datasets, but there is so much information here that I can't seem to parse out what I actually need.

Does anyone with more detailed knowledge of the DoL's data sources be able to help me out here? Or could someone suggest a simpler API that provides this sort of data?

  • 2
    Does it have to be an API? Have you seen this page from DoL? bls.gov/bls/blswage.htm Commented Mar 19, 2015 at 19:47
  • @JoeGermuska I'd very much prefer it to be, otherwise I'd have to update my data sources manually every few years when a new census is done (which probably isn't the end of the world, but still not ideal). I saw that page earlier today, and have decided I'll probably use that if there isn't a better method. Thanks for pointing it out though! Commented Mar 19, 2015 at 19:50

3 Answers 3


I recommend Occupational Employment Statistics. Includes approximately 800 job categories/titles (Standard Occupational Classification). Reports estimated employment, average wages and 10th/25th/50th/75th/90th wage percentiles.

The upside is that it's pretty easy to download or hit the API. The downside is that there are quite a few "holes" in the data, either due to confidentiality issues (e.g., one large company in an area employing the majority of, say, Aerospace Engineers can lead to those values being blanked out) or insufficient sample size.

But for free / publicly available, geographically detailed stats on occupations in the US, it's pretty much the only game in town.

XLS files for metro and multi-county nonmetro areas here: http://www.bls.gov/oes/tables.htm.

For API access, it's similar for most BLS data. Example:


The last component is the BLS "seriesID". Breaking it down:

  • OE: dataset ID
  • U: not seasonally adjusted
  • M: area type is metro
  • 0010180: area code for metro area of Abilene, TX
  • 000000: industry code "total", all types of businesses
  • 291141: occupation code for Registered Nurses
  • 03: statistic code - get the mean hourly wage

For additional info on codes, see http://download.bls.gov/pub/time.series/oe/ (esp. the "oe.area" and "oe.occupation" files). It's a little misleading because this dataset is not actually a timeseries; only the latest year (currently 2014) is available at any given time.

  • Amazing! I'd checked out BLS, but got scared off since I could hardly make sense of what I was seeing. This should be a perfect primer for getting me started! Thanks! Commented Apr 27, 2015 at 20:07

Looking for Salary data based on BLS similar to USA Salary, but I as an API.

  • 3
    Could you please detail a bit more: What is the license of this data? What fields are available? An raw excerpt of the dataset would be great. Thanks!
    – Nicolas Raoul
    Commented Apr 27, 2015 at 2:10
  • This site doesn't really seem to address the needs of the original asker: there's no API, nor even a data download option. Commented Apr 27, 2015 at 16:06
  • US government data is usually freely available to the public if they put it on a website and it's not classified.
    – Bulrush
    Commented Sep 6, 2018 at 11:37

J. Miller's answer is great and I'd only like to add that this page on the BLS website essentially provides a template for formatting your request strings. I find it very helpful and is the first tab I open in my browser when I want to pull data from BLS OES API.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.