diff --git a/mpcdf_common.py b/mpcdf_common.py
index f8ba325152f068072a14f037982c114e3d6e112b..fe4fab84ecbcd2d230d37aff63f53c806833120b 100644
--- a/mpcdf_common.py
+++ b/mpcdf_common.py
@@ -514,7 +514,7 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, dry_run=
         if dry_run:
             print("osc meta pkg {0} {1} -F - <<EOF\n{2}\nEOF\n".format(project, package, new_pkg_meta))
         else:
-            osc.core.edit_meta("pkg", (project, package), data=new_pkg_meta)
+            osc.core.edit_meta("pkg", (project, package), data=new_pkg_meta, apiurl=api_url)
     elif dry_run:
         print("Would not do anything, package meta would be unchanged")
 
@@ -758,7 +758,7 @@ Macros:
             print("prjconf unchanged")
         else:
             print("Updating prjconf meta")
-            osc.core.edit_meta("prjconf", project, data=new_prjconf)
+            osc.core.edit_meta("prjconf", project, data=new_prjconf, apiurl=api_url)
 
         # Create and remove the <enable/> flags before the new repsitories,
         # that way no spurious builds are launched
@@ -767,7 +767,7 @@ Macros:
 
         # Update repositories
         print("Updating prj meta")
-        osc.core.edit_meta("prj", project, data=new_prj, force=True)
+        osc.core.edit_meta("prj", project, data=new_prj, force=True, apiurl=api_url)
 
 
 def mpcdf_enable_repositories_for_all_packages(api_url, project, ignore_repos=()):
@@ -899,7 +899,7 @@ def sync_projects(api_url, package=None, from_project="software", to_projects=No
                             person.set("userid", userid)
                             person.set("role", "maintainer")
                             to_meta.insert(2, person)
-                        osc.core.edit_meta("pkg", (to_project, orig_package), data=ElementTree.tostring(to_meta))
+                        osc.core.edit_meta("pkg", (to_project, orig_package), data=ElementTree.tostring(to_meta), apiurl=api_url)
 
         if package is None and redo_all:
             # Check if distribution is already set in to_project
diff --git a/mpcdf_push.py b/mpcdf_push.py
index 1f96da8c725f692d61b4df73494cc31a69461be2..82c5c1d51a54cd4d2aff3cfb2b77d2445ad55972 100644
--- a/mpcdf_push.py
+++ b/mpcdf_push.py
@@ -112,7 +112,7 @@ def do_mpcdf_push(self, subcmd, opts, *args):
             person.set("userid", user)
             person.set("role", "maintainer")
             to_meta.insert(2, person)
-            osc.core.edit_meta("pkg", (to_project, package), data=ElementTree.tostring(to_meta))
+            osc.core.edit_meta("pkg", (to_project, package), data=ElementTree.tostring(to_meta), apiurl=api_url)
         print()
 
     # Give the system some time, sadly there is no transactional guarantee
diff --git a/mpcdf_setup_clusters_project.py b/mpcdf_setup_clusters_project.py
index 2885a86bc94abfa0074ebf2daff3133f31e537e9..42e4ed77436e2165be7852d3383f108de942d1c2 100644
--- a/mpcdf_setup_clusters_project.py
+++ b/mpcdf_setup_clusters_project.py
@@ -81,4 +81,4 @@ def do_mpcdf_setup_cluster_project(self, subcmd, opts, *args):
 
     prjconf.append(end_marker)
     prjconf = prjconf_head + "\n".join(prjconf) + prjconf_tail
-    osc.core.edit_meta("prjconf", "clusters", data=prjconf)
+    osc.core.edit_meta("prjconf", "clusters", data=prjconf, apiurl=api_url)
diff --git a/mpcdf_setup_software_project.py b/mpcdf_setup_software_project.py
index 638807d2f285cbe77cc42dba423bf98237c5c095..2a769e8848334b44dd0d7ec50f00be03e544e0f6 100644
--- a/mpcdf_setup_software_project.py
+++ b/mpcdf_setup_software_project.py
@@ -76,7 +76,7 @@ def do_mpcdf_setup_software_project(self, subcmd, opts, *args):
     if opts.dry_run:
         print("osc meta prjconf software -F - <<EOF\n{0}\nEOF\n".format(prjconf))
     else:
-        osc.core.edit_meta("prjconf", "software", data=prjconf)
+        osc.core.edit_meta("prjconf", "software", data=prjconf, apiurl=api_url)
 
         if opts.ignore_repo:
             ignore_repos = opts.ignore_repo