

Last date modified: July 07 2025
The ARM API provides a REST service that supports multiple operations required to archive, restore, and move Relativity workspace data. You can also use to view information on currently running ARM jobs or to list available workspaces or ARM archives. For example, you could use this service to populate a custom dialog in your application with scheduled ARM archive jobs.
For more information on the ARM application, see ARM Overview on the
Review the following guidelines for working with the ARM API.
A typical use case would be building a custom ARM client or automating the creation or execution of ARM jobs.
A typical workflow requires these steps:
Use this endpoint to create Archive jobs.
To create Archive jobs, send a POST request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/archive-jobs
Sample JSON request
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
"request": {
"WorkspaceID": 1234567,
"ArchiveDirectory": "\\\\server\\armarchive",
"JobPriority": "High",
"ScheduledStartTime": "2020-04-08T14:00:00",
"MigratorOptions": {
"IncludeDatabaseBackup": true,
"IncludeDtSearch": true,
"IncludeConceptualAnalytics": true,
"IncludeStructuredAnalytics": true,
"IncludeDataGrid": true
},
"FileOptions": {
"IncludeRepositoryFiles": true,
"IncludeLinkedFiles": true,
"MissingFileBehavior": "SkipFile"
},
"ProcessingOptions": {
"IncludeProcessing": true,
"IncludeProcessingFiles": true,
"ProcessingMissingFileBehavior": "SkipFile"
},
"ExtendedWorkspaceDataOptions": {
"IncludeExtendedWorkspaceData": true,
"ApplicationErrorExportBehavior": "SkipApplication"
},
"NotificationOptions": {
"NotifyJobCreator": true,
"NotifyJobExecutor": true
},
"UiJobActionsLocked": false,
"UseDefaultArchiveDirectory": false
}
}
Request body parameters:
If job creation is successful, response will be the artifact ID of the newly created job. If the job creation could not be completed, the response will contain validation errors with more detailed information.
Use this endpoint to read Archive jobs.
To read Archive jobs, send a GET request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/archive-jobs/<jobID>
Request body is empty, the job ID is passed in via the URL.
Sample JSON response
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
{
"JobID": 3026,
"JobName": "Archive New Case Template (1014823) Workspace",
"JobExecutionID": 3026,
"JobExecutionGuid": "895ef98e-6c8b-4573-867a-d11f0b39bd54",
"ArchivePath": "\\\\server\\armarchive\\1014823_New_Case_Template_20200320103044",
"WorkspaceID": 1014823,
"ScheduledStartTime": "2020-04-08T14:00:00",
"JobDetails": {
"CreatedOn": "2020-03-20T10:30:44.137",
"ModifiedTime": "2020-03-20T10:30:44.2",
"SubmittedBy": "Admin, Relativity",
"State": "Complete",
"Priority": "Low",
"ActionsHistory": [
{
"Date": "2020-03-20T10:30:44.17",
"Type": "Created",
"UserName": "Admin, Relativity"
},
{
"Date": "2020-03-20T10:30:47.607",
"Type": "Started",
"UserName": "Admin, Relativity"
},
{
"Date": "2020-03-20T10:31:06.007",
"Type": "Completed",
"UserName": "Agent"
}
]
},
"MigratorOptions": {
"IncludeDatabaseBackup": true,
"IncludeDtSearch": false,
"IncludeConceptualAnalytics": false,
"IncludeStructuredAnalytics": false,
"IncludeDataGrid": false
},
"FileOptions": {
"IncludeRepositoryFiles": true,
"IncludeLinkedFiles": true,
"MissingFileBehavior": "SkipFile"
},
"ProcessingOptions": {
"IncludeProcessing": false,
"IncludeProcessingFiles": false,
"ProcessingMissingFileBehavior": "SkipFile"
},
"ExtendedWorkspaceDataOptions": {
"IncludeExtendedWorkspaceData": false,
"ApplicationErrorExportBehavior": "SkipApplication"
},
"NotificationOptions": {
"NotifyJobCreator": false,
"NotifyJobExecutor": false
}
"UiJobActionsLocked": false
}
Response body parameters:
Use this endpoint to update Archive jobs.
To update Archive jobs, send a PUT request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/archive-jobs/<jobID>
The request body is the same as Archive Create, and the job ID is passed in via the URL.
The response returns a status code of 200 when the service successfully updates an Archive job. There is no response body.
Use this endpoint to delete Archive jobs.
1
<host>/Relativity.REST/api/relativity-arm/v1/archive-jobs/<jobID>
Request body is empty, the job ID is passed in via the URL.
The response returns a status code of 200 when the service successfully deletes an archive job. There is no response body.
Use this endpoint to create Restore jobs.
To create Restore jobs, send a POST request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/restore-jobs/
Sample JSON request
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{
"request": {
"ArchivePath": "\\\\server\\fileshare\\armarchive\\1027887_WorkspaceName_20200113133434",
"JobPriority": "Medium",
"ScheduledStartTime": "2020-04-08T14:00:00",
"ExistingTargetDatabase": null,
"DestinationOptions": {
"DatabaseServerID": 1015096,
"ResourcePoolID": 1015040,
"MatterID": 1000002,
"CacheLocationID": 1015534,
"FileRepositoryID": 1014887
},
"MigratorsDestinationOptions": {
"StructuredAnalyticsServerID": null,
"ConceptualAnalyticsServerID": null,
"DtSearchLocationID": null
},
"AdvancedFileOptions": {
"ReferenceFilesAsArchiveLinks": false,
"UpdateRepositoryFilePaths": true,
"UpdateLinkedFilePaths": true
},
"UserMapping": {
"AutoMapUsers": true,
"UserMappings": [
{
"ArchiveUserID": 1014868,
"InstanceUserID": 2156304
}
]
},
"GroupMapping": {
"AutoMapGroups": false,
"GroupMappings": [
{
"ArchiveGroupID": 1038349,
"InstanceGroupID": 1015025
}
]
},
"Applications": [
{
"Guid": "6b61baf1-577b-4fbb-b5b3-a9eaa59418f6",
"ShouldRestore": true
}
],
"NotificationOptions": {
"NotifyJobCreator": true,
"NotifyJobExecutor": true
},
"UiJobActionsLocked": false
}
}
Request body parameters:
If job creation is successful, response will be the artifact ID of the newly created job. If the job creation could not be completed, the response will contain validation errors with more detailed information.
Use this endpoint to read Restore jobs.
To read Restore jobs, send a GET request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/restore-jobs/<jobID>
Request body is empty, the job ID is passed in via the URL.
Sample JSON response
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
{
"JobID": 23110,
"JobName": "Restore 1018486_WorkspaceName_1018486__20190927094548",
"JobExecutionID": 23283,
"JobExecutionGuid": "bc9b60c8-d1b2-4bf1-b62a-5bdc9969b5c3",
"ArchivePath": "\\\\server\\fileshare\\armarchive\\1018486_WorkspaceName_1018486__20190927094548",
"ScheduledStartTime": "2020-04-08T14:00:00",
"SourceWorkspace": "WorkspaceName",
"DestinationWorkspaceID": 1014823,
"ExistingTargetDatabase": null,
"JobDetails": {
"CreatedOn": "2020-05-11T18:31:51.02",
"ModifiedTime": "2020-05-11T18:31:51.113",
"SubmittedBy": "Admin, Relativity",
"State": "NotStarted",
"Priority": "Low",
"ActionsHistory": [
{
"Date": "2020-05-11T18:31:51.033",
"Type": "Created",
"UserName": "Admin, Relativity"
}
]
},
"DestinationOptions": {
"ResourcePoolID": 1015040,
"DatabaseServerID": 1015096,
"MatterID": 1000002,
"CacheLocationID": 1015534,
"FileRepositoryID": 1014887
},
"MigratorsDestinationOptions": {
"StructuredAnalyticsServerID": 2074938,
"ConceptualAnalyticsServerID": 2074938,
"DtSearchLocationID": null
},
"AdvancedFileOptions": {
"ReferenceFilesAsArchiveLinks": false,
"UpdateRepositoryFilePaths": true,
"UpdateLinkedFilePaths": true
},
"UserMappings": [],
"GroupMappings": [
{
"ArchiveGroupID": 1036399,
"InstanceGroupID": -1
}
],
"Applications": [
{
"Name": "Single File Upload",
"Guid": "1738ceb6-9546-44a7-8b9b-e64c88e47320",
"ShouldRestore": true
}
],
"NotificationOptions": {
"NotifyJobCreator": false,
"NotifyJobExecutor": false
},
"UiJobActionsLocked": false
}
Response body parameters:
Use this endpoint to update Restore jobs.
To update Restore jobs, send a PUT request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/restore-jobs/<jobID>
The request body is the same as Restore Create, and the job ID is passed in via the URL.
The response returns a status code of 200 when the service successfully updates a restore job. There is no response body.
Use this endpoint to delete Restore jobs.
To delete Restore jobs, send a DELETE request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/restore-jobs/<jobID>
Request body is empty, the job ID is passed in via the URL.
The response returns a status code of 200 when the service successfully deletes a restore job. There is no response body.
Use this endpoint to create Database Restore jobs.
To create Database Restore jobs, send a POST request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/V1/database-restore-jobs/
Sample JSON request
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{
"request": {
"SourceDatabase": "EDDS1014823",
"JobPriority": "Medium",
"ScheduledStartTime": null,
"DestinationOptions": {
"DatabaseServerID": "1015096",
"ResourcePoolID": "1015040",
"MatterID": "1000002",
"CacheLocationID": "1015534",
"FileRepositoryID": "1014887"
},
"UserMapping": {
"AutoMapUsers": "true",
"UserMappings": [
{
"ArchiveUserID": "1014868",
"InstanceUserID": "2156304"
}
]
},
"GroupMapping": {
"AutoMapGroups": "false",
"GroupMappings": [
{
"ArchiveGroupID": "1038349",
"InstanceGroupID": "1015025"
}
]
},
"NotificationOptions": {
"NotifyJobCreator": "true",
"NotifyJobExecutor": "true"
},
"UiJobActionsLocked": false
}
}
Request body parameters:
If job creation is successful, response will be the artifact ID of the newly created job. If the job creation could not be completed, the response will contain validation errors with more detailed information.
Use this endpoint to read Database Restore jobs.
To read Database Restore jobs, send a GET request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/database-restore-jobs/<jobID>
Request body is empty, the job ID is passed in via the URL.
Sample JSON response
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{
"JobID": 23110,
"JobName": "Restore EDDS1049998",
"JobExecutionID": 23283,
"JobExecutionGuid": "bc9b60c8-d1b2-4bf1-b62a-5bdc9969b5c3",
"ScheduledStartTime": "2099-03-24T15:03:23.673",
"DestinationWorkspaceID": 1014823,
"JobDetails": {
"CreatedOn": "2020-05-11T18:31:51.02",
"ModifiedTime": "2020-05-11T18:31:51.113",
"SubmittedBy": "Admin, Relativity",
"State": "NotStarted",
"Priority": "Low",
"ActionsHistory": [
{
"Date": "2020-05-11T18:31:51.033",
"Type": "Created",
"UserName": "Admin, Relativity"
}
]
},
"DestinationOptions": {
"ResourcePoolID": 1015040,
"DatabaseServerID": 1015096,
"MatterID": 1000002,
"CacheLocationID": 1015534,
"FileRepositoryID": 1014887
},
"UserMappings": [
{
"ArchiveUserID": 1016933,
"InstanceUserID": 1019365
}
],
"GroupMappings": [
{
"ArchiveGroupID": 1036399,
"InstanceGroupID": -1
}
],
"NotificationOptions": {
"NotifyJobCreator": false,
"NotifyJobExecutor": false
},
"UiJobActionsLocked": false
}
Response body parameters:
GroupMapping
Use this endpoint to update Database Restore jobs.
To update Database Restore jobs, send a PUT request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/database-restore-jobs/<jobID>
The request body is the same as Database Restore Create, and the job ID is passed in via the URL.
The response returns a status code of 200 when the service successfully updates a database restore job. There is no response body.
Use this endpoint to delete Database Restore jobs.
To create Database Restore jobs, send a DELETE request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/database-restore-jobs/<jobID>
Request body is empty, the job ID is passed in via the URL.
The response returns a status code of 200 when the service successfully deletes a database restore job. There is no response body.
Use this endpoint to create Move jobs.
To create Move jobs, send a POST request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/move-jobs
Sample JSON request
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
"request": {
"SourceWorkspaceID": 1014823,
"JobPriority": "High",
"ScheduledStartTime": "2020-04-08T14:00:00",
"FileOptions": {
"LinkToExistingDocuments": true,
"MissingFileBehavior": "SkipFile",
"LinkedFileBehavior": "LeaveInPlace"
},
"DatabaseOptions" {
"IncludeDatabaseBackup": false,
"CustomDatabasePath": "EDDS1014444"
},
"DestinationOptions" {
"ResourcePoolID": 1015040,
"DatabaseServerID": 1015096,
"CacheLocationID": 1015534,
"FileRepositoryID": 1014887
},
"NotificationOptions": {
"NotifyJobCreator": true,
"NotifyJobExecutor": true
}
"UiJobActionsLocked": false
}
}
Request body parameters:
If job creation is successful, response will be the artifact ID of the newly created job. If the job creation could not be completed, the response will contain validation errors with more detailed information.
Use this endpoint to read Move jobs.
To read Move jobs, send a GET request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/move-jobs/<jobID>
Request body is empty, the job ID is passed in via the URL.
Sample JSON response
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
{
"JobID": 3026,
"JobName": "Archive New Case Template (1014823) Workspace",
"JobExecutionID": 3026,
"JobExecutionGuid": "895ef98e-6c8b-4573-867a-d11f0b39bd54",
"ScheduledStartTime": "2020-04-08T14:00:00",
"JobDetails": {
"CreatedOn": "2020-03-20T10:30:44.137",
"ModifiedTime": "2020-03-20T10:30:44.2",
"SubmittedBy": "Admin, Relativity",
"State": "Complete",
"Priority": "Low",
"ActionsHistory": [
{
"Date": "2020-03-20T10:30:44.17",
"Type": "Created",
"UserName": "Admin, Relativity"
},
{
"Date": "2020-03-20T10:30:47.607",
"Type": "Started",
"UserName": "Admin, Relativity"
},
{
"Date": "2020-03-20T10:31:06.007",
"Type": "Completed",
"UserName": "Agent"
}
]
},
"SourceOptions" {
"WorkspaceID": 1014823,
"ResourcePoolID": 1015040,
"DatabaseServerID": 1015096,
"CacheLocationID": 1015534,
"FileRepositoryID": 1014887
},
"DestinationOptions" {
"ResourcePoolID": 1015040,
"DatabaseServerID": 1015096,
"CacheLocationID": 1015534,
"FileRepositoryID": 1014887
},
"FileOptions": {
"LinkToExistingDocuments": true,
"MissingFileBehavior": "SkipFile",
"LinkedFileBehavior": "LeaveInPlace"
},
"DatabaseOptions" {
"IncludeDatabaseBackup": false,
"CustomDatabasePath": "EDDS1014444"
},
"NotificationOptions": {
"NotifyJobCreator": false,
"NotifyJobExecutor": false
},
"UiJobActionsLocked": false
}
Response body parameters:
Use this endpoint to update Move jobs.
To update Move jobs, send a PUT request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/move-jobs/<jobID>
The request body is the same as Move Create, and the job ID is passed in via the URL.
The response returns a status code of 200 when the service successfully updates a move job. There is no response body.
Use this endpoint to delete Move jobs.
To delete Move jobs, send a DELETE request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/move-jobs/<jobID>
Request body is empty, the job ID is passed in via the URL.
The response returns a status code of 200 when the service successfully deletes a move job. There is no response body.
Use this endpoint to run ARM jobs.
To run ARM jobs, send a POST request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/jobs/<jobID>/run
Request body is empty, the job ID is passed in via the URL.
The response returns a status code of 200 when the service successfully executes an ARM job. There is no response body.
Use this endpoint to cancel ARM jobs.
To cancel ARM jobs, send a POST request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/jobs/<jobID>/cancel
Request body is empty, the job ID is passed in via the URL.
The response returns a status code of 200 when the service successfully cancels an ARM job. There is no response body.
Use this endpoint to pause ARM jobs.
To pause ARM jobs, send a POST request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/jobs/<jobID>/pause
Request body is empty, the job ID is passed in via the URL.
The response returns a status code of 200 when the service successfully pauses an ARM job. There is no response body.
Use this endpoint to terminate an ARM job.
To terminate ARM jobs, send a DELETE request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/jobs/<jobID>/terminate
Request body is empty, the job ID is passed in via the URL.
The response returns a status code of 200 when the service successfully terminates an ARM job. There is no response body.
Use this endpoint to read the execution status of an ARM job.
To read the execution status of an ARM job, send a GET request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/jobs/<jobID>/status
Request body is empty, the job ID is passed in via the URL.
Sample JSON response
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"JobType": "Archive",
"JobState": "Errored",
"CurrentJobStage": {
"Name": "Prepare Archive",
"Order": 1,
"NumberOfSucceededTasks": 2,
"NumberOfFailedTasks": 4,
"TotalNumberOfTasks": 7,
"TimeStarted": "2020-03-27T13:18:14.96",
"TimeElapsed": "01:05:00.5784770",
"PercentComplete": 80
},
"TotalNumberOfStages": 9,
"TimeStarted": "2020-03-19T13:25:48.147",
"TimeCompleted": "2020-03-19T14:26:08.010",
"TimeElapsed": "01:10:29.8630000"
}
Response body parameters:
Use this endpoint to retrieve ARM job logs.
To retrieve ARM job logs, send a GET request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/jobs/<jobID>/logs
Request body is empty, the job ID is passed in via the URL.
Kepler stream
1
2
3
UtcTime, Severity, LogRowCorrelationId, JobExecutionId, Status, Step, AgentMachineName, HangfireTaskId, Method, Exception
6/3/2020 11:59:21 AM, Information, d90eca4a-d000-435a-9d00-5910f5f84342, 14, CreateAsync, 1, A00SDPDARMAP001, -1, CreateAsync,
6/3/2020 11:59:38 AM, Information, 1a209f79-c507-42b2-96c5-b3942b92463a, 14, Processing stage progression for ARM job 14, 1, A00SDPDARMAP001, 28546, IStageProgressionService.ProcessStageProgression,
Use this endpoint to retry a failed task (e.g. Processing Migrator).
To retry a failed task, send a POST request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/tasks/<taskId>/retry
Request body is empty, the task ID is passed in via the URL.
The response returns a status code of 200 when the service successfully retries a task. There is no response body.
Use this endpoint to read statistic of an ARM job.
To read statistic of an ARM job, send a GET request to the following URL:
1
<host>/Relativity.REST/api/relativity-arm/v1/jobs/<jobExecutionId>/statistics
Request body is empty, the job ID is passed in via the URL.
For the restore job Non Document Repository Files won't be shown in the response.
If the restore job was created with option Reference files as archive links, Document Repository Files and Document Linked Files won't be present in the response because the job didn't copy them. Response for the restore job only contains statistics for items that were present in the source. For example, archives created without Processing Files, statistics for restore job won't have Processing Files in the response.
Response body parameters:
On this page
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 |