# RelativityOne Developer Documentation > This site contains developer and API documentation for RelativityOne, an e-discovery platform hosted in the cloud. This site contains code samples, tutorials and API references for developers who extend or integrate with RelativityOne. This content helps developers understand how to extend or integrate with RelativityOne. ## Core Pages - [Homepage](https://platform.relativity.com/RelativityOne/Content/Relativity_Platform/index.htm): Main entry point. ### Analytics Conceptual - [Analytics Conceptual] (https://platform.relativity.com/RelativityOne/Content/BD_Analytics_Conceptual/Analytics_Conceptual.htm): Use conceptual indexes in Relativity Analytics to perform Latent Semantic Indexing (LSI) and discover related concepts between documents. The Analytics Conceptual business domain includes support for creating and managing this index type. This page aims to collect and centralize any useful information on the Analytics Conceptual business domain. - Headings: H1: Analytics Conceptual | H2: Current Analytics Conceptual API content | H2: Version History - [Analytics Conceptual Index (.NET)] (https://platform.relativity.com/RelativityOne/Content/BD_Analytics_Conceptual/Analytics_Conceptual_Index__.NET_.htm): A conceptual index is a type of index used by Relativity Analytics. It uses Latent Semantic Indexing (LSI) to discover concepts between documents. This indexing process is based solely on term co-occurrence. The language, concepts, and relationships are defined entirely by the contents of your documents and learned by the index. For general information about Analytics indexes, see Analytics indexes and on the RelativityOne Documentation site. - Second paragraph: The Analytics Conceptual Index API supports programmatically managing conceptual indexes in Relativity Analytics. It includes the following features: - Headings: H1: Analytics Conceptual Index (.NET) | H2: Fundamentals for the Conceptual Index API | H2: Guidelines for using the Conceptual Index API | H3: Common workflows | H3: Catch exceptions | H3: Execute valid operations for the index state | H3: Index states and job validation | H3: Monitor the analysis progress | H2: Create a conceptual index | H2: Retrieve a conceptual index | H2: Update a conceptual index | H2: Delete a conceptual index | H2: Helper methods for conceptual index jobs | H3: Submit a conceptual index job | H3: Retrieve the status of a job | H3: Cancel a job - [Analytics Conceptual Index (REST)] (https://platform.relativity.com/RelativityOne/Content/BD_Analytics_Conceptual/Analytics_Conceptual_Index__REST_.htm): The Index Manager service allows you to interact with analytics indexes from browser-based and cross-platform applications. The service provides the operations to create, read, update, and delete an index, and also get index status and submit index jobs. - Second paragraph: The Analytics Conceptual Index service supports programmatically managing conceptual indexes in Relativity Analytics. It includes the following features: - Headings: H1: Analytics Conceptual Index (REST) | H2: Guidelines for using the Conceptual Index service | H3: URLs | H2: Postman sample file | H2: Create a conceptual index | H2: Retrieve a conceptual index | H2: Update a conceptual index | H2: Delete a conceptual index | H2: Helper endpoints for conceptual index jobs | H3: Submit a conceptual index job | H3: Retrieve the status of a job | H2: Cancel a job - [Analytics Conceptual Index .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/BD_Analytics_Conceptual/AnalyticsConceptualIndexNETAPI.html): Analytics Conceptual Index .NET API Reference - [Analytics Conceptual Index .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/BD_Analytics_Conceptual/Analytics_Conceptual_Index_NET_API_Reference.htm): Relativity.Analytics.Conceptual.SDK Reference - Headings: H1: Analytics Conceptual Index .NET API Reference | H2: Relativity.Analytics.Conceptual.SDK - [Analytics Conceptual Index REST API Reference] (https://platform.relativity.com/RelativityOne/Content/BD_Analytics_Conceptual/Analytics_Conceptual_Index_REST_API_Reference.htm): conceptual-analytics Reference - Headings: H1: Analytics Conceptual Index REST API Reference | H2: conceptual-analytics - [Analytics Conceptual Index REST Reference] (https://platform.relativity.com/RelativityOne/Content/BD_Analytics_Conceptual/AnalyticsConceptualIndexRESTAPI.html): Analytics Conceptual Index REST Reference ### Application - [Application SDK .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/BD_Application/ApplicationNETAPI.html): Application SDK .NET API Reference - [Application SDK .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/BD_Application/Application_NET_API_Reference.htm) - Headings: H1: Application SDK .NET API Reference | H2: Relativity.Application.SDK ### ARM - [ARM (.NET)] (https://platform.relativity.com/RelativityOne/Content/BD_ARM/ARM_API.htm): The ARM API 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. - Second paragraph: You can also interact with the ARM API through the REST API. See ARM API service. - Headings: H1: ARM (.NET) | H2: Fundamentals for the ARM API | H3: Sample use cases | H2: Create | H2: Run | H2: Read - [ARM .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/BD_ARM/ARMNETAPI.html): ARM .NET API Reference - [ARM .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/BD_ARM/ARM_NET_API_Reference.htm): Relativity.ARM.SDK Reference - Headings: H1: ARM .NET API Reference | H2: Relativity.ARM.SDK - [ARM API (REST)] (https://platform.relativity.com/RelativityOne/Content/BD_ARM/ARM_API_service.htm): In July 2026 the V1 endpoints will be deprecated, see this post in the developer group for more information. We strongly recommend beginning your migration to V3 as soon as possible, see ARM API (REST) V1 to V3 migration guide for more information. - Second paragraph: The ARM API provides a REST service that supports multiple operations required to archive and restore 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. - Headings: H1: ARM API (REST) | H2: Fundamentals for the ARM API | H3: Sample use cases | H2: Archive Create | H2: Archive Read | H2: Archive Update | H2: Archive Delete | H2: Restore Create | H2: Restore Read | H2: Restore Update | H2: Restore Delete | H2: Database Restore Create | H2: Database Restore Read | H2: Database Restore Update | H2: Database Restore Delete | H2: Job Run | H2: Job Cancel | H2: Job Pause | H2: Terminate Job | H2: Job Status | H2: Job Logs | H2: Task Retry | H2: Job Statistic - [ARM API (REST) V1 to V3 migration guide] (https://platform.relativity.com/RelativityOne/Content/BD_ARM/ARM_API_V3_migration_guide.htm): This guide provides information for migrating from the deprecated ARM V1 API to the current V3 API. All V1 endpoints have been marked as obsolete and will be removed in a future release. This document outlines the migration paths available for public API consumers. - Second paragraph: V1 API is deprecated: All V1 endpoints are marked as [Obsolete] and will be removed in a future release. - Headings: H1: ARM API (REST) V1 to V3 migration guide | H2: Overview | H2: Breaking changes | H3: Job ID type change | H3: Response model changes | H3: MigratorOptions structure | H3: V1 MigratorOptions boolean flags to V3 ExcludedMigrators mapping | H3: Restore job DestinationOptions properties removed | H3: Migrator-specific configuration options | H2: Feature availability matrix | H2: Migration paths | H3: Archive jobs | H3: Restore jobs | H3: Job actions | H3: Job status and progress | H3: Features without a migration path | H2: Migration checklist | H2: Additional resources | H2: Known issues | H2: Getting help - [ARM Business Domain Landing Page] (https://platform.relativity.com/RelativityOne/Content/BD_ARM/ARM.htm): In July 2026 the V1 endpoints will be deprecated, see this post in the developer group for more information. We strongly recommend beginning your migration to V3 as soon as possible, see ARM API (REST) V1 to V3 migration guide for more information. - Headings: H1: ARM | H2: V1 ARM API content | H2: V3 ARM API content - [ARM REST API Reference V3] (https://platform.relativity.com/RelativityOne/Content/BD_ARM/ARMRESTAPI_V3.html): ARM API REST Reference - [ARM REST API Reference V3] (https://platform.relativity.com/RelativityOne/Content/BD_ARM/ARM_REST_API_Reference_V3.htm) - Headings: H1: ARM REST API Reference V3 | H2: Relativity.ARM.Services.Interfaces V3 ### Audit - [Audit (.NET)] (https://platform.relativity.com/RelativityOne/Content/BD_Audit/Audit_APIs.htm): The Audit APIs available through .NET include methods that you can use to programmatically revert, retrieve, and search Relativity audit records stored in Elasticsearch. These services support interactions with both instance-level and workspace-level audit records. The following APIs provide methods for this functionality: - Second paragraph: These APIs don't support working with audit records stored in an SQL Server database. - Headings: H1: Audit (.NET) | H2: Fundamentals for Audit APIs | H3: Audit Revert API | H3: Audit Pivot API | H3: Reviewer Statistics API | H3: Audit Query API | H3: Audit Object Manager UI API | H2: Guidelines for the Audit APIs | H3: Operations supported by the Audit APIs | H3: Admin-level context | H3: Query conditions | H2: Audit Revert API | H3: Validate a revert operation for an audit | H3: Revert an audit | H3: Mass revert a list of audits | H2: Audit Pivot API | H3: Query with Pivot on audit data | H2: Reviewer Statistics API | H3: Retrieve action counts for updated documents | H3: Retrieve the usage time per reviewer | H3: Retrieve extracted text size of reviewed documents | H3: Retrieve an aggregate of user actions by hour | H3: Retrieve choices reviewed by users | H3: Retrieve a summary report of reviewer statistics | H2: Audit Query API | H3: Query for an audit record | H2: Audit Object Manager UI API | H3: Query on audit fields | H3: Query on audit fields and return a smaller payload - [Audit (REST)] (https://platform.relativity.com/RelativityOne/Content/BD_Audit/Audit_services_in_REST.htm): The Audit services available through REST include multiple endpoints that you can use to programmatically revert, retrieve, and search Relativity audit records stored in Elasticsearch. These services support interactions with both instance-level and workspace-level audit records. The following services provide endpoints for this functionality: - Second paragraph: These APIs don't support working with audit records stored in an SQL Server database. - Headings: H1: Audit (REST) | H2: Guidelines for Audit services | H3: URLs | H3: Operations supported by the Audit services | H3: Query conditions | H2: Audit Revert service | H3: Validate a revert operation for an audit action | H3: Revert an audit | H3: Mass revert a list of audits | H2: Audit Pivot service | H3: Query with Pivot on audit data | H2: Reviewer Statistics service | H3: Retrieve action counts for updated documents | H3: Retrieve the usage time per reviewer | H3: Retrieve size of the extracted text for reviewed documents | H3: Retrieve an aggregation of user actions by hour | H3: Retrieve choices reviewed by users | H3: Retrieve a summary report of reviewer statistics | H2: Audit Query service | H3: Query for an audit record | H2: Audit Object Manager UI service | H3: Query endpoint | H3: Query on audit fields and return a smaller payload - [Audit .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/BD_Audit/AuditNETAPI.html): Audit .NET API Reference - [Audit .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/BD_Audit/Audit_NET_API_Reference.htm): Relativity.Audit.SDK Reference - Headings: H1: Audit .NET API Reference | H2: Relativity.Audit.SDK - [Audit Business Domain] (https://platform.relativity.com/RelativityOne/Content/BD_Audit/Audit.htm) - Headings: H1: Audit | H2: Current Audit API content | H2: Version History ### Automated Workflows - [Automated Workflow .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/BD_Automated_Workflows/AutomatedWorkflowNETAPI.html): Automated Workflow .NET API Reference - [Automated Workflows] (https://platform.relativity.com/RelativityOne/Content/BD_Automated_Workflows/Automated_Workflows.htm): The Automated Workflows API and Service allows you to register actions, register triggers, and send triggers. An automated workflow in Relativity is composed of one trigger and multiple actions. - Second paragraph: Common use cases: - Headings: H1: Automated workflows | H2: Fundamentals of automated workflows | H3: Troubleshooting information | H2: Automated Workflows API content | H2: Version History - [Automated Workflows (.NET)] (https://platform.relativity.com/RelativityOne/Content/BD_Automated_Workflows/Automated_Workflows_API.htm): The Automated Workflows API allows developers to integrate with the automated workflows framework to programmatically register actions, register triggers and send triggers. Review the content in Fundamentals of automated workflows before you start writing code to interact with automated workflows. - Second paragraph: You can also interact with the Automated Workflows API through the REST API. See Automated Workflows service. - Headings: H1: Automated Workflows (.NET) | H2: Working with the Automated Workflows API | H3: Instantiating the Automated Workflows Manager | H3: Using the SDK on a Kepler Service | H3: Using the SDK on an Event Handler | H3: Registering your Trigger | H2: Registering your action | H3: Long Running RPC | H3: Registering your Action | H3: Action Definition Variables | H3: Registering your action with a dynamic rule | H2: Versioning your trigger or action | H3: Updating workflows to use the latest version of a trigger/action | H2: Sending a trigger/triggering workflows that use your trigger | H2: Validating your workflow | H2: Code samples | H3: Register a trigger | H3: Register an action | H3: Send a trigger | H3: Deleting a trigger | H3: Deleting an action - [Automated Workflows (REST)] (https://platform.relativity.com/RelativityOne/Content/BD_Automated_Workflows/Automated_Workflows_service.htm): The Automated Workflows REST service allows developers to integrate with the automated workflows framework to programmatically register actions, register triggers and send triggers. Review the content in Fundamentals of automated workflows before you start writing code to interact with automated workflows. - Second paragraph: You can find the REST Service reference documentation and download the OAS specification file in this topic. You can also interact with automated workflows through the .NET API. See Automated Workflows API. - Headings: H1: Automated Workflows (REST) | H3: URLs | H3: CID authorization (resource and scopes) | H3: Methods | H2: Examples | H3: Create a client in .NET to interact with the REST Service | H3: List Triggers | H3: Create or Update a Trigger | H3: Delete a Trigger | H3: List Actions | H3: Create or Update an Action | H3: Create or Update an Action with Dynamic Rule | H3: Delete Action | H3: Send Trigger/Notify Event | H3: Validate Workflow - [Automated Workflows .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/BD_Automated_Workflows/Automated_Workflows_NET_API_Reference.htm) - Headings: H1: Automated Workflows .NET API Reference | H2: Relativity.AutomatedWorkflows.SDK - [Automated Workflows API REST Reference] (https://platform.relativity.com/RelativityOne/Content/BD_Automated_Workflows/AutomatedWorkflowRESTAPI.html): Automated Workflows REST API Reference - [Automated Workflows REST API Reference] (https://platform.relativity.com/RelativityOne/Content/BD_Automated_Workflows/Automated_Workflows_REST_API_Reference.htm) - Headings: H1: Automated Workflows REST API Reference | H2: relativity-automated-workflows ### Background processing - [Agent Resiliency Guidelines] (https://platform.relativity.com/RelativityOne/Content/Background_processing/Agent_resiliency_guidelines.htm): Occasionally an agent executing in our RelativityOne Compute platform will encounter connectivity issues. This can result in unhandled agent shutdowns or unpredictable behavior. We recommend adding retry logic combined with detailed logging around most HTTP requests or fileshare operations. Agent developers can use the following pattern to control their agent's shut down cycle more effectively. - Second paragraph: The following examples use the Polly 5.7.0 package. The Relativity agent framework supports Polly version 5.7.0 only. Do not add this assembly to your application; Polly.dll is available for use by default. - Headings: H1: Agent Resiliency Guidelines | H2: Example retry pattern | H2: Shut down the agent - [Agent Scaling Guidelines] (https://platform.relativity.com/RelativityOne/Content/Background_processing/Scaling_guidelines_for_Agents.htm): In RelativityOne, agents run on a scalable and extensible cloud platform, which provides a standard set of resources that they can utilize with each run. Agents with widely varying workload sizes may benefit from dynamic scaling. With scaling, agents can complete their overall workload faster. - Second paragraph: You can dynamically set the number of concurrently running agent processes based on workload of an agent at any given time. The default number of processes is one. Each agent process is given 1 vCPU and 1 GB of RAM. This is not customizable. You can horizontally scale by defining a Workload Discovery endpoint that provides visibility into the current workload size of an agent. - Headings: H1: Agent Scaling Guidelines | H2: Scaling fundamentals | H2: Scaling use cases | H2: Get started with scaling | H3: Creating the Workload Discovery endpoint | H3: Associate the Workload Discovery endpoint with an agent | H2: Workload discovery best practices - [Agent Status Manager .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/Background_processing/AgentStatusManagerNETAPI.html): Agent Status Manager .NET API Reference - [Agent Status Manager .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/Background_processing/Agent_Status_Manager_NET_API_Reference.htm) - Headings: H1: Agent Status Manager .NET API Reference | H2: Relativity.HostingBridge.SDK - [Agent Workload Discovery .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/Background_processing/Agent_WorkloadDiscovery_NET_API_Reference.htm) - Headings: H1: Agent Workload Discovery .NET API Reference | H2: Relativity.Platform.Agent.WorkloadDiscovery.SDK - [Agent Workload Discovery .NET API Reference] (https://platform.relativity.com/RelativityOne/Content/Background_processing/AgentWorkloadDiscoveryNETAPI.html): Agent Workload Discovery .NET API Reference - [Basic concepts for agents] (https://platform.relativity.com/RelativityOne/Content/Background_processing/Basic_concepts_for_agents.htm): Review these basic concepts to learn more about the common implementation tasks, uploading agents to Relativity, logging events, and other features of custom agent functionality. - Second paragraph: Complete these common implementation tasks when developing custom agents. You can also use a template to create an agent. For more information, see Visual Studio templates for Relativity. - Headings: H1: Basic concepts for agents | H2: Common implementation tasks for agents | H2: Establish a database connection from an agent | H2: Connect to the Services API with the client-side proxy | H2: Upload agents to Relativity | H3: Add an assembly containing an agent | H2: Remove agents from Relativity | H3: Remove one agent from an application | H3: Remove an entire application that contains agents | H2: Agent runs | H2: Logging for agent events | H3: Logging levels - [Best practices for agents] (https://platform.relativity.com/RelativityOne/Content/Background_processing/Best_practices_for_agents.htm): Use these guidelines to optimize your application development with custom agents. - Second paragraph: When you implement a new agent, you have the option to use a job queue table stored in the EDDS database. This approach ensures that the application and agent can share information about job statuses and errors. Implement job queue error handling, which might include displaying an error message. Disable the agent when a critical error occurs. - Headings: H1: Best practices for agents | H2: Optionally use a job queue | H2: Use helper classes | H2: Use a Workload discovery endpoint | H2: Avoid creating App Domains | H2: Return from the Execute method | H2: Do not expose HTTP endpoints | H2: Agents should be ephemeral and fault-tolerant | H2: Do not rely on Agent IDs | H2: Establish an appropriate execution pattern | H2: Use fully qualified domain names when accessing fileshares | H2: Do not assume fileshare is available before first operation - [Build agents] (https://platform.relativity.com/RelativityOne/Content/Background_processing/Background_processing.htm): You can perform background processing in Relativity by developing custom agents. Since these agents perform background work, they don - Second paragraph: Additionally, you can implement agents as managers that monitor tasks or workers that perform specific jobs in your environment. You can develop custom agents to perform their background processes at configurable intervals. For example, Relativity uses agents to OCR documents. - Headings: H1: Agents | H2: Version History - [Build your first agent] (https://platform.relativity.com/RelativityOne/Content/Background_processing/Building_your_first_agent.htm): This tutorial illustrates how to create a simple agent that raises the message Hello World! The current time is.