# Jobs requests

> Retrieve and filter job records via the Orchestrator API.

## Requesting jobs started by a specific robot

You can filter jobs by robot ID, robot name, job state, and dates. The following section shows the base request format and common filter examples.

### Base request format

GET

`{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/Jobs?$top=3&$filter={filter-expression}`

#### Request headers

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

#### Response code

200 OK

### Filter examples

Use these filter variations to query jobs by different criteria:

| Use Case | Filter Expression |
|----------|------------------|
| By robot ID | `Robot/Id eq 749` |
| By robot name | `Robot/Name eq 'DocBot'` |
| By robot ID and state | `Robot/Id eq 749 and State eq 'Successful'` |
| By robot ID and end date | `Robot/Id eq 759 and EndTime lt 2018-02-22T10:00:00.837Z` |
| By robot ID and start date | `Robot/Id eq 749 and StartTime gt 2017-09-22T09:59:22.837Z` |

#### Example response

The following response shows the structure returned when querying jobs:

```
{
    "@odata.context": "{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Jobs",
    "@odata.count": 13,
    "value": [
        {
            "Key": "1c7222dc-416f-4c60-9b17-88262c91768f",
            "StartTime": "2018-01-15T18:18:02.79Z",
            "EndTime": "2018-01-15T18:18:47.587Z",
            "State": "Successful",
            "Source": "Manual",
            "BatchExecutionKey": "8c5302a7-8ed3-458a-ab64-34cc72fdd709",
            "Info": "Job completed",
            "CreationTime": "2018-01-15T18:18:01.623Z",
            "StartingScheduleId": null,
            "Id": 125161
        }
    ]
}
```

## Starting a job

The following request enables you to start the execution of the indicated process (through the ReleaseKey parameter), on all the available Robots that are in the associated environment.

:::note
The **All** strategy is not applicable to modern folders.
:::

POST

`{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs`

### Request headers

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

### Request body

```
{
  "startInfo": {
    "ReleaseKey": "795cbab2-8008-4a54-b1cb-f9ff1ece139e",
    "Strategy": "All",
    "RobotIds": [],
    "NoOfRobots": 0
  }
}
```

### Response code

200 OK

### Response body

```
{
  "@odata.context": "{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Jobs",
  "value": [
    {
      "Key": "31ade17f-5a35-4250-beea-43922dc2a20d",
      "StartTime": null,
      "EndTime": null,
      "State": "Pending",
      "Source": "Manual",
      "BatchExecutionKey": "cbaff1c6-32b0-468b-9ad9-b59f9ca1d3b6",
      "Info": null,
      "CreationTime": "2018-03-19T19:01:58.6806126Z",
      "StartingScheduleId": null,
      "Id": 128209
    },
    {
      "Key": "c4caf051-9db6-486d-8078-231f9dec1a4c",
      "StartTime": null,
      "EndTime": null,
      "State": "Pending",
      "Source": "Manual",
      "BatchExecutionKey": "cbaff1c6-32b0-468b-9ad9-b59f9ca1d3b6",
      "Info": null,
      "CreationTime": "2018-03-19T19:01:58.7610094Z",
      "StartingScheduleId": null,
      "Id": 128210
    },
    {
      "Key": "969552ba-cfe5-4e87-adde-c85a358ae96f",
      "StartTime": null,
      "EndTime": null,
      "State": "Pending",
      "Source": "Manual",
      "BatchExecutionKey": "cbaff1c6-32b0-468b-9ad9-b59f9ca1d3b6",
      "Info": null,
      "CreationTime": "2018-03-19T19:01:58.8212679Z",
      "StartingScheduleId": null,
      "Id": 128211
    }
  ]
}
```

## Starting a job with custom values for input parameters

The following POST request to the `/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs` endpoint enables you to add custom values for input parameters while also starting a job on a specific Robot.

:::note
Please note that a maximum of 10,000 characters is accepted for the entire length of the JSON representation of input parameters, including argument names, all the escaped characters, spaces, brackets, and arguments values. If you provide values for integer input parameters when making start job API calls which are also valid ASCII values, please note that they are changed. For example, `0065` becomes `53`.
:::

POST

`{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs`

### Request headers

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

### Request body

```
{
    "startInfo": {
        "ReleaseKey": "429cf1cc-283c-424f-a935-43f72c2ca719",
        "RobotIds": [121],
        "JobsCount": 0,
        "Strategy": "Specific",
        "InputArguments": "{\"age\":33,\"trueOrFalse\":false,\"stringNew\":\"testing\"}"
    }
}
```

### Response code

200 OK

### Response body

```
{
    "@odata.context": "{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Jobs",
    "value": [
        {
            "Key": "0fbdbecb-3677-4c33-a491-a1f7ed4ff886",
            "StartTime": null,
            "EndTime": null,
            "State": "Pending",
            "Source": "Manual",
            "SourceType": "Manual",
            "BatchExecutionKey": "e188f409-c504-47b7-b2cf-30b8fe423f87",
            "Info": null,
            "CreationTime": "2018-08-27T16:41:00.4773869Z",
            "StartingScheduleId": null,
            "ReleaseName": "input_output_test_DocEnv",
            "Type": "Unattended",
            "InputArguments": "{\"age\":33,\"trueOrFalse\":false,\"stringNew\":\"testing\"}",
            "OutputArguments": null,
            "Id": 21767
        }
    ]
}
```

## Retrieving jobs that were executed by an indicated environment

The following example enables us to get the first two jobs that were executed by Robots that are part of the environment with the 312 Id and expand the process information.

GET

`{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/Jobs?$top=2&$expand=Release&$filter=Release/EnvironmentId eq 312`

### Request headers

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

### Response code

200 OK

### Response body

```
{
    "@odata.context": "{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Jobs",
    "@odata.count": 26,
    "value": [
        {
            "Key": "d3780aac-1e80-49b0-bfd3-c8ec6a3939db",
            "StartTime": "2018-01-15T18:03:42.51Z",
            "EndTime": "2018-01-15T18:03:44.353Z",
            "State": "Faulted",
            "Source": "Manual",
            "BatchExecutionKey": "c08beec5-243c-4e08-854d-7c100cd35214",
            "Info": "Logon failure: unknown user name or bad password",
            "CreationTime": "2018-01-15T18:03:41.56Z",
            "StartingScheduleId": null,
            "Id": 125153,
            "Release": {
                "Key": "766d80d3-cc02-4635-b36c-e30fcf1008b1",
                "ProcessKey": "Release_Project",
                "ProcessVersion": "",
                "IsLatestVersion": false,
                "IsProcessDeleted": false,
                "Description": "rockerii",
                "Name": "Release_Project_doc_env",
                "EnvironmentId": 312,
                "EnvironmentName": null,
                "Id": 440
            }
        },
        {
            "Key": "93b0bfc1-cb80-4594-bb3e-9f35f3efc828",
            "StartTime": "2018-01-15T18:05:42.393Z",
            "EndTime": "2018-01-15T18:05:42.393Z",
            "State": "Faulted",
            "Source": "Manual",
            "BatchExecutionKey": "2f894a2b-7ba1-4eee-b399-c67894a9b3ec",
            "Info": "Logon failure: unknown user name or bad password",
            "CreationTime": "2018-01-15T18:05:41.093Z",
            "StartingScheduleId": null,
            "Id": 125154,
            "Release": {
                "Key": "766d80d3-cc02-4635-b36c-e30fcf1008b1",
                "ProcessKey": "Release_Project",
                "ProcessVersion": "",
                "IsLatestVersion": false,
                "IsProcessDeleted": false,
                "Description": "rockerii",
                "Name": "Release_Project_doc_env",
                "EnvironmentId": 312,
                "EnvironmentName": null,
                "Id": 440
            }
        }
    ]
}
```

## Retrieving faulted jobs according to errors

The call below helps you display the first 2 jobs that failed with the "Logon failure: unknown user name or bad password" error, and expands the Robot and process details. You can use this query for any kind of error that is displayed in the **Job Details** window.

GET

`{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/Jobs?$filter=(CreationTime gt 2017-01-01T00:00:00.000Z and State eq '4' and indexof(Info,'Logon failure: unknown user name or bad password') ne -1)&$expand=Robot,Release&$top=2`

### Request headers

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

### Response code

200 OK

### Response body

```
{
  "@odata.context": "{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Jobs",
  "@odata.count": 5,
  "value": [
    {
      "Key": "d3780aac-1e80-49b0-bfd3-c8ec6a3939db",
      "StartTime": "2018-01-15T18:03:42.51Z",
      "EndTime": "2018-01-15T18:03:44.353Z",
      "State": "Faulted",
      "Source": "Manual",
      "BatchExecutionKey": "c08beec5-243c-4e08-854d-7c100cd35214",
      "Info": "Logon failure: unknown user name or bad password",
      "CreationTime": "2018-01-15T18:03:41.56Z",
      "StartingScheduleId": null,
      "Id": 125153,
      "Robot": {
        "LicenseKey": null,
        "MachineName": "DESKTOP-PMFQGCB",
        "Name": "RoboDrulea",
        "Username": "ALEX",
        "Description": null,
        "Type": "Unattended",
        "Password": null,
        "RobotEnvironments": "",
        "Id": 758,
        "ExecutionSettings": null
      },
      "Release": {
        "Key": "766d80d3-cc02-4635-b36c-e30fcf1008b1",
        "ProcessKey": "Release_Project",
        "ProcessVersion": "",
        "IsLatestVersion": false,
        "IsProcessDeleted": false,
        "Description": null,
        "Name": "Release_Project_doc_env",
        "EnvironmentId": 312,
        "EnvironmentName": null,
        "Id": 440
      }
    },
    {
      "Key": "93b0bfc1-cb80-4594-bb3e-9f35f3efc828",
      "StartTime": "2018-01-15T18:05:42.393Z",
      "EndTime": "2018-01-15T18:05:42.393Z",
      "State": "Faulted",
      "Source": "Manual",
      "BatchExecutionKey": "2f894a2b-7ba1-4eee-b399-c67894a9b3ec",
      "Info": "Logon failure: unknown user name or bad password",
      "CreationTime": "2018-01-15T18:05:41.093Z",
      "StartingScheduleId": null,
      "Id": 125154,
      "Robot": {
        "LicenseKey": null,
        "MachineName": "DESKTOP-PMFQGCB",
        "Name": "RoboDrulea",
        "Username": "ALEX",
        "Description": null,
        "Type": "Unattended",
        "Password": null,
        "RobotEnvironments": "",
        "Id": 758,
        "ExecutionSettings": null
      },
      "Release": {
        "Key": "766d80d3-cc02-4635-b36c-e30fcf1008b1",
        "ProcessKey": "Release_Project",
        "ProcessVersion": "",
        "IsLatestVersion": false,
        "IsProcessDeleted": false,
        "Description": null,
        "Name": "Release_Project_doc_env",
        "EnvironmentId": 312,
        "EnvironmentName": null,
        "Id": 440
      }
    }
  ]
}
```

## Stopping multiple jobs

The request below enables you to stop jobs. You can target jobs either by their IDs or by a batch execution key. Only one of these parameters can be specified at a time.

:::note
The `strategy` parameter can be populated with the following values:
* `SoftStop` or `1`
* `Kill` or `2`.
:::

POST

`{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/Jobs/UiPath.Server.Configuration.OData.StopJobs`

### Request headers

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

### Request body

#### Stop by job IDs

```
{
    "jobIds": [22450719, 22450728],
    "strategy": "1"
}
```

#### Stop by batch execution key

```
{
    "batchExecutionKey": "57a377aa-af29-45bb-a0bb-22feba96eb96",
    "strategy": "1"
}
```

### Response code

200 OK

## Exporting jobs

This action requires calls to various endpoints.

:::note
This endpoint is limited to 100 API requests/day/tenant.
:::

1. Initiate an export by calling `POST {AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_//odata/Jobs/UiPath.Server.Configuration.OData.Export`. Add any filters as necessary.

This is what the request body looks like:

   ```
   POST {AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/Jobs/UiPath.Server.Configuration.OData.Export?$top=1000&$expand=Robot,Machine,Release&$orderby=CreationTime%20desc HTTP/1.1
   Authorization: Bearer rt_45D8A3C5FF2AC56A92A906EE14FB0B8B004D76BAC67AE375521C373F23447684-1
   X-Uipath-Organizationunitid: 770643
   ```

The response includes an ID that is necessary for the subsequent steps:

   ```
   {"@odata.context":"{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Exports/$entity","Id":8661,"Name":"jobs-02c0398c-227b-47f4-aade-2252146d7d8f","Type":"Jobs","Status":"New","RequestedAt":"2024-01-15T07:48:34.8805788Z","ExecutedAt":null,"Size":null}
   ```
2. Get the request status by calling `GET {AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/orchestrator_/odata/Exports(8661)`, where the text between brackets is the ID returned at step 1.

This is what the request body looks like:

   ```
   GET {AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/Exports(8661) HTTP/1.1
   Host: alpha.uipath.com
   Authorization: Bearer rt_45D8A3C5FF2AC56A92A906EE14FB0B8B004D76BAC67AE375521C373F23447684-1
   X-Uipath-Organizationunitid: 770643
   Cookie: __cf_bm=lxqtVnB6oC_KS1nxJsWcqGK87Up9b5TGUCkZLeoaLP8-1705304914-1-AcpGG76FE03iiFdCw+u2Sq/xV3T38gqfvE7vjjZ5YHs5Iwjmrw1/1DjR5RSlqdQU1ocpukAZ1I0JLAGnkdOnumA=
   ```

Wait until you get the completed response:

   ```
   {"@odata.context":"{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Exports/$entity","Id":8661,"Name":"jobs-02c0398c-227b-47f4-aade-2252146d7d8f","Type":"Jobs","Status":"Completed","RequestedAt":"2024-01-15T07:48:34.88Z","ExecutedAt":"2024-01-15T07:48:38.51Z","Size":692}
   ```
3. Obtain the download link by calling `GET {AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/Exports(8661)/UiPath.Server.Configuration.OData.GetDownloadLink`, where the text between brackets is the ID returned at step 1.

This is what the request body looks like:

   ```
   GET {AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/Exports(8661)/UiPath.Server.Configuration.OData.GetDownloadLink HTTP/1.1
   Authorization: Bearer rt_45D8A3C5FF2AC56A92A906EE14FB0B8B004D76BAC67AE375521C373F23447684-1
   X-Uipath-Organizationunitid: 770643
   ```

The response includes a URI which you can use to retrieve a CSV export of your data:

   ```
   {"@odata.context":"{AutomationCloudURL}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#UiPath.Server.Configuration.OData.BlobFileAccessDto","Uri":"<Download URI>","Verb":"GET","RequiresAuth":false,"Headers":{"Keys":[],"Values":[]}}
   ```
4. Make a GET request to the URI that was returned at step 3. This triggers the download of the CSV export. See **[The exported report](https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/exporting-grids-in-the-background#the-exported-report)** section in our user guide for details on the format and naming convention.
