Salary Data API
113 roles · 30 cities · BLS OES 2025 data · JSON · Free tier available
Get Your Free API Key
Plans
Free
$0
100 req / month
Starter
$29/mo
5,000 req / month
Pro
$99/mo
50,000 req / month
Enterprise
$499/mo
Unlimited
Starter, Pro and Enterprise plans — contact [email protected]
Endpoints
POSTNO AUTH
/v1/keysCreate a free API key
GET
/v1/salary?role=software-engineer&city=san-franciscoGet salary for a role + city
GET
/v1/salary?role=software-engineerGet salary across all 30 cities
GET
/v1/rolesList all 113 roles
GET
/v1/citiesList all 30 cities
GET
/v1/category?category=techRoles by category
GET
/v1/usageCheck your usage and plan
Example Response
{
"role": "Software Engineer",
"role_slug": "software-engineer",
"city": "San Francisco",
"city_slug": "san-francisco",
"state": "CA",
"median": 188500,
"p25": 142100,
"p75": 239250,
"p90": 304500,
"yoy_change": 3.2,
"category": "tech",
"source": "BLS OES 2025",
"updated": "May 2026"
}cURL
curl "https://api.ussalaryindex.com/v1/salary?role=software-engineer&city=san-francisco" \ -H "X-API-Key: YOUR_KEY"
JavaScript
const res = await fetch(
'https://api.ussalaryindex.com/v1/salary?role=software-engineer&city=san-francisco',
{ headers: { 'X-API-Key': 'YOUR_KEY' } }
)
const data = await res.json()
console.log(data.median) // 188500Python
import requests
r = requests.get(
'https://api.ussalaryindex.com/v1/salary',
params={'role': 'software-engineer', 'city': 'san-francisco'},
headers={'X-API-Key': 'YOUR_KEY'}
)
print(r.json()['median']) # 188500Authentication
Pass your API key using any of these methods:
?key=YOUR_KEY (query param)X-API-Key: YOUR_KEY (header)Authorization: Bearer YOUR_KEY (header)