UK FQA Fishing Quota Register Search
Pricing
from $2.00 / 1,000 quota fetcheds
UK FQA Fishing Quota Register Search
Search the UK Fixed Quota Allocation (FQA) Register API. Find fishing quota holdings by vessel name, holder, licence number, stock code. Covers MMO England, Marine Scotland, Wales, Northern Ireland fisheries. Get per-stock FQA unit breakdowns.
Pricing
from $2.00 / 1,000 quota fetcheds
Rating
0.0
(0)
Developer

ryan clinton
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Search the UK Fixed Quota Allocation (FQA) Register at fqaregister.service.gov.uk to extract structured data on fishing quota holdings across England, Scotland, Wales, Northern Ireland, and the Isle of Man. The FQA Register is the UK government's authoritative public record of how Total Allowable Catch quotas are distributed among fishing licence holders, vessels, and producer organisations. This actor transforms the register's non-standard POST-based web interface into clean, structured JSON -- no API key required, no browser emulation needed, just fast and reliable access to UK fisheries quota data.
Why use UK FQA Fishing Quota Register Search?
Accessing FQA Register data programmatically is surprisingly difficult. The government website uses a custom POST-based API that returns arrays of arrays for browse results and HTML fragments for detail pages. There is no documented public API, no standard REST endpoints, and no way to bulk-export data through the browser interface. Researchers, analysts, and industry participants who need this data are forced into tedious manual searches -- clicking through paginated results one record at a time, with no way to filter by fish stock or export structured datasets.
This actor solves those problems entirely. It handles the non-standard request formats, validates stock codes against live reference data, parses HTML detail fragments for per-species quota breakdowns, and outputs clean JSON records ready for spreadsheets, databases, or downstream pipelines. Running on Apify means you can schedule recurring quota monitoring runs, export results to Google Sheets or webhooks automatically, and combine FQA data with corporate registry lookups to build comprehensive profiles of UK fishing quota holders -- all without managing infrastructure, dealing with rate limits, or writing a single line of parsing code.
Key features
- Multi-criteria search -- Filter by vessel name, holder name, licence number, fisheries administration, licence category, and fish stock code, individually or in any combination.
- Full UK coverage -- Query all five fisheries administrations: Marine Management Organisation (England), Marine Scotland, Welsh Assembly Government, DAERA (Northern Ireland), and Isle of Man Government.
- Per-species stock breakdowns -- Optionally fetch detailed FQA unit allocations broken down by individual fish stock for each licence, showing exactly how quota is distributed across species.
- Holder address extraction -- When detail fetching is enabled, the actor parses registered addresses for each quota holder from the detail HTML fragments.
- Live stock code validation -- Before executing your search, the actor fetches the register's live reference data to validate stock codes, warning you if a code is unrecognised and listing available alternatives.
- Licence category filtering -- Target specific fleet segments by filtering on Category A (over 10m), Category A (10m and under), Category B, or Category C licences.
- No API key required -- The FQA Register is a public UK government resource. This actor requires no authentication tokens, API keys, or paid subscriptions.
- Configurable result limits -- Return anywhere from 1 to 10,000 records per run, controlling both run time and compute costs.
- Batch processing with rate limiting -- Detail fetching processes 10 records per batch with a 200ms delay between batches, respecting the government server without sacrificing throughput.
- Structured JSON output -- Every record is a flat, consistent JSON object with 12 fields, ready for export to CSV, Excel, Google Sheets, or any data warehouse.
How to use UK FQA Fishing Quota Register Search
Using Apify Console
- Go to the UK FQA Fishing Quota Register Search actor page on Apify and click Try for free.
- Enter your search criteria in the input form. You can search by vessel name, holder name, or licence number, and optionally apply filters for fisheries administration, licence category, or fish stock code.
- If you need per-stock FQA unit breakdowns and holder addresses, check the Fetch Detailed Records box. Leave it unchecked for faster summary-only results.
- Set the Maximum Results field to control how many records are returned (default is 100).
- Click Start and wait for the run to complete. View results in the Dataset tab, or download them as JSON, CSV, or Excel.
Using the API
You can start this actor programmatically using the Apify API. Send a POST request with your input parameters as JSON to the actor's run endpoint. See the API & Integration section below for complete code examples in Python, JavaScript, and cURL.
Input parameters
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
vesselName | string | No | "" | Search by vessel name. Partial matches are supported. |
holderName | string | No | "" | Search by quota holder name. Partial matches are supported. |
licenceNumber | string | No | "" | Search by licence number. Comma-separated values for multiple licences. |
fisheriesAdmin | string | No | "" (All) | Filter by fisheries administration body. Options: Marine Management Organisation, Marine Scotland, Welsh Assembly Government, Department of Agriculture and Rural Development, Isle of Man Government. |
licenceCategory | string | No | "" (All) | Filter by licence category. Options: 1 (A -- over 10m), 3 (A -- 10m and under), 4 (B), 5 (C). |
stock | string | No | "" | Filter by fish stock code (e.g. NSCOD, NSHAD, MAC3A4BC). Validated against live register data. |
fetchDetails | boolean | No | false | Fetch per-stock breakdowns, licence type, and holder address for each record. Slower but much richer data. |
maxResults | integer | No | 100 | Maximum number of results to return. Range: 1 to 10,000. |
Example input
{"fisheriesAdmin": "Marine Scotland","stock": "NSCOD","fetchDetails": true,"maxResults": 200}
Tips for input
- Start broad, then narrow down. Run an unfiltered search with
fetchDetailsoff to see total result counts, then add filters to zero in on the data you need. - Stock codes are case-insensitive. The actor normalises your input to uppercase before validating against the register.
- Combine filters for precision. Searching for
holderName: "Scottish"withfisheriesAdmin: "Marine Scotland"andstock: "NSCOD"returns a highly targeted result set. - Leave all fields empty to browse the entire register. The actor will warn you that no criteria were provided, but will return all records up to your
maxResultslimit. - Use comma-separated licence numbers in the
licenceNumberfield to look up multiple specific licences in a single run.
Output
Each run produces an Apify dataset containing FQA records. Below is a realistic example with detail fetching enabled:
{"licenceNumber": "B14832","vesselName": "ARDENT II","holderName": "CALEDONIAN SEAFOODS LTD","holdingType": "Licence Holder","producerOrganisation": "Scottish Fishermen's Organisation","fisheriesAdministration": "Marine Scotland","licenceCategory": "Cat A - Vessels > 10m","licenceType": "Pressure Stock Licence","totalFqaUnits": "2,847.56","stockBreakdown": [{ "stock": "NSCOD", "fqaUnits": 743 },{ "stock": "NSHAD", "fqaUnits": 612 },{ "stock": "NSWHG", "fqaUnits": 489 },{ "stock": "MAC3A4BC", "fqaUnits": 385 },{ "stock": "NSPOK", "fqaUnits": 318 },{ "stock": "NSMON", "fqaUnits": 300 }],"holderAddress": "Unit 7, Harbour Industrial Estate, Peterhead, Aberdeenshire, AB42 1DQ","sourceUrl": "https://www.fqaregister.service.gov.uk/browse"}
When fetchDetails is false, the licenceType, holderAddress, and stockBreakdown fields return null or an empty array. Only summary-level fields are populated:
{"licenceNumber": "C20147","vesselName": "MORNING STAR","holderName": "HARBOUR FISHING CO LTD","holdingType": "Licence Holder","producerOrganisation": "North East of England Fish Producers Organisation","fisheriesAdministration": "Marine Management Organisation","licenceCategory": "Cat A - Vessels <= 10m","licenceType": null,"totalFqaUnits": "418.20","stockBreakdown": [],"holderAddress": null,"sourceUrl": "https://www.fqaregister.service.gov.uk/browse"}
Output fields
| Field | Type | Description |
|---|---|---|
licenceNumber | string | The fishing licence number (e.g. B14832, C20147). |
vesselName | string | Name of the vessel associated with this licence. |
holderName | string | Name of the quota holder (individual or company). |
holdingType | string | How the quota is held (e.g. Licence Holder, Non-Sector Pool). |
producerOrganisation | string | The producer organisation the holder belongs to, if any. |
fisheriesAdministration | string | Which of the five UK fisheries administrations manages this licence. |
licenceCategory | string | Licence category (Cat A over 10m, Cat A 10m and under, Cat B, Cat C). |
licenceType | string | Licence type detail (e.g. Pressure Stock Licence). Requires fetchDetails. |
totalFqaUnits | string | Total FQA units held under this licence, formatted with commas. |
stockBreakdown | array | Per-stock breakdown of FQA unit allocations. Each item has stock (code) and fqaUnits (count). Requires fetchDetails. |
holderAddress | string | Registered address of the quota holder. Requires fetchDetails. |
sourceUrl | string | URL of the FQA Register browse page. |
Use cases
- Fisheries policy research -- Analyse how UK fishing quotas are distributed across regions, fleet segments, and producer organisations to study concentration and access patterns.
- Quota market intelligence -- Track which companies and vessels hold the largest FQA unit allocations for commercially valuable stocks like North Sea Cod, Haddock, or Mackerel.
- Corporate due diligence -- Before acquiring or investing in a fishing company, verify their FQA holdings and the specific stocks they have quota access to.
- Producer organisation benchmarking -- Compare the total quota holdings across different producer organisations to understand relative market positions.
- Compliance monitoring -- Regulatory bodies and compliance teams can verify that licence holders' reported quota aligns with the official FQA Register records.
- Journalism and transparency -- Investigate patterns in quota ownership to support reporting on fisheries policy, quota concentration, and the economics of UK fishing.
- Environmental impact assessment -- Identify which licence holders are extracting from specific fish stocks in particular sea areas to support marine conservation analysis.
- Quota trading analysis -- Monitor changes in FQA unit allocations over time by scheduling regular runs to detect transfers, trades, and consolidation events.
- Fleet segment analysis -- Filter by licence category to compare quota allocations between large offshore vessels (Cat A over 10m) and smaller inshore boats (Cat A 10m and under).
- Cross-administration comparison -- Compare how quota is distributed across England, Scotland, Wales, Northern Ireland, and the Isle of Man for any given fish stock.
API & Integration
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run_input = {"holderName": "Scottish","fisheriesAdmin": "Marine Scotland","stock": "NSCOD","fetchDetails": True,"maxResults": 100,}run = client.actor("z0Yj5b46QkKrLkNyn").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['vesselName']} - {item['holderName']} - {item['totalFqaUnits']} units")
JavaScript
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "YOUR_API_TOKEN" });const input = {fisheriesAdmin: "Marine Management Organisation",licenceCategory: "1",fetchDetails: true,maxResults: 50,};const run = await client.actor("z0Yj5b46QkKrLkNyn").call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => {console.log(`${item.licenceNumber}: ${item.vesselName} (${item.totalFqaUnits} FQA units)`);});
cURL
curl "https://api.apify.com/v2/acts/z0Yj5b46QkKrLkNyn/runs?token=YOUR_API_TOKEN" \-X POST \-H "Content-Type: application/json" \-d '{"vesselName": "ARDENT","fetchDetails": false,"maxResults": 25}'
Integrations
- Google Sheets -- Export FQA data directly to a spreadsheet for collaborative analysis using Apify's Google Sheets integration.
- Slack / Microsoft Teams -- Set up webhook notifications when scheduled runs detect new or changed quota allocations.
- Webhooks -- Trigger downstream workflows automatically when a run completes, pushing results to your own API endpoints.
- Zapier / Make -- Connect FQA Register data to thousands of apps for automated reporting, alerting, and data transformation.
- Data warehouses -- Push results to BigQuery, Snowflake, or PostgreSQL via the Apify API for long-term storage and historical analysis.
How it works
The actor queries the UK FQA Register at fqaregister.service.gov.uk using the same internal POST-based API that powers the government website's search interface. No browser emulation or headless rendering is needed -- the entire pipeline runs on lightweight HTTP requests.
- Input validation -- The actor reads your search parameters and maps human-readable filter names (e.g. "Marine Scotland") to the internal numeric IDs used by the API.
- Stock code validation -- If you specified a stock code, the actor calls the
/browse/GetBrowseDataendpoint to fetch the register's live reference data and validates your code against the official list. Invalid codes trigger a warning with examples of valid alternatives. - Browse search -- The actor sends a POST request to the
/browse/BrowseCallbackendpoint with a structured request body containing your search criteria. The API returns an array of row arrays, each representing a matching FQA record. - Result limiting -- Results are capped at your
maxResultsvalue to control run time and cost. - Detail fetching (optional) -- When
fetchDetailsis enabled, the actor iterates through results in batches of 10, sending POST requests to the/browse/Detailsendpoint for each record. This returns HTML fragments containing licence type, holder address, and per-stock FQA unit breakdowns, which the actor parses using regex-based HTML extraction. - Rate limiting -- A 200ms delay is inserted between detail-fetch batches to respect the government server.
- Output -- All records are transformed into clean, flat JSON objects and pushed to the Apify dataset.
UK FQA Registerfqaregister.service.gov.uk|+---------------+----------------+| | |GetBrowseData BrowseCallback Details(stock codes) (search POST) (HTML fragments)| | |v v v+-----------+ +------------+ +-----------+| Validate | | Parse row | | Parse || stock |->| arrays to |-->| HTML for || codes | | records | | details |+-----------+ +------------+ +-----------+|v+---------------+| Flat JSON || FqaRecord || objects (x12 || fields) |+---------------+|v+---------------+| Apify Dataset || (JSON/CSV/XL) |+---------------+
Performance & cost
The actor runs without browser emulation, using only lightweight HTTP requests. Costs are minimal and depend primarily on whether detail fetching is enabled.
| Scenario | Records | Detail Fetch | Approx. Time | Approx. Cost |
|---|---|---|---|---|
| Quick vessel lookup | 10 | Off | ~3 seconds | < $0.001 |
| Regional summary | 100 | Off | ~5 seconds | < $0.005 |
| Regional summary with details | 100 | On | ~30-60 seconds | ~$0.01 |
| Stock-specific analysis | 500 | Off | ~8 seconds | < $0.01 |
| Stock-specific with details | 500 | On | ~2-3 minutes | ~$0.02-0.03 |
| Full register export | 5,000 | Off | ~15 seconds | ~$0.01 |
| Full register with details | 5,000 | On | ~10-15 minutes | ~$0.05-0.10 |
Cost estimates assume Apify platform pricing at standard compute unit rates. Actual costs may vary slightly based on server response times and network conditions. The free tier ($5/month in compute credits) supports hundreds of typical runs.
Limitations
- Data freshness -- The actor queries the FQA Register in real time, but the register itself is updated by the UK government on their own schedule. There may be a delay between quota transfers occurring and their appearance in the register.
- No historical data -- The register shows current FQA allocations only. It does not provide historical snapshots or a changelog of past quota transfers. To track changes over time, schedule regular runs and compare datasets.
- Stock code knowledge required -- The stock code filter requires you to know the alphanumeric code used by the register (e.g.
NSCOD,MAC3A4BC). The actor validates codes and suggests alternatives, but does not provide a species-to-code lookup. - Detail fetching speed -- When
fetchDetailsis enabled, each record requires a separate HTTP request. Large result sets with detail fetching can take several minutes due to the batch processing and rate limiting. - HTML parsing fragility -- Detail data is extracted from HTML fragments using regex patterns. If the government changes the HTML structure of the detail pages, some detail fields may temporarily return null until the actor is updated.
- No geospatial data -- The register does not include vessel tracking, fishing area coordinates, or catch location data. It covers quota allocations only.
- Government server availability -- The actor depends on the fqaregister.service.gov.uk server being operational. Scheduled maintenance or outages on the government side will cause runs to fail.
Responsible use
- Public data, public purpose. The FQA Register is a UK government public resource. This actor provides programmatic access to data that is already freely available through the government website. No private or restricted data is accessed.
- Respectful rate limiting. The actor processes detail requests in batches of 10 with a 200ms delay between batches. Avoid running many concurrent instances against the register simultaneously to prevent unnecessary load on the government server.
- Accuracy disclaimer. While the actor faithfully reproduces data from the FQA Register, always verify critical business or regulatory decisions against the official register website at fqaregister.service.gov.uk.
- Intended use. This actor is designed for research, analysis, policy work, journalism, and legitimate business intelligence. Do not use extracted data for harassment, spam, or any purpose that violates UK data protection regulations.
- Attribution. When publishing analysis based on FQA Register data, credit the source as the UK FQA Register (fqaregister.service.gov.uk).
FAQ
What is the FQA Register? The Fixed Quota Allocation Register is the UK government's official public record of how fishing quotas are distributed among licence holders. It is maintained at fqaregister.service.gov.uk and covers all five UK fisheries administrations. The register shows who holds FQA units -- fixed percentage shares of the UK's annual Total Allowable Catch for each fish stock.
What is an FQA unit? An FQA unit represents a fixed percentage share of the UK's quota for a particular fish stock. The actual tonnage of fish that an FQA unit translates to varies each year based on internationally agreed Total Allowable Catch limits, but the percentage share itself remains constant unless units are traded, leased, or transferred between holders.
What regions and administrations does this cover? The register covers all UK fisheries administrations: Marine Management Organisation (England), Marine Scotland, Welsh Assembly Government, Department of Agriculture and Rural Development (Northern Ireland -- also known as DAERA), and Isle of Man Government. You can filter by any single administration or search across all of them.
Do I need an API key to use this actor? No. The FQA Register is a public government resource that requires no authentication. This actor accesses the same data that is freely available through the government website's browser interface. No API keys, tokens, or subscriptions are needed.
What are the licence categories?
UK fishing licences are categorised as: Category A for vessels over 10 metres, Category A for vessels 10 metres and under, Category B, and Category C. These categories correspond to different fleet segments and quota entitlements. In the actor input, these map to values 1, 3, 4, and 5 respectively.
How do stock codes work?
Stock codes are alphanumeric identifiers that the FQA Register uses to classify fish stocks. Examples include NSCOD (North Sea Cod), NSHAD (North Sea Haddock), NSWHG (North Sea Whiting), MAC3A4BC (Mackerel in areas 3a, 4b, 4c), and NSPOK (North Sea Saithe). The actor validates your stock code against the register's live data and warns you if it is unrecognised.
What is the difference between running with and without detail fetching?
Without detail fetching (fetchDetails: false), the actor returns summary data from the browse results -- licence number, vessel name, holder name, holding type, producer organisation, fisheries administration, licence category, and total FQA units. With detail fetching enabled, it makes an additional request per record to extract licence type, holder address, and a complete per-stock breakdown of FQA units.
How many records can I retrieve in a single run?
You can retrieve up to 10,000 records per run using the maxResults parameter. For most use cases, 100 to 500 records is sufficient. Larger runs with detail fetching enabled will take longer and consume more compute units.
Can I schedule regular runs to monitor quota changes? Yes. Apify supports cron-based scheduling for any actor. You can set up daily, weekly, or monthly runs and compare datasets over time to detect quota transfers, new allocations, or changes in holder details.
Why do some records have null values for licenceType and holderAddress?
These fields are only populated when fetchDetails is set to true. The browse search endpoint returns summary data only. Licence type, holder address, and per-stock breakdowns require separate detail requests for each record.
Can I search without any filters to get the entire register?
Yes, but the actor will warn you that no search criteria were provided. The register contains thousands of records, so set maxResults appropriately and consider whether you really need the full dataset. An unfiltered search with maxResults: 10000 and fetchDetails: true will take the longest to complete.
What happens if I enter an invalid stock code? The actor validates your stock code against the register's live reference data before searching. If the code is not recognised, the actor logs a warning with examples of valid stock codes and proceeds with the search without applying the stock filter. Your run will still complete -- it simply will not be filtered by stock.
Related actors
| Actor | Description |
|---|---|
| UK Companies House Search | Look up company details, directors, and filing history for fishing quota holding companies registered in the UK. |
| NSTA Oil & Gas Licenses | Search UK oil and gas licence data from the North Sea Transition Authority -- a complementary natural resource register. |
| OpenCorporates Search | Search global corporate registries to trace international ownership of UK fishing companies that hold FQA units. |
| EA Waste Carriers Register | Search the Environment Agency's register of waste carriers -- another UK regulatory compliance register actor. |
| UK Food Hygiene Ratings | Look up food hygiene ratings for fish processing plants, fishmongers, and seafood businesses across the UK. |
| UK Charity Commission | Search the Charity Commission register -- useful for researching fisheries-related charitable organisations and trusts. |