# Assets Requests

> :::note
Global and Per Robot text assets support up to 1,000,000 characters.
:::
:::important
`$filter` queries return the result of a custom filter that uses **Name** and **Description** parameters in a `contains` function.
:::

:::note
Global and Per Robot text assets support up to 1,000,000 characters.
:::
:::important
`$filter` queries return the result of a custom filter that uses **Name** and **Description** parameters in a `contains` function.
:::

## Retrieving a specific asset

The call below enables you to display all the available information for the asset with the `DocAPITest` name and `455` Id.

GET

`https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Assets/UiPath.Server.Configuration.OData.GetRobotAsset(robotId='455',assetName='DocAPITest')`

### Request headers

| Key | Value |
| --- | --- |
| Authorization | Bearer |

### Response code

200 OK

### Response body

```
{
    "@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#UiPath.Application.Dto.Assets.RobotAssetDto",
    "Name": "DocAPITest",
    "ValueType": "Text",
    "StringValue": "An asset added through an API call",
    "BoolValue": false,
    "IntValue": 0,
    "CredentialUsername": "",
    "CredentialPassword": ""
}
```

## Retrieving per robot assets

To perform a GET request to the `/odata/Assets/UiPath.Server.Configuration.OData.GetRobotAssetByRobotId()` endpoint, you need to provide the `robotId` and `assetName` in the URL. Please note that only the username is returned for Per Robot credential assets, as you can see in the example below.

GET

`https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Assets/UiPath.Server.Configuration.OData.GetRobotAssetByRobotId(robotId=193,assetName='Testing')`

### Request headers

| Key | Value |
| --- | --- |
| Authorization | Bearer |

### Response code

200 OK

### Response body

```
{
  "@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#UiPath.Application.Dto.Assets.RobotAssetDto",
  "Name": "Testing",
  "ValueType": "Credential",
  "StringValue": "",
  "BoolValue": false,
  "IntValue": 0,
  "CredentialUsername": "DocBot",
  "CredentialPassword": ""
}
```

## Adding an asset

The following example enables you to create a new global asset, of type text.

POST

`https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Assets`

### Request headers

| Key | Value |
| --- | --- |
| Authorization | Bearer |

### Request body

```
{
    "Name": "DocAPITest",
    "ValueScope": "Global",
    "ValueType": "Text", 
    "StringValue": "An asset added through an API call"
}
```

### Response code

200 OK

### Response body

```
{
    "@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Assets/$entity",
    "Name": "DocAPITest",
    "CanBeDeleted": true,
    "ValueScope": "Global",
    "ValueType": "Text",
    "Value": "An asset added through an API call",
    "StringValue": "An asset added through an API call",
    "BoolValue": false,
    "IntValue": 0,
    "CredentialUsername": "",
    "CredentialPassword": "",
    "Id": 455,
    "KeyValueList": []
}
```
