{"openapi":"3.1.0","info":{"title":"Package Type Codes API","version":"1.0.0","description":"The UN/ECE Recommendation 21 package-type codes — the codes used to describe the kind of packaging in trade, transport and customs documents (packing lists, dangerous-goods declarations, EDI messages) — as an API. The reference a logistics, customs or e-invoicing system needs. Each of 400+ codes (for example 1A = steel drum, 5H = woven-plastic bag, BX = box, CT = carton, JY = jerrican) carries an alphanumeric code, a name, a description and a numeric code. Look a code up, reverse-look-up the codes that share a numeric code, search by name, or list them all. This is the packaging-type CODE register — distinct from containercodes-api (ISO 6346 shipping containers) and unitcodes-api (units of measure). Served from memory — always fast.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/packagecodes-api","description":"oanor gateway"}],"tags":[{"name":"Lookup"},{"name":"Search"},{"name":"List"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/code":{"get":{"operationId":"get_v1_code","tags":["Lookup"],"summary":"Package type by UN/ECE code","description":"","parameters":[{"name":"code","in":"query","required":true,"description":"UN/ECE package code","schema":{"type":"string"},"example":"1A"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"package":{"code":"1A","name":"Drum, steel","active":true,"status":"active","numeric_code":"34"}},"meta":{"timestamp":"2026-06-08T18:25:01.074Z","request_id":"2f1ba269-76f1-4e85-9f7a-54901b9e78e8"},"status":"ok","message":"Package code retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/numeric":{"get":{"operationId":"get_v1_numeric","tags":["Lookup"],"summary":"Codes for a numeric code","description":"","parameters":[{"name":"numeric","in":"query","required":true,"description":"Numeric code","schema":{"type":"string"},"example":"34"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":13,"packages":[{"code":"1A","name":"Drum, steel","active":true,"status":"active","numeric_code":"34"},{"code":"1B","name":"Drum, aluminium","active":true,"status":"active","numeric_code":"34"},{"code":"1D","name":"Drum, plywood","active":true,"status":"active","numeric_code":"34"},{"code":"1G","name":"Drum, fibre","active":true,"status":"active","numeric_code":"34"},{"code":"DI","name":"Drum, iron","active":true,"status":"active","numeric_code":"34"},{"code":"DR","name":"Drum","active":true,"status":"active","numeric_code":"34"},{"code":"IH","name":"Drum, plastic","active":true,"status":"active","numeric_code":"34"},{"code":"QA","name":"Drum, steel, non-removable head","active":true,"status":"active","numeric_code":"34"},{"code":"QB","name":"Drum, steel, removable head","active":true,"status":"active","numeric_code":"34"},{"code":"QC","name":"Drum, aluminium, non-removable head","active":true,"status":"active","numeric_code":"34"},{"code":"QD","name":"Drum, aluminium, removable head","active":true,"status":"active","numeric_code":"34"},{"code":"QF","name":"Drum, plastic, non-removable head","active":true,"status":"active","numeric_code":"34"},{"code":"QG","name":"Drum, plastic, removable head","active":true,"status":"active","numeric_code":"34"}],"numeric_code":"34"},"meta":{"timestamp":"2026-06-08T18:25:01.193Z","request_id":"cc8439d1-51b5-4cec-8a14-c461aaafd230"},"status":"ok","message":"Numeric lookup retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/search":{"get":{"operationId":"get_v1_search","tags":["Search"],"summary":"Search package codes","description":"","parameters":[{"name":"q","in":"query","required":true,"description":"Search query (min 2 chars)","schema":{"type":"string"},"example":"drum"},{"name":"limit","in":"query","required":false,"description":"Max results (1-100)","schema":{"type":"string"},"example":"25"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":23,"query":"drum","total":23,"packages":[{"code":"1A","name":"Drum, steel","active":true,"status":"active","numeric_code":"34"},{"code":"1B","name":"Drum, aluminium","active":true,"status":"active","numeric_code":"34"},{"code":"1D","name":"Drum, plywood","active":true,"status":"active","numeric_code":"34"},{"code":"1G","name":"Drum, fibre","active":true,"status":"active","numeric_code":"34"},{"code":"1W","name":"Drum, wooden","active":true,"status":"active","numeric_code":"34 or 35"},{"code":"DI","name":"Drum, iron","active":true,"status":"active","numeric_code":"34"},{"code":"DR","name":"Drum","active":true,"status":"active","numeric_code":"34"},{"code":"IH","name":"Drum, plastic","active":true,"status":"active","numeric_code":"34"},{"code":"QA","name":"Drum, steel, non-removable head","active":true,"status":"active","numeric_code":"34"},{"code":"QB","name":"Drum, steel, removable head","active":true,"status":"active","numeric_code":"34"},{"code":"QC","name":"Drum, aluminium, non-removable head","active":true,"status":"active","numeric_code":"34"},{"code":"QD","name":"Drum, aluminium, removable head","active":true,"status":"active","numeric_code":"34"},{"code":"QF","name":"Drum, plastic, non-removable head","active":true,"status":"active","numeric_code":"34"},{"code":"QG","name":"Drum, plastic, removable head","active":true,"status":"active","numeric_code":"34"},{"code":"YA","name":"Composite packaging, plastic receptacle in steel drum","active":true,"status":"active","numeric_code":"33 or 34"},{"code":"YC","name":"Composite packaging, plastic receptacle in aluminium drum","active":true,"status":"active","numeric_code":"33 or 34"},{"code":"YG","name":"Composite packaging, plastic receptacle in plywood drum","active":true,"status":"active","numeric_code":"33 or 34"},{"code":"YJ","name":"Composite packaging, plastic receptacle in fibre drum","active":true,"status":"active","numeric_code":"33 or 34"},{"code":"YL","name":"Composite packaging, plastic receptacle in plastic drum","active":true,"status":"active","numeric_code":"33 or 34"},{"code":"YN","name":"Composite packaging, glass receptacle in steel drum","active":true,"status":"active","numeric_code":"33 or 34"},{"code":"YQ","name":"Composite packaging, glass receptacle in aluminium drum","active":true,"status":"active","numeric_code":"33 or 34"},{"code":"YT","name":"Composite packaging, glass receptacle in plywood drum","active":true,"status":"active","numeric_code":"33 or 34"},{"code":"YW","name":"Composite packaging, glass receptacle in fibre drum","active":true,"status":"active","numeric_code":"33 or 34"}]},"meta":{"timestamp":"2026-06-08T18:25:01.445Z","request_id":"f70a50bb-2d2c-43d7-8d50-846aeffac355"},"status":"ok","message":"Search results retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/list":{"get":{"operationId":"get_v1_list","tags":["List"],"summary":"List package codes","description":"","parameters":[{"name":"status","in":"query","required":false,"description":"active or deprecated","schema":{"type":"string"},"example":"active"},{"name":"limit","in":"query","required":false,"description":"Page size (1-500)","schema":{"type":"string"},"example":"50"},{"name":"offset","in":"query","required":false,"description":"Offset","schema":{"type":"string"},"example":"0"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":50,"total":404,"packages":[{"code":"1A","name":"Drum, steel","active":true,"status":"active","numeric_code":"34"},{"code":"1B","name":"Drum, aluminium","active":true,"status":"active","numeric_code":"34"},{"code":"1D","name":"Drum, plywood","active":true,"status":"active","numeric_code":"34"},{"code":"1F","name":"Container, flexible","active":true,"status":"active","description":"A packaging container of flexible construction.","numeric_code":"93"},{"code":"1G","name":"Drum, fibre","active":true,"status":"active","numeric_code":"34"},{"code":"1W","name":"Drum, wooden","active":true,"status":"active","numeric_code":"34 or 35"},{"code":"2C","name":"Barrel, wooden","active":true,"status":"active","numeric_code":"44 or 45"},{"code":"3A","name":"Jerrican, steel","active":true,"status":"active","numeric_code":"23 or 33"},{"code":"3H","name":"Jerrican, plastic","active":true,"status":"active","numeric_code":"23 or 33"},{"code":"43","name":"Bag, super bulk","active":true,"status":"active","description":"A cloth plastic or paper based bag having the dimensions of the pallet on which it is constructed.","numeric_code":"64"},{"code":"44","name":"Bag, polybag","active":true,"status":"active","description":"A type of plastic bag, typically used to wrap promotional pieces, publications, product samples, and/or catalogues.","numeric_code":"62 or 63"},{"code":"4A","name":"Box, steel","active":true,"status":"active","numeric_code":"21 to 25"},{"code":"4B","name":"Box, aluminium","active":true,"status":"active","numeric_code":"21 to 25"},{"code":"4C","name":"Box, natural wood","active":true,"status":"active","numeric_code":"21 to 25"},{"code":"4D","name":"Box, plywood","active":true,"status":"active","numeric_code":"21 to 25"},{"code":"4F","name":"Box, reconstituted wood","active":true,"status":"active","numeric_code":"21 to 25"},{"code":"4G","name":"Box, fibreboard","active":true,"status":"active","numeric_code":"21 to 25"},{"code":"4H","name":"Box, plastic","active":true,"status":"active","numeric_code":"21 to 25"},{"code":"5H","name":"Bag, woven plastic","active":true,"status":"active","numeric_code":"62 to 64"},{"code":"5L","name":"Bag, textile","active":true,"status":"active","numeric_code":"62 to 64"},{"code":"5M","name":"Bag, paper","active":true,"status":"active","numeric_code":"62 to 64"},{"code":"6H","name":"Composite packaging, plastic receptacle","active":true,"status":"active","numeric_code":"24 or 25 or 33 or 34"},{"code":"6P","name":"Composite packaging, glass receptacle","active":true,"status":"active","numeric_code":"23 or 24 or 25 or 33 or 34 or 62 or 63"},{"code":"7A","name":"Case, car","active":true,"status":"active","description":"A type of portable container designed to store equipment for carriage in an automobile.","numeric_code":"22 or 23"},{"code":"7B","name":"Case, wooden","active":true,"status":"active","description":"A case made of wood for retaining substances or articles.","numeric_code":"24 or 25"},{"code":"8A","name":"Pallet, wooden","active":true,"status":"active","description":"A platform or open-ended box, made of wood, on which goods are retained for ease of mechanical handling during transport and storage.","numeric_code":"24 or 25"},{"code":"8B","name":"Crate, wooden","active":true,"status":"active","description":"A receptacle, made of wood, on which goods are retained for ease of mechanical handling during transport and storage.","numeric_code":"23 to 27"},{"code":"8C","name":"Bundle, wooden","active":true,"status":"active","description":"Loose or unpacked pieces of wood tied or wrapped together.","numeric_code":"16"},{"code":"AA","name":"Intermediate bulk container, rigid plastic","active":true,"status":"active","numeric_code":"23 to 26"},{"code":"AB","name":"Receptacle, fibre","active":true,"status":"active","description":"Containment vessel made of fibre used for retaining substances or articles.","numeric_code":"21 to 23 or 31 to 33 or 41 to 43"},{"code":"AC","name":"Receptacle, paper","active":true,"status":"active","description":"Containment vessel made of paper for retaining substances or articles.","numeric_code":"21 to 23 or 31 to 33 or 41 to 43"},{"code":"AD","name":"Receptacle, wooden","active":true,"status":"active","description":"Containment vessel made of wood for retaining substances or articles.","numeric_code":"21 to 23 or 31 to 33 or 41 to 43"},{"code":"AE","name":"Aerosol","active":true,"status":"active","numeric_code":"42 or 43"},{"code":"AF","name":"Pallet, modular, collars 80cms * 60cms","active":true,"status":"active","description":"Standard sized pallet of dimensions 80 centimeters by 60 centimeters (cms).","numeric_code":"92"},{"code":"AG","name":"Pallet, shrinkwrapped","active":true,"status":"active","description":"Pallet load secured with transparent plastic film that has been wrapped around and then shrunk tightly.","numeric_code":"92"},{"code":"AH","name":"Pallet, 100cms * 110cms","active":true,"status":"active","description":"Standard sized pallet of dimensions 100centimeters by 110 centimeters (cms).","numeric_code":"92"},{"code":"AI","name":"Clamshell","active":true,"status":"active","numeric_code":"21 to 23"},{"code":"AJ","name":"Cone","active":true,"status":"active","description":"Container used in the transport of linear material such as yarn.","numeric_code":"51"},{"code":"AL","name":"Ball","active":true,"status":"active","description":"A spherical containment vessel for retaining substances or articles.","numeric_code":"46"},{"code":"AM","name":"Ampoule, non-protected","active":true,"status":"active","numeric_code":"31"},{"code":"AP","name":"Ampoule, protected","active":true,"status":"active","numeric_code":"31"},{"code":"AT","name":"Atomizer","active":true,"status":"active","numeric_code":"42 or 43"},{"code":"AV","name":"Capsule","active":true,"status":"active","numeric_code":"92"},{"code":"B4","name":"Belt","active":true,"status":"active","description":"A band use to retain multiple articles together.","numeric_code":"93"},{"code":"BA","name":"Barrel","active":true,"status":"active","numeric_code":"44 or 45"},{"code":"BB","name":"Bobbin","active":true,"status":"active","numeric_code":"91"},{"code":"BC","name":"Bottlecrate / bottlerack","active":true,"status":"active","numeric_code":"29"},{"code":"BD","name":"Board","active":true,"status":"active","numeric_code":"16"},{"code":"BE","name":"Bundle","active":true,"status":"active","numeric_code":"61 to 65"},{"code":"BF","name":"Balloon, non-protected","active":true,"status":"active","numeric_code":"42 or 43"}]},"meta":{"timestamp":"2026-06-08T18:25:01.567Z","request_id":"d0981556-ace9-4f8d-a382-49fb011552a8"},"status":"ok","message":"Package codes listed successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Service metadata","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"service":"packagecodes-api","endpoints":{"GET /v1/code":"Package type by UN/ECE code (code=, e.g. 1A).","GET /v1/list":"List package codes (status=active|deprecated, limit, offset).","GET /v1/meta":"This document.","GET /v1/search":"Search by code, name or description (q=, e.g. drum).","GET /v1/numeric":"Codes for a numeric code (numeric=, e.g. 34)."},"description":"UN/ECE Recommendation 21 package-type codes for trade, transport and customs: alphanumeric code, name, description and numeric code. Look up a code, reverse-look-up by numeric code, search, or list. Distinct from containercodes-api (ISO 6346 containers) and unitcodes-api (units of measure). No key.","total_codes":406,"active_codes":404},"meta":{"timestamp":"2026-06-08T18:25:01.666Z","request_id":"b60a5214-bd97-4b59-8eb0-52e0edf4af07"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":13000,"rps_limit":3,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":700,"monthly_call_quota":140000,"rps_limit":10,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1700,"monthly_call_quota":700000,"rps_limit":25,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4000,"monthly_call_quota":3600000,"rps_limit":60,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/packagecodes-api"}