UK Visa Sponsor Register: New Sponsors, Removals & Downgrades
Pricing
from $3.00 / 1,000 sponsor records
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
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
- Click Start with the default input. You get 40 sponsors from today's register (no saved state).
- All B-rated sponsors in London:
{"ratings": ["B"], "locations": ["London"], "maxItems": 500} - Care sector sponsors in Scotland:
{"keyword": "care, nursing", "locations": ["Scotland", "Glasgow", "Edinburgh", "Aberdeen", "Dundee"], "maxItems": 1000} - Every Global Business Mobility sponsor:
{"routes": ["Global Business Mobility"], "maxItems": 20000} - Daily change feed (schedule this):
{"mode": "changes", "stateKey": "uk-all", "maxItems": 5000} - New sponsors and downgrades in Manchester only:
{"mode": "changes", "stateKey": "manchester", "locations": ["Manchester"], "changeTypes": ["added", "downgrade"]}
How changes mode works
- The first run for a
stateKeysaves today's full register as a baseline snapshot (named key-value storeuk-visa-sponsor-register-changes-state) and returns a sample flaggedchangeType: "baseline". - 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.
- 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
| Field | Meaning |
|---|---|
mode | latest (default, stateless) or changes (diff against your saved snapshot) |
locations | Whole-word match on Town/City or County: London, Birmingham, Kent, Scotland |
routes | Partial 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 |
ratings | A, B, Provisional (UK Expansion Worker), Premium, SME+ |
licenceType | any, worker, temporaryWorker |
keyword | Words that must all appear in the organisation name; comma-separate alternatives (care home, nursing) |
changeTypes | changes mode: added, removed, downgrade, upgrade, ratingChanged, routeAdded, routeRemoved, locationChanged. Empty = all |
maxItems | Cap on delivered records (also caps spend). Default 40 |
stateKey | Name of the snapshot for changes mode (one per schedule) |
updateSnapshot | Advance the snapshot after the run (default true) |
compareRegisterUrl, registerUrl | Advanced: 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.
| Field | Meaning |
|---|---|
changeType | current (latest mode), baseline (first changes run), added, removed, modified |
changeKinds | For modified: ratingChanged, downgrade, upgrade, routeAdded, routeRemoved, locationChanged |
changes | Detail list: {kind, route, from, to, fromRating, toRating, direction} |
isDowngrade | true if any route went A -> B |
name, townCity, county | As published (trailing commas tidied) |
typesAndRatings | e.g. Worker (A rating), Temporary Worker (B rating) |
routes | e.g. Skilled Worker, Global Business Mobility: Senior or Specialist Worker |
licenceTypes, ratings, overallRating | Worker / Temporary Worker; A, B, Provisional, A (Premium), A (SME+); worst rating across routes |
hasBRating, isProvisional | Quick flags |
licences | [{route, licenceType, rating, typeRating}] |
previous | For modified: previous town, county, types/ratings and routes |
registerDate, registerVersion, registerFileUrl, registerUpdatedAt | Which register file this came from |
previousRegisterDate, previousRegisterFileUrl | The baseline it was compared with (changes mode) |
sourcePageUrl, fetchedAt | Provenance |
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):
| Event | Price | Charged |
|---|---|---|
apify-actor-start | $0.005 | once per run |
sponsor-record | $0.003 | per 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;
registerDatecomes 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.