UK Visa Sponsor Register: New Sponsors, Removals & Downgrades avatar

UK Visa Sponsor Register: New Sponsors, Removals & Downgrades

Pricing

from $3.00 / 1,000 sponsor records

Go to Apify Store
UK Visa Sponsor Register: New Sponsors, Removals & Downgrades

UK Visa Sponsor Register: New Sponsors, Removals & Downgrades

UK Home Office Register of Licensed Sponsors (workers) as clean JSON, plus a daily change feed: newly licensed sponsors, removed sponsors, A-to-B rating downgrades and route changes (Skilled Worker, Global Business Mobility...). Filter by town, county, route, rating, keyword.

Pricing

from $3.00 / 1,000 sponsor records

Rating

0.0

(0)

Developer

Luke Miller

Luke Miller

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Security

Limited permissions

Share

UK Visa Sponsor Register: New Sponsors, Removals & Rating Downgrades

Turn the UK Home Office Register of Licensed Sponsors (workers) into clean JSON, and get a daily change feed of what moved since your last run:

  • Newly licensed sponsors: employers that can now sponsor Skilled Worker, Global Business Mobility, Scale-up, Creative Worker and other visas.
  • Removed sponsors: licences surrendered, expired or revoked (the organisation disappeared from the register).
  • Rating changes: A -> B downgrades (the Home Office put the sponsor on an action plan) and B -> A upgrades.
  • Route changes: a sponsor added or lost a route, e.g. a company that just added Global Business Mobility: Senior or Specialist Worker.
  • Location changes: same organisation, new town or county.

Filter by town/city or county, route, rating, licence type and name keyword. No API key, no login and no web scraping: the Actor finds the current CSV through the official gov.uk Content API and streams the file (about 143,000 rows, 128,000 organisations) in a few seconds.

Other register tools on Apify give you a lookup or a dump of today's register. Only this one tells you what changed.

Who it's for

  • Recruiters and international hiring agencies: every newly licensed sponsor can now hire from abroad and is actively building a pipeline. Get them the morning they appear, filtered by city and route.
  • Immigration law firms and compliance consultants: sponsors downgraded to a B rating need an action plan and help now. Workers at removed sponsors may need to find a new sponsor quickly.
  • Relocation, global mobility and HR-tech vendors: new Global Business Mobility and Scale-up sponsors are companies expanding into the UK.
  • Job boards and candidate platforms: keep a "visa sponsorship available" flag on employers accurate every day.
  • Journalists and researchers: track sponsor growth and churn by region and sector.

Quick start

  1. Click Start with the default input. You get 40 sponsors from today's register (no saved state).
  2. All B-rated sponsors in London: {"ratings": ["B"], "locations": ["London"], "maxItems": 500}
  3. Care sector sponsors in Scotland: {"keyword": "care, nursing", "locations": ["Scotland", "Glasgow", "Edinburgh", "Aberdeen", "Dundee"], "maxItems": 1000}
  4. Every Global Business Mobility sponsor: {"routes": ["Global Business Mobility"], "maxItems": 20000}
  5. Daily change feed (schedule this): {"mode": "changes", "stateKey": "uk-all", "maxItems": 5000}
  6. New sponsors and downgrades in Manchester only: {"mode": "changes", "stateKey": "manchester", "locations": ["Manchester"], "changeTypes": ["added", "downgrade"]}

How changes mode works

  1. The first run for a stateKey saves today's full register as a baseline snapshot (named key-value store uk-visa-sponsor-register-changes-state) and returns a sample flagged changeType: "baseline".
  2. Every later run downloads the current register, compares it with the snapshot and returns one record per changed organisation, then saves the new register as the next baseline.
  3. If the Home Office has not published a new file since the snapshot, the run returns nothing (and costs only the start fee).

The register is published every working day, so a daily schedule (for example 12:00 UK time) works well. Create an Apify Schedule with the input from example 5 and send the results to Slack, email, Google Sheets, HubSpot, Airtable, Make, Zapier, n8n or a webhook with Apify integrations. Use one stateKey per schedule. Snapshots always hold the full register, so you can change filters at any time without missing anything. If a run hits your spending limit, the snapshot is not advanced, so no change is silently skipped.

Comparing historical versions: the gov.uk page only exposes the current file. If you have an older register CSV (e.g. one you downloaded earlier, or a web.archive.org copy), set compareRegisterUrl in changes mode to diff today's register against it, and optionally registerUrl to choose the newer file too.

Input

FieldMeaning
modelatest (default, stateless) or changes (diff against your saved snapshot)
locationsWhole-word match on Town/City or County: London, Birmingham, Kent, Scotland
routesPartial match on route: Skilled Worker, Global Business Mobility / GBM, Senior or Specialist Worker, Scale-up, Creative Worker, Charity Worker, Religious Worker, International Sportsperson, Seasonal Worker, Government Authorised Exchange
ratingsA, B, Provisional (UK Expansion Worker), Premium, SME+
licenceTypeany, worker, temporaryWorker
keywordWords that must all appear in the organisation name; comma-separate alternatives (care home, nursing)
changeTypeschanges mode: added, removed, downgrade, upgrade, ratingChanged, routeAdded, routeRemoved, locationChanged. Empty = all
maxItemsCap on delivered records (also caps spend). Default 40
stateKeyName of the snapshot for changes mode (one per schedule)
updateSnapshotAdvance the snapshot after the run (default true)
compareRegisterUrl, registerUrlAdvanced: compare any two register CSV versions

Output

One record per organisation. The register has one row per organisation per route; this Actor groups them, so a company with three routes is one record with three licences.

FieldMeaning
changeTypecurrent (latest mode), baseline (first changes run), added, removed, modified
changeKindsFor modified: ratingChanged, downgrade, upgrade, routeAdded, routeRemoved, locationChanged
changesDetail list: {kind, route, from, to, fromRating, toRating, direction}
isDowngradetrue if any route went A -> B
name, townCity, countyAs published (trailing commas tidied)
typesAndRatingse.g. Worker (A rating), Temporary Worker (B rating)
routese.g. Skilled Worker, Global Business Mobility: Senior or Specialist Worker
licenceTypes, ratings, overallRatingWorker / Temporary Worker; A, B, Provisional, A (Premium), A (SME+); worst rating across routes
hasBRating, isProvisionalQuick flags
licences[{route, licenceType, rating, typeRating}]
previousFor modified: previous town, county, types/ratings and routes
registerDate, registerVersion, registerFileUrl, registerUpdatedAtWhich register file this came from
previousRegisterDate, previousRegisterFileUrlThe baseline it was compared with (changes mode)
sourcePageUrl, fetchedAtProvenance

Example change record (changes mode, organisation name anonymised):

{
"changeType": "modified",
"changeKinds": ["ratingChanged", "downgrade"],
"changes": [{ "kind": "ratingChanged", "route": "Skilled Worker", "from": "Worker (A rating)", "to": "Worker (B rating)", "fromRating": "A", "toRating": "B", "direction": "downgrade" }],
"isDowngrade": true,
"name": "Example Care Services Ltd",
"townCity": "Leicester",
"county": "Leicestershire",
"typesAndRatings": ["Worker (B rating)"],
"routes": ["Skilled Worker"],
"licenceTypes": ["Worker"],
"ratings": ["B"],
"overallRating": "B",
"hasBRating": true,
"isProvisional": false,
"licences": [{ "route": "Skilled Worker", "licenceType": "Worker", "rating": "B", "typeRating": "Worker (B rating)" }],
"registerDate": "2026-10-30",
"registerVersion": "SP_-_Worker_and_Temporary_Worker_Web_Register_-_2026-10-30.csv",
"registerFileUrl": "https://assets.publishing.service.gov.uk/media/6ae46c20976f73ef5cfb68ac/SP_-_Worker_and_Temporary_Worker_Web_Register_-_2026-10-30.csv",
"registerUpdatedAt": "2026-10-30T10:06:24.000Z",
"sourcePageUrl": "https://www.gov.uk/government/publications/register-of-licensed-sponsors-workers",
"previous": { "townCity": "Leicester", "county": "Leicestershire", "typesAndRatings": ["Worker (A rating)"], "routes": ["Skilled Worker"] },
"previousRegisterDate": "2026-10-29"
}

See sample-output.json for added and removed examples. Each run also writes a summary to the OUTPUT record: register file and size, baseline used, number of changes by type, filters and why the run stopped.

Pricing

Pay per event (Apify takes care of billing; you only pay for what is delivered):

EventPriceCharged
apify-actor-start$0.005once per run
sponsor-record$0.003per sponsor record delivered (register row or change record)

A default test run (40 records) costs about $0.125. A daily all-UK change feed is typically tens to a few hundred records a day (about $0.10-$0.90/day). maxItems and Apify's max cost per run cap your spend; the Actor never delivers more records than your run budget allows. No separate platform-usage charges: compute is included in the event prices.

Data source and notes

  • Register of licensed sponsors: workers, UK Home Office, found via the gov.uk Content API. Contains public sector information licensed under the Open Government Licence v3.0. This Actor is not affiliated with or endorsed by the Home Office or GOV.UK.
  • The register lists organisations only (name, town, county, licence type and rating, route). It has no company numbers, addresses, contacts or job vacancies.
  • Organisations are identified by name + town + county, because the register has no ID. If the Home Office edits a name, that shows up as one removal plus one addition; a town/county edit with an unchanged, unique name is reported as locationChanged.
  • Removal from the register does not say why (surrender, expiry or revocation). Always check the official register before acting on a sponsor's status.
  • The Home Office usually publishes a new file every working day; registerDate comes from the file name.

FAQ

Can I download the whole register? Yes: {"maxItems": 200000} returns every organisation (about 128,000 records). Does it include student sponsors? No, this is the workers register (Worker and Temporary Worker licences). How fast is it? The default run takes a few seconds; changes runs about 5-15 seconds at 512 MB. Why did my first changes run return "baseline" records? There was nothing to compare with yet. Changes start from the second run.