# Introduction

&#x20;The Rightsline API is organized around a [REST](http://en.wikipedia.org/wiki/Representational_State_Transfer) architecture. Our API is designed to have predictable, resource-oriented URLs and to use HTTP response codes to indicate API errors. We use built-in HTTP features, like HTTP authentication and HTTP verbs, which can be understood by off-the-shelf HTTP clients. [JSON](http://www.json.org/) will be returned in all responses from the API, including errors.


# Overview

Requests to the RightsLine API are made to a specific endpoint.  Endpoints are constructed with the following structure:

`https://{base_url}/v{version_no}/{endpoint}`

* **base\_url**: See [table](/overview#base-url-by-environment) below.
* **version\_no**: 4
* **endpoint**: Specific endpoint depending on entity type.

### Base URL by environment

| Environment    | Base URL                   |
| -------------- | -------------------------- |
| Production US  | ris.rightsline.com         |
| Integration US | ris-int.rightsline.com     |
| Staging US     | ris-staging.rightsline.com |
| Prod Mirror US | ris-pm.rightsline.com      |
| Production EU  | api.rightsline.eu          |
| Staging EU     | api-staging.rightsline.eu  |


# API request limits

Limits on the number of API requests for a given time period.

Requests to the Rightsline API are limited on a per-second and per-day basis.

Calls to the Rightsline API v4 are limited as follows:

* Your application can make no more than 40 requests per second
* Your application can make up to 500,000 signed requests per day (dependent on user license count)

If a request is made beyond the limits described above, the API will respond with a status code of **429: Too Many Requests**. If you receive this response, you can wait a few seconds and try the request again.  If you receive another 429 response, this is most likely due to you exceeding your daily request limit.

If you believe you have exceeded your daily API request limit, you can contact your Rightsline representative to confirm.  Rightsline may be able to provide suggestions on how to consolidate the requests that you are making.

To programmatically check both the daily request maximum as well as how many are remaining in a given 24 hour period, use the `/limits` endpoint as follow:&#x20;

## Get request limits

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/limits`

This endpoint will return the maximum allowed requests for a 24 hour period as well as how many are remaining in the current day. Additionally, it will return the number of concurrent [Batch ](/batch/create)requests allowed and how many are remaining.

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | String | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | String | Authentication token.   |

{% tabs %}
{% tab title="200: OK Successfully return request limits" %}

```json
{
    "dailyApiRequests": {
        "max": 500000,
        "remaining": 499987
    },
    "concurrentProcessingApiBatches": {
        "max": 10,
        "remaining": 10
    },
    "maxApiRequestsPerSecond": 20
}
```

{% endtab %}
{% endtabs %}


# Errors

Possible error responses that you may receive from the API.

All exceptions are trapped and logged at the Service Level. The services are designed to always return a response, even in the event of an exception. Standard HTTP response codes will be returned where applicable, for example, unauthorized requests will typically be responded to with a HTTP 401 Unauthorized.

When applicable, additional response information will be provided, including a custom header x-ris-request-id which we can use to look up any API request made and further trouble shoot any issues. In the event that required fields are missing or incorrectly typed data was passed in a request, the validation errors will be returned along with the 400 Bad Request response code.

All error response information contains:

* An appropriate 3xx, 4xx, or 5xx HTTP status code
* Error object containing additional information if applicable

### **Response Elements**

| NAME            | DESCRIPTION                                                            |
| --------------- | ---------------------------------------------------------------------- |
| Code            | The error code is a string that uniquely identifies an error condition |
| Message         | The textual representation of the error that is more human readable    |
| x-ris-requestID | Uniquely identifies the request that resulted in error                 |

### **Handling Errors**

Our API bindings can raise exceptions for many reasons, such as invalid parameters, authentication errors, and network unavailability. We recommend always trying to gracefully handle exceptions from our API.

### **Common Error Codes**

| Error Code | Description           | How to fix                                                                                                                                                                                                      |
| ---------- | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 400        | Bad Request           | A message will be returned in the response with details on how to modify your request.                                                                                                                          |
| 401        | Unauthorized          | Verify your credentials and authorization signature is correct.                                                                                                                                                 |
| 403        | Permission Denied     | Verify you have the correct permissions enabled in Rightsline to access/create the record.                                                                                                                      |
| 404        | Not Found             | Modify the ID of the record you are attempting to read/update/delete.                                                                                                                                           |
| 429        | Too Many Requests     | The Rightsline API has daily and per-second limits. Retry the request after a 1 second delay. If error persists, you may have reached your daily limit.                                                         |
| 500        | Internal Server Error | Contact Rightsline Support.                                                                                                                                                                                     |
| 503        | Service Unavailable   | During UAT, you may receive this error when a new build is being deployed to one of the UAT environments. Simply retry the request after a few minutes.                                                         |
| 504        | Gateway Timeout       | If attempting to create/update record, try to retrieve the record. If record was not created/updated, retry the request. If attempting to retrieve temporary credentials or a record, simply retry the request. |


# Other references

Additional resources to help integrate with Rightsline.

### Swagger

Rightsline utilizes Swagger to aid in integrating with the API.  You can find the Swagger UI [here](https://ris.rightsline.com/swagger/index.html).

{% hint style="info" %}
If the YAML file is used to generate objects, know that not all properties are required.  It is best to review the data that is returned specifically for your company to understand which fields are needed when creating and updating entities.
{% endhint %}

### Sample projects

Sample code for .NET, Java and Python can be found on our GitHub [here](https://github.com/rightsline/sample-projects).  A sample AWS Lambda project that responds to Rightsline SQS messages can be found [here](https://github.com/rightsline/sample-lambda).

### Message Queues

Documentation of Rightsline's message queues can be found [here](https://queue-docs.rightsline.com).


# Getting started

Get started sending requests to the Rightsline API.

## Obtaining API Credentials

The three elements you will now need to make a request in API Version 4 are: Company API Key, Rightsline Access Key, and Rightsline Secret Access Key. The Company API Key is shared among your organization and is unique per environment (Staging, Integration, Prod Mirror, and Production). Your Access Key and Secret Access Key is unique for your API User account. It will inherit the security policy that is attached to your account.

1. **Login to your user account** from <https://app.rightsline.com> (or if in the EU, use <https://app.rightsline.eu>).
2. Open your **Profile** from the drop-down menu, and in the *API Access* module, click **Generate Access Keys** and **Generate Company API Key**.

![Generate your company API key, and your user access/secret keys.](/files/hlRkCZ47uN35J8fRpTUk)

{% hint style="info" %}
You will use these keys to request temporary access keys to authenticate to the API. These keys are private. Please store them securely.
{% endhint %}

Once you have your Company API Key, and your User Account's Access and Secret Key, you are ready to make your first API request.


# What's new in v4?

The new features and endpoints available as part of v4 of the Rightsline API.

### :star2:[Bulk requests](/batch/create)

Bulk requests are now available!:tada:&#x20;

You are now able to retrieve, create, modify, and delete up to 100 records/relationships with a single API request.  You are also able to execute workflow actions on up to 100 records with a single request.  Simply [create a batch request](/batch/create) with the desired record IDs, and then [retrieve the batch](/batch/retrieve) to return the requested records.

### :rewind: [Audit History](/entities/deal/audit-history#get-deal-audit-history)

We have added the ability to retrieve audit history for any record in Rightsline, as well as get specific details about what value was changed for each audit history entry.

### :currency\_exchange:[Currency conversion](/config/currency-conversion-sept-16)&#x20;

It is now possible to [create](/config/currency-conversion-sept-16/currency-conversion-create), [read](/config/currency-conversion-sept-16/currency-conversion-retrieve), [update](/config/currency-conversion-sept-16/currency-conversion-update), and [delete ](/config/currency-conversion-sept-16/currency-conversion-delete)currency conversion configurations via the API. &#x20;

### :frame\_photo:[Key art](/entities/catalog-item/update-catalog-item-key-art)

You are now able to [update](/entities/catalog-item/update-catalog-item-key-art) and [delete ](/entities/catalog-item/delete-catalog-item-key-art)the key art for [catalog](/entities/catalog-item/update-catalog-item-key-art) and [inventory](/entities/inventory/update-an-inventory-key-art) records.

### :information\_source:[Additional template endpoints](/entities/catalog-item/retrieve-catalog-item-draft-templates)

We have added additional endpoints to be able to retrieve more information about template configuration. &#x20;

* [**Draft templates**](/entities/catalog-item/retrieve-catalog-item-draft-templates) - Retrieve draft templates for an entity. The draft template IDs in the response can be used to execute workflow actions that create a document (see [below](/getting-started/whats-new-in-v4#execute-document-workflow-action)).
* [ **Retrieve a specific template by ID**](/config/templates) - In addition to retrieving all configuration templates for a given char type, you can now specify the ID of a specific template to retrieve even more details, such as parent and child related templates, and any associated parties.
* [**Retrieve a specific field on a template**](/config/templates) - You are also now able to retrieve details about a specific characteristic on a template.

### :toolbox:[Execute document workflow action](/workflow/execute-document-workflow-action)

Execute workflow actions that create a document using our new execute document workflow action endpoints.

### :arrow\_up:[Upload files larger than 10mb](/entities/file/file-create)

In v4 of the Rightsline API, we now allow larger file uploads exceeding the previous 10mb limit.  See an example of how to upload a file [here](/entities/file/file-create#example-upload-a-file).

### 🔠[Add/remove pick list values](/config/lists)

Add or remove values from master value lists and pick lists.


# Transitioning from v3 to v4

Change notes for transitioning to using v4 of the Rightsline API.

### Adjust API URL and AWS region

The v4 Rightsline API is accessed using the subdomain <mark style="color:green;">**<https://ris.rightsline.com>**</mark>.

For access to other environments, please refer to [this table](/overview#base-url-by-environment) for the proper v4 subdomain.

The AWS region for the US API has also been changed from us-east-1 to <mark style="color:green;">**us-west-2**</mark>. The EU region has not been changed (eu-central-1).

To transition to v4, adjust all existing calls' authorization to reference the new AWS region and update the URL of each endpoint to account for the new subdomain.

### Adjust calls to existing *Rightset* endpoints to *Right* endpoints

All **rightset** endpoints have been replaced by [**right** endpoints](/entities/right) for consistency.

To transition to v4, adjust all existing calls to reference the new endpoint names.

### Update references to parentURL and childURL in calls to relationship endpoint to reference new objects

The parentUrl and childUrl properties have been removed from entity relationship objects, and have been replaced with parentTemplate, parentStatus, childTemplate, and childStatus objects.

To review what encompasses the entity relationship object, see [Relationship Object](/relationships/relationship-object).

{% tabs %}
{% tab title="v4" %}
{

&#x20;   "id": 255317359,&#x20;

&#x20;   "relationshipType": {&#x20;

&#x20;       "relationshipTypeId": 0,&#x20;

&#x20;       "relationshipTypeName": "Default"&#x20;

&#x20;   },&#x20;

&#x20;   "createdById": 1,&#x20;

&#x20;   "createdDate": "2019-10-30T20:54:23.297Z",&#x20;

&#x20;   "lastUpdatedById": 1,&#x20;

&#x20;   "lastUpdatedDate": "2019-10-30T20:54:23.297Z",&#x20;

&#x20;   "parentCharTypeId": 4,&#x20;

&#x20;   "parentRecordId": 1,&#x20;

&#x20;   <mark style="color:green;">"parentTemplate": {</mark>&#x20;

&#x20;       <mark style="color:green;">"templateId": 1,</mark>

&#x20;       <mark style="color:green;">"templateName": "Rights In"</mark>&#x20;

&#x20;   <mark style="color:green;">}</mark>,&#x20;

&#x20;   <mark style="color:green;">"parentStatus": {</mark>&#x20;

&#x20;       <mark style="color:green;">"statusId": 1,</mark>&#x20;

&#x20;       <mark style="color:green;">"statusName": "Active"</mark>&#x20;

&#x20;   <mark style="color:green;">}</mark>,&#x20;

&#x20;   "childCharTypeId": 1,&#x20;

&#x20;   "childRecordId": 1,&#x20;

&#x20;   <mark style="color:green;">"childTemplate": {</mark>&#x20;

&#x20;       <mark style="color:green;">"templateId": 1,</mark>&#x20;

&#x20;       <mark style="color:green;">"templateName": "Feature"</mark>&#x20;

&#x20;   <mark style="color:green;">}</mark>,&#x20;

&#x20;   <mark style="color:green;">"childStatus": {</mark>&#x20;

&#x20;       <mark style="color:green;">"statusId": 1,</mark>&#x20;

&#x20;       <mark style="color:green;">"statusName": "Active"</mark>&#x20;

&#x20;   <mark style="color:green;">}</mark>

}
{% endtab %}

{% tab title="v3" %}
{&#x20;

&#x20;   "id": 255317359,&#x20;

&#x20;   <mark style="color:red;">"parentURL": "<https://api.rightsline.com/v3/deal/1>"</mark>,&#x20;

&#x20;   <mark style="color:red;">"childURL": "<https://api-staging.rightsline.com/v3/catalog-item/1>"</mark>,&#x20;

&#x20;   "relationshipType": {&#x20;

&#x20;       "relationshipTypeId": 0,&#x20;

&#x20;       "relationshipTypeName": "Default"&#x20;

&#x20;   },&#x20;

&#x20;   "createdById": 1,&#x20;

&#x20;   "createdDate": "2019-10-30T20:54:23.297Z",&#x20;

&#x20;   "lastUpdatedById": 1,&#x20;

&#x20;   "lastUpdatedDate": "2019-10-30T20:54:23.297Z",&#x20;

&#x20;   "parentCharTypeId": 4,&#x20;

&#x20;   "parentRecordId": 1,&#x20;

&#x20;   "childCharTypeId": 1,&#x20;

&#x20;   "childRecordId": 1

}
{% endtab %}
{% endtabs %}

### Handle 403 - Forbidden response when unauthorized to update a field on an entity

If a user attempts to update fields on an entity that they do not have permission to update, the API will return a *403 - Forbidden* status code, instead of ignoring that field in the request.

### Handle 403 - Forbidden response when unable to execute a workflow action from a status

If a user attempts to execute a workflow action on an entity where the action is not available from the current status, the API will now return a *403 - Forbidden* status code with the message "Action X not available to be taken from status Y", instead of returning a *200 - OK* status code with the message "false".

### Add statusUpdatedById and statusUpdatedDate fields on entity objects

Entity objects will now include two new fields, `statusUpdatedById` and `statusUpdatedDate`, indicating the user and time of the last status update.

To review what encompasses the entity object, see [Entity Object](/entities/the-entity-object).

{% tabs %}
{% tab title="v4" %}
{&#x20;

&#x20;   "relationshipUpdateRules": null,&#x20;

&#x20;   "id": 1,&#x20;

&#x20;   "revisionId": 0,&#x20;

&#x20;   "title": "The Three Stooges",&#x20;

&#x20;   "template": {&#x20;

&#x20;       "fields": \[],&#x20;

&#x20;       "templateId": 1,&#x20;

&#x20;       "templateName": "Collection",&#x20;

&#x20;       "processId": 0,&#x20;

&#x20;        "processName": null&#x20;

&#x20;   },&#x20;

&#x20;   "status": {&#x20;

&#x20;       "statusId": 1,&#x20;

&#x20;       "statusName": "Active"&#x20;

&#x20;   },&#x20;

&#x20;   "characteristics": {&#x20;

&#x20;       "release\_year": 1925&#x20;

&#x20;   },&#x20;

&#x20;   "comments": \[],&#x20;

&#x20;   "createdById": 1,&#x20;

&#x20;   "createdDate": "2015-08-25T21:07:02.487Z",&#x20;

&#x20;   "lastUpdatedById": 1,&#x20;

&#x20;   "lastUpdatedDate": "2020-05-02T02:17:13.717",&#x20;

&#x20;   <mark style="color:green;">"statusUpdatedById": 1</mark>,&#x20;

&#x20;  <mark style="color:green;">"statusUpdatedDate": "2020-05-02T02:17:13.717"</mark>&#x20;

}
{% endtab %}

{% tab title="v3" %}
{&#x20;

&#x20;   "relationshipUpdateRules": null,&#x20;

&#x20;   "id": 1,&#x20;

&#x20;   "revisionId": 0,&#x20;

&#x20;   "title": "The Three Stooges",&#x20;

&#x20;   "template": {&#x20;

&#x20;       "fields": \[],&#x20;

&#x20;       "templateId": 1,&#x20;

&#x20;       "templateName": "Collection",&#x20;

&#x20;       "processId": 0,&#x20;

&#x20;       "processName": null&#x20;

&#x20;   },&#x20;

&#x20;   "status": {&#x20;

&#x20;       "statusId": 1,&#x20;

&#x20;       "statusName": "Active"&#x20;

&#x20;   },&#x20;

&#x20;   "characteristics": {&#x20;

&#x20;       "release\_year": 1925&#x20;

&#x20;   },&#x20;

&#x20;   "comments": \[],&#x20;

&#x20;   "createdById": 1,&#x20;

&#x20;   "createdDate": "2015-08-25T21:07:02.487Z",&#x20;

&#x20;   "lastUpdatedById": 1,&#x20;

&#x20;   "lastUpdatedDate": "2020-05-02T02:17:13.717"&#x20;

}
{% endtab %}
{% endtabs %}

### Adjust all existing calls to search endpoints to return 100 records per page

Each search endpoint will return a max of 100 records per page.  If a value greater than 100 is passed in the `rows` field, the search will still only return 100 records per page.

To transition to v4, adjust all existing search calls to request a maximum of 100 rows.

### Adjust /\*-templates endpoint responses to no longer include fields, retrieve fields via /\*-templates/:id instead

To protect against the response size becoming too large, we have removed the `fields` from the `/*-templates` endpoint responses. To retrieve the fields on a template in v4, you will need to retrieve a specific template by its template ID, like `/v4/table-templates/2` will retrieve all the fields for table template ID 2. See [here](/config/templates#get-template-details) for an example.


# Requesting temporary credentials

Request temporary credentials to be used to authenticate API requests.

In accordance with AWS security recommendations, Rightsline utilizes expiring credentials to authenticate requests to our API.  These temporary credentials are valid for **1 hour.**  After these credentials expire, you will need to request a new set of temporary credentials.  These temporary credentials will be used to compute the Authentication signature for all other requests to the API.

{% hint style="info" %}
**With the April 30, 2025 Production release, requests to this endpoint will be limited to 300 requests per minute for a given IP address. All subsequent requests to this endpoint for that minute will receive a 429: Too Many Requests response.**
{% endhint %}

To obtain temporary credentials, send a request to the following endpoint:

## Request Temporary Credentials

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/auth/temporary-credentials`

#### Headers

| Name         | Type   | Description             |
| ------------ | ------ | ----------------------- |
| Content-Type | string | application/json        |
| x-api-key    | string | Your company's API key. |

#### Request Body

| Name      | Type   | Description                 |
| --------- | ------ | --------------------------- |
| accessKey | string | Your user's API access key. |
| secretKey | string | Your user's API secret key. |

{% tabs %}
{% tab title="200 Credentials accepted." %}

```javascript
{
    "accessKey": "***********",
    "secretKey": "***************************",
    "sessionToken": "FQoDYXd//////====ONCXz6OZC6FIxoWO1CGxVkwnY6WT07ZdLgGkr5ZkRCnGpa5uiF5KKbgMMWyQjKIazeyarBvXleDQmJznO4tBKq3U709cY20lVkdzHwAJQ5HXWHVop6w6cRy8uyOFPZ9fPD79PJ0L9KUkSo9uIG8DUK7PRvs4eAtIQQFdW+j2eHx6sUlF====34098qojfaof",
    "expiration": "2018-01-01T00:00:01+00:00"
}
```

{% endtab %}

{% tab title="401 Invalid credentials." %}

```
```

{% endtab %}
{% endtabs %}

### Example Request

```javascript
{
    "accessKey":"*****************",
    "secretKey":"***********************"
}
```

{% hint style="info" %}
See [Getting Started](/getting-started#obtaining-api-credentials) for instructions on obtaining your access and secret keys.&#x20;
{% endhint %}


# Signing requests

Calculate the Authorization signature for API requests.

Once you have [obtained temporary credentials](/authentication/requesting-temporary-credentials),  you will use them to compute the Authorization signature for all additional requests to the API.&#x20;

#### Sample temporary credentials

```javascript
{
    "accessKey": "***********",
    "secretKey": "***************************",
    "sessionToken": "FQoDYXd//////====ONCXz6OZC6FIxoWO1CGxVkwnY6WT07ZdLgGkr5ZkRCnGpa5uiF5KKbgMMWyQjKIazeyarBvXleDQmJznO4tBKq3U709cY20lVkdzHwAJQ5HXWHVop6w6cRy8uyOFPZ9fPD79PJ0L9KUkSo9uIG8DUK7PRvs4eAtIQQFdW+j2eHx6sUlF====34098qojfaof",
    "expiration": "2018-01-01T00:00:01+00:00"
}
```

Rightsline utilizes [Amazon’s API Gateway](https://aws.amazon.com/api-gateway/) and authenticates all calls by leveraging both [STS](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) and [AWS Signature V4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).  Instructions for computing the AWS V4 signature can be found [here](https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html).

### Postman

&#x20;Although you can construct this request by following the instruction contained above from [Amazon’s documentation](https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html), Rightsline recommends you utilize the instructions at <https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-use-postman-to-call-api.html>, which will speed up the process quite a bit.&#x20;

Postman generates the HTTP Request in the required canonical format, including the code for signing a request in various languages:

![Postman code snippets for generating AWS V4 signature.](/files/njwIXI4MMBYKutXkYh48)

&#x20;For your implementation, you will need to generate your Signing Key programmatically (Postman is doing it for you in the background). Instruction for calculating the AWS4-HMAC-SHA256 signature can be found here: <https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html> There are also great examples of how to generate the signature in various programming languages located here: <https://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html>

### HTTP request example

![](/files/eeHR3KogXRV9dU6b4i7i)

1. HTTP Request Method (GET, POST, PUT, etc.) + Canonical URI + HTTP Protocol (HTTP/1.1)
2. Div API Key; unique to each Rightsline environment
3. Requested host URL, which will change depending on the API environment ris\[-staging, -int, -pm].rightsline.com
4. Date/Time of the request in Amazon’s required format YYYYMMDD’T’HHMMSS’Z’ (<https://docs.aws.amazon.com/general/latest/gr/sigv4-date-handling.html>)
5. Authorization Header with calculated Signing Key. (<https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html>)


# User permissions

### User Activity and Data Policies

The actions that a user is allowed to take and the data they are able to retrieve via the Rightsline API are determined by the permissions granted to them by the Activity and Data Policies that are assigned to them.  The same actions and data that are available through the Rightsline application for a user are available when calling the API.

{% hint style="info" %}
A read-only user will be able to access endpoints via the GET method to retrieve records and relationships, but will not be able to create or update records via the POST and PUT methods.  Read-only users would also have permission to POST to the /search endpoints to retrieve records and relationships.&#x20;
{% endhint %}


# Char types

Each char type in Rightsline relates to a single numeric identifier, often referred to as a Char Type ID.  These char type identifiers are used when describing relationships between entities.

| Char Type ID | Char Type          | Module/Component |
| ------------ | ------------------ | ---------------- |
| 0            | relationship       | N/A              |
| 1            | catalog-item       | Module           |
| 2            | contact            | Module           |
| 3            | right              | Component        |
| 4            | deal               | Module           |
| 5            | table              | Component        |
| 7            | financial-document | Module           |
| 10           | amount             | Component        |
| 13           | royalty            | Component        |
| 14           | file               | Component        |
| 15           | job                | Module           |
| 16           | project            | Module           |
| 17           | inventory          | Module           |


# The entity object

All Rightsline entities share a common structure.  This structure is used to enforce consistency across different entity types.

## Attributes

### ID $$int$$&#x20;

The unique identifier of the entity.  Each entity has an ID value that is unique to that specific record of that specific entity type.  ID values are not unique across different entity types.  This means that when referencing a particular entity, both entity type and ID are required.

```json
"id": 123
```

### Template $$object$$&#x20;

The details of any particular entity are defined by the template value of the entity.  A template defines the possible characteristics and relationships of an entity.  A template is composed of a template ID and a template name.&#x20;

```json
"template": {
    "templateId": 1,
    "templateName": "Feature",
    "processId": 0,
    "processName": "Catalog Process"
}
```

### Title $$string$$&#x20;

A descriptive title of the entity.

```json
"title": "This Movie Is Great!"
```

### Characteristics $$object$$

A collection of attributes that define specific details about an entity.  Characteristics are a set of key-value pairs, where the key is a unique-string identifier, and the value can be of any datatype including: date, integer, string, List-Of-Value option, array, currency, etc.

```json
"characteristics": {
    "territory": [
        {
            "id": 1,
            "value": "United States of America",
            "xref": "USA"
        }
    ],
    "start_date": "2024-01-01",
    "end_date": "2025-01-01"
}
```

### Characteristics Extended $$object$$ (optional)

A collection of attributes that define additional information about a given set of characteristics. Extended Characteristics are a set of key-value pairs, where the key is the unique-string identifier of the characteristic, and the value is an object with the properties: `"estimated"` and `"blockDateMath"`. This object is only returned when the query parameter `extendedData` is set to `true` in the request.

```json
"characteristicsExtended": {
    "start_date": {
        "estimated": true,
        "blockDateMath": true
    },
    "end_date": {
        "estimated": true,
        "blockDateMath": false
    }
}
```

## Entity object structure example

```javascript
{
  "parentRelationship": [
    {
      "id": 0,
      "parentTemplate": {
        "templateId": 0,
        "templateName": "string"
      },
      "parentStatus": {
        "statusId": 0,
        "statusName": "string"
      },
      "childTemplate": {
        "templateId": 0,
        "templateName": "string"
      },
      "childStatus": {
      "statusId": 0,
        "statusName": "string"
      },
      "relationshipType": {
        "relationshipTypeId": 0,
        "relationshipTypeName": "string"
      },
      "createdById": 0,
      "createdDate": "2020-06-04T19:39:02.584Z",
      "lastUpdatedById": 0,
      "lastUpdatedDate": "2020-06-04T19:39:02.584Z",
      "parentCharTypeId": 0,
      "parentRecordId": 0,
      "childCharTypeId": 0,
      "childRecordId": 0,
      "sequenceNumber": 0
    }
  ],
  "parentRelationshipCount": 0,
  "id": 0,
  "revisionId": 0,
  "title": "string",
  "template": {
    "fields": [
      {
        "fieldName": "string",
        "label": "string",
        "required": true,
        "maxLength": 0,
        "editable": true,
        "dataType": "string",
        "allowMultiple": true,
        "listOfValues": [
          {
            "id": 0,
            "label": "string",
            "xref": "string",
            "childValues": [
              {}
            ]
          }
        ]
      }
    ],
    "templateId": 0,
    "templateName": "string",
    "processId": 0,
    "processName": "string"
  },
  "status": {
    "statusId": 0,
    "statusName": "string"
  },
  "characteristics": {},
  "characteristicsExtended": {},
  "comments": [
    {
      "parentID": 0,
      "id": 0,
      "userID": 0,
      "userName": "string",
      "userEmail": "string",
      "profileAvatar": "string",
      "entityID": "string",
      "text": "string",
      "created": "2020-06-04T19:39:02.584Z",
      "updated": "2020-06-04T19:39:02.584Z",
      "children": [
        {}
      ]
    }
  ],
  "createdById": 0,
  "createdDate": "2020-06-04T19:39:02.584Z",
  "lastUpdatedById": 0,
  "lastUpdatedDate": "2020-06-04T19:39:02.584Z",
  "statusUpdatedById": 0,
  "statusUpdatedDate": "2020-06-04T19:39:02.584Z"
}
```


# Amount

### Endpoints

| POST   | /v4/amount                      | [Create an amount.](/entities/amount/amount-create)                                  |
| ------ | ------------------------------- | ------------------------------------------------------------------------------------ |
| GET    | /v4/amount/:id                  | [Retrieve an amount.](/entities/amount/amount-retrieve)                              |
| PUT    | /v4/amount/:id                  | [Update an amount.](/entities/amount/amount-update)                                  |
| DELETE | /v4/amount/:id                  | [Delete an amount.](/entities/amount/amount-delete)                                  |
| GET    | /v4/amount-templates            | [Retrieve amount templates.](/config/templates)                                      |
| GET    | /v4/amount-statuses/:templateId | [Retrieve amount statuses.](/entities/amount/retrieve-amount-statuses)               |
| GET    | /v4/amount-processes            | [Retrieve amount workflow processes.](/entities/amount/retrieve-amount-processes)    |
| GET    | /v4/amount/:id/draft-templates  | [Retrieve amount draft templates.](/entities/amount/retrieve-amount-draft-templates) |
| GET    | /v4/amount/:id/audit-history    | [Retrieve amount audit history.](/entities/amount/audit-history)                     |
| POST   | /v4/amount/:id/switch-template  | [Switch amount template.](/entities/amount/switch-amount-template)                   |


# Create an amount

## Create amount

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/amount`

This endpoint allows you to create a new amount.

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type   | Description                                            |
| ------------------- | ------ | ------------------------------------------------------ |
| title               | string | The title of the new amount.                           |
| template            | object | The template of the new amount.                        |
| template.templateId | string | The unique ID of the template to assign to the amount. |
| characteristics     | object | The field values to assign to the amount.              |
| parentRelationship  | array  | Create this amount as a child of another entity.       |

{% tabs %}
{% tab title="200 Amount created successfully.  Returns the ID of the new entity." %}

```
123456
```

{% endtab %}

{% tab title="400 Request is missing required information, or the information is invalid." %}

```javascript
{
  "message": "TemplateId is required"
}
```

{% endtab %}
{% endtabs %}


# Retrieve an amount

## Get amount

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/amount/:id`

This endpoint allows you to retrieve a specific amount by ID.

#### Path Parameters

| Name | Type   | Description                   |
| ---- | ------ | ----------------------------- |
| id   | string | ID of the amount to retrieve. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Amount successfully retrieved." %}

```javascript
{
  "parentRelationship": [
   {
      "id": 255317359,
      "relationshipType": {
        "relationshipTypeId": 0,
        "relationshipTypeName": "Default"
      },
      "createdById": 1,
      "createdDate": "2019-10-30T20:54:23.297Z",
      "lastUpdatedById": 1,
      "lastUpdatedDate": "2019-10-30T20:54:23.297Z",
      "parentTemplate": {
          "templateId": 1,
          "templateName": "Acquisition Deal",
          "templateGroupId": 0,
          "systemIndicatorId": 0,
          "processId": 0
      },
      "parentStatus": {
          "statusId": 19,
          "statusName": "Active"
      },
      "parentCharTypeId": 4,
      "parentRecordId": 1,
      "childCharTypeId": 1,
      "childRecordId": 1,
      "sequenceNumber": 992654028800
    }
  ],
  "relationshipUpdateRules": null,
  "id": 1,
  "revisionId": 0,
  "title": "The Three Stooges",
  "template": {
    "fields": [],
    "templateId": 1,
    "templateName": "Collection",
    "processId": 0,
    "processName": null
  },
  "status": {
    "statusId": 1,
    "statusName": "Active"
  },
  "characteristics": {
    "release_year": 1925
  },
  "comments": [],
  "createdById": 1,
  "createdDate": "2015-08-25T21:07:02.487Z",
  "lastUpdatedById": 1,
  "lastUpdatedDate": "2020-05-02T02:17:13.717"
  }
```

{% endtab %}

{% tab title="404 Could not find an amount with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Update an amount

## Update amount

<mark style="color:orange;">`PUT`</mark> `https://ris.rightsline.com/v4/amount/:id`

This endpoint allows you to update an amount record.

#### Path Parameters

| Name | Type    | Description                 |
| ---- | ------- | --------------------------- |
| id   | integer | ID of the amount to update. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Amount successfully updated." %}

```javascript
{
  "parentRelationship": [
    {
      "id": 6240018,
      "parentURL": "https://api.rightsline.com/v3/relationship/6240000",
      "childURL": "https://api.rightsline.com/v3/amount/1",
      "relationshipType": {
        "relationshipTypeId": 0,
        "relationshipTypeName": "Default"
      },
      "createdById": 1,
      "createdDate": "2015-08-25T21:16:12.980Z",
      "lastUpdatedById": 1,
      "lastUpdatedDate": "2015-08-25T21:30:56.993Z",
      "parentCharTypeId": 0,
      "parentRecordId": 6240000,
      "childCharTypeId": 10,
      "childRecordId": 1,
      "sequenceNumber": 32646852608
    }
  ],
  "relationshipUpdateRules": null,
  "id": 1,
  "revisionId": 0,
  "title": "Fee Record 1",
  "template": {
    "fields": [],
    "templateId": 2,
    "templateName": "Fee",
    "processId": 0,
    "processName": null
  },
  "status": {
    "statusId": 1,
    "statusName": "Amount Created"
  },
  "characteristics": {},
  "comments": [],
  "createdById": 296252,
  "createdDate": "2015-09-01T19:45:44.490Z",
  "lastUpdatedById": 3,
  "lastUpdatedDate": "2016-08-18T03:05:25.920Z"
}
```

{% endtab %}
{% endtabs %}


# Delete an amount

## Delete amount

<mark style="color:red;">`DELETE`</mark> `https://ris.rightsline.com/v4/amount/:id`

This endpoint allows you to delete an amount.

#### Path Parameters

| Name | Type    | Description                 |
| ---- | ------- | --------------------------- |
| id   | integer | ID of the amount to delete. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Amount successfully deleted." %}

```
true
```

{% endtab %}
{% endtabs %}


# Retrieve amount statuses

## Get amount statuses

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/amount-statuses/{templateId}`

This endpoint allows you to retrieve status data for amounts.

#### Path Parameters

| Name       | Type    | Description             |
| ---------- | ------- | ----------------------- |
| templateId | integer | The amount template ID. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Amount statuses retrieved successfully." %}

```javascript
{
    "statuses": [
        {
            "statusId": 1,
            "statusName": "Amount Created"
        },
        {
            "statusId": 2,
            "statusName": "Added to Billing Document"
        },
        {
            "statusId": 3,
            "statusName": "Amount Paid"
        },
        {
            "statusId": 4,
            "statusName": "Amount Cancelled"
        },
        {
            "statusId": 5,
            "statusName": "Inactive, Deletable, Unlocked"
        },
        {
            "statusId": 6,
            "statusName": "Active, Not Deletable, Locked"
        },
        {
            "statusId": 7,
            "statusName": "Inactive, Not Deletable, Locked"
        },
        {
            "statusId": 9,
            "statusName": "Approved"
        },
        {
            "statusId": 10,
            "statusName": "Active, Deletable, Locked"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve amount workflow processes

## Get amount workflow processes

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/amount-processes`

This endpoint allows you to retrieve workflow processes for amounts.

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200 Amount processes retrieved successfully." %}

```javascript
{
    "processes": [
        {
            "processId": 8,
            "processName": "Amount Workflow",
            "sequenceNumber": 10,
            "description": "Amount Workflow"
        },
        {
            "processId": 38,
            "processName": "Locked Amounts",
            "sequenceNumber": 21,
            "description": "Locked Amounts"
        },
        {
            "processId": 64,
            "processName": "Advance Payment Workflow",
            "sequenceNumber": 48,
            "description": "Advance Payment Workflow"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve amount draft templates

## Get amount draft templates

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/amount/:id/draft-templates`

This endpoint allows you to get the draft templates for an amount.

#### Path Parameters

| Name | Type   | Description       |
| ---- | ------ | ----------------- |
| id   | string | ID of the amount. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Draft templates successfully retrieved." %}

```javascript
{
    "templates": [
        {
            "templateId": 11,
            "templateName": "Testing Draft",
            "templateDescription": null,
            "fileName": "Testing_Draft.docx"
        },
        {
            "templateId": 9,
            "templateName": "Test Draft Template",
            "templateDescription": null,
            "fileName": "Draft_Template.docx"
        }
        {
            "templateId": 24,
            "templateName": "Sample PDF",
            "templateDescription": null,
            "fileName": "Sample_PDF.pdf"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve amount audit history

Retrieve the audit history for an amount record.

## Get amount audit history

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/amount/:id/audit-history`

This endpoint allows you to retrieve the audit history of a specific amount by ID.

#### Path Parameters

| Name | Type   | Description                   |
| ---- | ------ | ----------------------------- |
| id   | string | ID of the amount to retrieve. |

#### Query Parameters

| Name         | Type     | Description                                                                      |
| ------------ | -------- | -------------------------------------------------------------------------------- |
| userId       | number   | Filter by actions from a specific user.                                          |
| page         | number   | Paging - The page to retrieve (default 1).                                       |
| rows         | number   | Paging - The number of rows to retrieve (default 10).                            |
| startDate    | dateTime | Return history after this date.                                                  |
| endDate      | dateTime | Return history before this date.                                                 |
| charTypeIds  | int\[]   | An array of char type IDs of related entities to include in the history results. |
| showWorkflow | bool     | Include workflow history in results (default false).                             |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Amount history retrieved successfully." %}

```javascript
{
    "totalCount": 1,
    "entries": [
        {
            "isHeader": 1,
            "auditId": "0x00663C390001A63E0008",
            "sequence": "0x00663C390001A63E0002",
            "operationId": 2,
            "operationLabel": "Added",
            "charTypeId": 10,
            "recordId": 1122615,
            "title": "Theatrical Record 1122615",
            "templateId": 1,
            "templateName": "Theatrical",
            "userId": 112151,
            "userName": "Donald Glover",
            "auditDate": "2022-07-07T22:55:49.687Z",
            "changedField": null
        }
    ]
}
```

{% endtab %}

{% tab title="404 Could not find an amount with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}

## Get amount audit history details

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/amount/:id/audit-history-detail`

This endpoint allows you to retrieve the audit history details of a specific audit record.

#### Path Parameters

| Name | Type   | Description                   |
| ---- | ------ | ----------------------------- |
| id   | string | ID of the amount to retrieve. |

#### Query Parameters

| Name                                          | Type    | Description                          |
| --------------------------------------------- | ------- | ------------------------------------ |
| auditId<mark style="color:red;">\*</mark>     | string  | From audit history response.         |
| sequence<mark style="color:red;">\*</mark>    | string  | From audit history response.         |
| operationId<mark style="color:red;">\*</mark> | number  | From audit history response.         |
| isHeader<mark style="color:red;">\*</mark>    | number  | From audit history response.         |
| includeMessages                               | boolean | Include message details in response. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Amount history details retrieved successfully." %}

```javascript
{
    "changedField": "notes",
    "oldValue": "old note",
    "newValue": "new note",
    "messageId": "7d664774-c0b5-431a-99a1-978ec257d1fe", // if includeMessages = true
    "destination": "queue-name.fifo", // if includeMessages = true
    "auditDate": "2022-11-09T18:10:10.133Z" // if includeMessages = true
}
```

{% endtab %}

{% tab title="404 Could not find an amount with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Switch amount template

Switches the amount record to a new template

## Switch amount template

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/amount/:id/switch-template`

This endpoint allows you to change the template of an amount.

#### Path Parameters

| Name                                 | Type   | Description                                 |
| ------------------------------------ | ------ | ------------------------------------------- |
| id<mark style="color:red;">\*</mark> | string | ID of the amount to switch the template of. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                                                  | Type   | Description                                 |
| ----------------------------------------------------- | ------ | ------------------------------------------- |
| id<mark style="color:red;">\*</mark>                  | string | ID of the amount to switch the template of. |
| newTemplateId<mark style="color:red;">\*</mark>       | string | The ID of the new template.                 |
| title                                                 | string | Title of the record.                        |
| template.templateId<mark style="color:red;">\*</mark> | string | The current template ID.                    |

{% tabs %}
{% tab title="200 Template switched. Returns template switch object." %}

```json
{
    "id": 1,
    "relationshipsNotMigrated": {
        "parties": [],
        "associations": {}
    },
    "characteristicsNotMigrated": [],
    "characteristicsRequiredOnNewTemplate": []
}
```

{% endtab %}
{% endtabs %}

## Check the new template before switching

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/amount/:id/switch-template-check`

This endpoint allows you to check what will happen to a record before switching the template.

#### Path Parameters

| Name | Type   | Description                                 |
| ---- | ------ | ------------------------------------------- |
| id   | string | ID of the amount to switch the template of. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type   | Description                                 |
| ------------------- | ------ | ------------------------------------------- |
| id                  | string | ID of the amount to switch the template of. |
| newTemplateId       | string | The ID of the new template.                 |
| title               | string | Title of the record.                        |
| template.templateId | string | The current template ID.                    |

{% tabs %}
{% tab title="200 Returns template check object." %}

```json
{
   "relationshipsNotMigrated": {
        "parties": [],
        "associations": {}
    },
    "characteristicsNotMigrated": [],
    "characteristicsRequiredOnNewTemplate": []
}
```

{% endtab %}
{% endtabs %}


# Retrieve amount validation errors

## Get amount validation errors

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/amount/:id/validation-errors`

This endpoint allows you to retrieve validation errors for a specific amount by ID.

#### Path Parameters

| Name                                 | Type   | Description                                     |
| ------------------------------------ | ------ | ----------------------------------------------- |
| id<mark style="color:red;">\*</mark> | string | ID of the amount to retrieve validation errors. |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200: OK Validation errors exist." %}

```javascript
{
  "hasErrors": true,
  "errors": [
    {
      "message": "End Date (term_end_date) is required",
      "type": "Data & Associations",
      "workflowBlocking": true
    }
  ],
  "message": "Workflow blocking errors are present. Workflow Actions are disabled until these validation errors are resolved."
}
```

{% endtab %}

{% tab title="404: Not Found Could not find an amount with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}

{% tab title="200: OK No validation errors exist." %}

```javascript
{
  "hasErrors": false,
  "errors": [],
  "message": "No validation errors exist."
}
```

{% endtab %}
{% endtabs %}


# Catalog item

### Endpoints

| Method | Endpoint                              | Description                                                                                            |
| ------ | ------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| POST   | /v4/catalog-item                      | [Create a catalog item.](/entities/catalog-item/catalogitem-create)                                    |
| GET    | /v4/catalog-item/:id                  | [Retrieve a catalog item.](/entities/catalog-item/catalogitem-retrieve)                                |
| PUT    | /v4/catalog-item/:id                  | [Update a catalog item.](/entities/catalog-item/catalogitem-update)                                    |
| DELETE | /v4/catalog-item/:id                  | [Delete a catalog item.](/entities/catalog-item/catalogitem-delete)                                    |
| GET    | /v4/catalog-item-templates            | [Retrieve catalog item templates.](/config/templates)                                                  |
| GET    | /v4/catalog-item-statuses/:templateId | [Retrieve catalog item statuses.](/entities/catalog-item/retrieve-catalog-item-statuses)               |
| GET    | /v4/catalog-item-processes            | [Retrieve catalog item workflow processes.](/entities/catalog-item/retrieve-catalog-item-processes)    |
| GET    | /v4/catalog-item/:id/draft-templates  | [Retrieve catalog item draft templates.](/entities/catalog-item/retrieve-catalog-item-draft-templates) |
| GET    | /v4/catalog-item/:id/keyart/url       | [Retrieve catalog item key art URL.](/entities/catalog-item/retrieve-catalog-item-key-art-url)         |
| PUT    | /v4/catalog-item/:id/keyart           | [Update catalog item key art.](/entities/catalog-item/update-catalog-item-key-art)                     |
| DELETE | /v4/catalog-item/:id/keyart           | [Delete catalog item key art.](/entities/catalog-item/delete-catalog-item-key-art)                     |
| GET    | /v4/catalog-item/:id/audit-history    | [Get catalog item audit history.](/entities/catalog-item/audit-history)                                |
| POST   | /v4/catalog-item/:id/switch-template  | [Switch catalog item template.](/entities/catalog-item/switch-catalog-item-template)                   |
| GET    | /v4/catalog-item/:id/delete-check     | [Catalog item delete check.](/entities/catalog-item/delete-check)                                      |


# Create a catalog item

## Create catalog item

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/catalog-item`

This endpoint allows you to create a new catalog item.

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type   | Description                                                           |
| ------------------- | ------ | --------------------------------------------------------------------- |
| title               | string | The title of the new catalog item.                                    |
| template            | object | The template of the new catalog item.                                 |
| template.templateId | string | The unique ID of the template to assign to the catalog item.          |
| characteristics     | object | The field values to assign to the catalog item.                       |
| parentRelationship  | array  | Create this catalog item as a child of a deal or other catalog items. |

{% tabs %}
{% tab title="200 Catalog item created successfully.  Returns the ID of the newly created catalog item." %}

```
302
```

{% endtab %}

{% tab title="400 Request is missing required information, or the information is invalid." %}

```javascript
{
  "message": "TemplateId is required"
}
```

{% endtab %}
{% endtabs %}

### Sample Request

```javascript
{
    "title": "The Three Stooges",
    "template": {
        "templateId": 1
    },
    "characteristics": {
        "notes": "This is a great movie!",
        "release_year": 1925
    },
    "parentRelationship": [
        {
            "parentCharTypeId": 4,
            "parentRecordId": 100
        }
    ]
}
```


# Retrieve a catalog item

## Get catalog item

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/catalog-item/:id`

This endpoint allows you to retrieve a specific catalog item by ID.

#### Path Parameters

| Name | Type   | Description                         |
| ---- | ------ | ----------------------------------- |
| id   | string | ID of the catalog item to retrieve. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Catalog item successfully retrieved." %}

```javascript
{
  "parentRelationship": [
   {
      "id": 255317359,
      "relationshipType": {
        "relationshipTypeId": 0,
        "relationshipTypeName": "Default"
      },
      "createdById": 1,
      "createdDate": "2019-10-30T20:54:23.297Z",
      "lastUpdatedById": 1,
      "lastUpdatedDate": "2019-10-30T20:54:23.297Z",
      "parentCharTypeId": 4,
      "parentRecordId": 1,
      "parentTemplate": {
        "templateId": 1,
        "templateName": "Rights In"
      },
      "parentStatus": {
        "statusId": 1,
        "statusName": "Active"
      },
      "childCharTypeId": 1,
      "childRecordId": 1,
      "childTemplate": {
        "templateId": 1,
        "templateName": "Feature"
      },
      "childStatus": {
      "statusId": 1,
        "statusName": "Active"
      },
      "sequenceNumber": 992654028800
    }
  ],
  "relationshipUpdateRules": null,
  "id": 1,
  "revisionId": 0,
  "title": "The Three Stooges",
  "template": {
    "fields": [],
    "templateId": 1,
    "templateName": "Collection",
    "processId": 0,
    "processName": null
  },
  "status": {
    "statusId": 1,
    "statusName": "Active"
  },
  "characteristics": {
    "release_year": 1925
  },
  "comments": [],
  "createdById": 1,
  "createdDate": "2015-08-25T21:07:02.487Z",
  "lastUpdatedById": 1,
  "lastUpdatedDate": "2020-05-02T02:17:13.717"
  }
```

{% endtab %}

{% tab title="404 Could not find a catalog item with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Update a catalog item

## Update catalog item

<mark style="color:orange;">`PUT`</mark> `https://ris.rightsline.com/v4/catalog-item/:id`

This endpoint allows you to update a catalog item.

#### Path Parameters

| Name | Type    | Description                       |
| ---- | ------- | --------------------------------- |
| id   | integer | ID of the catalog item to update. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type    | Description                               |
| ------------------- | ------- | ----------------------------------------- |
| title               | string  | The new title of the catalog item.        |
| template            | object  | The template of the catalog item.         |
| template.templateId | integer | The template ID of the catalog item.      |
| characteristics     | object  | The fields of the catalog item to update. |

{% tabs %}
{% tab title="200 Catalog item successfully updated." %}

```javascript
{    
    "title": "Your updated catalog item",    
    "template": {
        "templateId":1
    },    
    "characteristics": {}
}
```

{% endtab %}
{% endtabs %}


# Delete a catalog item

## Delete catalog item

<mark style="color:red;">`DELETE`</mark> `https://ris.rightsline.com/v4/catalog-item/:id`

This endpoint allows you to delete a catalog item.

#### Path Parameters

| Name | Type    | Description                       |
| ---- | ------- | --------------------------------- |
| id   | integer | ID of the catalog item to delete. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Catalog item successfully deleted." %}

```
true
```

{% endtab %}
{% endtabs %}


# Retrieve catalog item template list

## Get catalog item templates

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/catalog-item-templates`

This endpoint allows you to retrieve template data for catalog items.

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Templates successfully retrieved." %}

```javascript
{
  "templates": [
    {
      "templateId": 14,
      "templateName": "Collection",
      "processId": 4,
      "processName": "Catalog Workflow"
    },
    {
      "templateId": 1,
      "templateName": "Feature",
      "processId": 4,
      "processName": "Catalog Workflow"
    }
  ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve catalog item statuses

## Get catalog item statuses

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/catalog-item-statuses/{templateId}`

This endpoint allows you to retrieve status data for catalog-items.

#### Path Parameters

| Name       | Type    | Description                   |
| ---------- | ------- | ----------------------------- |
| templateId | integer | The catalog-item template ID. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Catalog-item statuses retrieved successfully." %}

```javascript
{
    "statuses": [
        {
            "statusId": 1,
            "statusName": "Development"
        },
        {
            "statusId": 2,
            "statusName": "Packaging/Financing"
        },
        {
            "statusId": 16,
            "statusName": "Greenlit"
        },
        {
            "statusId": 3,
            "statusName": "Production"
        },
        {
            "statusId": 4,
            "statusName": "Post-Production"
        },
        {
            "statusId": 17,
            "statusName": "Delivery"
        },
        {
            "statusId": 14,
            "statusName": "Awaiting Release"
        },
        {
            "statusId": 6,
            "statusName": "Released"
        },
        {
            "statusId": 18,
            "statusName": "Active, Deletable, Unlocked"
        },
        {
            "statusId": 12,
            "statusName": "Inactive, Deletable, Unlocked"
        },
        {
            "statusId": 19,
            "statusName": "Inactive, Not Deletable, Locked"
        },
        {
            "statusId": 20,
            "statusName": "Inactive, Deletable, Locked"
        },
        {
            "statusId": 21,
            "statusName": "Inactive"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve catalog item workflow processes

## Get catalog item workflow processes

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/catalog-item-processes`

This endpoint allows you to retrieve workflow processes for catalog items.

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200 Catalog item processes retrieved successfully." %}

```javascript
{
    "processes": [
        {
            "processId": 4,
            "processName": "Catalog Workflow",
            "sequenceNumber": 1,
            "description": "Catalog Workflow Description"
        },
        {
            "processId": 13,
            "processName": "Inventory Workflow",
            "sequenceNumber": 2,
            "description": "Inventory Workflow Description"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve catalog item draft templates

## Get catalog item draft templates

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/catalog-item/:id/draft-templates`

This endpoint allows you to get the draft templates for a catalog-item.

#### Path Parameters

| Name | Type   | Description             |
| ---- | ------ | ----------------------- |
| id   | string | ID of the catalog-item. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Draft templates successfully retrieved." %}

```javascript
{
    "templates": [
        {
            "templateId": 11,
            "templateName": "Testing Draft",
            "templateDescription": null,
            "fileName": "Testing_Draft.docx"
        },
        {
            "templateId": 9,
            "templateName": "Test Draft Template",
            "templateDescription": null,
            "fileName": "Draft_Template.docx"
        }
        {
            "templateId": 24,
            "templateName": "Sample PDF",
            "templateDescription": null,
            "fileName": "Sample_PDF.pdf"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve catalog item key art URL

Used to retrieve key art for a catalog item.

## Get catalog item key art URL

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/catalog-item/:id/keyart/url`

This endpoint allows you to retrieve the URL to download the key art for a catalog item.

#### Path Parameters

| Name | Type   | Description             |
| ---- | ------ | ----------------------- |
| id   | string | ID of the catalog item. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Key art URL successfully retrieved. Use the URL to retrieve the key art." %}

```javascript
{
    "id": 2687,
    "link": {
        "url": "https://************.cloudfront.net/*****************",
        "expiration": "2021-04-20T22:45:26.296Z"
    }
}
```

{% endtab %}

{% tab title="404 Could not find key art for the catalog item." %}

```javascript
{    
    "message": "No keyart found."
}
```

{% endtab %}
{% endtabs %}


# Upload/update catalog item key art

Upload/update the key art for a catalog item.

Uploading key art for a catalog item is done in two steps:

1. Creating the key art reference in Rightsline
2. Uploading the image&#x20;

To create the key art reference in Rightsline, use the following endpoint:

## Update catalog item key art

<mark style="color:orange;">`PUT`</mark> `https://ris.rightsline.com/v4/catalog-item/:id/keyart`

This endpoint allows you to update the key art for a catalog item.

#### Path Parameters

| Name | Type    | Description             |
| ---- | ------- | ----------------------- |
| id   | integer | ID of the catalog item. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name     | Type   | Description                     |
| -------- | ------ | ------------------------------- |
| fileName | string | Key art file name.              |
| label    | string | The description of the key art. |

{% tabs %}
{% tab title="200 Key art updated. Upload key art image to the URL." %}

```javascript
{
    "id": 2687,
    "link": {
        "url": "https://de324y6j768fq1.cloudfront.net/************",
        "expiration": "2021-04-20T22:44:58.314Z"
    }
}
```

{% endtab %}
{% endtabs %}

Then you can upload the image by sending a PUT request to the URL returned in the previous response.


# Delete catalog item key art

Delete the key art for a catalog item.

## Delete catalog item key art

<mark style="color:red;">`DELETE`</mark> `https://ris.rightsline.com/v4/catalog-item/:id/keyart`

This endpoint allows you to get free cakes.

#### Path Parameters

| Name | Type    | Description             |
| ---- | ------- | ----------------------- |
| id   | integer | ID of the catalog item. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Catalog item key art successfully deleted." %}

```javascript
{
    "message": "Keyart deleted."
}
```

{% endtab %}

{% tab title="404 Could not find a key art for catalog item." %}

```javascript
{    
    "message": "No keyart found."
}
```

{% endtab %}
{% endtabs %}


# Retrieve catalog item audit history

Retrieve the audit history for a catalog item record.

## Get catalog item audit history

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/catalog-item/:id/audit-history`

This endpoint allows you to retrieve the audit history of a specific catalog item by ID.

#### Path Parameters

| Name | Type   | Description                         |
| ---- | ------ | ----------------------------------- |
| id   | string | ID of the catalog item to retrieve. |

#### Query Parameters

| Name         | Type     | Description                                                                      |
| ------------ | -------- | -------------------------------------------------------------------------------- |
| userId       | number   | Filter by actions from a specific user.                                          |
| page         | number   | Paging - The page to retrieve (default 1).                                       |
| rows         | number   | Paging - The number of rows to retrieve (default 10).                            |
| startDate    | dateTime | Return history after this date.                                                  |
| endDate      | dateTime | Return history before this date.                                                 |
| charTypeIds  | int\[]   | An array of char type IDs of related entities to include in the history results. |
| showWorkflow | bool     | Include workflow history in results (default false).                             |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Catalog item history retrieved successfully." %}

```javascript
{
    "totalCount": 1,
    "entries": [
        {
            "isHeader": 1,
            "auditId": "0x00663C390001A63E0008",
            "sequence": "0x00663C390001A63E0002",
            "operationId": 2,
            "operationLabel": "Added",
            "charTypeId": 1,
            "recordId": 1122615,
            "title": "Feature Record 1122615",
            "templateId": 1,
            "templateName": "Feature",
            "userId": 112151,
            "userName": "Donald Glover",
            "auditDate": "2022-07-07T22:55:49.687Z",
            "changedField": null
        }
    ]
}
```

{% endtab %}

{% tab title="404 Could not find a catalog item with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}

## Get catalog item audit history details

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/catalog-item/:id/audit-history-detail`

This endpoint allows you to retrieve the audit history details of a specific audit record.

#### Path Parameters

| Name | Type   | Description                         |
| ---- | ------ | ----------------------------------- |
| id   | string | ID of the catalog item to retrieve. |

#### Query Parameters

| Name                                          | Type    | Description                          |
| --------------------------------------------- | ------- | ------------------------------------ |
| auditId<mark style="color:red;">\*</mark>     | string  | From audit history response.         |
| sequence<mark style="color:red;">\*</mark>    | string  | From audit history response.         |
| operationId<mark style="color:red;">\*</mark> | number  | From audit history response.         |
| isHeader<mark style="color:red;">\*</mark>    | number  | From audit history response.         |
| includeMessages                               | boolean | Include message details in response. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Catalog item history details retrieved successfully." %}

```javascript
{
    "changedField": "notes",
    "oldValue": "old note",
    "newValue": "new note",
    "messageId": "7d664774-c0b5-431a-99a1-978ec257d1fe", // if includeMessages = true
    "destination": "queue-name.fifo", // if includeMessages = true
    "auditDate": "2022-11-09T18:10:10.133Z" // if includeMessages = true
}
```

{% endtab %}

{% tab title="404 Could not find an catalog item with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Switch catalog item template

Switches the catalog item record to a new template

## Switch catalog item template

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/catalog-item/:id/switch-template`

This endpoint allows you to change the template of an catalog item.

#### Path Parameters

| Name                                 | Type   | Description                                       |
| ------------------------------------ | ------ | ------------------------------------------------- |
| id<mark style="color:red;">\*</mark> | string | ID of the catalog item to switch the template of. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                                                  | Type   | Description                                       |
| ----------------------------------------------------- | ------ | ------------------------------------------------- |
| id<mark style="color:red;">\*</mark>                  | string | ID of the catalog item to switch the template of. |
| newTemplateId<mark style="color:red;">\*</mark>       | string | The ID of the new template.                       |
| title                                                 | string | Title of the record..                             |
| template.templateId<mark style="color:red;">\*</mark> | string | The current template ID.                          |

{% tabs %}
{% tab title="200 Template switched. Returns template switch object." %}

```json
{
    "id": 1,
    "relationshipsNotMigrated": {
        "parties": [],
        "associations": {}
    },
    "characteristicsNotMigrated": [],
    "characteristicsRequiredOnNewTemplate": []
}
```

{% endtab %}
{% endtabs %}

## Check the new template before switching

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/catalog-item/:id/switch-template-check`

This endpoint allows you to check what will happen to a record before switching the template.

#### Path Parameters

| Name | Type   | Description                                       |
| ---- | ------ | ------------------------------------------------- |
| id   | string | ID of the catalog item to switch the template of. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type   | Description                                       |
| ------------------- | ------ | ------------------------------------------------- |
| id                  | string | ID of the catalog item to switch the template of. |
| newTemplateId       | string | The ID of the new template.                       |
| title               | string | Title of the record.                              |
| template.templateId | string | The current template ID.                          |

{% tabs %}
{% tab title="200 Returns template check object." %}

```json
{
   "relationshipsNotMigrated": {
        "parties": [],
        "associations": {}
    },
    "characteristicsNotMigrated": [],
    "characteristicsRequiredOnNewTemplate": []
}
```

{% endtab %}
{% endtabs %}


# Retrieve catalog item validation errors

## Get catalog item validation errors

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/catalog-item/:id/validation-errors`

This endpoint allows you to retrieve validation errors for a specific catalog item by ID.

#### Path Parameters

| Name                                 | Type   | Description                                           |
| ------------------------------------ | ------ | ----------------------------------------------------- |
| id<mark style="color:red;">\*</mark> | string | ID of the catalog item to retrieve validation errors. |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200: OK Validation errors exist." %}

```javascript
{
  "hasErrors": true,
  "errors": [
    {
      "message": "End Date (term_end_date) is required",
      "type": "Data & Associations",
      "workflowBlocking": true
    }
  ],
  "message": "Workflow blocking errors are present. Workflow Actions are disabled until these validation errors are resolved."
}
```

{% endtab %}

{% tab title="404: Not Found Could not find an catalog item with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}

{% tab title="200: OK No validation errors exist." %}

```javascript
{
  "hasErrors": false,
  "errors": [],
  "message": "No validation errors exist."
}
```

{% endtab %}
{% endtabs %}


# Retrieve all rights in catalog hierarchy

## Get rights in catalog hierarchy

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/catalog-item/:id/rights-in-hierarchy`

This endpoint allows you to retrieve all rights in a catalog hierarchy.

#### Path Parameters

| Name | Type   | Description             |
| ---- | ------ | ----------------------- |
| id   | string | ID of the catalog-item. |

#### Query Parameters

| Name  | Type | Description                                          |
| ----- | ---- | ---------------------------------------------------- |
| start | int  | Index of first record to return in response.         |
| rows  | int  | Number of rows to return in response. Default = 100. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200: OK Rights in hierarchy successfully received." %}

```javascript
{
    "numFound": 2,
    "entities": [
        {
            "associationSource": "Explicit | Implicit",
            "impactsAvails": true,
            "id": 1,
            "revisionId": 0,
            "title": "A Rights In",
            "template": {
                "templateId": 1,
                "templateName": "Rights In",
                "processId": 0,
                "processName": null
            },
            "status": {
                "statusId": 1,
                "statusName": "Active"
            },
            "characteristics": {
                "media_right": [
                    {
                        "id": 2,
                        "value": "All Media"
                    }
                ],
                "actual_term_start": "2000-01-01"
            },
            "comments": null,
            "createdById": 10,
            "createdDate": null,
            "lastUpdatedById": 10,
            "lastUpdatedDate": "2022-12-13T18:17:33.540Z",
            "statusUpdatedById": 10,
            "statusUpdatedDate": "2022-12-13T18:17:33.540Z"
        },
        {
            "associationSource": "Implicit",
            "impactsAvails": true,
            "id": 2,
            "revisionId": 0,
            "title": "A Rights In",
            "template": {
                "templateId": 1,
                "templateName": "Rights In",
                "processId": 0,
                "processName": null
            },
            "status": {
                "statusId": 1,
                "statusName": "Active"
            },
            "characteristics": {
                "media_right": [
                    {
                        "id": 2,
                        "value": "All Media"
                    }
                ],
                "actual_term_start": "2021-01-01"
            },
            "comments": null,
            "createdById": 10,
            "createdDate": null,
            "lastUpdatedById": 10,
            "lastUpdatedDate": "2022-10-12T14:40:08.563Z",
            "statusUpdatedById": 10,
            "statusUpdatedDate": "2021-01-08T03:35:05.693Z"
        }
    ]
}
```

{% endtab %}

{% tab title="403: Forbidden Feature flag is not enabled." %}

```json
{
    "message": "Feature flag is not enabled for this function."
}    
```

{% endtab %}

{% tab title="404: Not Found Catalog not found." %}

```json
{
    "message": "Resource Not Found."
}
```

{% endtab %}
{% endtabs %}


# Catalog item delete check

## Catalog item delete check

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/catalog-item/:id/delete-check`

This endpoint allows you to retrieve a specific catalog item by ID.

#### Path Parameters

| Name                                 | Type   | Description             |
| ------------------------------------ | ------ | ----------------------- |
| id<mark style="color:red;">\*</mark> | string | ID of the catalog item. |

#### Query Parameters

| Name | Type | Description                                             |
| ---- | ---- | ------------------------------------------------------- |
| skip | int  | Optional paging parameter for lockedRecordAssociations. |
| rows | int  | Optional paging parameter for lockedRecordAssociations. |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200 Success." %}

```json
{
    "id": 100,
    "template": {
        "templateId": 3,
        "templateName": "Feature",
        "systemIndicatorId": 0,
        "processId": 0
    },
    "status": {
        "statusId": 1,
        "statusName": "Active"
    },
    "isLocked": false,
    "isDeletable": true,
    "hasLockedRecordAssociations": true,
    "lockedRecordAssociationCount": 3,
    "lockedRecordAssociations": [
        {
            "id": 2486256,
            "title": "Payment Schedule Record 2486256",
            "charTypeId": 5,
            "template": {
                "templateId": 21,
                "templateName": "Payment Schedule",
                "systemIndicatorId": 0,
                "processId": 0
            },
            "status": {
                "statusId": 5,
                "statusName": "Active, Not Deletable, Locked"
            },
            "relationshipDirection": "CHILD",
            "relationshipType": {
                "relationshipTypeId": 0,
                "relationshipTypeName": "Default"
            }
        },
        {
            "id": 209,
            "title": "Test Deal 1",
            "charTypeId": 4,
            "template": {
                "templateId": 1,
                "templateName": "Outgoing Submission",
                "systemIndicatorId": 0,
                "processId": 0
            },
            "status": {
                "statusId": 10,
                "statusName": "Active, Not Deletable, Locked"
            },
            "relationshipDirection": "PARENT",
            "relationshipType": {
                "relationshipTypeId": 6,
                "relationshipTypeName": "Submitted By"
            }
        },
        {
            "id": 4633,
            "title": "Test Deal 2",
            "charTypeId": 4,
            "template": {
                "templateId": 1,
                "templateName": "Acquisition Deal",
                "systemIndicatorId": 0,
                "processId": 0
            },
            "status": {
                "statusId": 17,
                "statusName": "Active, Deletable, Locked"
            },
            "relationshipDirection": "PARENT",
            "relationshipType": {
                "relationshipTypeId": 24,
                "relationshipTypeName": "Watcher"
            }
        }
    ]
}
```

{% endtab %}

{% tab title="404 Could not find a catalog item with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Retrieve catalog item worksheets

## Get catalog item worksheets

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/worksheet`

This endpoint allows you to get the catalog-item worksheets.

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Worksheets successfully retrieved." %}

```javascript
[
    {
        "id": "0c6fe0be-a1fe-ef11-835d-065151be1e5f",
        "name": "Worksheet 1"
    },
    {
        "id": "47ac3f2a-9cfe-ef11-835d-065151be1e5f",
        "name": "Worksheet 2"
    }
]
```

{% endtab %}
{% endtabs %}

## Get catalog item worksheet by ID

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/worksheet/:id`

This endpoint allows you to get a catalog-item worksheet by worksheet ID.

#### Path Parameters

| Name | Type   | Description          |
| ---- | ------ | -------------------- |
| id   | string | ID of the worksheet. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Draft templates successfully retrieved." %}

```javascript
{
    "records": {
        "1": [
            {
                "id": 38086,
                "title": "Catalog Item 1"
            },
            {
                "id": 38085,
                "title": "Catalog Item 2"
            },
            {
                "id": 38454,
                "title": "Catalog Item 3"
            }
        ]
    },
    "createdDate": "2025-03-11T17:53:32.733Z",
    "lastUpdatedDate": "2025-03-11T17:53:32.733Z",
    "id": "0c6fe0be-a1fe-ef11-835d-065151be1e5f",
    "name": "Worksheet 1"
}
```

{% endtab %}
{% endtabs %}


# Overwrite catalog item parties

## Overwrite catalog item parties

<mark style="color:orange;">`PUT`</mark> `https://ris.rightsline.com/v4/catalog-item/:id/overwrite-parties`

This endpoint allows you to overwrite parties for a specific catalog item by ID.

#### Path Parameters

| Name                                 | Type   | Description             |
| ------------------------------------ | ------ | ----------------------- |
| id<mark style="color:red;">\*</mark> | number | ID of the catalog item. |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

#### Request Body

| Name            | Type   | Description                                                                        |
| --------------- | ------ | ---------------------------------------------------------------------------------- |
| selectedParties | int\[] | Array of Party IDs to overwrite. If not included, all parties will be overwritten. |

{% tabs %}
{% tab title="200: OK Parties overwritten successfully." %}

```json
{
    "message": "Overwrite contacts successful."
}
```

{% endtab %}

{% tab title="404: Not Found Could not find a catalog item with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}

{% tab title="404: Not Found Selected parties not found on catalog item." %}

```json

{
    "message": "Party ID(s) [2, 3] not found on entity."
}
```

{% endtab %}

{% tab title="404: Not Found No parties exist on catalog item." %}

```json
{
    "message": "No parties found on entity."
}
```

{% endtab %}

{% tab title="404: Not Found Selected parties do not exist." %}

```json
{
    "message": "Party ID(s) [20, 24] do not exist."
}
```

{% endtab %}
{% endtabs %}


# Contact

### Endpoints

| Method | Endpoint                         | Description                                                                             |
| ------ | -------------------------------- | --------------------------------------------------------------------------------------- |
| POST   | /v4/contact                      | [Create a contact.](/entities/contact/contact-create)                                   |
| GET    | /v4/contact/:id                  | [Retrieve a contact.](/entities/contact/contact-retrieve)                               |
| PUT    | /v4/contact/:id                  | [Update a contact.](/entities/contact/contact-update)                                   |
| DELETE | /v4/contact/:id                  | [Delete a contact.](/entities/contact/contact-delete)                                   |
| GET    | /v4/contact-templates            | [Retrieve contact templates.](/config/templates)                                        |
| GET    | /v4/contact-statuses/:templateId | [Retrieve contact statuses.](/entities/contact/retrieve-contact-statuses)               |
| GET    | /v4/contact/:id/draft-templates  | [Retrieve contact draft templates.](/entities/contact/retrieve-contact-draft-templates) |
| POST   | /v4/contact/:id/switch-template  | [Switch contact template.](/entities/contact/switch-contact-template)                   |
| GET    | /v4/contact/:id/delete-check     | [Contact delete check.](/entities/contact/delete-check)                                 |


# Create a contact

## Create contact

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/contact`

This endpoint allows you to create a new contact.

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type   | Description                                             |
| ------------------- | ------ | ------------------------------------------------------- |
| title               | string | The title of the new contact.                           |
| template            | object | The template of the new contact.                        |
| template.templateId | string | The unique ID of the template to assign to the contact. |
| characteristics     | object | The field values to assign to the contact.              |
| parentRelationship  | array  | Create this contact as a child of other entities.       |

{% tabs %}
{% tab title="200 Contact created successfully.  Returns the ID of the newly created contact." %}

```
100
```

{% endtab %}

{% tab title="400 Request is missing required information, or the information is invalid." %}

```
{
  "message": "TemplateId is required"
}
```

{% endtab %}
{% endtabs %}


# Retrieve a contact

## Get contact

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/contact/:id`

This endpoint allows you to retrieve a specific contact by ID.

#### Path Parameters

| Name | Type   | Description                    |
| ---- | ------ | ------------------------------ |
| id   | string | ID of the contact to retrieve. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Contact exists.  Return contact entity." %}

```javascript
{
  "parentRelationship": null,
  "relationshipUpdateRules": null,
  "id": 100,
  "revisionId": 0,
  "title": " ",
  "template": {
    "fields": [],
    "templateId": 1,
    "templateName": "Producer",
    "processId": 0,
    "processName": null
  },
  "status": {
    "statusId": 1,
    "statusName": "Active"
  },
  "characteristics": {},
  "comments": [],
  "createdById": 100,
  "createdDate": "2017-11-28T21:56:52.743Z",
  "lastUpdatedById": 100,
  "lastUpdatedDate": "2019-10-18T04:28:35.790Z"
}
```

{% endtab %}

{% tab title="404 Contact does not exist." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Update a contact

## Update contact

<mark style="color:orange;">`PUT`</mark> `https://ris.rightsline.com/v4/contact/:id`

This endpoint allows you to update a contact.

#### Path Parameters

| Name | Type    | Description                  |
| ---- | ------- | ---------------------------- |
| id   | integer | ID of the contact to update. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type    | Description                               |
| ------------------- | ------- | ----------------------------------------- |
| title               | string  | The new title for the contact.            |
| template            | object  | The template of the contact to update.    |
| template.templateId | integer | The template ID of the contact to update. |
| characteristics     | object  | The fields on the contact to update.      |

{% tabs %}
{% tab title="200 Contact successfully updated." %}

```javascript
{
  "parentRelationship": null,
  "relationshipUpdateRules": null,
  "id": 100,
  "revisionId": 0,
  "title": " ",
  "template": {
    "fields": [],
    "templateId": 1,
    "templateName": "Producer",
    "processId": 0,
    "processName": null
  },
  "status": {
    "statusId": 1,
    "statusName": "Active"
  },
  "characteristics": {},
  "comments": [],
  "createdById": 100,
  "createdDate": "2017-11-28T21:56:52.743Z",
  "lastUpdatedById": 100,
  "lastUpdatedDate": "2019-10-18T04:28:35.790Z"
}
```

{% endtab %}
{% endtabs %}


# Delete a contact

## Delete contact

<mark style="color:red;">`DELETE`</mark> `https://ris.rightsline.com/v4/contact/:id`

This endpoint allows you to delete a contact.

#### Path Parameters

| Name | Type    | Description                  |
| ---- | ------- | ---------------------------- |
| id   | integer | ID of the contact to delete. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Contact successfully deleted." %}

```
true
```

{% endtab %}
{% endtabs %}


# Retrieve contact statuses

## Get contact statuses

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/contact-statuses/{templateId}`

This endpoint allows you to retrieve status data for contacts.

#### Path Parameters

| Name       | Type    | Description              |
| ---------- | ------- | ------------------------ |
| templateId | integer | The contact template ID. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Contact statuses retrieved successfully." %}

```javascript
{
    "statuses": [
        {
            "statusId": 3,
            "statusName": "Pending Review"
        },
        {
            "statusId": 1,
            "statusName": "Active"
        },
        {
            "statusId": 2,
            "statusName": "Inactive, Deletable, Unlocked"
        },
        {
            "statusId": 4,
            "statusName": "Active, Not Deletable, Locked"
        },
        {
            "statusId": 5,
            "statusName": "Inactive, Not Deletable, Locked"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve contact workflow processes

## Get contact workflow processes

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/contact-processes`

This endpoint allows you to retrieve workflow processes for contacts.

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200 Contacts processes retrieved successfully." %}

```javascript
{
    "processes": [
        {
            "processId": 2,
            "processName": "Contact Workflow",
            "sequenceNumber": 1,
            "description": "Contact Workflow Description"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve contact draft templates

## Get contact draft templates

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/contact/:id/draft-templates`

This endpoint allows you to get the draft templates for a contact.

#### Path Parameters

| Name | Type   | Description        |
| ---- | ------ | ------------------ |
| id   | string | ID of the contact. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Draft templates successfully retrieved." %}

```javascript
{
    "templates": [
        {
            "templateId": 11,
            "templateName": "Testing Draft",
            "templateDescription": null,
            "fileName": "Testing_Draft.docx"
        },
        {
            "templateId": 9,
            "templateName": "Test Draft Template",
            "templateDescription": null,
            "fileName": "Draft_Template.docx"
        }
        {
            "templateId": 24,
            "templateName": "Sample PDF",
            "templateDescription": null,
            "fileName": "Sample_PDF.pdf"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve contact audit history

Retrieve the audit history for a contact record.

## Get contact audit history

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/contact/:id/audit-history`

This endpoint allows you to retrieve the audit history of a specific contact by ID.

#### Path Parameters

| Name | Type   | Description                    |
| ---- | ------ | ------------------------------ |
| id   | string | ID of the contact to retrieve. |

#### Query Parameters

| Name         | Type     | Description                                                                      |
| ------------ | -------- | -------------------------------------------------------------------------------- |
| userId       | number   | Filter by actions from a specific user.                                          |
| page         | number   | Paging - The page to retrieve (default 1).                                       |
| rows         | number   | Paging - The number of rows to retrieve (default 10).                            |
| startDate    | dateTime | Return history after this date.                                                  |
| endDate      | dateTime | Return history before this date.                                                 |
| charTypeIds  | int\[]   | An array of char type IDs of related entities to include in the history results. |
| showWorkflow | bool     | Include workflow history in results (default false).                             |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Contact history retrieved successfully." %}

```javascript
{
    "totalCount": 1,
    "entries": [
        {
            "isHeader": 1,
            "auditId": "0x00663C390001A63E0008",
            "sequence": "0x00663C390001A63E0002",
            "operationId": 2,
            "operationLabel": "Added",
            "charTypeId": 2,
            "recordId": 1122615,
            "title": "Person Record 1122615",
            "templateId": 1,
            "templateName": "Person",
            "userId": 112151,
            "userName": "Donald Glover",
            "auditDate": "2022-07-07T22:55:49.687Z",
            "changedField": null
        }
    ]
}
```

{% endtab %}

{% tab title="404 Could not find a contact with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}

## Get contact audit history details

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/contact/:id/audit-history-detail`

This endpoint allows you to retrieve the audit history details of a specific audit record.

#### Path Parameters

| Name | Type   | Description                    |
| ---- | ------ | ------------------------------ |
| id   | string | ID of the contact to retrieve. |

#### Query Parameters

| Name                                          | Type    | Description                          |
| --------------------------------------------- | ------- | ------------------------------------ |
| auditId<mark style="color:red;">\*</mark>     | string  | From audit history response.         |
| sequence<mark style="color:red;">\*</mark>    | string  | From audit history response.         |
| operationId<mark style="color:red;">\*</mark> | number  | From audit history response.         |
| isHeader<mark style="color:red;">\*</mark>    | number  | From audit history response.         |
| includeMessages                               | boolean | Include message details in response. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Contact history details retrieved successfully." %}

```javascript
{
    "changedField": "notes",
    "oldValue": "old note",
    "newValue": "new note",
    "messageId": "7d664774-c0b5-431a-99a1-978ec257d1fe", // if includeMessages = true
    "destination": "queue-name.fifo", // if includeMessages = true
    "auditDate": "2022-11-09T18:10:10.133Z" // if includeMessages = true
}
```

{% endtab %}

{% tab title="404 Could not find an amount with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Switch contact template

Switches the contact record to a new template

## Switch contact template

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/contact/:id/switch-template`

This endpoint allows you to change the template of an contact.

#### Path Parameters

| Name                                 | Type   | Description                                  |
| ------------------------------------ | ------ | -------------------------------------------- |
| id<mark style="color:red;">\*</mark> | string | ID of the contact to switch the template of. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                                                  | Type   | Description                                  |
| ----------------------------------------------------- | ------ | -------------------------------------------- |
| id<mark style="color:red;">\*</mark>                  | string | ID of the contact to switch the template of. |
| newTemplateId<mark style="color:red;">\*</mark>       | string | The ID of the new template.                  |
| title                                                 | string | Title of the record.                         |
| template.templateId<mark style="color:red;">\*</mark> | string | The current template ID.                     |

{% tabs %}
{% tab title="200 Template switched. Returns template switch object." %}

```json
{
    "id": 1,
    "relationshipsNotMigrated": {
        "parties": [],
        "associations": {}
    },
    "characteristicsNotMigrated": [],
    "characteristicsRequiredOnNewTemplate": []
}
```

{% endtab %}
{% endtabs %}

## Check the new template before switching

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/contact/:id/switch-template-check`

This endpoint allows you to check what will happen to a record before switching the template.

#### Path Parameters

| Name | Type   | Description                                       |
| ---- | ------ | ------------------------------------------------- |
| id   | string | ID of the catalog item to switch the template of. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type   | Description                                  |
| ------------------- | ------ | -------------------------------------------- |
| id                  | string | ID of the contact to switch the template of. |
| newTemplateId       | string | The ID of the new template.                  |
| title               | string | Title of the record.                         |
| template.templateId | string | The current template ID.                     |

{% tabs %}
{% tab title="200 Returns template check object." %}

```json
{
   "relationshipsNotMigrated": {
        "parties": [],
        "associations": {}
    },
    "characteristicsNotMigrated": [],
    "characteristicsRequiredOnNewTemplate": []
}
```

{% endtab %}
{% endtabs %}


# Contact delete check

## Contact delete check

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/contact/:id/delete-check`

This endpoint allows you to check if a contact can be deleted.

#### Path Parameters

| Name                                 | Type   | Description        |
| ------------------------------------ | ------ | ------------------ |
| id<mark style="color:red;">\*</mark> | string | ID of the contact. |

#### Query Parameters

| Name | Type | Description                                             |
| ---- | ---- | ------------------------------------------------------- |
| skip | int  | Optional paging parameter for lockedRecordAssociations. |
| rows | int  | Optional paging parameter for lockedRecordAssociations. |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200 Success." %}

```javascript
{
    "id": 1908979,
    "template": {
        "templateId": 3,
        "templateName": "User",
        "systemIndicatorId": 0,
        "processId": 0
    },
    "status": {
        "statusId": 1,
        "statusName": "Active"
    },
    "isLocked": false,
    "isDeletable": true,
    "hasLockedRecordAssociations": true,
    "lockedRecordAssociationCount": 3,
    "lockedRecordAssociations": [
        {
            "id": 2486256,
            "title": "Payment Schedule Record 2486256",
            "charTypeId": 5,            
            "template": {
                "templateId": 21,
                "templateName": "Payment Schedule",
                "systemIndicatorId": 0,
                "processId": 0
            },
            "status": {
                "statusId": 5,
                "statusName": "Active, Not Deletable, Locked"
            },
            "relationshipDirection": "CHILD",
            "relationshipType": {
                "relationshipTypeId": 0,
                "relationshipTypeName": "Default"
            }
        },
        {
            "id": 209,
            "title": "Deal 1",
            "charTypeId": 4,            
            "template": {
                "templateId": 1,
                "templateName": "Outgoing Submission",
                "systemIndicatorId": 0,
                "processId": 0
            },
            "status": {
                "statusId": 10,
                "statusName": "Active, Not Deletable, Locked"
            },
            "relationshipDirection": "PARENT",
            "relationshipType": {
                "relationshipTypeId": 6,
                "relationshipTypeName": "Submitted By"
            }
        },
        {
            "id": 4633,
            "title": "Deal 2",
            "charTypeId": 4,
            "template": {
                "templateId": 1,
                "templateName": "Acquisition Deal",
                "systemIndicatorId": 0,
                "processId": 0
            },
            "status": {
                "statusId": 17,
                "statusName": "Active, Deletable, Locked"
            },
            "relationshipDirection": "PARENT",
            "relationshipType": {
                "relationshipTypeId": 24,
                "relationshipTypeName": "Watcher"
            }
        }
    ]
}
```

{% endtab %}

{% tab title="404 Contact does not exist." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Retrieve contact validation errors

## Get contact validation errors

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/contact/:id/validation-errors`

This endpoint allows you to retrieve validation errors for a specific contact by ID.

#### Path Parameters

| Name                                 | Type   | Description                                      |
| ------------------------------------ | ------ | ------------------------------------------------ |
| id<mark style="color:red;">\*</mark> | string | ID of the contact to retrieve validation errors. |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200: OK Validation errors exist." %}

```javascript
{
  "hasErrors": true,
  "errors": [
    {
      "message": "End Date (term_end_date) is required",
      "type": "Data & Associations",
      "workflowBlocking": true
    }
  ],
  "message": "Workflow blocking errors are present. Workflow Actions are disabled until these validation errors are resolved."
}
```

{% endtab %}

{% tab title="404: Not Found Could not find an contact with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}

{% tab title="200: OK No validation errors exist." %}

```javascript
{
  "hasErrors": false,
  "errors": [],
  "message": "No validation errors exist."
}
```

{% endtab %}
{% endtabs %}


# Deal

### Endpoints

| Method | Endpoint                           | Description                                                                    |
| ------ | ---------------------------------- | ------------------------------------------------------------------------------ |
| POST   | /v4/deal                           | [Create a deal.](/entities/deal/deal-create)                                   |
| GET    | /v4/deal/:id                       | [Retrieve a deal.](/entities/deal/deal-retrieve)                               |
| PUT    | /v4/deal/:id                       | [Update a deal.](/entities/deal/deal-update)                                   |
| DELETE | /v4/deal/:id                       | [Delete a deal.](/entities/deal/deal-delete)                                   |
| GET    | /v4/deal-templates                 | [Retrieve deal templates.](/config/templates)                                  |
| GET    | /v4/deal-statuses/:templateId      | [Retrieve deal statuses.](/entities/deal/retrieve-deal-statuses)               |
| GET    | /v4/deal/:id/draft-templates       | [Retrieve deal draft templates.](/entities/deal/retrieve-deal-draft-templates) |
| GET    | /v4/deal/:id/audit-history         | [Retrieve deal audit history.](/entities/deal/audit-history)                   |
| POST   | /v4/deal/:id/switch-template       | [Switch deal template.](/entities/deal/switch-deal-template)                   |
| GET    | /v4/deal/:id/validation-errors     | [Retrieve deal validation errors.](/entities/deal/validation-errors)           |
| GET    | /v4/deal/:id/conflicts             | [Retrieve deal conflicts.](/entities/deal/conflicts)                           |
| PUT    | /v4/deal/:id/conflicts/:conflictId | [Override deal conflict.](/entities/deal/override-conflict)                    |
|        |                                    |                                                                                |


# Create a deal

## Create deal

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/deal`

This endpoint allows you to create a new deal.

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type   | Description                                          |
| ------------------- | ------ | ---------------------------------------------------- |
| title               | string | The title of the new deal.                           |
| template            | object | The template of the new deal.                        |
| template.templateId | string | The unique ID of the template to assign to the deal. |
| characteristics     | object | The field values to assign to the deal.              |
| parentRelationship  | array  | Create this deal as a child of other deals.          |

{% tabs %}
{% tab title="200 Deal created successfully.  Returns the ID of the newly created deal." %}

```
302
```

{% endtab %}

{% tab title="400 Request is missing required information, or the information is invalid." %}

```javascript
{
  "message": "TemplateId is required"
}
```

{% endtab %}
{% endtabs %}

### Sample Request

```javascript
{
    "title": "My New Deal",
    "template": {
        "templateId": 1
    },
    "characteristics": {
        "notes": "This is a great new deal!"
    },
    "parentRelationship": [
        {
            "parentCharTypeId": 4,
            "parentRecordId": 100
        }
    ]
}
```


# Retrieve a deal

## Get deal

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/deal/:id`

This endpoint allows you to retrieve a specific deal by ID.

#### Path Parameters

| Name | Type   | Description                 |
| ---- | ------ | --------------------------- |
| id   | string | ID of the deal to retrieve. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Deal successfully retrieved." %}

```javascript
{
  "parentRelationship": null,
  "relationshipUpdateRules": null,
  "id": 100,
  "revisionId": 0,
  "title": "Test Deal",
  "template": {
    "fields": [],
    "templateId": 2,
    "templateName": "Distribution Deal",
    "processId": 0,
    "processName": null
  },
  "status": {
    "statusId": 2,
    "statusName": "Created"
  },
  "characteristics": {
    "contract_term_start": "1900-09-09",
    "deal_amount_money": {
      "locAmt": "",
      "locCur": 1,
      "locSym": "USD",
      "divAmt": null,
      "divCur": null,
      "divSym": null
    }
  },
  "comments": [],
  "createdById": 0,
  "createdDate": "2019-10-18T03:09:20.763Z",
  "lastUpdatedById": 0,
  "lastUpdatedDate": "2020-05-29T02:19:04.240Z"
}
```

{% endtab %}

{% tab title="404 Could not find a deal with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Update a deal

## Update deal

<mark style="color:orange;">`PUT`</mark> `https://ris.rightsline.com/v4/deal/:id`

Update the characteristics of a deal.

#### Path Parameters

| Name | Type   | Description                   |
| ---- | ------ | ----------------------------- |
| id   | string | The ID of the deal to update. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type   | Description                                                 |
| ------------------- | ------ | ----------------------------------------------------------- |
| title               | string | The new title of the deal.                                  |
| template            | object | The template of the deal.                                   |
| template.templateId | string | The unique ID of the template that is assigned to the deal. |
| characteristics     | object | The field values to update on the deal.                     |
| parentRelationship  | array  | Create this deal as a child of other deals.                 |

{% tabs %}
{% tab title="200 Deal updated successfully." %}

```javascript
{
  "parentRelationship": null,
  "relationshipUpdateRules": null,
  "id": 2200,
  "revisionId": 0,
  "title": "The updated deal",
  "template": {
    "fields": [],
    "templateId": 2,
    "templateName": "Acquisition Deal",
    "processId": 0,
    "processName": null
  },
  "status": {
    "statusId": 1,
    "statusName": "Active"
  },
  "characteristics": {
    "language": [
      {
        "id": 29,
        "value": "English"
      }
    ]
  },
  "comments": [],
  "createdById": 3,
  "createdDate": "2020-06-25T18:41:08.600Z",
  "lastUpdatedById": 3,
  "lastUpdatedDate": "2020-06-25T19:56:05.187Z"
}
```

{% endtab %}
{% endtabs %}


# Delete a deal

## Delete deal

<mark style="color:red;">`DELETE`</mark> `https://api.rightsline.com/v4/deal/:id`

This endpoint allows you to delete a deal.

#### Path Parameters

| Name | Type    | Description               |
| ---- | ------- | ------------------------- |
| id   | integer | ID of the deal to delete. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Deal successfully deleted." %}

```
true
```

{% endtab %}
{% endtabs %}


# Retrieve deal statuses

## Get deal statuses

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/deal-statuses/{templateId}`

This endpoint allows you to retrieve status data for deals.

#### Path Parameters

| Name       | Type    | Description           |
| ---------- | ------- | --------------------- |
| templateId | integer | The deal template ID. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Deal statuses retrieved successfully." %}

```javascript
{
    "statuses": [
        {
            "statusId": 2,
            "statusName": "Created"
        },
        {
            "statusId": 4,
            "statusName": "DM Signed"
        },
        {
            "statusId": 6,
            "statusName": "LFA Outstanding (Yes DM)"
        },
        {
            "statusId": 15,
            "statusName": "LFA Outstanding (No DM)"
        },
        {
            "statusId": 3,
            "statusName": "LFA Partially Signed"
        },
        {
            "statusId": 7,
            "statusName": "LFA Fully Signed"
        },
        {
            "statusId": 16,
            "statusName": "In Default"
        },
        {
            "statusId": 17,
            "statusName": "Active, Deletable, Locked"
        },
        {
            "statusId": 18,
            "statusName": "Active, Deletable, Unlocked"
        },
        {
            "statusId": 9,
            "statusName": "Active, Not Deletable, Locked"
        },
        {
            "statusId": 19,
            "statusName": "Active, Not Deletable, Unlocked"
        },
        {
            "statusId": 20,
            "statusName": "Inactive, Deletable, Locked"
        },
        {
            "statusId": 14,
            "statusName": "Inactive, Deletable, Unlocked"
        },
        {
            "statusId": 10,
            "statusName": "Inactive, Not Deletable, Locked"
        },
        {
            "statusId": 21,
            "statusName": "Inactive, Not Deletable, Unlocked"
        },
        {
            "statusId": 22,
            "statusName": "Out for Signature"
        },
        {
            "statusId": 23,
            "statusName": "Fully Signed"
        },
        {
            "statusId": 24,
            "statusName": "Approval Requested"
        },
        {
            "statusId": 25,
            "statusName": "Approved"
        },
        {
            "statusId": 26,
            "statusName": "Rejected"
        },
        {
            "statusId": 27,
            "statusName": "Completed"
        },
        {
            "statusId": 28,
            "statusName": "Approved_RG"
        },
        {
            "statusId": 29,
            "statusName": "Amended"
        },
        {
            "statusId": 30,
            "statusName": "Lock Royalty Records (Chained)"
        },
        {
            "statusId": 31,
            "statusName": "Unlock Royalty Records (Chained)"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve deal workflow processes

## Get deal workflow processes

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/deal-processes`

This endpoint allows you to retrieve workflow processes for deals.

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200 Deals processes retrieved successfully." %}

```javascript
{
    "processes": [
        {
            "processId": 5,
            "processName": "Deal Workflow",
            "sequenceNumber": 1,
            "description": "Deal Workflow Description"
        },
        {
            "processId": 26,
            "processName": "Production Deal Workflow",
            "sequenceNumber": 2,
            "description": "Production Deal Workflow Description"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve deal draft templates

## Get deal draft templates

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/deal/:id/draft-templates`

This endpoint allows you to get the draft templates for a deal.

#### Path Parameters

| Name | Type   | Description     |
| ---- | ------ | --------------- |
| id   | string | ID of the deal. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Draft templates successfully retrieved." %}

```javascript
{
    "templates": [
        {
            "templateId": 11,
            "templateName": "Testing Draft",
            "templateDescription": null,
            "fileName": "Testing_Draft.docx"
        },
        {
            "templateId": 9,
            "templateName": "Test Draft Template",
            "templateDescription": null,
            "fileName": "Draft_Template.docx"
        }
        {
            "templateId": 24,
            "templateName": "Sample PDF",
            "templateDescription": null,
            "fileName": "Sample_PDF.pdf"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve deal audit history

Retrieve the audit history for a deal record.

## Get deal audit history

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/deal/:id/audit-history`

This endpoint allows you to retrieve the audit history of a specific deal by ID.

#### Path Parameters

| Name | Type   | Description                 |
| ---- | ------ | --------------------------- |
| id   | string | ID of the deal to retrieve. |

#### Query Parameters

| Name         | Type     | Description                                                                      |
| ------------ | -------- | -------------------------------------------------------------------------------- |
| userId       | number   | Filter by actions from a specific user.                                          |
| page         | number   | Paging - The page to retrieve (default 1).                                       |
| rows         | number   | Paging - The number of rows to retrieve (default 10).                            |
| startDate    | dateTime | Return history after this date.                                                  |
| endDate      | dateTime | Return history before this date.                                                 |
| charTypeIds  | int\[]   | An array of char type IDs of related entities to include in the history results. |
| showWorkflow | bool     | Include workflow history in results (default false).                             |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Deal history retrieved successfully." %}

```javascript
{
    "totalCount": 1,
    "entries": [
        {
            "isHeader": 1,
            "auditId": "0x00663C390001A63E0008",
            "sequence": "0x00663C390001A63E0002",
            "operationId": 2,
            "operationLabel": "Added",
            "charTypeId": 4,
            "recordId": 1122615,
            "title": "Deal Record 1122615",
            "templateId": 1,
            "templateName": "Acquisition Deal",
            "userId": 112151,
            "userName": "Donald Glover",
            "auditDate": "2022-07-07T22:55:49.687Z",
            "changedField": null
        }
    ]
}
```

{% endtab %}

{% tab title="404 Could not find a deal with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}

## Get deal audit history details

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/deal/:id/audit-history-detail`

This endpoint allows you to retrieve the audit history details of a specific audit record.

#### Path Parameters

| Name | Type   | Description                 |
| ---- | ------ | --------------------------- |
| id   | string | ID of the deal to retrieve. |

#### Query Parameters

| Name                                          | Type    | Description                          |
| --------------------------------------------- | ------- | ------------------------------------ |
| auditId<mark style="color:red;">\*</mark>     | string  | From audit history response.         |
| sequence<mark style="color:red;">\*</mark>    | string  | From audit history response.         |
| operationId<mark style="color:red;">\*</mark> | number  | From audit history response.         |
| isHeader<mark style="color:red;">\*</mark>    | number  | From audit history response.         |
| includeMessages                               | boolean | Include message details in response. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Deal history details retrieved successfully." %}

```javascript
{
    "changedField": "notes",
    "oldValue": "old note",
    "newValue": "new note",
    "messageId": "7d664774-c0b5-431a-99a1-978ec257d1fe", // if includeMessages = true
    "destination": "queue-name.fifo", // if includeMessages = true
    "auditDate": "2022-11-09T18:10:10.133Z" // if includeMessages = true
}
```

{% endtab %}

{% tab title="404 Could not find an amount with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Switch deal template

Switches the deal record to a new template

## Switch deal template

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/deal/:id/switch-template`

This endpoint allows you to change the template of an deal.

#### Path Parameters

| Name                                 | Type   | Description                               |
| ------------------------------------ | ------ | ----------------------------------------- |
| id<mark style="color:red;">\*</mark> | string | ID of the deal to switch the template of. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                                                  | Type    | Description                               |
| ----------------------------------------------------- | ------- | ----------------------------------------- |
| id<mark style="color:red;">\*</mark>                  | string  | ID of the deal to switch the template of. |
| newTemplateId<mark style="color:red;">\*</mark>       | string  | The ID of the new template.               |
| title                                                 | string  | Title of the record.                      |
| template.templateId<mark style="color:red;">\*</mark> | string  | The current template ID.                  |
| copyParties                                           | boolean | Set to false to discrd all parties.       |

{% tabs %}
{% tab title="200 Template switched. Returns template switch object." %}

```json
{
    "id": 1,
    "relationshipsNotMigrated": {
        "parties": [],
        "associations": {}
    },
    "characteristicsNotMigrated": [],
    "characteristicsRequiredOnNewTemplate": []
}
```

{% endtab %}
{% endtabs %}

## Check the new template before switching

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/deal/:id/switch-template-check`

This endpoint allows you to check what will happen to a record before switching the template.

#### Path Parameters

| Name | Type   | Description                               |
| ---- | ------ | ----------------------------------------- |
| id   | string | ID of the deal to switch the template of. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type   | Description                               |
| ------------------- | ------ | ----------------------------------------- |
| id                  | string | ID of the deal to switch the template of. |
| newTemplateId       | string | The ID of the new template.               |
| title               | string | Title of the record.                      |
| template.templateId | string | The current template ID.                  |

{% tabs %}
{% tab title="200 Returns template check object." %}

```json
{
   "relationshipsNotMigrated": {
        "parties": [],
        "associations": {}
    },
    "characteristicsNotMigrated": [],
    "characteristicsRequiredOnNewTemplate": []
}
```

{% endtab %}
{% endtabs %}


# Retrieve deal validation errors

## Get deal validation errors

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/deal/:id/validation-errors`

This endpoint allows you to retrieve validation errors for a specific deal by ID.

#### Path Parameters

| Name                                 | Type   | Description                                   |
| ------------------------------------ | ------ | --------------------------------------------- |
| id<mark style="color:red;">\*</mark> | string | ID of the deal to retrieve validation errors. |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200: OK Validation errors exist." %}

```javascript
{
  "hasErrors": true,
  "errors": [
    {
      "message": "End Date (term_end_date) is required",
      "type": "Data & Associations",
      "workflowBlocking": true
    }
  ],
  "message": "Workflow blocking errors are present. Workflow Actions are disabled until these validation errors are resolved."
}
```

{% endtab %}

{% tab title="404: Not Found Could not find an deal with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}

{% tab title="200: OK No validation errors exist." %}

```javascript
{
  "hasErrors": false,
  "errors": [],
  "message": "No validation errors exist."
}
```

{% endtab %}
{% endtabs %}


# Retrieve deal conflicts

## Get deal conflicts

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/deal/:id/conflicts`

This endpoint allows you to retrieve conflicts for a specific deal by ID.

#### Path Parameters

| Name                                 | Type   | Description                           |
| ------------------------------------ | ------ | ------------------------------------- |
| id<mark style="color:red;">\*</mark> | string | ID of the deal to retrieve conflicts. |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200: OK Conflicts exist." %}

```javascript
{
    "hasConflicts": true,
    "message": "Conflicts exist.",
    "conflicts": [
        {
            "id": "eb751a1c-4491-441d-a7d3-f17b7f7f8a9b",
            "status": "Blocker",
            "conflictType": "NO RIGHTS IN",
            "properties": {
                "Catalog RL Catalog Property ID": 200,
                "Catalog Name": "My Test Catalog",
                "Catalog Template": "Feature",
                "Term Start": "2021-12-01T00:00:00Z",
                "Term End": "2021-12-31T00:00:00Z",
                "Media": "All Media",
                "Territory": "Worldwide",
                "Language": "All Languages",
                "Channel": "Amazon, Apple TV, Google Play",
                "Right ID": 130301,
                "Right Template": "Rights Out",
                "Conflicting Right ID": null,
                "Conflicting Right Template": null,
                "Deal ID": 100,
                "Deal Name": "My Test Deal",
                "Deal Template": "Acquisition Deal",
                "Conflicting Deal ID": null,
                "Conflicting Deal Name": null,
                "Conflicting Deal Template": null,
                "Reason For Change": null,
                "Updated By": 0,
                "Last Updated": "2023-05-31T16:27:44.953Z",
                "Status Updated": null
            }
        }
    ]
}
```

{% endtab %}

{% tab title="404: Not Found Could not find an deal with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}

{% tab title="200: OK No conflicts exist." %}

```javascript
{
    "hasConflicts": false,
    "message": "No conflicts exist.",
    "conflicts": []
}
```

{% endtab %}
{% endtabs %}

## Get deal conflict by ID

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/deal/:id/conflicts/:conflictid`

This endpoint allows you to retrieve a conflict by ID for a specific deal by ID.

#### Path Parameters

| Name                                         | Type   | Description                          |
| -------------------------------------------- | ------ | ------------------------------------ |
| id<mark style="color:red;">\*</mark>         | number | ID of the deal to retrieve conflict. |
| conflictid<mark style="color:red;">\*</mark> | guid   | ID of the conflict.                  |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200: OK Conflict exists." %}

```javascript
{
    "conflictType": "NO RIGHTS IN",
    "id": "eb751a1c-4491-441d-a7d3-f17b7f7f8a9b",
    "properties": {
        "Catalog Name": "My Test Catalog",
        "Catalog RL Catalog Property ID": 200,
        "Catalog Template": "Feature",
        "Channel": "Amazon, Apple TV, Google Play",
        "Conflicting Deal ID": null,
        "Conflicting Deal Name": null,
        "Conflicting Deal Template": null,
        "Conflicting Right ID": null,
        "Conflicting Right Template": null,
        "Deal ID": 100,
        "Deal Name": "My Test Deal",
        "Deal Template": "Acquisition Deal",
        "Language": "All Languages",
        "Last Updated": "2023-05-31T16:27:44.953Z",
        "Media": "All Media",
        "Reason For Change": null,
        "Right ID": 130301,
        "Right Template": "Rights Out",
        "Status Updated": null,
        "Term End": "2021-12-31T00:00:00Z",
        "Term Start": "2021-12-01T00:00:00Z",
        "Territory": "Worldwide",
        "Updated By": 0
    },
    "status": "Blocker"
}
```

{% endtab %}

{% tab title="404: Not Found Could not find an deal with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}

{% tab title="404: Not Found Conflict not found." %}

```javascript
{
    "message": "Conflict not found."
}
```

{% endtab %}
{% endtabs %}


# Override deal conflict

## Override deal conflict

<mark style="color:orange;">`PUT`</mark> `https://ris.rightsline.com/v4/deal/:id/conflicts/:conflictid`

This endpoint allows you to override a conflict for a specific deal by ID.

#### Path Parameters

| Name                                         | Type   | Description         |
| -------------------------------------------- | ------ | ------------------- |
| id<mark style="color:red;">\*</mark>         | number | ID of the deal.     |
| conflictid<mark style="color:red;">\*</mark> | guid   | ID of the conflict. |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

#### Request Body

| Name                                              | Type    | Description                                                         |
| ------------------------------------------------- | ------- | ------------------------------------------------------------------- |
| isBlocker<mark style="color:red;">\*</mark>       | boolean | Sets the conflicts as a Blocker (true) or as a Non-Blocker (false). |
| reasonForChange<mark style="color:red;">\*</mark> | string  | A note attached to the blocking status change.                      |

{% tabs %}
{% tab title="204: No Content Conflict updated." %}

{% endtab %}

{% tab title="404: Not Found Could not find an deal with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}

{% tab title="404: Not Found Conflict not found." %}

```javascript
{
    "message": "Conflict not found."
}
```

{% endtab %}

{% tab title="400: Bad Request Could not update conflict." %}

```json

{
    "message": "Invalid action on conflict eb751a1c-4491-441d-a7d3-f17b7f7f8a9b."
}
```

{% endtab %}
{% endtabs %}


# Overwrite deal parties

## Overwrite deal parties

<mark style="color:orange;">`PUT`</mark> `https://ris.rightsline.com/v4/deal/:id/overwrite-parties`

This endpoint allows you to overwrite parties for a specific deal by ID.

#### Path Parameters

| Name                                 | Type   | Description     |
| ------------------------------------ | ------ | --------------- |
| id<mark style="color:red;">\*</mark> | number | ID of the deal. |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

#### Request Body

| Name            | Type   | Description                                                                        |
| --------------- | ------ | ---------------------------------------------------------------------------------- |
| selectedParties | int\[] | Array of Party IDs to overwrite. If not included, all parties will be overwritten. |

{% tabs %}
{% tab title="200: OK Parties overwritten successfully." %}

```json
{
    "message": "Overwrite contacts successful."
}
```

{% endtab %}

{% tab title="404: Not Found Could not find a deal with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}

{% tab title="404: Not Found Selected parties not found on deal." %}

```json

{
    "message": "Party ID(s) [2, 3] not found on entity."
}
```

{% endtab %}

{% tab title="404: Not Found No parties exist on deal." %}

```json
{
    "message": "No parties found on entity."
}
```

{% endtab %}

{% tab title="404: Not Found Selected parties do not exist." %}

```json
{
    "message": "Party ID(s) [20, 24] do not exist."
}
```

{% endtab %}
{% endtabs %}


# File

### Endpoints

<table data-header-hidden><thead><tr><th>Method</th><th width="277.3333333333333">Endpoint</th><th>Description</th></tr></thead><tbody><tr><td>Method</td><td>Endpoint</td><td>Description</td></tr><tr><td>POST</td><td>/v4/file</td><td><a href="/pages/-M9tWxDWIuiyLpNE4WIc">Create a file.</a></td></tr><tr><td>GET</td><td>/v4/file/:id</td><td><a href="/pages/-M9tX-KVm6hZAVXZDK0D">Retrieve a file.</a></td></tr><tr><td>GET</td><td>/v4/file/:id/data</td><td><a href="/pages/-M9tX-firgfnlq-iGAa4">Retrieve file data.</a></td></tr><tr><td>DELETE</td><td>/v4/file/:id</td><td><a href="/pages/-M9tX0W77YZVy8vECSVI">Delete a file.</a></td></tr><tr><td>GET</td><td>/v4/file-templates</td><td><a href="/pages/R0CCI8AoqIa1HdIhHQ9Z">Retrieve file templates.</a></td></tr><tr><td>GET</td><td>/v4/file-statuses/:templateId</td><td><a href="/pages/-MIzAiBHLGUyXer6cGzR">Retrieve file statuses.</a></td></tr><tr><td>GET</td><td>/v4/file/:id/draft-templates</td><td><a href="/pages/-MTD5HngBgKZY_PWxoLh">Retrieve file draft templates.</a></td></tr><tr><td>GET</td><td>/v4/file/:id/revisions</td><td><a href="/pages/7z7bhU5iwjpUKpYy7olv">Retrieve file revisions</a></td></tr><tr><td>GET</td><td>/v4/file/:id-:revisionId</td><td><a href="/pages/fZ1ZVmGDGZShB9HH2B4i">Retrieve file version</a></td></tr><tr><td>GET</td><td>/v4/file/:id-:revisionId/url</td><td><a href="/pages/ovSyBmokGmOwuXicPmtq">Retrieve file version url</a></td></tr><tr><td>GET</td><td>/v4/file/:id-:revisionId/data</td><td><a href="/pages/v5gls3i2LrykdtGVl4YZ">Retrieve file version data</a></td></tr><tr><td>POST</td><td>/v4/file/:id/grant-access-to</td><td><a href="/pages/gS4uY9Zo88cbl4JcxhUv">Grant access to file</a></td></tr><tr><td>POST</td><td>/v4/file/:id/revoke-access-from</td><td><a href="/pages/9LmRgXdWW934vPuxSEGX">Revoke access from file</a></td></tr></tbody></table>


# Create a file

## Create file

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/file`

This endpoint allows you to create a new file.

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type   | Description                                          |
| ------------------- | ------ | ---------------------------------------------------- |
| title               | string | The title of the new file.                           |
| template            | object | The template of the new file.                        |
| template.templateId | string | The unique ID of the template to assign to the file. |
| characteristics     | object | The field values to assign to the file.              |
| parentRelationship  | array  | Create this file as a child of a deal.               |

{% tabs %}
{% tab title="200 File created successfully.  Returns the ID of the entity and the URL to upload the file." %}

```javascript
{
    "id": 2687,
    "link": {
        "url": "https://de324y6j768fq1.cloudfront.net/************",
        "expiration": "2021-04-20T22:44:58.314Z"
    }
}
```

{% endtab %}

{% tab title="400 Request is missing required information, or the information is invalid." %}

```javascript
{
  "message": "TemplateId is required"
}
```

{% endtab %}
{% endtabs %}

## Example: Upload a file

### 1. Create file in Rightsline

POST: <https://ris.rightsline.com/v4/file> (NOTE: `file_name` char is **required**)

```javascript
{
    "title": "Test File",
    "template": {
        "templateId": 1
    },
    "characteristics": {
        "file_name": "final.pdf",
        "notes": "This document has been signed",
        "date_signed":"2020-01-31"
    },
    "parentRelationship": [
        {
            "parentCharTypeId": 4,
            "parentRecordId": 100
        }
    ]
}
```

A successful response will return the following payload:

```javascript
{
    "id": 2687,
    "link": {
        "url": "https://*********.cloudfront.net/************",
        "expiration": "2021-04-20T22:44:58.314Z"
    }
}
```

You will use the `url` in the response body to upload the file.

### 2. Upload file data

When uploading the file, you do not need to include any Authorization header, as the URL is already authorized to upload to the specified location.

```coffeescript
PUT https://*********.cloudfront.net/************ \
  --data *file binary*
```


# Retrieve a file

## Get file

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/file/:id`

This endpoint allows you to retrieve a specific file by ID.

#### Path Parameters

| Name | Type   | Description                 |
| ---- | ------ | --------------------------- |
| id   | string | ID of the file to retrieve. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 File successfully retrieved." %}

```javascript
{
    "parentRelationship": [
        {
            "id": 6269691,
            "relationshipType": {
                "relationshipTypeId": 0,
                "relationshipTypeName": "Default"
            },
            "createdById": 296252,
            "createdDate": "2015-09-04T01:31:01.740Z",
            "lastUpdatedById": 296242,
            "lastUpdatedDate": "2015-10-27T17:45:45.107Z",
            "parentCharTypeId": 4,
            "parentRecordId": 6,
            "parentTemplate": {
                "templateId": 4,
                "templateName": "Exec Producer Deal",
                "processId": 0,
                "processName": null
            },
            "parentStatus": {
                "statusId": 2,
                "statusName": "Created"
            },
            "childCharTypeId": 14,
            "childRecordId": 1,
            "sequenceNumber": 32653352960
        }
    ],
    "relationshipUpdateRules": null,
    "parentRelationshipCount": 1,
    "id": 1,
    "revisionId": 0,
    "title": "File Test",
    "template": {
        "templateId": 2,
        "templateName": "File Upload",
        "processId": 0,
        "processName": null
    },
    "status": {
        "statusId": 1,
        "statusName": "Document Created"
    },
    "characteristics": {
        "file_type": [
            {
                "id": 39,
                "value": "Sample"
            }
        ],
        "uri": "S3/documents/File_Test.docx"
    },
    "comments": [],
    "createdById": 296242,
    "createdDate": "2015-09-09T16:52:30.137Z",
    "lastUpdatedById": 296242,
    "lastUpdatedDate": "2015-09-09T16:52:30.200Z",
    "statusUpdatedById": 296242,
    "statusUpdatedDate": "2015-09-09T16:52:30.137Z"
}
```

{% endtab %}

{% tab title="404 Could not find a file with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Retrieve File Version

## Get File entity for a specific file version

<mark style="color:blue;">`GET`</mark> `http://ris.rightsline.com/v4/file/:id-:revisionId/url`

This endpoint allows you to retrieve a version of a file.

#### Path Parameters

| Name       | Type   | Description                                                                                |
| ---------- | ------ | ------------------------------------------------------------------------------------------ |
| id         | number | ID of the file.                                                                            |
| revisionId | number | Revision Id of the file. Get from [.../revisions](/entities/file/file-revisions-retrieve). |

#### Headers

| Name           | Type   | Description           |
| -------------- | ------ | --------------------- |
| Authentication | string | Authentication token. |

{% tabs %}
{% tab title="200 File data retrieved successfully.  Use the URL in the response to retrieve the file." %}

```javascript
{
    "id": 2687,
    "link": {
        "url": "https://************.cloudfront.net/*****************",
        "expiration": "2021-04-20T22:45:26.296Z"
    }
}
```

{% endtab %}

{% tab title="404: Not Found No version found for the record." %}

```javascript
{
    "message": "Revision 0 not found on record: 3534"
}
```

{% endtab %}
{% endtabs %}


# Retrieve File Revisions

Retrieve a list of the existing revisions of a specific file.

## Get file revisions

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/file/:id/revisions`

This endpoint allows you to retrieve a list of all the existing revisions of a file.

#### Path Parameters

| Name                                 | Type   | Description                 |
| ------------------------------------ | ------ | --------------------------- |
| id<mark style="color:red;">\*</mark> | string | ID of the file to retrieve. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 File successfully retrieved." %}

```javascript
[
    {
        "id": "3534-0",
        "revision": 0
    }
    {
        "id": "3534-1",
        "revision": 1
    },
    {
        "id": "3534-2",
        "revision": 2
    },
    ...
]
```

{% endtab %}

{% tab title="404 Could not find a file with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Retrieve file data

## Get File URL

<mark style="color:blue;">`GET`</mark> `http://ris.rightsline.com/v4/file/:id/url`

This endpoint allows you to retrieve a download link for a file.

#### Path Parameters

| Name | Type   | Description     |
| ---- | ------ | --------------- |
| id   | number | ID of the file. |

#### Headers

| Name           | Type   | Description           |
| -------------- | ------ | --------------------- |
| Authentication | string | Authentication token. |

{% tabs %}
{% tab title="200 File data retrieved successfully.  Use the URL in the response to retrieve the file." %}

```javascript
{
    "id": 2687,
    "link": {
        "url": "https://************.cloudfront.net/*****************",
        "expiration": "2021-04-20T22:45:26.296Z"
    }
}
```

{% endtab %}
{% endtabs %}


# Retrieve File Version URL

## Get File URL for a specific file version

<mark style="color:blue;">`GET`</mark> `http://ris.rightsline.com/v4/file/:id-:revisionId/url`

This endpoint allows you to retrieve a download link for a version of a file.

#### Path Parameters

| Name       | Type   | Description                                                                                |
| ---------- | ------ | ------------------------------------------------------------------------------------------ |
| id         | number | ID of the file.                                                                            |
| revisionId | number | Revision Id of the file. Get from [.../revisions](/entities/file/file-revisions-retrieve). |

#### Headers

| Name           | Type   | Description           |
| -------------- | ------ | --------------------- |
| Authentication | string | Authentication token. |

{% tabs %}
{% tab title="200 File data retrieved successfully.  Use the URL in the response to retrieve the file." %}

```javascript
{
    "id": 2687,
    "link": {
        "url": "https://************.cloudfront.net/*****************",
        "expiration": "2021-04-20T22:45:26.296Z"
    }
}
```

{% endtab %}

{% tab title="404: Not Found No version found for the record." %}

```javascript
{
    "message": "Revision 0 not found on record: 3534"
}
```

{% endtab %}
{% endtabs %}


# Retrieve File Version Data

## Get File data for a specific file version

<mark style="color:blue;">`GET`</mark> `http://ris.rightsline.com/v4/file/:id-:revisionId/data`

This endpoint allows you to retrieve the data from a version of a file.

#### Path Parameters

| Name       | Type   | Description                                                                                |
| ---------- | ------ | ------------------------------------------------------------------------------------------ |
| id         | number | ID of the file.                                                                            |
| revisionId | number | Revision Id of the file. Get from [.../revisions](/entities/file/file-revisions-retrieve). |

#### Headers

| Name           | Type   | Description           |
| -------------- | ------ | --------------------- |
| Authentication | string | Authentication token. |

{% tabs %}
{% tab title="200 File data retrieved successfully.  Use the URL in the response to retrieve the file." %}

```javascript
{
    "id": 2687,
    "link": {
        "url": "https://************.cloudfront.net/*****************",
        "expiration": "2021-04-20T22:45:26.296Z"
    }
}
```

{% endtab %}

{% tab title="404: Not Found No version found for the record." %}

```javascript
{
    "message": "Revision 0 not found on record: 3534"
}
```

{% endtab %}
{% endtabs %}


# Delete a file

## Delete file

<mark style="color:red;">`DELETE`</mark> `https://ris.rightsline.com/v4/file/:id`

This endpoint allows you to delete a file.

#### Path Parameters

| Name | Type    | Description               |
| ---- | ------- | ------------------------- |
| id   | integer | ID of the file to delete. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 File successfully deleted." %}

```
true
```

{% endtab %}
{% endtabs %}


# Retrieve file statuses

## Get file statuses

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/file-statuses/{templateId}`

This endpoint allows you to retrieve status data for files.

#### Path Parameters

| Name       | Type    | Description           |
| ---------- | ------- | --------------------- |
| templateId | integer | The file template ID. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 File statuses retrieved successfully." %}

```javascript
{
    "statuses": [
        {
            "statusId": 1,
            "statusName": "Document Created"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve file workflow processes

## Get file workflow processes

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/file-processes`

This endpoint allows you to retrieve workflow processes for files.

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200 File processes retrieved successfully." %}

```javascript
{
    "processes": [
        {
            "processId": 7,
            "processName": "Document Workflow",
            "sequenceNumber": 1,
            "description": "Document Workflow Description"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve file draft templates

## Get file draft templates

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/file/:id/draft-templates`

This endpoint allows you to get the draft templates for a file.

#### Path Parameters

| Name | Type   | Description     |
| ---- | ------ | --------------- |
| id   | string | ID of the file. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Draft templates successfully retrieved." %}

```javascript
{
    "templates": [
        {
            "templateId": 11,
            "templateName": "Testing Draft",
            "templateDescription": null,
            "fileName": "Testing_Draft.docx"
        },
        {
            "templateId": 9,
            "templateName": "Test Draft Template",
            "templateDescription": null,
            "fileName": "Draft_Template.docx"
        }
        {
            "templateId": 24,
            "templateName": "Sample PDF",
            "templateDescription": null,
            "fileName": "Sample_PDF.pdf"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve file validation errors

## Get file validation errors

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/file/:id/validation-errors`

This endpoint allows you to retrieve validation errors for a specific file by ID.

#### Path Parameters

| Name                                 | Type   | Description                                   |
| ------------------------------------ | ------ | --------------------------------------------- |
| id<mark style="color:red;">\*</mark> | string | ID of the file to retrieve validation errors. |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200: OK Validation errors exist." %}

```javascript
{
  "hasErrors": true,
  "errors": [
    {
      "message": "End Date (term_end_date) is required",
      "type": "Data & Associations",
      "workflowBlocking": true
    }
  ],
  "message": "Workflow blocking errors are present. Workflow Actions are disabled until these validation errors are resolved."
}
```

{% endtab %}

{% tab title="404: Not Found Could not find an file with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}

{% tab title="200: OK No validation errors exist." %}

```javascript
{
  "hasErrors": false,
  "errors": [],
  "message": "No validation errors exist."
}
```

{% endtab %}
{% endtabs %}


# Grant Access To File

This will grant a user or users access to the file in Partner Portal.

This endpoint does not require access to partner portal to use but in order to see the modifications you will need access to partner portal.

## Grant access to file

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/file/:id/grant-access-to`

This endpoint allows you to grant a user or users access to a specified file.

#### Path Parameters

| Name | Type   | Description     |
| ---- | ------ | --------------- |
| id   | string | ID of the file. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name       | Type   | Description                                                   |
| ---------- | ------ | ------------------------------------------------------------- |
| contactIds | number | The array of contacts that will be granted access to the file |

{% tabs %}
{% tab title="200 Partner Portal file access has been granted." %}

```javascript
"Successfully granted file access."
```

{% endtab %}

{% tab title="403: Forbidden ACLs don't provide permission to write either contacts or files. " %}

```javascript
{
    "message": "Acls don't provide Write rights for {entityid}"
}
```

{% endtab %}

{% tab title="404: Not Found Either contact or file does not exist" %}

```javascript
{
    "message": "Entity d29c2r12435 not found."
}
```

{% endtab %}
{% endtabs %}


# Revoke Access From File

This will revoke a user or users access to the file in Partner Portal.

This endpoint does not require access to partner portal to use but in order to see the modifications you will need access to partner portal.

## Revoke access from a file

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/file/:id/revoke-access-from`

This endpoint allows you to revoke a user or users access to a specified file.

#### Path Parameters

| Name | Type   | Description     |
| ---- | ------ | --------------- |
| id   | string | ID of the file. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name       | Type   | Description                                                   |
| ---------- | ------ | ------------------------------------------------------------- |
| contactIds | number | The array of contacts that will be granted access to the file |

{% tabs %}
{% tab title="200 Partner Portal file access has been granted." %}

```javascript
"Successfully granted file access."
```

{% endtab %}

{% tab title="403: Forbidden ACLs don't provide permission to write either contacts or files. " %}

```javascript
{
    "message": "Acls don't provide Write rights for {entityid}"
}
```

{% endtab %}

{% tab title="404: Not Found Either contact or file does not exist" %}

```javascript
{
    "message": "Entity d29c2r12435 not found."
}
```

{% endtab %}
{% endtabs %}


# Financial document

### Endpoints

| Method | Endpoint                                    | Description                                                                                                              |
| ------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| POST   | /v4/financial-document                      | [Create a financial document.](/entities/financial-document/financial-document-create)                                   |
| GET    | /v4/financial-document/:id                  | [Retrieve a financial document.](/entities/financial-document/financial-document-retrieve)                               |
| PUT    | /v4/financial-document/:id                  | [Update a financial document.](/entities/financial-document/financial-document-update)                                   |
| DELETE | /v4/financial-document/:id                  | [Delete a financial document.](/entities/financial-document/financial-document-delete)                                   |
| GET    | /v4/financial-document-templates            | [Retrieve financial document templates.](/config/templates)                                                              |
| GET    | /v4/financial-document-statuses/:templateId | [Retrieve financial document statuses.](/entities/financial-document/retrieve-financial-document-statuses)               |
| GET    | /v4/financial-document/:id/draft-templates  | [Retrieve financial document draft templates.](/entities/financial-document/retrieve-financial-document-draft-templates) |
| POST   | /v4/financial-document/:id/switch-template  | [Switch financial document template.](/entities/financial-document/switch-financial-document-template)                   |


# Create a financial document

## Create financial document

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/financial-document`

This endpoint allows you to create a new financial document.

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type   | Description                                                        |
| ------------------- | ------ | ------------------------------------------------------------------ |
| title               | string | The title of the new financial document.                           |
| template            | object | The template of the new financial document.                        |
| template.templateId | string | The unique ID of the template to assign to the financial document. |
| characteristics     | object | The field values to assign to the financial document.              |
| parentRelationship  | array  | Create this financial document as a child of other entities.       |

{% tabs %}
{% tab title="200 Financial document created successfully.  Returns the ID of the newly created record." %}

```
302
```

{% endtab %}

{% tab title="400 Request is missing required information, or the information is invalid." %}

```javascript
{
  "message": "TemplateId is required"
}
```

{% endtab %}
{% endtabs %}

###


# Retrieve a financial document

## Get financial document

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/financial-document/:id`

This endpoint allows you to retrieve a specific financial document by ID.

#### Path Parameters

| Name | Type   | Description                               |
| ---- | ------ | ----------------------------------------- |
| id   | string | ID of the financial document to retrieve. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Financial document successfully retrieved." %}

```javascript
{
  "parentRelationship": null,
  "relationshipUpdateRules": null,
  "id": 1,
  "revisionId": 0,
  "title": "Invoice Record 1",
  "template": {
    "fields": [],
    "templateId": 1,
    "templateName": "Invoice",
    "processId": 0,
    "processName": null
  },
  "status": {
    "statusId": 2,
    "statusName": "Billing Document Drafted"
  },
  "characteristics": {
    "due_date": "2015-10-21"
  },
  "comments": [],
  "createdById": 296242,
  "createdDate": "2015-10-27T17:34:26.160Z",
  "lastUpdatedById": 296242,
  "lastUpdatedDate": "2015-10-28T22:15:42.633Z"
}
```

{% endtab %}

{% tab title="404 Could not find a financial document with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Update a financial document

## Update financial document

<mark style="color:orange;">`PUT`</mark> `https://ris.rightsline.com/v4/financial-document/:id`

This endpoint allows you to update a financial document.

#### Path Parameters

| Name | Type    | Description                             |
| ---- | ------- | --------------------------------------- |
| id   | integer | ID of the financial document to update. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type    | Description                                          |
| ------------------- | ------- | ---------------------------------------------------- |
| title               | string  | The new title of the financial document.             |
| template            | object  | The template of the financial document to update.    |
| template.templateId | integer | The template ID of the financial document to update. |
| characteristics     | object  | The fields to update on the financial document.      |

{% tabs %}
{% tab title="200 Financial document successfully updated." %}

```javascript
{
  "parentRelationship": null,
  "relationshipUpdateRules": null,
  "id": 1,
  "revisionId": 0,
  "title": "Invoice Record 1",
  "template": {
    "fields": [],
    "templateId": 1,
    "templateName": "Invoice",
    "processId": 0,
    "processName": null
  },
  "status": {
    "statusId": 2,
    "statusName": "Billing Document Drafted"
  },
  "characteristics": {
    "due_date": "2015-10-21"
  },
  "comments": [],
  "createdById": 296242,
  "createdDate": "2015-10-27T17:34:26.160Z",
  "lastUpdatedById": 296242,
  "lastUpdatedDate": "2015-10-28T22:15:42.633Z"
}
```

{% endtab %}
{% endtabs %}


# Delete a financial document

## Delete financial document

<mark style="color:red;">`DELETE`</mark> `https://api.rightsline.com/v4/financial-document/:id`

This endpoint allows you to delete a financial document.

#### Path Parameters

| Name | Type    | Description                             |
| ---- | ------- | --------------------------------------- |
| id   | integer | ID of the financial document to delete. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Financial document successfully deleted." %}

```
true
```

{% endtab %}
{% endtabs %}


# Retrieve financial document statuses

## Get financial document statuses

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/financial-document-statuses/{templateId}`

This endpoint allows you to retrieve status data for financial documents.

#### Path Parameters

| Name       | Type    | Description                         |
| ---------- | ------- | ----------------------------------- |
| templateId | integer | The financial document template ID. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Financial document statuses retrieved successfully." %}

```javascript
{
    "statuses": [
        {
            "statusId": 1,
            "statusName": "Billing Document Created"
        },
        {
            "statusId": 2,
            "statusName": "Billing Document Drafted"
        },
        {
            "statusId": 3,
            "statusName": "Billing Document Sent"
        },
        {
            "statusId": 4,
            "statusName": "Billing Document Paid"
        },
        {
            "statusId": 5,
            "statusName": "Revenue Recognized"
        },
        {
            "statusId": 6,
            "statusName": "Billing Document Paid & Revenue Recognized"
        },
        {
            "statusId": 7,
            "statusName": "Billing Document Cancelled"
        },
        {
            "statusId": 8,
            "statusName": "Active, Not Deletable, Locked"
        },
        {
            "statusId": 9,
            "statusName": "Inactive, Deletable, Unlocked"
        },
        {
            "statusId": 10,
            "statusName": "Inactive, Not Deletable, Locked"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve financial document workflow processes

## Get financial document workflow processes

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/financial-document-processes`

This endpoint allows you to retrieve workflow processes for financial documents.

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200 Financial document processes retrieved successfully." %}

```javascript
{
    "processes": [
        {
            "processId": 10,
            "processName": "Billing Doc Workflow",
            "sequenceNumber": 1,
            "description": "Billing Doc Workflow Description"
        },
        {
            "processId": 25,
            "processName": "Accounting Workflow",
            "sequenceNumber": 2,
            "description": "Accounting Workflow Description"
        },
        {
            "processId": 68,
            "processName": "Expense Workflow",
            "sequenceNumber": 3,
            "description": "Expense Workflow Description"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve financial document draft templates

## Get financial document draft templates

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/financial-document/:id/draft-templates`

This endpoint allows you to get the draft templates for a financial document.

#### Path Parameters

| Name | Type   | Description                   |
| ---- | ------ | ----------------------------- |
| id   | string | ID of the financial document. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Draft templates successfully retrieved." %}

```javascript
{
    "templates": [
        {
            "templateId": 11,
            "templateName": "Testing Draft",
            "templateDescription": null,
            "fileName": "Testing_Draft.docx"
        },
        {
            "templateId": 9,
            "templateName": "Test Draft Template",
            "templateDescription": null,
            "fileName": "Draft_Template.docx"
        }
        {
            "templateId": 24,
            "templateName": "Sample PDF",
            "templateDescription": null,
            "fileName": "Sample_PDF.pdf"
        }
    ]
}
```

{% endtab %}
{% endtabs %}


# Retrieve financial document audit history

Retrieve the audit history for a financial document record.

## Get financial document audit history

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/financial-document/:id/audit-history`

This endpoint allows you to retrieve the audit history of a specific financial document by ID.

#### Path Parameters

| Name | Type   | Description                               |
| ---- | ------ | ----------------------------------------- |
| id   | string | ID of the financial document to retrieve. |

#### Query Parameters

| Name         | Type     | Description                                                                      |
| ------------ | -------- | -------------------------------------------------------------------------------- |
| userId       | number   | Filter by actions from a specific user.                                          |
| page         | number   | Paging - The page to retrieve (default 1).                                       |
| rows         | number   | Paging - The number of rows to retrieve (default 10).                            |
| startDate    | dateTime | Return history after this date.                                                  |
| endDate      | dateTime | Return history before this date.                                                 |
| charTypeIds  | int\[]   | An array of char type IDs of related entities to include in the history results. |
| showWorkflow | bool     | Include workflow history in results (default false).                             |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Financial document history retrieved successfully." %}

```javascript
{
    "totalCount": 1,
    "entries": [
        {
            "isHeader": 1,
            "auditId": "0x00663C390001A63E0008",
            "sequence": "0x00663C390001A63E0002",
            "operationId": 2,
            "operationLabel": "Added",
            "charTypeId": 7,
            "recordId": 1122615,
            "title": "Document Record 1122615",
            "templateId": 1,
            "templateName": "Document",
            "userId": 112151,
            "userName": "Donald Glover",
            "auditDate": "2022-07-07T22:55:49.687Z",
            "changedField": null
        }
    ]
}
```

{% endtab %}

{% tab title="404 Could not find a financial document with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}

## Get financial document audit history details

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/financial-document/:id/audit-history-detail`

This endpoint allows you to retrieve the audit history details of a specific audit record.

#### Path Parameters

| Name | Type   | Description                               |
| ---- | ------ | ----------------------------------------- |
| id   | string | ID of the financial document to retrieve. |

#### Query Parameters

| Name                                          | Type    | Description                          |
| --------------------------------------------- | ------- | ------------------------------------ |
| auditId<mark style="color:red;">\*</mark>     | string  | From audit history response.         |
| sequence<mark style="color:red;">\*</mark>    | string  | From audit history response.         |
| operationId<mark style="color:red;">\*</mark> | number  | From audit history response.         |
| isHeader<mark style="color:red;">\*</mark>    | number  | From audit history response.         |
| includeMessages                               | boolean | Include message details in response. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Financial document history details retrieved successfully." %}

```javascript
{
    "changedField": "notes",
    "oldValue": "old note",
    "newValue": "new note",
    "messageId": "7d664774-c0b5-431a-99a1-978ec257d1fe", // if includeMessages = true
    "destination": "queue-name.fifo", // if includeMessages = true
    "auditDate": "2022-11-09T18:10:10.133Z" // if includeMessages = true
}
```

{% endtab %}

{% tab title="404 Could not find an amount with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Switch financial document template

Switches the financial document record to a new template

## Switch financial document template

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/financial-document/:id/switch-template`

This endpoint allows you to change the template of an financial-document.

#### Path Parameters

| Name                                 | Type   | Description                                             |
| ------------------------------------ | ------ | ------------------------------------------------------- |
| id<mark style="color:red;">\*</mark> | string | ID of the financial document to switch the template of. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                                                  | Type   | Description                                             |
| ----------------------------------------------------- | ------ | ------------------------------------------------------- |
| id<mark style="color:red;">\*</mark>                  | string | ID of the financial document to switch the template of. |
| newTemplateId<mark style="color:red;">\*</mark>       | string | The ID of the new template.                             |
| title                                                 | string | Title of the record.                                    |
| template.templateId<mark style="color:red;">\*</mark> | string | The current template ID.                                |

{% tabs %}
{% tab title="200 Template switched. Returns template switch object." %}

```json
{
    "id": 1,
    "relationshipsNotMigrated": {
        "parties": [],
        "associations": {}
    },
    "characteristicsNotMigrated": [],
    "characteristicsRequiredOnNewTemplate": []
}
```

{% endtab %}
{% endtabs %}

## Check the new template before switching

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/financial-document/:id/switch-template-check`

This endpoint allows you to check what will happen to a record before switching the template.

#### Path Parameters

| Name | Type   | Description                                              |
| ---- | ------ | -------------------------------------------------------- |
| id   | string | ID of the financial  document to switch the template of. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type   | Description                                             |
| ------------------- | ------ | ------------------------------------------------------- |
| id                  | string | ID of the financial document to switch the template of. |
| newTemplateId       | string | The ID of the new template.                             |
| title               | string | Title of the record.                                    |
| template.templateId | string | The current template ID.                                |

{% tabs %}
{% tab title="200 Returns template check object." %}

```json
{
   "relationshipsNotMigrated": {
        "parties": [],
        "associations": {}
    },
    "characteristicsNotMigrated": [],
    "characteristicsRequiredOnNewTemplate": []
}
```

{% endtab %}
{% endtabs %}


# Retrieve financial document validation errors

## Get financial document validation errors

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/financial-document/:id/validation-errors`

This endpoint allows you to retrieve validation errors for a specific financial document by ID.

#### Path Parameters

| Name                                 | Type   | Description                                                 |
| ------------------------------------ | ------ | ----------------------------------------------------------- |
| id<mark style="color:red;">\*</mark> | string | ID of the financial document to retrieve validation errors. |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

{% tabs %}
{% tab title="200: OK Validation errors exist." %}

```javascript
{
  "hasErrors": true,
  "errors": [
    {
      "message": "End Date (term_end_date) is required",
      "type": "Data & Associations",
      "workflowBlocking": true
    }
  ],
  "message": "Workflow blocking errors are present. Workflow Actions are disabled until these validation errors are resolved."
}
```

{% endtab %}

{% tab title="404: Not Found Could not find an financial document with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}

{% tab title="200: OK No validation errors exist." %}

```javascript
{
  "hasErrors": false,
  "errors": [],
  "message": "No validation errors exist."
}
```

{% endtab %}
{% endtabs %}


# Overwrite financial document parties

## Overwrite financial document parties

<mark style="color:orange;">`PUT`</mark> `https://ris.rightsline.com/v4/financial document/:id/overwrite-parties`

This endpoint allows you to overwrite parties for a specific financial document by ID.

#### Path Parameters

| Name                                 | Type   | Description                   |
| ------------------------------------ | ------ | ----------------------------- |
| id<mark style="color:red;">\*</mark> | number | ID of the financial document. |

#### Headers

| Name                                             | Type   | Description             |
| ------------------------------------------------ | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark>      | string | Your company's API key. |
| Authentication<mark style="color:red;">\*</mark> | string | Authentication token.   |

#### Request Body

| Name            | Type   | Description                                                                        |
| --------------- | ------ | ---------------------------------------------------------------------------------- |
| selectedParties | int\[] | Array of Party IDs to overwrite. If not included, all parties will be overwritten. |

{% tabs %}
{% tab title="200: OK Parties overwritten successfully." %}

```json
{
    "message": "Overwrite contacts successful."
}
```

{% endtab %}

{% tab title="404: Not Found Could not find a financial document with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}

{% tab title="404: Not Found Selected parties not found on financial document." %}

```json

{
    "message": "Party ID(s) [2, 3] not found on entity."
}
```

{% endtab %}

{% tab title="404: Not Found No parties exist on financial document." %}

```json
{
    "message": "No parties found on entity."
}
```

{% endtab %}

{% tab title="404: Not Found Selected parties do not exist." %}

```json
{
    "message": "Party ID(s) [20, 24] do not exist."
}
```

{% endtab %}
{% endtabs %}


# Inventory

### Endpoints

| Method | Endpoint                           | Description                                                                                   |
| ------ | ---------------------------------- | --------------------------------------------------------------------------------------------- |
| POST   | /v4/inventory                      | [Create an inventory item.](/entities/inventory/inventory-create)                             |
| GET    | /v4/inventory/:id                  | [Retrieve an inventory item.](/entities/inventory/inventory-retrieve)                         |
| PUT    | /v4/inventory/:id                  | [Update an inventory item.](/entities/inventory/inventory-update-1)                           |
| DELETE | /v4/inventory/:id                  | [Delete an inventory item.](/entities/inventory/inventory-delete)                             |
| GET    | /v4/inventory-templates            | [Retrieve inventory templates.](/config/templates)                                            |
| GET    | /v4/inventory-statuses/:templateId | [Retrieve inventory statuses.](/entities/inventory/retrieve-inventory-statuses)               |
| GET    | /v4/inventory/:id/draft-templates  | [Retrieve inventory draft templates.](/entities/inventory/retrieve-inventory-draft-templates) |
| GET    | /v4/inventory/:id/keyart/url       | [Retrieve an inventory key art URL.](/entities/inventory/retrieve-an-inventory-key-art-url)   |
| PUT    | /v4/inventory/:id/keyart           | [Update an inventory key art.](/entities/inventory/update-an-inventory-key-art)               |
| DELETE | /v4/inventory/:id/keyart           | [Delete an inventory key art.](/entities/inventory/delete-an-inventory-key-art)               |
| POST   | /v4/inventory/:id/switch-template  | [Switch inventory template.](/entities/inventory/switch-inventory-template)                   |


# Create an inventory item

## Create inventory

<mark style="color:green;">`POST`</mark> `https://ris.rightsline.com/v4/inventory`

This endpoint allows you to create an inventory record.

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type    | Description                                       |
| ------------------- | ------- | ------------------------------------------------- |
| title               | string  | The title of the new inventory item.              |
| template            | object  | The template to assign the new inventory item.    |
| template.templateId | integer | The template ID to assign the new inventory item. |
| characteristics     | object  | The field values of the new inventory item.       |
| parentRelationship  | array   | The parent entities of the new inventory item.    |

{% tabs %}
{% tab title="200 Inventory successfully created.  Returns the ID of the newly created record." %}

```
14462
```

{% endtab %}

{% tab title="400 Request is missing information, or the information is invalid." %}

```javascript
{
  "message": "TemplateId is required"
}
```

{% endtab %}
{% endtabs %}

### Sample Request

```javascript
{
    "title": "My New Inventory",
    "template": {
        "templateId": 1
    },
    "characteristics": {
        "notes": "This is a great new inventory!"
    },
    "parentRelationship": [
        {
            "parentCharTypeId": 17,
            "parentRecordId": 100
        }
    ]
}
```


# Retrieve an inventory item

## Get inventory item

<mark style="color:blue;">`GET`</mark> `https://ris.rightsline.com/v4/inventory/:id`

This endpoint allows you to retrieve a specific inventory item by ID.

#### Path Parameters

| Name | Type   | Description                           |
| ---- | ------ | ------------------------------------- |
| id   | string | ID of the inventory item to retrieve. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

{% tabs %}
{% tab title="200 Inventory successfully retrieved." %}

```javascript
{
  "parentRelationship": null,
  "relationshipUpdateRules": null,
  "id": 2,
  "revisionId": 0,
  "title": "Physical Media 1",
  "template": {
    "fields": [],
    "templateId": 7,
    "templateName": "Physical Media",
    "processId": 0,
    "processName": null
  },
  "status": {
    "statusId": 1,
    "statusName": "Created"
  },
  "characteristics": {
    "image_aspect_ratio": {
      "id": 5,
      "value": "1.33:1 (4:3)"
    },
    "format": {
      "id": 1,
      "value": "DCP 2K"
    },
    "fedex_number": "2"
  },
  "comments": [],
  "createdById": 296242,
  "createdDate": "2015-11-02T23:12:10.963Z",
  "lastUpdatedById": 296242,
  "lastUpdatedDate": "2015-11-02T23:12:11.077Z"
}
```

{% endtab %}

{% tab title="404 Could not find inventory with this ID." %}

```javascript
{
  "message": "Resource Not Found"
}
```

{% endtab %}
{% endtabs %}


# Update an inventory item

## Update inventory item

<mark style="color:orange;">`PUT`</mark> `https://ris.rightsline.com/v4/inventory/:id`

Update the characteristics of a inventory.

#### Path Parameters

| Name | Type   | Description                        |
| ---- | ------ | ---------------------------------- |
| id   | string | The ID of the inventory to update. |

#### Headers

| Name           | Type   | Description             |
| -------------- | ------ | ----------------------- |
| x-api-key      | string | Your company's API key. |
| Authentication | string | Authentication token.   |

#### Request Body

| Name                | Type   | Description                                                      |
| ------------------- | ------ | ---------------------------------------------------------------- |
| title               | string | The new title of the inventory.                                  |
| template            | object | The template of the inventory.                                   |
| template.templateId | string | The unique ID of the template that is assigned to the inventory. |
| characteristics     | object | The field values to update on the inventory.                     |
| parentRelationship  | array  | Create this inventory as a child of other entities.              |

{% tabs %}
{% tab title="200 Inventory updated successfully." %}

```javascript
{
  "parentRelationship": null,
  "relationshipUpdateRules": null,
  "id": 2,
  "revisionId": 0,
  "title": "Physical Media 1",
  "template": {
    "fields": [],
    "templateId": 7,
    "templateName": "Physical Media",
    "processId": 0,
    "processName": null
  },
  "status": {
    "statusId": 1,
    "statusName": "Created"
  },
  "characteristics": {
    "image_aspect_ratio": {
      "id": 5,
      "value": "1.33:1 (4:3)"
    },
    "format": {
      "id": 1,
      "value": "DCP 2K"
    },
    "fedex_number": "2"
  },
  "comments": [],
  "createdById": 296242,
  "createdDate": "2015-11-02T23:12:10.963Z",
  "lastUpdatedById": 296242,
  "lastUpdatedDate": "2015-11-02T23:12:11.077Z"
}
```

{% endtab %}
{% endtabs %}




---

[Next Page](/llms-full.txt/1)

