U.S. Department of Labor API: Get minimum wage
Gets a US state's or the federal hourly minimum wage from the Department of Labor, with the tipped cash wage and maximum tip credit, future dated increases, notes and the page's update date.
Unofficial. Not affiliated with or endorsed by U.S. Department of Labor.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- State, required
state US state name, two-letter postal code, or federal, for example California.
Michigan
Input as JSON
{ "state": "Michigan"}Output
{ "notes": "Applicable to employers of 2 or more employees\nThe Michigan minimum wage is scheduled to increase on January 1, 2027 to $15.00 per hour and then will be adjusted annually based on a set formula.\nPremium Pay After Designated Hours 1 : Weekly - 40\nThe State law excludes from coverage any employment th…", "state": "Michigan", "page_url": "https://www.dol.gov/agencies/whd/minimum-wage/state#mi" , "last_updated": "2026-07-01", "applicable_rate": "State minimum wage", "scheduled_increases": [ { "date": "2027-01-01", "description": "The Michigan minimum wage is scheduled to increase on January 1, 2027 to $15.00 per hour and then will be adjusted annually based on a set formula.", "minimum_hourly_wage_usd": 15 } ], "maximum_tip_credit_usd": 8.24, "minimum_cash_wage_tipped_usd": 5.49, "state_minimum_hourly_wage_usd": 13.73, "federal_minimum_hourly_wage_usd": 7.25, "applicable_minimum_hourly_wage_usd": 13.73}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"dol.gov/get_minimum_wage","input":{"state":"Michigan"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "dol.gov/get_minimum_wage" , "input": { "state": "Michigan" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "dol.gov/get_minimum_wage" , "input": { "state": "Michigan" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run dol.gov/get_minimum_wage# with {"state":"Michigan"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "state" ], "properties": { "state": { "type": "string", "description": "US state name, two-letter postal code, or federal, for example California." } }}Output schema
{ "type": "object", "required": [ "state", "state_minimum_hourly_wage_usd", "federal_minimum_hourly_wage_usd", "applicable_minimum_hourly_wage_usd", "applicable_rate", "minimum_cash_wage_tipped_usd", "maximum_tip_credit_usd", "scheduled_increases", "notes", "last_updated", "page_url" ], "properties": { "notes": { "type": "string" }, "state": { "type": "string" }, "page_url": { "type": "string" }, "last_updated": { "type": [ "string", "null" ] }, "applicable_rate": { "type": "string" }, "scheduled_increases": { "type": "array", "items": { "type": "object", "required": [ "date", "minimum_hourly_wage_usd", "description" ], "properties": { "date": { "type": "string", "format": "date" }, "description": { "type": "string" }, "minimum_hourly_wage_usd": { "type": "number" } }, "additionalProperties": false } }, "maximum_tip_credit_usd": { "type": [ "number", "null" ] }, "minimum_cash_wage_tipped_usd": { "type": [ "number", "null" ] }, "state_minimum_hourly_wage_usd": { "type": [ "number", "null" ] }, "federal_minimum_hourly_wage_usd": { "type": "number" }, "applicable_minimum_hourly_wage_usd": { "type": "number" } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
dol.gov/get_minimum_wage- Returns
- state rate, federal rate, applicable rate, tipped cash wage, tip credit, scheduled increases, notes, last updated, page link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method dol.gov/get_minimum_wage with the inputs above.
Ask your agent
- What's the current minimum wage in Ohio, and is there an increase scheduled?
- Look up the tipped cash wage and max tip credit for servers in Florida according to the Department of Labor.
- federal minimum wage per hour right now
- Check dol.gov for Washington state's minimum wage and when that page was last updated.
- I'm hiring in NY — what hourly rate applies there versus the federal floor, and any notes I should know?
Returns a state's overtime premium rule and its adult private-sector meal and paid rest break requirements, taken from U.S. Department of Labor state-law pages. The break tables were last revised in January 2023.
dol.gov/get_overtime_and_break_rulesFinds the latest published BLS pay and employment for an occupation in the US, a state, or a metro area, and compares it with the national median.
bls.gov/get_occupation_wagesGets the latest seasonally adjusted unemployment rate and labor-force counts for the United States or a state, with up to 24 months of history.
bls.gov/get_unemployment_rateFinds the best-matching Occupational Outlook Handbook profile for a job title and returns its pay, entry requirements, jobs and 10-year outlook.
bls.gov/get_occupation_outlookLooks up ZipRecruiter's salary page for a job title in the United States or one US state and returns typical pay, the percentile range and the top-paying cities. Only salary pages that exist publicly are returned.
ziprecruiter.com/get_salaryGets the latest U.S. Consumer Price Index inflation for a spending category, with up to 24 recent months of history. Monthly changes are seasonally adjusted; 12-month changes are not.
bls.gov/get_inflation_rateSearches USAJOBS federal jobs by keywords, location, salary threshold and applicant group, in website relevance order. Salary ranges may start below the threshold; annual pay or remote status is null when the announcement does not state it.
usajobs.gov/search_jobsLooks up a US city, street address or ZIP code and returns up to 156 hourly National Weather Service forecasts for it.
weather.gov/get_hourly_forecast