GovData Docs

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

GET /v1/economics/trade

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"

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

GET /v1/economics/trade/regional

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&region=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.