UK Trade in Goods API
HMRC overseas and regional trade statistics, aggregated without trader or transaction data.
Values are integer whole pounds sterling exactly as published; net mass is kilograms.
Monthly OTS trade
/v1/economics/trade
Waiting for request...
Monthly value and available net mass by HS2 commodity chapter, partner country and EU/non-EU import/export flow. Coverage starts January 2000. Rows whose chapter is suppressed or below the reporting threshold use the unallocated HS2 bucket so monthly totals reconcile with HMRC headline figures.
curl -H "Authorization: Bearer YOUR_API_KEY" "https://api.govdata.dev/v1/economics/trade?month=2024-01&hs2=01&country=FR&flow=eu_import"
uri = URI("https://api.govdata.dev/v1/economics/trade?month=2024-01&hs2=01&country=FR"); request = Net::HTTP::Get.new(uri, "Authorization" => "Bearer YOUR_API_KEY")
requests.get("https://api.govdata.dev/v1/economics/trade", headers={"Authorization": "Bearer YOUR_API_KEY"}, params={"month": "2024-01", "hs2": "01", "country": "FR"})
fetch("https://api.govdata.dev/v1/economics/trade?month=2024-01&hs2=01&country=FR", { headers: { Authorization: "Bearer YOUR_API_KEY" } })
Response
{"data":[{"month_id":202401,"flow":"eu_import","hs2":"01","hs2_description":null,"country_id":7,"country_code":"FR","country_name":"France","value_gbp":12345,"net_mass_kg":"42.5"}],"meta":{"api_version":"v1","licence":"Open Government Licence v3.0","source":"HMRC uktradeinfo","source_url":"https://www.uktradeinfo.com/api-documentation/","value_unit":"whole pounds sterling","net_mass_unit":"kilograms"},"pagination":{"total":1,"page":1,"per_page":25,"total_pages":1}}
Response values come from the importer/controller fixture because the development trade table is empty. Invalid month formats return 422; months outside loaded coverage return 404.
Regional RTS trade
/v1/economics/trade/regional
Waiting for request...
Monthly/quarterly RTS regional totals by UK region, partner country grouping and flow. Coverage starts January 2013.
curl -H "Authorization: Bearer YOUR_API_KEY" "https://api.govdata.dev/v1/economics/trade/regional?month=2024-01®ion=UKC"
uri = URI("https://api.govdata.dev/v1/economics/trade/regional?month=2024-01®ion=UKC"); Net::HTTP.get(uri)
requests.get("https://api.govdata.dev/v1/economics/trade/regional", params={"month": "2024-01", "region": "UKC"})
fetch("https://api.govdata.dev/v1/economics/trade/regional?month=2024-01®ion=UKC")
Response
{"data":[{"month_id":202401,"flow":"non_eu_export","region_id":1,"region_code":"UKC","region_name":"North East","country_id":9,"country_group":"Asia","value_gbp":50,"net_mass_kg":null}],"meta":{"api_version":"v1","licence":"Open Government Licence v3.0","source":"HMRC uktradeinfo","source_url":"https://www.uktradeinfo.com/api-documentation/","value_unit":"whole pounds sterling","net_mass_unit":"kilograms"},"pagination":{"total":1,"page":1,"per_page":25,"total_pages":1}}
A requested month with no loaded coverage returns the standard not_found envelope. Source: uktradeinfo API documentation (verified 2026), OGL v3.0.