H-1B Employer Wage Lookup
Pricing
Pay per event
H-1B Employer Wage Lookup
Wage percentiles (p10 to p90) for U.S. employers from DOL LCA filings, benchmarked to BLS OEWS, with sources.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Aidan Jones
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
H-1B Employer Wage Lookup: wage percentiles from DOL LCA filings, benchmarked to BLS OEWS
Look up how much a U.S. employer pays for H-1B roles. For each employer name you give, this Actor returns wage percentiles (p10, p25, p50, p75, p90) computed from certified Labor Condition Application (LCA) filings published by the U.S. Department of Labor, plus the ratio of the employer's median to the BLS OEWS median for the same occupations. It does not return raw filing rows: you get the summary you would otherwise build yourself from the DOL spreadsheets. Every record carries its sources and release dates.
Official data only. Nothing is scraped from any website; the Actor reads a cleaned copy of the DOL and BLS files through a hosted API.
What you get
For each employer:
- Number of certified LCA filings and wage percentiles in USD (p10, p25, p50, p75, p90)
medianVsOewsRatio: employer median divided by the BLS OEWS median (above 1 means certified wages run higher than the OEWS median for those occupations)- Wage level mix (Level I to IV share of filings)
- Top states and top occupations, each with filings and median
sources(DOL OFLC disclosure file and BLS OEWS release, with as-of dates) and a data notice
Price
Pay per event, no subscription:
| Event | Price |
|---|---|
| Actor start | $0.005 per start event. Apify bills one start event per GB of memory, minimum one; the default run here uses 512 MB, so one event |
| Employer found | $0.01 per employer returned with data |
Employers that are not found are free and come back as status: "not_found". Example: 100 employers with 90 found costs $0.005 + 90 x $0.01 = $0.905. With fuzzy on (the default), a close-name match counts as found and is charged; the item says match: "fuzzy" and shows matchedName. Turn fuzzy off to be charged only for exact matches. Set a maximum cost per run in the Apify run options and the Actor stops cleanly when it is reached.
Example input (works as is)
{"employers": ["Amazon", "Google"],"fuzzy": true,"topOccupations": 5,"maxItems": 100}
| Field | Meaning |
|---|---|
employers | Employer names, one per line, for example Amazon, Google |
fuzzy | Use the best search match when the exact name is not found (default on) |
topOccupations | How many top occupations and states to include per employer (default 5, max 25) |
maxItems | Safety cap on employers per run (default 100, max 1000) |
Example output
Trimmed from a real run of this Actor (the full item also has wageLevelPct, more states and occupations, and a notice string):
{"query": "Amazon","status": "found","match": "exact","matchedName": "Amazon","employer": "Amazon","slug": "amazon","filings": 20053,"wagePercentilesUsd": { "p10": 117749, "p25": 133000, "p50": 158000, "p75": 181293, "p90": 204160 },"medianVsOewsRatio": 1.01,"wageLevelPct": { "I": 23.7, "II": 46.3, "III": 17, "IV": 13 },"topStates": [{ "state": "WA", "filings": 10394 }, { "state": "CA", "filings": 3018 }],"topOccupations": [{ "soc": "15-1252", "title": "Software Developers", "filings": 10267, "p50": 162600, "oews_us_median": 135980 }],"sources": [{ "name": "DOL OFLC LCA Disclosure Data FY2026 Q3", "as_of": "FY2026 Q3 release", "url": "https://www.dol.gov/agencies/eta/foreign-labor/performance" },{ "name": "BLS OEWS May 2025", "as_of": "May 2025", "url": "https://www.bls.gov/oes/tables.htm" }]}
A not-found employer returns { "query": "...", "status": "not_found" }. A failed lookup returns status: "error" with httpStatus and error. A run summary (requested, found, notFound, errors) is saved under the key-value store key SUMMARY.
Data and limits (read this)
- Wages are the bottom of each filing's offered range (
WAGE_RATE_OF_PAY_FROM), so medians run low against what people are paid and against OEWS. Percentiles are unweighted per filing (each certified filing counts once). - Percentiles describe wages certified on LCA filings, not the actual pay of every employee. Employer level only, no individual names.
- Coverage is the set of employers loaded in the data API; live counts are on https://data-api.premed-toolkit.workers.dev/docs. Employers outside it return
not_found(free). The data API loads only employers with at least 10 certified filings. - Data is refreshed when the DOL publishes a new quarterly disclosure file.
- Source: U.S. Department of Labor OFLC LCA disclosure data and BLS Occupational Employment and Wage Statistics, both U.S. government publications. Not legal, immigration, or financial advice. Not affiliated with or endorsed by DOL or BLS.
FAQ
Do I need an API key or a DOL account? No. Press Start.
Why is an employer I know not found? The employer may not be in the loaded set (see the live counts on the docs page), and names must resemble the DOL's employer name. Try the legal name (for example Tata Consultancy Services Limited) or leave fuzzy on. Not-found is free.
How is this different from a raw H-1B scraper? Those return filing rows. This returns the percentiles and an OEWS comparison, so you pay for one summary per employer instead of thousands of rows.
Can I call it from an AI agent? Yes. Apify exposes Actors as tools through its MCP server (see https://docs.apify.com/platform/integrations/mcp), and the input and output are small and structured. It also works from Make, Zapier, n8n and the Apify API.
How often should I run it? Quarterly is enough; the DOL publishes new disclosure data every quarter.
I need thousands of lookups a month. Use the direct API: free tier (100 calls per month) and paid plans, with plans, docs and a quickstart at https://data-api.premed-toolkit.workers.dev/docs. More data and tools: https://filedwages.com
Related
- Occupation Salary by Metro: the same LCA-versus-OEWS comparison for an occupation in a metro area.