diff --git a/setup.py b/setup.py
index 9b6d7327a768b9322ddd870ffb2d09c5ad784ee4..9e874cd9702d0f2ddc7405c9b9ed9eb256230764 100644
--- a/setup.py
+++ b/setup.py
@@ -7,9 +7,13 @@ import py_compile
 
 class APIGenBuild(build_py):
     def run(self):
-        target_dir = os.path.join(self.build_lib, 'netdb_client')
-        self.mkpath(target_dir)
-        gen = subprocess.run(['net-api-generator', 'python', f'--output-dir={target_dir}'], check=True)
+        build_versions = ['3.0', '3.1']
+        for version in build_versions:
+            target_dir = os.path.join(self.build_lib, 'netdb_client', f"api{version.replace('.', '')}")
+            self.mkpath(target_dir)
+            environ = os.environment.copy()
+            environ['NETDB_VERSION'] = version
+            gen = subprocess.run(['net-api-generator', 'python', f'--output-dir={target_dir}'], check=True, env=environ)
         build_py.run(self)