UK Importers & Exporters by Product (HMRC Data)
Pricing
from $5.00 / 1,000 company rows
UK Importers & Exporters by Product (HMRC Data)
Find UK companies that imported or exported a product each month, by HS code or keyword, from official HMRC trade data. New traders flagged; Companies House number, SIC code, status and size added; bulk-check your own company list. No API key; JSON via API or MCP, from $5 per 1,000 rows.
Pricing
from $5.00 / 1,000 company rows
Rating
0.0
(0)
Developer
Japan Open Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Features
Share
Find UK companies that imported or exported a product (HS code) each month — official HMRC data, no API key. Give a product code such as 8471 (computers) or a keyword such as coffee, and get one clean JSON row per company: company name, town, postcode district, the 8-digit CN8 codes it traded under, and whether it is new (no trade in that product for the previous 12 months).
- Official source: HM Revenue & Customs' UK Trade Info traders data, queried live through HMRC's own API. About 680,000 trader-product records a month, from 2016 onwards.
- New traders flagged:
isNewTrader: truemarks companies that traded the product this month but not in any of the previous 12 months (adjustable). Run it monthly withonlyNewTraders: truefor a fresh lead list — for computers (HS 8471) that is about 560 of the 3,400 importing companies returned for July 2026. - Search by product: a 2-, 4-, 6- or 8-digit HS/CN8 code, up to 5 codes, or a plain-English keyword ("laptops", "solar panels", "bicycles").
- Company details from Companies House: every row adds the company number, status, company type, incorporation date, accounts category (a size indicator: micro, small, full, group...) and SIC codes (line of business), matched by name and postcode, with the match type shown in
companiesHouseMatch. - Bulk lookup of your own list: give up to 1,000 company names or Companies House numbers in
companies(for example a CRM export) and get, for each, whether HMRC lists it as an importer or exporter and which CN8 codes it traded in the month. - Filter by place and name: postcode areas (
"B","LS") or districts ("M1"), and part of a company name. - Companies only. Sole traders and other names without a legal form (Ltd, PLC, LLP, GmbH...) are never returned, and addresses are cut to town and postcode district (see Privacy).
- Built for pipelines and AI agents: flat camelCase fields, a
statuson every row, plain-English error rows that are free (only the $0.002 run start applies). - Price: $5 per 1,000 company rows, $8 per 1,000 enriched company rows (rows with a Companies House company number; in a bulk lookup, only companies that traded in the month), plus $0.002 per run. No subscription.
What this data is (and is not)
HMRC publishes who traded which product in which month. It does not publish values, quantities, countries of origin, suppliers or shipments. So this is a who imports / exports X in the UK directory, not a bill-of-lading database.
| US bill-of-lading scrapers (ImportYeti-style) | Paid UK importer databases (e.g. about £25 a month) | This Actor | |
|---|---|---|---|
| Country | United States (sea freight) | United Kingdom | United Kingdom, all transport modes |
| Source | Scraped from a third-party website | HMRC data, repackaged | HMRC's official API, live |
| Company name and location | Yes | Yes | Yes: name, town, postcode district |
| Company number, SIC, size, status | No | Some | Yes, from Companies House |
| Product | Free-text cargo description | HS code | HS / CN8 code, or a keyword |
| Supplier, value, quantity, shipments | Yes (supplier, shipments) | No | No (HMRC does not publish them) |
| "New this month" | No | Sometimes | Yes, isNewTrader |
| Access | Browser / scraper | Browser, CSV export | API, JSON, schedules, webhooks, MCP |
| Pricing | Per result | Monthly subscription | Pay per row, no subscription |
What can you do with UK Importers & Exporters by Product?
- Exporters and overseas suppliers — list the UK companies that import your product (e.g.
9403furniture,0901coffee) and start outreach; filter to a region by postcode area. - Freight forwarders, customs brokers and 3PLs — find new UK importers of the goods you handle every month (
onlyNewTraders: true) before your competitors do. - Market and competitor research — who else imports this product? Which companies started importing it last month?
- CRM enrichment — paste your prospect list into
companiesand see which of them import or export, what (CN8 codes), and their Companies House number, size category and SIC codes. - Lead qualification — keep only active companies of the right size (
accountsCategory) and line of business (sicCodes) from a product's importer list. - AI agents — answer "which UK companies import solar panels?" with one tool call and an official source.
How to use
- Click Try for free. The default input lists 20 UK importers of computers (HS 8471) in the latest published month, in about 30 seconds (cost: about $0.11-$0.13, depending on how many rows get a company number).
- Put your product in HS / CN8 product code (look it up on the UK Trade Tariff), or type a word in Product keyword.
- Choose Importers or Exporters, and optionally a month, postcode areas, a company name, or Only new traders.
- Raise Maximum rows to get the full list (for HS 8471 imports, about 3,400 companies a month).
Run it every month (new importers of your product)
HMRC publishes a new month about two months in arrears (for example, July data in mid-to-late September). Schedule this Actor monthly (for example on the 25th) with {"hsCode": "8471", "onlyNewTraders": true, "maxResults": 500} and connect a webhook, Google Sheets or your CRM to receive the new companies.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
hsCode | text | "8471" | 2-, 4-, 6- or 8-digit HS / CN8 code, or up to 5 separated by commas. Ignored when productKeyword is set. |
productKeyword | text | empty | A product in plain English; turned into up to 5 HS codes, which each row shows in hsCode. Takes priority over hsCode. |
flow | import / export | import | Importers or exporters of the product. |
month | text | latest | latest, or a month such as "2026-07" (2016-01 or later). |
onlyNewTraders | boolean | false | Only new traders (isNewTrader: true). |
newTraderLookbackMonths | integer | 12 | How many earlier months a new trader must be absent from (1-24). 1 = compared with the previous month only; many importers do not import every month, so short lookbacks flag many seasonal importers as "new". |
postcodes | list of text | all | Postcode areas ("B", "LS") or districts ("M1", "B62"). |
companyName | text | empty | Only names containing this text at the start of a word, e.g. "Dell". |
companies | list of text | empty | Bulk lookup. Company names or Companies House numbers (up to 1,000). One row per company with its CN8 codes in month and flow; product, postcode, name and new-trader filters and maxResults are ignored. Every company found among HMRC's traders is one charged row, even when it did not trade in that month (tradedInMonth: false, no CN8 codes), but a company with no trade in the month is always a $0.005 company row, never an enriched one; names that are not found, ambiguous or invalid are free. Several names or numbers for the same company share one row (charged once). |
addCompanyDetails | boolean | true | Add the Companies House columns to each row. A row that gets a company number is charged as an enriched company row ($0.008) instead of a company row ($0.005); set false to get only company rows. Always on for the bulk lookup, where only companies that traded in the month (tradedInMonth: true) with a company number are enriched company rows. |
maxResults | integer | 20 | Maximum company rows (charged). New traders first, then companies trading the most CN8 product lines, then A-Z; with several codes, the codes take turns. Not used by the bulk lookup (one row per company given). |
Input examples
{ "productKeyword": "coffee", "flow": "import", "postcodes": ["LS", "M", "B"], "maxResults": 100 }
{ "hsCode": "854143", "month": "2026-07", "onlyNewTraders": true, "maxResults": 200 }
Bulk lookup (names or company numbers):
{ "companies": ["PC Specialist Ltd", "Scan Computers International Limited", "03174949"], "flow": "import" }
Output
Example row (real data, default input, month 2026-08; long text cut):
{"status": "ok","companyName": "CROWN WORKSPACE LIMITED","town": "Enfield","postcodeDistrict": "EN1","postcodeArea": "EN","hmrcCareOfAddress": false,"flow": "import","month": "2026-08","isNewTrader": true,"newTraderLookback": "2025-08 to 2026-07","hsCode": "8471","productDescription": "Automatic data-processing machines and units thereof; ...","cn8Codes": "84713000; 84718000","cn8Count": 2,"traderId": 508848,"query": "8471","latestMonthAvailable": "2026-08","sourceUrl": "https://www.uktradeinfo.com/find-uk-traders/","fetchedAt": "2026-11-04T07:16:48Z","attribution": "HMRC UK Trade Info (api.uktradeinfo.com), UK traders data. Contains public sector information licensed under the Open Government Licence v3.0. ...","companyNumber": "03250579","companiesHouseName": "CROWN WORKSPACE LIMITED","companyStatus": "Active","companyType": "Private Limited Company","incorporationDate": "1996-09-17","accountsCategory": "MEDIUM","sicCodes": "49420","sicDescriptions": "Removal services","companiesHouseMatch": "name_postcode","companiesHouseUrl": "https://find-and-update.company-information.service.gov.uk/company/03250579","companyDataAsOf": "2026-11-01","companyDetailsSource": "Company details: Companies House Free Company Data Product (live companies, monthly snapshot), ..."}
A bulk lookup row has the same fields plus inputCompany, tradedInMonth and hmrcTraderIds. In a bulk lookup row, hsCode lists the 4-digit HS headings made from the company's CN8 codes (not a code you searched), productDescription and isNewTrader are null, and traderId, town and the postcode come from the company's HMRC trader ID that traded in the month (otherwise its best Companies House match, otherwise the newest ID).
Free rows (the $0.002 run start still applies): a not_found row when no company matches (with the reason and what to change), and an error row for invalid input, e.g. {"status": "error", "error": "\"847\" is not a valid \"hsCode\"; give a 2-, 4-, 6- or 8-digit HS/CN8 product code such as \"8471\" (computers) ..."}.
Output fields
| Field | Meaning |
|---|---|
status | ok (charged), not_found or error (free) |
companyName | As published by HMRC (companies only) |
town, postcodeDistrict, postcodeArea | Town and the first half of the postcode ("B62", "B"). No street address is returned. town is null when it cannot be read reliably |
hmrcCareOfAddress | true when HMRC lists the trader at an HMRC office (usually a business with no UK establishment); town and postcode are then null |
flow, month | import / export and the month (YYYY-MM) |
isNewTrader, newTraderLookback | true when the company did not trade this product (same code, same flow) in any month of newTraderLookback |
hsCode, productDescription | The code(s) searched and HMRC's description |
cn8Codes, cn8Count | The 8-digit CN8 codes the company traded under within that code, and how many |
traderId | HMRC's trader ID, stable across months (use it to join runs) |
companyNumber, companiesHouseName | Companies House company number and registered name (null when there is no unambiguous match; the registered name is also null in the rare case it does not pass the company-name check) |
companyStatus, companyType, incorporationDate | e.g. Active, Private Limited Company, 2001-05-14 |
accountsCategory | The accounts the company last filed, a size indicator: MICRO ENTITY, SMALL, TOTAL EXEMPTION FULL, FULL, GROUP, DORMANT... |
sicCodes, sicDescriptions | Up to 4 SIC 2007 codes and their descriptions, separated by ; |
companiesHouseMatch | How the row was matched: name_postcode (same name and registered postcode: strongest), name_only (same name, different postcode: usually the same company with a trading address), company_number (you gave the number), ambiguous (several companies share the name: no details given) or none |
companiesHouseUrl, companyDataAsOf, companyDetailsSource | Link to the company's Companies House page, the snapshot date, and the source and licence note |
inputCompany, tradedInMonth, hmrcTraderIds | Bulk lookup only: what you gave (several entries for the same company are joined with ; ), whether HMRC lists any trade by the company in that month and flow (cn8Codes can still be empty when HMRC recorded the trade at chapter level only), and every HMRC trader ID merged into the row, the one used for traderId first |
query, latestMonthAvailable, sourceUrl, fetchedAt, attribution | Provenance |
error | Plain-English reason on free rows |
Each run also saves a RUN_SUMMARY record in its key-value store: traders HMRC listed, how many were withheld by the company-name check, how many matched your filters, and how many rows were returned.
How much does it cost?
Pay per event, with no subscription. Each ok row is charged once, as either a company row or an enriched company row (never both):
| Event | Price | When it is charged |
|---|---|---|
Company row (result-row) | $0.005 per row ($5.00 per 1,000) | Each row with status: "ok" and no Companies House company number (companiesHouseMatch is none or ambiguous, or addCompanyDetails: false), and every bulk lookup row with tradedInMonth: false (with or without a company number) |
Enriched company row (enriched-company-row) | $0.008 per row ($8.00 per 1,000) | Each row with status: "ok" and a Companies House company number (companiesHouseMatch is name_postcode, name_only or company_number) for a company that traded in the month (every product-search row; bulk lookup rows with tradedInMonth: true), instead of a company row |
Run start (apify-actor-start) | $0.002 per run | Once per run, including runs that return only a not_found or error row |
not_found and error rows themselves are free, but the $0.002 run start is charged on every run, so a run with a typo in the input costs $0.002. If you only need company names, towns and CN8 codes, set addCompanyDetails: false and every row is a $0.005 company row.
Bulk lookup (companies): every company found among HMRC's traders is one ok row, including companies that did not import or export in that month (tradedInMonth: false): you still get the Companies House details and the answer "listed by HMRC, no trade this month". A company with no trade in the month is always a $0.005 company row, even with a company number; only companies that traded in the month and have a company number are $0.008 enriched company rows. Example, assuming (from our tests) that about 3 in 4 HMRC-listed companies (76%) had no trade in a given month and about 8 in 10 have a company number: a CRM list of 1,000 found companies is about 760 untraded rows ($3.80) + about 192 traded rows with a company number ($1.54) + about 48 traded rows without one ($0.24), so about $5.58 with the run start. Your list may differ. Names that are not found, ambiguous or invalid are free rows. Several names or numbers for the same company share one row and are charged once.
| Use | Rows | Cost |
|---|---|---|
| Default run (20 importers of HS 8471, some with a company number) | 20 | about $0.11-$0.13 |
| New UK importers of one product, run monthly | 50-500 | about $0.30-$4.00 a month |
Same, with addCompanyDetails: false | 50-500 | about $0.25-$2.50 a month |
| Every UK importer of computers (HS 8471) in a month (a one-off market map) | about 3,400 | about $20-$27 |
| Bulk lookup of 300 company names (all found among HMRC traders; assuming about 228 with no trade in the month and, of the 72 that traded, about 58 with a company number) | 300 | about $1.68 |
| Bulk lookup of 1,000 company names (same assumptions) | 1,000 | about $5.58 |
| Input error or no matching company | 0 (one free row) | $0.002 |
For comparison: tracking the new UK importers of one product every month, with company numbers, SIC codes and size, costs a few dollars a month here, while paid UK importer databases built on the same HMRC data charge about £25 (about $33) per user per month. Set Maximum cost per run in the run options to cap any run; the Actor stops when the cap is reached.
Use via API & MCP (AI agents)
REST API (synchronous, returns the rows):
curl -X POST "https://api.apify.com/v2/acts/japan-open-data~uk-importer-exporter-directory/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"productKeyword": "coffee", "maxResults": 20}'
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("japan-open-data/uk-importer-exporter-directory").call(run_input={"hsCode": "8471", "onlyNewTraders": True, "maxResults": 100})for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row["status"] == "ok":print(row["companyName"], row["town"], row["postcodeDistrict"], row["cn8Codes"])
MCP: add the Apify MCP server (https://mcp.apify.com) to Claude, Cursor or any MCP client and enable the tool japan-open-data/uk-importer-exporter-directory.
Recommended settings for agents:
- To answer "which UK companies import X?", use
productKeyword: "<X>"andmaxResults: 20; checkhsCodein the rows to confirm the product, and passhsCodedirectly next time. - Prefer an HS code when you know it: 4 digits is a good default; 2 digits (a whole chapter) can be very large.
isNewTrader: truemeans "no trade in this product in the previous 12 months" (seenewTraderLookback), not "new company".- Say that the data is monthly and about two months old (
month,latestMonthAvailable), and quotesourceUrl. - The data has no values, quantities, countries or suppliers; do not infer them.
- To check a list of known companies, pass them in
companies; prefer Companies House numbers when you have them. TreatcompaniesHouseMatch: "name_only"as likely, not certain. Each company found is charged even withtradedInMonth: false, but such rows are always $0.005 company rows; only rows withtradedInMonth: trueand a company number are enriched company rows ($0.008);maxResultsdoes not apply, andhsCodein those rows is derived from the company's CN8 codes.
Summary for AI assistants: This tool lists UK companies that imported or exported a product (HS/CN8 code or keyword) in a given month, from HMRC's official UK Trade Info traders data, one JSON row per company with the town, postcode district, CN8 codes, a flag for companies new this month and Companies House details (company number, status, type, incorporation date, accounts category, SIC codes). It can also bulk-check up to 1,000 given company names or company numbers: one row each, saying whether and what the company traded in the month. Companies only; no values, quantities or suppliers.
Privacy: companies only
HMRC's traders list includes sole traders under their own names and home addresses. Personal data is outside the Open Government Licence, so this Actor returns a trader only when its name carries a company legal form (Ltd, Limited, PLC, LLP, LLC, Inc, GmbH, AG, SA, BV, AB, A/S, Oy, Pte, Co Ltd and others) and a second check does not read it as a person's name (for example "
Addresses are cut to the town (only when it is a known town name) and the outward postcode ("B62"); the street address is never returned.
FAQ
How fresh is the data?
HMRC publishes each month about two months in arrears. latest always uses the newest month HMRC has published (shown in latestMonthAvailable); every run queries HMRC's API live.
Why is a company I know missing?
It may not have traded that exact product code that month (try a 4-digit code instead of 8), it may trade under another company name, it may have asked HMRC not to be published, or it may have been withheld by the company-name check. HMRC lists non-EU importers from 2016 and exporters to the EU from 2021 in its traders data.
Is this the same as ImportYeti for the UK?
No. There are no suppliers, shipments, values or quantities: HMRC does not publish them. You get the list of UK companies trading each product each month, from the official source.
Where do the company number, SIC codes and size come from?
From Companies House's free monthly snapshot of live companies (Free Company Data Product), joined to HMRC's trader names when the Actor is built and refreshed by a monthly rebuild. Matching is by company name (legal-form words such as Ltd / Limited removed) and then by postcode. Only live companies are in the snapshot, so a dissolved company, or one that trades under a different name from its registered one, has no company details (companiesHouseMatch: "none"). No officers, shareholders or registered addresses are returned.
Is this an official HMRC service?
No. It re-publishes HMRC's open data under the Open Government Licence. It is not affiliated with or endorsed by HM Revenue & Customs.
Troubleshooting
| Symptom | Fix |
|---|---|
not_found: no HS heading matches the keyword | Use a simpler word ("bicycles", "coffee"), or find the code on the UK Trade Tariff and use hsCode |
error: month not published yet | Use latest; HMRC publishes about two months in arrears |
error: more rows than one run handles | Use a longer code (4 or 6 digits instead of a 2-digit chapter) |
Few rows with postcodes | Use the postcode area letters ("B") rather than a district ("B62") |
| An HMRC API error row | HMRC's API was busy or down; run again in a few minutes (the row is free; only the $0.002 run start was charged) |
Known limitations
- Monthly data, about two months old. No values, quantities, countries, ports or suppliers.
- About 31% of HMRC's traders are withheld by the company-name check, including some genuine companies.
townisnullwhen the address does not contain a recognisable town;postcodeDistrictis still given.isNewTraderlooks back 12 months by default; a company that trades this product less than once a year still shows as new.- The keyword search maps everyday words to HS codes with a built-in list and HMRC's descriptions; check
hsCodein the rows. - Company details are matched by name: when several companies share a name the row gets no details (
ambiguous), and aname_onlymatch can, rarely, be a different company with the same name. Company details are refreshed monthly, so a status change in the last few weeks may not show yet. - HMRC's API allows 60 requests a minute; this Actor stays under it, so each code takes about 15-30 seconds with the 12-month new-trader lookback (a keyword that maps to 5 codes, or a 2-digit chapter: about 2-3 minutes).
Data source and licence
Source: HM Revenue & Customs, UK Trade Info — Find UK traders, via the UK Trade Info API. Contains public sector information licensed under the Open Government Licence v3.0. This Actor is not affiliated with, or endorsed by, HM Revenue & Customs.
Company details: Companies House Free Company Data Product (monthly snapshot of live companies). Companies House places no restrictions on the re-use of information on the public register; source: Companies House. This Actor is not affiliated with, or endorsed by, Companies House.
More from Japan Open Data
- NSW Rent Prices by Postcode (Official Bond Data) — median weekly rents for any New South Wales postcode or suburb by dwelling type and bedrooms, from NSW Fair Trading's official rental bond data, with quartiles and year-over-year change.
- Korea E-commerce Company Leads (KFTC Register) — new Korean e-commerce companies from the official KFTC online seller register (통신판매업), in English with business registration number and store platform.
- Poland Building Permits API: Construction Leads — new Polish building permits (pozwolenia na budowę) issued to companies and public bodies, with investor, building category and site, from the official GUNB register.
- Taiwan Real Estate Sold Prices API in English — official Taiwan actual-price-registration sales (buildings, land, parking) by city and district, translated into English with price per ping and per m².
- France Building Permits API: Construction Leads — official French building permits (Sitadel) filed by companies, by department, commune or date, with SIREN, project type and floor areas.
- UK Visa Sponsor Register Tracker (Daily Changes) — new, removed and downgraded UK visa sponsor licences from the official Home Office register, or check whether a company can sponsor workers.
- US Flood Zone Lookup by Address (FEMA NFHL) — official FEMA flood zone (A, AE, VE, X…), base flood elevation and FIRM panel for any U.S. address or coordinates.
- Japan Hazard Map Lookup: Flood, Tsunami, Landslide — official Japanese hazard-map zones (river flood depth, storm surge, tsunami, landslide) for up to 1,000 coordinates per run, from GSI open data, in English.
- UK NHS Organisation Lookup (Official ODS Codes) — official NHS ODS register by postcode, type or ODS code: GP practices, pharmacies, dentists, NHS trusts, care homes and more.
- UK HGV Operator Licence Lookup (Official DVSA) — Great Britain's official HGV and bus / coach operator licences by company, postcode and fleet size.
- UK Waste Carrier Licence Check (Environment Agency) — check whether an English business is a registered waste carrier, broker or dealer.
- UK Flood Risk Lookup by Postcode (England) — Environment Agency flood zone, recorded flood extents and flood defences for any postcode or coordinates in England.
- England Listed Building & Conservation Area Check — official listed buildings, scheduled monuments, conservation areas and Article 4 directions for any postcode or coordinates in England, one row per location.
- England Protected Site Check: SSSI, AONB & Green Belt — SSSI, National Landscape (AONB), National Park, Green Belt, SAC/SPA and Ramsar checks for any English postcode or coordinates, one row per site, from official Natural England and DLUHC data.
- France Property Risk Lookup by Address (Georisques) — official Géorisques risks for any French address or coordinates: flood, clay shrink-swell, seismic zone, radon, past natural-disaster declarations and nearby industrial sites.
- US Hail History by Location (NOAA NEXRAD Radar) — every hail day near any U.S. latitude/longitude with max estimated hail size.
- US Storm Reports API: Hail, Wind & Tornado (NWS) — U.S. hail, wind, tornado and flood reports from official NWS Local Storm Reports.
- Mexico Gas Prices API by Station (Official CNE) — today's gas and diesel prices at every Mexican gas station, from the official CNE feed.
- Argentina Fuel Prices API by Station (Official) — last reported gasoline (nafta), diesel and CNG prices at every Argentine gas station.
- TSA Checkpoint Travel Numbers (Daily, Weekly & YoY) — daily U.S. TSA airport checkpoint traveler counts.
- Japan Postal Code & Address in English — Japanese postal codes and addresses in English/romaji, kanji and kana.
Feedback
Found a wrong row, a company withheld that should not be, or a keyword that maps to the wrong product? Open an issue on the Issues tab — it will be read.