diff --git a/.github/badges/tests.svg b/.github/badges/tests.svg
index 390300b87..1defd0b51 100644
--- a/.github/badges/tests.svg
+++ b/.github/badges/tests.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/ndi/+ndi/+cloud/+internal/createRemoteDatasetDoc.m b/src/ndi/+ndi/+cloud/+internal/createRemoteDatasetDoc.m
index cb5fef7f6..df166537a 100644
--- a/src/ndi/+ndi/+cloud/+internal/createRemoteDatasetDoc.m
+++ b/src/ndi/+ndi/+cloud/+internal/createRemoteDatasetDoc.m
@@ -1,14 +1,19 @@
-function remoteDatasetDoc = createRemoteDatasetDoc(cloudDatasetId, ndiDataset)
+function remoteDatasetDoc = createRemoteDatasetDoc(cloudDatasetId, ndiDataset, options)
% createRemoteDatasetDoc - Create NDI document with remote dataset details.
%
% Syntax:
-% remoteDatasetDoc = createRemoteDatasetDoc(cloudDatasetId)
+% remoteDatasetDoc = createRemoteDatasetDoc(cloudDatasetId, ndiDataset)
+% remoteDatasetDoc = createRemoteDatasetDoc(cloudDatasetId, ndiDataset, 'replaceExisting', true)
+%
% This function retrieves a remote dataset from the cloud and creates
% a "dataset remote" NDI document for that dataset.
%
% Input Arguments:
% cloudDatasetId - The unique identifier for the cloud dataset to be
% retrieved.
+% ndiDataset - The NDI dataset object.
+% options.replaceExisting - A boolean that if true, will replace an
+% existing remote dataset document.
%
% Output Arguments:
% remoteDatasetDoc - A document object containing the remote dataset
@@ -17,6 +22,17 @@
arguments
cloudDatasetId
ndiDataset (1,1) ndi.dataset
+ options.replaceExisting (1,1) logical = false
+ end
+
+ [~, existingDoc] = ndi.cloud.internal.getCloudDatasetIdForLocalDataset(ndiDataset);
+
+ if ~isempty(existingDoc)
+ if options.replaceExisting
+ ndiDataset.database_rm(existingDoc{1}.id());
+ else
+ error('An existing remote dataset document was found. Use ''replaceExisting'', true to replace it.');
+ end
end
[success, remoteDataset] = ndi.cloud.api.datasets.getDataset(cloudDatasetId);