Remulous LabsAPIs › SponsorLens

Immigration · DOL OFLC

SponsorLens API

Normalized, source-linked U.S. foreign-labor-certification records from the Department of Labor OFLC disclosure files — 728,000+ certifications across H-1B, H-1B1, E-3, PERM, H-2A, and H-2B. Every record carries its offered + prevailing wage (annualized) and links back to its official OFLC source file.

728k+ certifications FY2024–FY2026 Quarterly updates 6 programs

What you can build

One API instead of ETL-ing DOL's quarterly, schema-shifting Excel dumps — see the full comparison, or browse H-1B sponsors & wages.

"Does this company sponsor?"

Count, roles, worksite states, and full history for any employer — across H-1B, PERM, and the seasonal programs.

Wage benchmarking

P25/P50/P75/P90 offered + prevailing wages by SOC occupation, employer, or stock ticker — annualized so hourly and salaried roles compare directly.

PERM (green-card) pipeline

Track who sponsors permanent residency, for which occupations and worksites.

Public-company sponsor profiles

120+ major employers mapped to parent company and stock ticker — query by ticker=NVDA.

Endpoints

Base URL https://sponsorlens-api.remulouslabs.com — proxied for you by RapidAPI. /v1/openapi.json and /healthz are open (no key).

GET/v1/certifications

Filterable, paginated certification list (newest decision first).

GET/v1/certifications/{id}

A single certification by its stable id.

GET/v1/employers/{name}/certifications

Sponsorship history for one employer (normalized substring match) — profile a company across programs, roles, and states.

GET/v1/wages

Offered + prevailing wage percentiles (P25 / P50 / P75 / P90 + mean), annualized. Requires at least one of soc_code, employer, or ticker.

GET/v1/programs/{program}/status

Per-program coverage and freshness — record count, parse rate, latest decision date, last ingest run.

GET/v1/meta

Totals, counts by program, covered programs, and source attribution.

Parameters for /v1/certifications

ParameterTypeDescription
employerstringSubstring match on the normalized employer name.
programstringh-1b, h-1b1, e-3, perm, h-2a, h-2b.
case_statusstringcertified, certified-withdrawn, denied, withdrawn.
worksite_statestring2-letter state code (e.g. WA).
soc_codestringSOC occupation code (e.g. 15-1252).
tickerstringParent-company stock ticker (e.g. NVDA).
min_wagenumberMinimum annualized offered wage (unit-agnostic).
fiscal_yearintegerDOL fiscal year (e.g. 2026).
decision_from / decision_todateFilter by decision date (YYYY-MM-DD).
limit / offsetintegerPage size (default 50; capped by plan) and pagination offset.

Try it

Your X-RapidAPI-Key comes from your RapidAPI subscription. Pick a language:

Request

curl -X GET "https://sponsorlens-h-1b-labor-cert-api.p.rapidapi.com/v1/certifications?employer=nvidia&program=h-1b&limit=1" \
  -H "X-RapidAPI-Key: YOUR_KEY_HERE" \
  -H "X-RapidAPI-Host: sponsorlens-h-1b-labor-cert-api.p.rapidapi.com"
const url =
  "https://sponsorlens-h-1b-labor-cert-api.p.rapidapi.com/v1/certifications?employer=nvidia&program=h-1b&limit=1";
const res = await fetch(url, {
  headers: {
    "X-RapidAPI-Key": "YOUR_KEY_HERE",
    "X-RapidAPI-Host": "sponsorlens-h-1b-labor-cert-api.p.rapidapi.com"
  }
});
const data = await res.json();
console.log(data.certifications);
import requests

url = "https://sponsorlens-h-1b-labor-cert-api.p.rapidapi.com/v1/certifications"
headers = {
    "X-RapidAPI-Key": "YOUR_KEY_HERE",
    "X-RapidAPI-Host": "sponsorlens-h-1b-labor-cert-api.p.rapidapi.com",
}
params = {"employer": "nvidia", "program": "h-1b", "limit": 1}
data = requests.get(url, headers=headers, params=params).json()
print(data["certifications"])

Response

{
  "count": 1190,
  "limit": 1,
  "offset": 0,
  "filters": { "employer": "nvidia", "program": "h-1b" },
  "certifications": [
    {
      "id": "0e18043133d39b7b",
      "employer": "NVIDIA Corporation",
      "employer_normalized": "nvidia",
      "parent_company": "NVIDIA Corporation",
      "ticker": "NVDA",
      "program": "h-1b",
      "case_number": "I-200-25357-504356",
      "case_status": "certified",
      "job_title": "Software Engineer",
      "soc_code": "15-1252.00",
      "soc_title": "Software Developers",
      "worksite_city": "Redmond",
      "worksite_state": "WA",
      "wage": { "from": 212202.0, "to": 235750.0, "unit": "year",
               "annual_from": 212202.0, "annual_to": 235750.0 },
      "prevailing_wage": { "amount": 212202.0, "unit": "year", "annual": 212202.0 },
      "received_date": "2025-12-22",
      "decision_date": "2025-12-30",
      "fiscal_year": 2026,
      "provenance": {
        "source": "DOL-OFLC-LCA",
        "source_url": "https://www.dol.gov/.../LCA_Disclosure_Data_FY2026_Q1.xlsx",
        "parse_status": "parsed",
        "ingested_at": "2026-06-11T23:43:14+00:00"
      }
    }
  ],
  "disclaimer": "Derived from the U.S. Department of Labor OFLC public disclosure files..."
}

Wage percentiles

/v1/wages returns annualized offered and prevailing wage percentiles for the matching certifications — the benchmarking core of the API.

GET /v1/wages?ticker=NVDA&program=h-1b

{
  "ticker": "NVDA", "program": "h-1b",
  "offered_wage":    { "p25": 168000, "p50": 196000, "p75": 216091, "p90": 238171, "mean": 205102, "sample_size": 1167 },
  "prevailing_wage": { "p25": 161179, "p50": 186197, "p75": 213512, "p90": 226158, "mean": 186062, "sample_size": 1167 },
  "note": "wages annualized to a yearly basis regardless of reported unit"
}

Response fields

FieldNotes
idStable, deterministic identifier (dedupes re-ingested cases).
employer / employer_normalizedRaw and normalized company name.
parent_company / tickerEntity resolution — 120+ employers mapped to parent and ticker; null when unresolved.
programh-1b, h-1b1, e-3, perm, h-2a, h-2b.
case_number / case_statusDOL case number and outcome.
job_title / soc_code / soc_titleRole and standardized occupation.
worksite_city / worksite_stateWorksite location, where the source provides it.
wagefrom / to / unit as filed, plus annual_from / annual_to.
prevailing_wageamount / unit as filed, plus annual.
received_date / decision_date / begin_date / end_dateFiling and employment dates.
fiscal_yearDOL fiscal year of the disclosure file.
provenancesource, source_url, parse_status, parser, ingested_at, processing_days, date_anomaly.

Field availability varies by program and fiscal year — DOL changes column layouts between releases. Use /v1/programs/{program}/status and /v1/meta for the live coverage map.

Coverage & freshness

728,000+ certifications across FY2024–FY2026, with FY2026 current through the latest ingested OFLC release.

ProgramRecords
H-1B312,017
PERM (green card)299,373
H-2A (agricultural)64,174
H-2B (seasonal non-ag)42,505
E-37,827
H-1B12,753

Quarterly updates

Refreshed ~1–2 months after each OFLC release. The live freshness map is always /v1/programs/{program}/status and /v1/meta.

Source methodology

DOL publishes quarterly Excel disclosure files with shifting column layouts. SponsorLens does the fetch, parse, normalize, de-dup, wage-annualization, and provenance-linking — each record links to its OFLC source_url.

Errors & usage

StatusMeaning
200Success.
400Invalid parameter, or /v1/wages called without soc_code, employer, or ticker.
404No certification / employer found.

Data & usage notes

  • Derived from official DOL OFLC disclosure files and provided as is — filings may contain errors, amendments, late filings, or duplicates. Verify against source_url.
  • Certification of an application is not a guarantee a visa was issued — it reflects a DOL labor-certification filing, not an approved or active visa.
  • Informational / development use only — not legal or immigration advice, and not for eligibility decisions about individuals (FCRA-regulated uses and individual targeting prohibited). See Terms of Use.

Frequently asked questions

Common questions about visa sponsorship data, coverage, and the API.

What visa programs does SponsorLens cover?

H-1B, H-1B1, E-3, PERM, H-2A, and H-2B certifications from the Department of Labor's Office of Foreign Labor Certification (OFLC) disclosure data. All programs are queryable through the same GET /v1/certifications endpoint using the program parameter.

How do I look up H-1B sponsors by employer?

Query /v1/certifications?employer=nvidia&program=h-1b. The employer parameter does partial-string matching against the employer name field. You can also use /v1/employers/{name}/certifications for an employer-centric view.

What fiscal years of data are available?

FY2024, FY2025, and FY2026 (partial). FY2026 is current through Q1 for LCA/H-1B programs and through Q2 for PERM, H-2A, and H-2B.

What wage data does the API return?

Each certification includes the offered wage range (wage.from / wage.to, annualized) and the prevailing wage (prevailing_wage.amount, annualized). Both are normalized to annual figures for cross-employer comparability.

What is the source of this data?

All records originate from the Department of Labor's OFLC quarterly disclosure files, published at dol.gov. Each record includes a provenance block with source, source_url, and ingested_at linking back to the original OFLC file.

Can I filter by case status?

Yes. Use the case_status parameter on GET /v1/certifications. Common values include certified, denied, withdrawn, and invalidated.

Start querying sponsorship data

Free tier on RapidAPI — no credit card to start. Every plan returns the same full data and all filters; plans differ only by monthly call volume.