diff --git a/nomad/app/v1/routers/datasets.py b/nomad/app/v1/routers/datasets.py
index 3d7611e7d24f7b0db02ff14effef28c5a1a07f6e..e4d04261f6d2bafd17919d6ebc5043bda96b0e9d 100644
--- a/nomad/app/v1/routers/datasets.py
+++ b/nomad/app/v1/routers/datasets.py
@@ -331,7 +331,7 @@ async def delete_dataset(
 
 
 @router.post(
-    '/{dataset_id}/doi', tags=[default_tag],
+    '/{dataset_id}/action/doi', tags=[default_tag],
     summary='Assign a DOI to a dataset',
     response_model=DatasetResponse,
     responses=create_responses(_bad_id_response, _dataset_is_fixed_response, _bad_user_response),
diff --git a/nomad/cli/client/integrationtests.py b/nomad/cli/client/integrationtests.py
index fdce65e1a2d3a7ad65b546fcd723c4ef1968092c..e4c417ffae5c7bbcbbe79e1f62a69c7b57a3d911 100644
--- a/nomad/cli/client/integrationtests.py
+++ b/nomad/cli/client/integrationtests.py
@@ -195,7 +195,7 @@ def integrationtests(auth: api.Auth, skip_parsers: bool, skip_publish: bool, ski
 
         if not skip_doi and published:
             print('assigning a DOI')
-            response = api.post(f'datasets/{dataset_id}/doi', auth=auth)
+            response = api.post(f'datasets/{dataset_id}/action/doi', auth=auth)
             assert response.status_code == 200, response.text
             has_doi = True