Use filters to list specific files

This example shows how to send a POST request with filters to return all the bots from your repository that meet the search criteria. In this example, you have bots in several folders that contain the word test. Use the filters to return only the bots with test in the name.

Prerequisites

JSON Web Token (JWT)
All Control Room APIs require a JSON Web Token (JWT) to access the APIs. Generate an authentication token using the Enterprise 11 Authentication API.
Permissions
You must have permission for the folder in which you want to perform operations. If you can view files in the Control Room interface, then you can use this API.

See Enterprise 11: Bot permissions for a role.

Note:
  • Use the Swagger definition files installed with your Control Room to test the APIs. View the available Swagger APIs at http://<your_control_room_url>/swagger/.
  • You can also use a REST client to complete this task.

Procedure

  1. Add an authentication token to the request header.
    Note: Use the Enterprise 11 Authentication API to generate a JSON Web Token.
  2. Specify the method and URL.
    • Method: POST
    • URL: http://<your_control_room_url>/v1/repository/filefolder/list
  3. Add filter parameters in the request body.
    • Sort by parentid to return the results in order of the parent folder.
    • Filter by the "test" substring in the name field to return all bots containing the word test in the name.
    Request body:
    {
      "sort":[{
        "field":"parentid",
        "direction":"asc"
      }],
      "filter":{
        "operator":"substring",
        "value":"test",
        "field":"name"
        },
      "fields":[],
      "page":{ }
    }
  4. Send the request.
    • In a REST Client, click SEND.
    • In the Swagger interface, click Execute.

    Response body: The response for this example returns three bots from the repository: one from the My Tasks folder, and two from the Finance subfolder.

    {
      "page": {
        "offset": 0,
        "total": 7,
        "totalFilter": 3
      },
      "list": [
        {
          "id": "14",
          "parentid": "7",
          "name": "testOnboarding.atmx",
          "permission": {
            "delete": false,
            "download": true,
            "execute": false,
            "upload": true,
            "run": false
          },
          "lastModified": "2019-12-02T17:39:05.339Z",
          "lastModifiedBy": "19",
          "path": "Automation Anywhere\\My Tasks\\testOnboarding.atmx",
          "directory": false,
          "size": 4602,
          "locked": false,
          "fileLastModified": "2019-12-02T17:38:56Z",
          "isProtected": false
        },
        {
          "id": "17",
          "parentid": "14",
          "name": "testInvoiceCompare.atmx",
          "permission": {
            "delete": false,
            "download": true,
            "execute": false,
            "upload": true,
            "run": false
          },
          "lastModified": "2019-12-02T17:39:05.339Z",
          "lastModifiedBy": "19",
          "path": "Automation Anywhere\\My Tasks\\Finance\\testInvoiceCompare.atmx",
          "directory": false,
          "size": 4408,
          "locked": false,
          "fileLastModified": "2019-12-02T17:38:56Z",
          "isProtected": false
        },
        {
          "id": "18",
          "parentid": "14",
          "name": "testQuarterlyReport.atmx",
          "permission": {
            "delete": false,
            "download": true,
            "execute": false,
            "upload": true,
            "run": false
          },
          "lastModified": "2019-12-02T17:39:05.339Z",
          "lastModifiedBy": "19",
          "path": "Automation Anywhere\\My Tasks\\Finance\\testQuarterlyReport.atmx",
          "directory": false,
          "size": 4408,
          "locked": false,
          "fileLastModified": "2019-12-02T17:38:56Z",
          "isProtected": false
        }
      ]
    }
Note: You can also run REST requests from a command terminal. The following is a curl request example. This example is formatted for readability. Replace the text inside the angle brackets, <authentication_token>, with your authentication token.
curl -X POST "<your_control_room_url>/v1/repository/filefolder/list" -H "accept: application/json"
        -H "X-Authorization: <authentication_token>" -H "Content-Type: application/json"
        -d "{    
            \"sort\": [ {
                \"field\": \"parentid\",
                \"direction\": \"asc\"
            } ],
            \"filter\": {
                \"operator\": \"substring\",
                \"value\": \"test\", 
                \"field\": \"name\" }, 
            \"fields\": [], 
            \"page\": { }
            }"