

Last date modified: June 17 2025
The Mass Operations .NET API allows for the bulk processing of Documents and RDOs in Relativity for the following operations:
These code samples utilize a .NET service proxy. See the topic Client .NET proxy for details on working with a service proxy.
Initiates a mass copy operation.
Method |
Task<MassOperationResult> MassCopyAsync(int workspaceID, MassCopyRequest request) |
Parameters |
|
int workspaceId = 111111; //ID of workspace
MassCopyRequest request = new MassCopyRequest {
ArtifactTypeID = 1000056,
ParentArtifactID = 1003663, // parent RDO or 'system' artifactID
Query = new QueryRequest {
Condition = "'ArtifactID' IN VIEW 1056059"
}
};
MassOperationResult result = await massOperationManager.MassCopyAsync(workspaceId, request);
MassOperationProcessState status = await massOperationManager.CheckProgress(workspaceId, result.ProcessID);
while (status.State != Relativity.MassOperations.Services.Interfaces.v1.Enums.MassProcessState.Completed) {
await Task.Delay(1000);
status = await massOperationManager.CheckProgress(workspaceId, result.ProcessID);
}
Initiates a mass move operation.
Method |
Task<MassOperationResult> MassMoveAsync(int workspaceID, MassMoveRequest request) |
Parameters |
|
int workspaceId = 1111111; //ID of Workspace
MassMoveRequest request = new MassMoveRequest() {
ArtifactTypeID = 10,
DestinationFolderArtifactID = 1055389,
Query = new QueryRequest {
Condition = "('Folder Name' IN ['responsive'])" // can also use folder artifactID
}
};
MassOperationResult result = await massOperationManager.MassMoveAsync(workspaceId, request);
Initiates a mass edit operation.
Method |
Task<MassOperationResult> MassEditAsync(int workspaceID, MassEditRequest request) |
Parameters |
|
int workspaceId = 1111111; //ID of workspace
MassEditRequest request = new MassEditRequest() {
ArtifactTypeID = 10,
Query = new QueryRequest {
Condition = "'ArtifactID' IN SAVEDSEARCH 1043981"
},
Fields = new EditField[] {
new EditField {
ArtifactID = 1035387,
Value =
new MultipleArtifactEditSelectionValue() {
ArtifactsToSet = new List<ArtifactRef> {
new ArtifactRef { ArtifactID = 1055381 },
new ArtifactRef { ArtifactID = 1038090 }
},
ArtifactsToUnset = new List<ArtifactRef> {
new ArtifactRef { ArtifactID = 1055382 },
new ArtifactRef { ArtifactID = 1038089 }
}
}
}
}
};
MassOperationResult result = await massOperationManager.MassEditAsync(workspaceId, request);
Initiates a mass delete operation.
Method |
Task<MassOperationResult> MassDeleteAsync(int workspaceID, MassDeleteRequest request) |
Parameters |
|
int workspaceId = 1111111; //ID of Workspace
MassDeleteRequest request = new MassDeleteRequest() {
ArtifactTypeID = 10,
DocumentDeleteOptions = Relativity.MassOperations.V2.Enums.DocumentDeleteOptions.DeleteDocumentAndAllAssociatedFiles,
ForceDelete = true,
Query = new QueryRequest {
Condition = "'ArtifactID' IN [1055430, 1055431]"
}
};
MassOperationResult result = await massOperationManager.MassDeleteAsync(workspaceId, request);
Initiates a mass replace operation. Note that mass replace can only be performed on fixed-length text and long text fields.
Method |
Task<MassOperationResult> MassReplaceAsync(int workspaceID, MassReplaceRequest request) |
Parameters |
|
int workspaceID = 1111111; //ID of workspace
MassReplaceRequest request = new MassReplaceRequest() {
ArtifactTypeID = 10,
Query = new QueryRequest {
Condition = "'ArtifactID' IN VIEW 1042421"
},
Fields = new ReplaceField[] {
new ReplaceField {
ArtifactID = 1038073,
ReplaceOptions = new ReplaceOptions {
Options = Relativity.MassOperations.V2.Enums.ReplaceActionOptions.ReplaceEntireField // replace current value with new value
},
ReplaceAction = new ReplaceAction {
Options = Relativity.MassOperations.V2.Enums.ReplaceWithOptions.Text,
ReplacementField = new FieldRef { ArtifactID = 1038073 },
ReplacementText = "new text value"
}
},
new ReplaceField {
ArtifactID = 1003667,
ReplaceOptions = new ReplaceOptions {
Options = Relativity.MassOperations.V2.Enums.ReplaceActionOptions.SearchFor, // replace substring with new value
Value = "ZIPPER"
},
ReplaceAction = new ReplaceAction {
Options = Relativity.MassOperations.V2.Enums.ReplaceWithOptions.Text,
ReplacementText = "ZIPPY"
}
}
}
};
MassOperationResult result = await massOperationManager.MassReplaceAsync(workspaceID, request);
Initiates a save-as-list operation.
Method |
Task<MassOperationResult> MassSaveAsListAsync(int workspaceID, MassSaveAsListRequest request) |
Parameters |
|
int workspaceID = 1111111; //ID of workspace
MassSaveAsListRequest request = new MassSaveAsListRequest {
ArtifactTypeID = 10,
ListName = "Important docs",
Notes = "These are important docs",
Options = Relativity.MassOperations.V2.Enums.SaveAsListOptions.CreateNewList,
Query = new QueryRequest {
Condition = "'ArtifactID' IN VIEW 1042421"
}
};
MassOperationResult result = await massOperationManager.MassSaveAsListAsync(workspaceID, request);
Initiates a tally/sum/average operation.
Method |
Task<IEnumerable<TallySumAverageResult>> TallySumAverageAsync(int workspaceID, MassTallySumAverageRequest request) |
Parameters |
|
int workspaceID = 1111111; //ID of workspace
MassTallySumAverageRequest request = new MassTallySumAverageRequest {
ArtifactTypeID = 10,
Operation = Relativity.MassOperations.V2.Enums.TallySumAverageOptions.Tally,
Field = new FieldRef { Name = "Number of Attachments" },
Query = new QueryRequest {
Condition = "'ArtifactID' IN SAVEDSEARCH 1056050"
}
};
IEnumerable<TallySumAverageResult> results = await massOperationManager.TallySumAverageAsync(workspaceID, request);
Initiates a export to file operation.
Method |
Task<IKeplerStream> MassExportToFileAsync(int workspaceID, MassExportToFileRequest request) |
Parameters |
|
int workspaceID = 1111111; //ID of workspace
MassExportToFileRequest request = new MassExportToFileRequest {
ArtifactTypeID = 10,
EscapeFormulas = true,
ExportFileFormat = Relativity.MassOperations.V2.Enums.ExportFileFormat.Csv,
ExportEncodingType = Relativity.MassOperations.V2.Enums.ExportEncodingType.UnicodeUTF8,
ViewID = 1042421,
Query = new QueryRequest {
Condition = "'ArtifactID' IN SAVEDSEARCH 1056050"
}
};
IKeplerStream exportStream = await massOperationManager.MassExportToFileAsync(workspaceID, request);
using (FileStream file = File.Create(@"C:\ExportResults.csv")) {
await exportStream.GetStreamAsync().Result.CopyToAsync(file);
}
Returns state information on a specified operation.
Method |
Task<MassOperationProcessState> CheckProgress(int workspaceID, long processID) |
Parameters |
|
Cancels the specified operation.
Method |
Task CancelAsync(int workspaceID, long processID) |
Parameters |
|
Why was this not helpful?
Check one that applies.
Thank you for your feedback.
Want to tell us more?
Great!
Additional Resources |
|||
DevHelp Community | GitHub | Release Notes | NuGet |