diff --git a/arkindex_worker/worker/__init__.py b/arkindex_worker/worker/__init__.py
index 53bdffee6051f90d12a8768e47fb6cdf52b3be6d..77da061d9cf6ded191a38f4d4705720b529308e1 100644
--- a/arkindex_worker/worker/__init__.py
+++ b/arkindex_worker/worker/__init__.py
@@ -139,8 +139,6 @@ class ElementsWorker(
         # CLI args are stored on the instance so that implementations can access them
         self.args = self.parser.parse_args()
 
-        super().setup_api_client()
-
         if self.is_read_only:
             super().configure_for_developers()
         else:
diff --git a/arkindex_worker/worker/base.py b/arkindex_worker/worker/base.py
index b046dc70132e008ffec4058abe2329c2b7d4d587..ea6d43300b53c2673425e92458e101888d85ec43 100644
--- a/arkindex_worker/worker/base.py
+++ b/arkindex_worker/worker/base.py
@@ -125,6 +125,9 @@ class BaseWorker(object):
         # is at least one available sqlite database either given or in the parent tasks
         self.use_cache = False
 
+        # Define API Client
+        self.setup_api_client()
+
     @property
     def is_read_only(self) -> bool:
         """
diff --git a/tests/test_base_worker.py b/tests/test_base_worker.py
index 84571ce7cda0061688656f3ca8620cab3298571b..68c0857b14c2f8525e0ed7f92bcf547dbb533d04 100644
--- a/tests/test_base_worker.py
+++ b/tests/test_base_worker.py
@@ -90,7 +90,6 @@ def test_init_var_worker_local_file(monkeypatch, tmp_path):
 def test_cli_default(mocker, mock_worker_run_api):
     worker = BaseWorker()
     assert logger.level == logging.NOTSET
-    assert not hasattr(worker, "api_client")
 
     mocker.patch.object(sys, "argv", ["worker"])
     worker.args = worker.parser.parse_args()
@@ -98,7 +97,6 @@ def test_cli_default(mocker, mock_worker_run_api):
     assert worker.worker_version_id == "12341234-1234-1234-1234-123412341234"
     assert worker.worker_run_id == "56785678-5678-5678-5678-567856785678"
 
-    worker.setup_api_client()
     worker.configure()
     assert not worker.args.verbose
     assert logger.level == logging.NOTSET
@@ -111,7 +109,6 @@ def test_cli_default(mocker, mock_worker_run_api):
 def test_cli_arg_verbose_given(mocker, mock_worker_run_api):
     worker = BaseWorker()
     assert logger.level == logging.NOTSET
-    assert not hasattr(worker, "api_client")
 
     mocker.patch.object(sys, "argv", ["worker", "-v"])
     worker.args = worker.parser.parse_args()
@@ -119,7 +116,6 @@ def test_cli_arg_verbose_given(mocker, mock_worker_run_api):
     assert worker.worker_version_id == "12341234-1234-1234-1234-123412341234"
     assert worker.worker_run_id == "56785678-5678-5678-5678-567856785678"
 
-    worker.setup_api_client()
     worker.configure()
     assert worker.args.verbose
     assert logger.level == logging.DEBUG
@@ -133,7 +129,6 @@ def test_cli_envvar_debug_given(mocker, monkeypatch, mock_worker_run_api):
     worker = BaseWorker()
 
     assert logger.level == logging.NOTSET
-    assert not hasattr(worker, "api_client")
     mocker.patch.object(sys, "argv", ["worker"])
     monkeypatch.setenv("ARKINDEX_DEBUG", True)
     worker.args = worker.parser.parse_args()
@@ -141,7 +136,6 @@ def test_cli_envvar_debug_given(mocker, monkeypatch, mock_worker_run_api):
     assert worker.worker_version_id == "12341234-1234-1234-1234-123412341234"
     assert worker.worker_run_id == "56785678-5678-5678-5678-567856785678"
 
-    worker.setup_api_client()
     worker.configure()
     assert logger.level == logging.DEBUG
     assert worker.api_client
@@ -215,7 +209,6 @@ def test_configure_worker_run(mocker, monkeypatch, responses):
     assert worker.worker_version_id == "12341234-1234-1234-1234-123412341234"
     assert worker.worker_run_id == "56785678-5678-5678-5678-567856785678"
 
-    worker.setup_api_client()
     worker.configure()
 
     assert worker.user_configuration == {"a": "b"}
@@ -274,7 +267,6 @@ def test_configure_user_configuration_defaults(
         content_type="application/json",
     )
 
-    worker.setup_api_client()
     worker.configure()
 
     assert worker.config == {"param_1": "/some/path/file.pth", "param_2": 12}
@@ -328,7 +320,6 @@ def test_configure_user_config_debug(mocker, monkeypatch, responses, debug):
         content_type="application/json",
     )
     worker.args = worker.parser.parse_args()
-    worker.setup_api_client()
     worker.configure()
 
     assert worker.user_configuration == {"debug": debug}
@@ -376,7 +367,6 @@ def test_configure_worker_run_missing_conf(mocker, monkeypatch, responses):
         content_type="application/json",
     )
     worker.args = worker.parser.parse_args()
-    worker.setup_api_client()
     worker.configure()
 
     assert worker.user_configuration is None