# Relativity aiR Developer Documentation > This site contains developer and API documentation for Relativity aiR, a Legal Data Intelligence and e-discovery platform hosted in the cloud. This site contains code samples, tutorials and API references for developers who extend or integrate with Relativity aiR. This content helps developers understand how to extend or integrate with Relativity aiR. ## Core Pages - [Homepage](https://platform.relativity.com/RelativityaiR/Content/Relativity_Platform/index.htm): Main entry point. ### Analytics Conceptual - [Analytics Conceptual] (https://platform.relativity.com/RelativityaiR/Content/BD_Analytics_Conceptual/Analytics_Conceptual.htm): Find the .NET and REST API content, version history, and supported version ranges for 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/RelativityaiR/Content/BD_Analytics_Conceptual/Analytics_Conceptual_Index__.NET_.htm): Use the .NET Analytics Conceptual Index API to create, manage, and run jobs on conceptual indexes that use Latent Semantic Indexing in Relativity Analytics. - 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/RelativityaiR/Content/BD_Analytics_Conceptual/Analytics_Conceptual_Index__REST_.htm): Use the REST Analytics Conceptual Index service to create, manage, and run jobs on conceptual indexes that use Latent Semantic Indexing in Relativity Analytics. - 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/RelativityaiR/Content/BD_Analytics_Conceptual/AnalyticsConceptualIndexNETAPI.html): Analytics Conceptual Index .NET API Reference - [Analytics Conceptual Index .NET API Reference] (https://platform.relativity.com/RelativityaiR/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/RelativityaiR/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/RelativityaiR/Content/BD_Analytics_Conceptual/AnalyticsConceptualIndexRESTAPI.html): Analytics Conceptual Index REST Reference ### Application - [Application SDK .NET API Reference] (https://platform.relativity.com/RelativityaiR/Content/BD_Application/ApplicationNETAPI.html): Application SDK .NET API Reference - [Application SDK .NET API Reference] (https://platform.relativity.com/RelativityaiR/Content/BD_Application/Application_NET_API_Reference.htm): Browse the .NET API reference for the Application business domain, provided in the Relativity.Application.SDK. - Headings: H1: Application SDK .NET API Reference | H2: Relativity.Application.SDK ### ARM - [ARM .NET API Reference] (https://platform.relativity.com/RelativityaiR/Content/BD_ARM/ARMNETAPI.html): ARM .NET API Reference - [ARM .NET API Reference] (https://platform.relativity.com/RelativityaiR/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) V1 to V3 migration guide - part 1] (https://platform.relativity.com/RelativityaiR/Content/BD_ARM/ARM_API_V3_migration_guide.htm): Migrate from the deprecated ARM V1 API to V3, including breaking changes such as string job IDs, new response objects, and the NotifyJobRunner option. - Second paragraph: This is the first part of the migration guide. For the second part covering other endpoints, see ARM API (REST) V1 to V3 migration guide - part 2. - Headings: H1: ARM API (REST) V1 to V3 migration guide - part 1 | H2: Breaking changes | H3: Job ID type change | H3: Response model changes | H3: NotificationOptions structure | 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: Features without a migration path | H2: Part 1 migration checklist | H2: Additional resources | H2: Getting help - [ARM API (REST) V1 to V3 migration guide - part 2] (https://platform.relativity.com/RelativityaiR/Content/BD_ARM/ARM_API_V3_migration_guide_part_2.htm): Migrate the ARM job list, status, statistics, available archives, and archive directories endpoints from earlier versions to the V3 REST API. - Second paragraph: This is the second part of the migration guide. For the first part covering breaking changes and other endpoints, see ARM API (REST) V1 to V3 migration guide - part 1. - Headings: H1: ARM API (REST) V1 to V3 migration guide - part 2 | H2: List Jobs | H3: Old approach | H3: New endpoint | H3: Request body | H3: Response | H3: JobState values | H3: JobType values | H3: Fields | H3: Pagination | H3: What changed | H3: What you must do | H2: Job Status | H3: Old approach | H3: New endpoint | H3: Response | H3: Fields | H3: Phase and Stage model | H3: CurrentPhase fields | H3: What changed versus legacy SQL | H3: What you must do | H2: Job Statistics | H3: Old approach | H3: New endpoint | H3: Response | H3: Migrators entry fields | H3: What changed versus V1 private | H3: Error responses | H3: What you must do | H2: Available Archives for Restore | H3: Old approach | H3: New endpoint | H3: Request body | H3: Response shape | H3: What you must do | H2: Archive Storage Path Directories | H3: Old approach | H3: New endpoint | H3: Response shape | H3: What you must do | H2: Error responses (all endpoints) | H2: Part 2 migration checklist | H2: Additional resources | H2: Getting help - [ARM Business Domain Landing Page] (https://platform.relativity.com/RelativityaiR/Content/BD_ARM/ARM.htm): Find the V1 and V3 ARM API content, migration guides, version history, and supported version ranges for the ARM business domain. - Second paragraph: For instructions, see the migration guides: - Headings: H1: ARM | H2: V3 ARM API content - [ARM REST API Reference V3] (https://platform.relativity.com/RelativityaiR/Content/BD_ARM/ARMRESTAPI_V3.html): ARM API REST Reference - [ARM REST API Reference V3] (https://platform.relativity.com/RelativityaiR/Content/BD_ARM/ARM_REST_API_Reference_V3.htm): Browse the REST API reference for the ARM V3 service, Relativity.ARM.Services.Interfaces V3. - Headings: H1: ARM REST API Reference V3 | H2: Relativity.ARM.Services.Interfaces V3 ### Audit - [Audit (.NET)] (https://platform.relativity.com/RelativityaiR/Content/BD_Audit/Audit_APIs.htm): Use the .NET Audit APIs to revert, retrieve, and search instance-level and workspace-level audit records stored in Elasticsearch. - 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/RelativityaiR/Content/BD_Audit/Audit_services_in_REST.htm): Use the REST Audit services to revert, retrieve, and search instance-level and workspace-level audit records stored in Elasticsearch. - 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/RelativityaiR/Content/BD_Audit/AuditNETAPI.html): Audit .NET API Reference - [Audit .NET API Reference] (https://platform.relativity.com/RelativityaiR/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/RelativityaiR/Content/BD_Audit/Audit.htm): Find the .NET and REST Audit API content, version history, and supported Relativity and Audit RAP version ranges for the Audit business domain. - Headings: H1: Audit | H2: Current Audit API content | H2: Version History - [Audit REST API Reference] (https://platform.relativity.com/RelativityaiR/Content/BD_Audit/Audit_REST_API_Reference.htm): relativity-audit Reference - Headings: H1: Audit REST API Reference | H2: relativity-audit - [Audit REST Reference] (https://platform.relativity.com/RelativityaiR/Content/BD_Audit/AuditRESTAPI.html): [API NAME] REST Reference ### Automated Workflows - [Automated Workflow .NET API Reference] (https://platform.relativity.com/RelativityaiR/Content/BD_Automated_Workflows/AutomatedWorkflowNETAPI.html): Automated Workflow .NET API Reference - [Automated Workflows] (https://platform.relativity.com/RelativityaiR/Content/BD_Automated_Workflows/Automated_Workflows.htm): Learn the fundamentals of automated workflows, including trigger types, actions, and statuses, and find how to register and send them through the API and service. - 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/RelativityaiR/Content/BD_Automated_Workflows/Automated_Workflows_API.htm): Use the .NET AutomatedWorkflowsManager to programmatically register actions, register triggers, and send triggers for 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/RelativityaiR/Content/BD_Automated_Workflows/Automated_Workflows_service.htm): Use the Automated Workflows REST service to register actions, register triggers, and send triggers, including optional CID authorization for HTTP steps. - 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/RelativityaiR/Content/BD_Automated_Workflows/Automated_Workflows_NET_API_Reference.htm): Browse the .NET API reference for Automated Workflows, provided in the Relativity.AutomatedWorkflows.SDK. - Headings: H1: Automated Workflows .NET API Reference | H2: Relativity.AutomatedWorkflows.SDK - [Automated Workflows API REST Reference] (https://platform.relativity.com/RelativityaiR/Content/BD_Automated_Workflows/AutomatedWorkflowRESTAPI.html): Automated Workflows REST API Reference - [Automated Workflows REST API Reference] (https://platform.relativity.com/RelativityaiR/Content/BD_Automated_Workflows/Automated_Workflows_REST_API_Reference.htm): Browse the REST API reference for the relativity-automated-workflows service. - Headings: H1: Automated Workflows REST API Reference | H2: relativity-automated-workflows ### Background processing - [Agent Resiliency Guidelines] (https://platform.relativity.com/RelativityaiR/Content/Background_processing/Agent_resiliency_guidelines.htm): Add retry logic and detailed logging to agents running on the Relativity aiR Compute platform, using a Polly 5.7.0 retry pattern to handle transient connectivity errors. - 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/RelativityaiR/Content/Background_processing/Scaling_guidelines_for_Agents.htm): Use a Workload Discovery endpoint to dynamically scale the number of concurrent agent processes in Relativity aiR, and see which agents benefit from scaling. - 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/RelativityaiR/Content/Background_processing/AgentStatusManagerNETAPI.html): Agent Status Manager .NET API Reference - [Agent Status Manager .NET API Reference] (https://platform.relativity.com/RelativityaiR/Content/Background_processing/Agent_Status_Manager_NET_API_Reference.htm): Browse the .NET API reference for the Agent Status Manager, provided in the Relativity.HostingBridge.SDK. - Headings: H1: Agent Status Manager .NET API Reference | H2: Relativity.HostingBridge.SDK - [Agent Workload Discovery .NET API Reference] (https://platform.relativity.com/RelativityaiR/Content/Background_processing/Agent_WorkloadDiscovery_NET_API_Reference.htm): Browse the .NET API reference for Agent Workload Discovery, provided in the Relativity.Platform.Agent.WorkloadDiscovery.SDK. - Headings: H1: Agent Workload Discovery .NET API Reference | H2: Relativity.Platform.Agent.WorkloadDiscovery.SDK - [Agent Workload Discovery .NET API Reference] (https://platform.relativity.com/RelativityaiR/Content/Background_processing/AgentWorkloadDiscoveryNETAPI.html): Agent Workload Discovery .NET API Reference - [Basic concepts for agents] (https://platform.relativity.com/RelativityaiR/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/RelativityaiR/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/RelativityaiR/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/RelativityaiR/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.