POST /api/v2/drop_folders/:drop_folder_id/public
Set as public

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Examples

// Successful request
POST /api/v2/drop_folders/1/public
200
{
  "is_public": true
}
// If :drop_folder_id is not found
POST /api/v2/drop_folders/not-found-id/public
404
{
  "error": "dropfolder not found"
}
// Is public already
POST /api/v2/drop_folders/3/public
400
{
  "error": "DropFolder is public already"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

POST /api/v2/drop_folders/:drop_folder_id/private
Set as private

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Examples

// Successful request
POST /api/v2/drop_folders/4/private
200
{
  "is_public": false
}
// If :drop_folder_id is not found
POST /api/v2/drop_folders/not-found-id/private
404
{
  "error": "dropfolder not found"
}
// Is private already
POST /api/v2/drop_folders/6/private
400
{
  "error": "DropFolder is private already"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

GET /api/v2/drop_folders/:drop_folder_id/all_users
List all users who are allowed to see this entity

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Examples

// Successful request
GET /api/v2/drop_folders/7/all_users
200
{
  "users": [
    {
      "id": 113,
      "first_name": null,
      "last_name": null,
      "email": "admin-user-94@example.com",
      "user_role": {
        "name": "admin"
      }
    }
  ]
}
// If :drop_folder_id is not found
GET /api/v2/drop_folders/not-found-id/all_users
404
{
  "error": "dropfolder not found"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

GET /api/v2/drop_folders/:drop_folder_id/users
List users

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Examples

// Successful request
GET /api/v2/drop_folders/9/users
200
{
  "users": [
    {
      "id": 115,
      "first_name": null,
      "last_name": null,
      "email": "admin-user-96@example.com",
      "user_role": {
        "name": "admin"
      }
    }
  ]
}
// If :drop_folder_id is not found
GET /api/v2/drop_folders/not-found-id/users
404
{
  "error": "dropfolder not found"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

POST /api/v2/drop_folders/:drop_folder_id/users/:user_id
Add user

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Examples

// Successful request
POST /api/v2/drop_folders/11/users/118
200
{
  "ok": "User 118 was added succesfully"
}
// User is already added
POST /api/v2/drop_folders/12/users/120
400
{
  "error": "User is already member of this DropFolder"
}
// If :drop_folder_id is not found
POST /api/v2/drop_folders/not-found-id/users/121
404
{
  "error": "dropfolder not found"
}
// If :user_id is not found
POST /api/v2/drop_folders/14/users/not-found-id
404
{
  "error": "Couldn't find User with 'id'=not-found-id"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

DELETE /api/v2/drop_folders/:drop_folder_id/users/:user_id
Remove user

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Examples

// Successful request
DELETE /api/v2/drop_folders/15/users/125
200
{
  "ok": "User 125 was removed succesfully"
}
// User does not belong to entity
DELETE /api/v2/drop_folders/16/users/127
400
{
  "error": "User is not a member of this DropFolder"
}
// If :drop_folder_id is not found
DELETE /api/v2/drop_folders/not-found-id/users/128
404
{
  "error": "dropfolder not found"
}
// If :user_id is not found
DELETE /api/v2/drop_folders/18/users/not-found-id
404
{
  "error": "Couldn't find User with 'id'=not-found-id"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

POST /api/v2/drop_folders/:drop_folder_id/guests
Invite guest by email

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Params

Param name Description
email
required

Email

Validations:

  • Must be a String

Examples

// Successful request
POST /api/v2/drop_folders/19/guests
{
  "email": "example-email@example.com"
}
200
{
  "users": [
    {
      "id": 131,
      "first_name": null,
      "last_name": null,
      "email": "admin-user-112@example.com",
      "user_role": {
        "name": "admin"
      }
    },
    {
      "id": 132,
      "first_name": null,
      "last_name": null,
      "email": "example-email@example.com",
      "user_role": {
        "name": "guest"
      }
    }
  ]
}
// Successful request
POST /api/v2/drop_folders/20/guests
{
  "email": "admin-user-113@example.com"
}
400
{
  "error": "User already exists"
}
// If :drop_folder_id is not found
POST /api/v2/drop_folders/not-found-id/guests
{
  "email": "example-email@example.com"
}
404
{
  "error": "dropfolder not found"
}
// Failed request
POST /api/v2/drop_folders/not-found-id/guests
404
{
  "error": "dropfolder not found"
}
// Successful request
POST /api/v2/drop_folders/48/guests
{
  "email": "testiemail@tvtools.fi"
}
200
{
  "users": [
    {
      "id": 168,
      "first_name": null,
      "last_name": null,
      "email": "admin-user-147@example.com",
      "user_role": {
        "name": "admin"
      }
    },
    {
      "id": 169,
      "first_name": null,
      "last_name": null,
      "email": "testiemail@tvtools.fi",
      "user_role": {
        "name": "guest"
      }
    }
  ]
}
// User with given email does not already exist
POST /api/v2/drop_folders/49/guests
{
  "email": "testiemail@tvtools.fi"
}
200
{
  "users": [
    {
      "id": 170,
      "first_name": null,
      "last_name": null,
      "email": "admin-user-148@example.com",
      "user_role": {
        "name": "admin"
      }
    },
    {
      "id": 171,
      "first_name": null,
      "last_name": null,
      "email": "testiemail@tvtools.fi",
      "user_role": {
        "name": "guest"
      }
    }
  ]
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

GET /api/v2/drop_folders/:drop_folder_id/user_groups
Get user groups

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Examples

// Successful request
GET /api/v2/drop_folders/22/user_groups
200
{
  "user_groups": [
    {
      "id": 1,
      "name": "user-group-1",
      "description": "Sample user group for tests",
      "created_at": "2023-11-27T09:43:02.554Z",
      "updated_at": "2023-11-27T09:43:02.554Z",
      "users": []
    }
  ]
}
// If :drop_folder_id is not found
GET /api/v2/drop_folders/not-found-id/user_groups
404
{
  "error": "dropfolder not found"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

POST /api/v2/drop_folders/:drop_folder_id/user_groups/:user_group_id
Add user group

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Examples

// Successful request
POST /api/v2/drop_folders/24/user_groups/2
200
{
  "ok": "User group 2 was added succesfully"
}
// User group is already added
POST /api/v2/drop_folders/25/user_groups/3
400
{
  "error": "User group with id 3 is already part of this DropFolder"
}
// If :drop_folder_id is not found
POST /api/v2/drop_folders/not-found-id/user_groups/4
404
{
  "error": "dropfolder not found"
}
// If :user_group_id is not found
POST /api/v2/drop_folders/27/user_groups/not-found-id
404
{
  "error": "Couldn't find UserGroup with 'id'=not-found-id"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

DELETE /api/v2/drop_folders/:drop_folder_id/user_groups/:user_group_id
Remove user group

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Examples

// Successful request
DELETE /api/v2/drop_folders/28/user_groups/5
200
{
  "ok": "User group 5 was removed succesfully"
}
// User does not belong to entity
DELETE /api/v2/drop_folders/29/user_groups/6
400
{
  "error": "User group with id 6 is not part of this DropFolder"
}
// If :drop_folder_id is not found
DELETE /api/v2/drop_folders/not-found-id/user_groups/7
404
{
  "error": "dropfolder not found"
}
// If :user_group_id is not found
DELETE /api/v2/drop_folders/31/user_groups/not-found-id
404
{
  "error": "Couldn't find UserGroup with 'id'=not-found-id"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

GET /api/v2/drop_folders/:drop_folder_id/history/:cursor
Get history

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Examples

// Successful request
GET /api/v2/drop_folders/32/history/0
200
{
  "history": {
    "results": [
      {
        "id": 160,
        "user_id": 0,
        "event_type": "USER_LINKED",
        "created_at": "2023-11-27T09:43:04.745Z",
        "updated_at": "2023-11-27T09:43:04.745Z",
        "event_targets": [
          {
            "target_type": "User",
            "target": {
              "id": 145,
              "first_name": null,
              "last_name": null
            }
          },
          {
            "target_type": "DropFolder",
            "target": {
              "id": 32,
              "title": "Sample Drop Folder"
            }
          }
        ]
      },
      {
        "id": 159,
        "user_id": 145,
        "event_type": "DROP_FOLDER_ADDED",
        "created_at": "2023-11-27T09:43:04.722Z",
        "updated_at": "2023-11-27T09:43:04.722Z",
        "event_targets": [
          {
            "target_type": "DropFolder",
            "target": {
              "id": 32,
              "title": "Sample Drop Folder"
            }
          }
        ]
      }
    ],
    "next_cursor": null
  }
}
// If :drop_folder_id is not found
GET /api/v2/drop_folders/-1/history/0
404
{
  "error": "dropfolder not found"
}
// Unprocessable entity
GET /api/v2/drop_folders/34/history/test
422
{
  "error": "Invalid parameter 'cursor' value \"test\": Invalid cursor"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

GET /api/v2/drop_folders
Get all drop folders

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Params

Param name Description
loader_id
optional

Filter drop folders by loader id

Validations:

  • Must be a String

Examples

// Successful request
GET /api/v2/drop_folders
200
{
  "drop_folders": [
    {
      "id": 35,
      "title": "Sample Drop Folder",
      "description": "Sample drop folder description.",
      "owner": "admin-user-128@example.com",
      "created_at": "2023-11-27T09:43:05.236Z",
      "updated_at": "2023-11-27T09:43:05.236Z",
      "loader_id": 35,
      "original_title": "Sample Drop Folder",
      "is_public": false
    }
  ]
}
// Successful request
GET /api/v2/drop_folders?loader_id=test-loader
200
{
  "drop_folders": [
    {
      "id": 36,
      "title": "Sample Drop Folder",
      "description": "Sample drop folder description.",
      "owner": "admin-user-129@example.com",
      "created_at": "2023-11-27T09:43:05.411Z",
      "updated_at": "2023-11-27T09:43:05.411Z",
      "loader_id": 36,
      "original_title": "Sample Drop Folder",
      "is_public": false
    }
  ]
}
// Drop folder is not found
GET /api/v2/drop_folders?loader_id=not-found-loader
200
{
  "drop_folders": []
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

GET /api/v2/drop_folders/:drop_folder_id
Get a drop folder

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Params

Param name Description
drop_folder_id
required

Drop Folder ID

Validations:

  • Must be a String

Examples

// Failed request
GET /api/v2/drop_folders/not-found-id
404
{
  "error": "dropfolder not found"
}
// Successful request
GET /api/v2/drop_folders/38
200
{
  "drop_folder": {
    "id": 38,
    "title": "Sample Drop Folder",
    "description": "Sample drop folder description.",
    "owner": "admin-user-132@example.com",
    "created_at": "2023-11-27T09:43:05.878Z",
    "updated_at": "2023-11-27T09:43:05.878Z",
    "loader_id": 38,
    "original_title": "Sample Drop Folder",
    "is_public": false
  }
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

POST /api/v2/drop_folders
Create drop folder

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Params

Param name Description
title
required

Title

Validations:

  • Must be a String

loader_id
required

Loader ID

Validations:

  • Must be a Integer

description
optional

Description

Validations:

  • Must be a String

Examples

// Successful request
POST /api/v2/drop_folders
{
  "title": "Test Drop Folder",
  "description": "Test description",
  "loader_id": 39
}
200
{
  "drop_folder": {
    "id": 40,
    "title": "Test Drop Folder",
    "description": "Test description",
    "owner": "admin-user-133@example.com",
    "created_at": "2023-11-27T09:43:06.139Z",
    "updated_at": "2023-11-27T09:43:06.139Z",
    "loader_id": 39,
    "original_title": "Test Drop Folder",
    "is_public": false
  }
}
// With invalid parameters
POST /api/v2/drop_folders
{
  "title": "",
  "description": "Test description",
  "loader_id": 2
}
400
{
  "error": "Title can't be blank, Loader must exist"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

PUT /api/v2/drop_folders/:drop_folder_id
Update drop folder metadata

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Params

Param name Description
title
optional

Title

Validations:

  • Must be a String

description
optional

Description

Validations:

  • Must be a String

Examples

// Succesful request
PUT /api/v2/drop_folders/41
{
  "title": "Modified Sample Drop Folder",
  "description": "Modified Description"
}
200
{
  "drop_folder": {
    "title": "Modified Sample Drop Folder",
    "description": "Modified Description",
    "id": 41,
    "owner": "admin-user-136@example.com",
    "created_at": "2023-11-27T09:43:06.475Z",
    "updated_at": "2023-11-27T09:43:06.578Z",
    "loader_id": 40,
    "original_title": "Sample Drop Folder",
    "is_public": false
  }
}
// With invalid parameters
PUT /api/v2/drop_folders/42
{
  "title": ""
}
400
{
  "error": "Title can't be blank"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

DELETE /api/v2/drop_folders/:drop_folder_id
Delete drop folder

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Params

Param name Description
drop_folder_id
required

Drop Folder ID

Validations:

  • Must be a String

Examples

// Successful request
DELETE /api/v2/drop_folders/47
200
{
  "drop_folder": true
}
// Failed request
DELETE /api/v2/drop_folders/not-found-id
404
{
  "error": "dropfolder not found"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

POST /api/v2/drop_folders/:drop_folder_id/incoming_asset
Add incoming asset to drop folder

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Params

Param name Description
asset_id
required

Asset ID

Validations:

  • Must be a String

Examples

// Successful request
POST /api/v2/drop_folders/43/incoming_asset
{
  "asset_id": "_kPKuU-Mwl2h5rYABNgq"
}
200
{
  "assets": [
    {
      "id": "_kPKuU-Mwl2h5rYABNgq",
      "external_id": null,
      "parent_id": null,
      "project_id": null,
      "owner": "admin-user-138@example.com",
      "title": "Sample Asset",
      "description": "Sample asset description.",
      "category": "test asset category",
      "tags": [
        "test",
        "tag"
      ],
      "ai_tags": [],
      "status": "open",
      "media_type": "placeholder",
      "original_filename": null,
      "drop_folder_id": 43,
      "md5_sum": null,
      "created_date": "2023-11-27T09:43:06.868Z",
      "modification_date": "2023-11-27T09:43:07.088Z",
      "deleted": null
    }
  ]
}
// Drop folder not found
POST /api/v2/drop_folders/not-found-id/incoming_asset
{
  "asset_id": "-rQimblkf0RbmhXoRORP"
}
404
{
  "error": "dropfolder not found"
}
// Asset not found
POST /api/v2/drop_folders/44/incoming_asset
{
  "asset_id": "not-found-id"
}
400
{
  "error": "asset not found"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

POST /api/v2/drop_folders/:drop_folder_id/outgoing_asset
Add outgoing asset to drop folder

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Params

Param name Description
asset_id
required

Asset ID

Validations:

  • Must be a String

Examples

// Not admin user
POST /api/v2/drop_folders/:drop_folder_id/outgoing_asset
401
// Successful request
POST /api/v2/drop_folders/45/outgoing_asset
{
  "asset_id": "Z-KMiM8LDEbJjpSN0_7G"
}
200
{
  "assets": [
    {
      "id": "Z-KMiM8LDEbJjpSN0_7G",
      "external_id": null,
      "parent_id": null,
      "project_id": null,
      "owner": "admin-user-141@example.com",
      "title": "Sample Asset",
      "description": "Sample asset description.",
      "category": "test asset category",
      "tags": [
        "test",
        "tag"
      ],
      "ai_tags": [],
      "status": "open",
      "media_type": "placeholder",
      "original_filename": null,
      "drop_folder_id": 45,
      "md5_sum": null,
      "created_date": "2023-11-27T09:43:08.063Z",
      "modification_date": "2023-11-27T09:43:08.258Z",
      "deleted": null
    }
  ]
}
// Failed request, drop folder not found
POST /api/v2/drop_folders/not-found-id/outgoing_asset
{
  "asset_id": "uR_8D9Se8EGv_kYlW0x1"
}
404
{
  "error": "dropfolder not found"
}
// Failed request, asset not found
POST /api/v2/drop_folders/46/outgoing_asset
{
  "asset_id": "not-found-id"
}
400
{
  "error": "asset not found"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

POST /api/v2/drop_folders/:drop_folder_id/assets/incoming
Create incoming asset to drop folder

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Params

Param name Description
drop_folder_id
required

Drop Folder ID

Validations:

  • Must be a String

title
required

Title

Validations:

  • Must be a String

description
optional

Description

Validations:

  • Must be a String

category
optional

Category

Validations:

  • Must be a String

tags
optional

Tags

Validations:

  • Must be an array of String

external_id
optional

External ID

Validations:

  • Must be a String

url
optional

Media from URL

Validations:

  • Must be a Hash

url[file_url]
required

File URL

Validations:

  • Must be a String

url[filename]
required

Filename

Validations:

  • Must be a String

s3
optional

Media from S3

Validations:

  • Must be a Hash

s3[s3_key]
required

File URL

Validations:

  • Must be a String

s3[filename]
required

Filename

Validations:

  • Must be a String

Examples

// Successful request
POST /api/v2/drop_folders/50/assets/incoming
{
  "title": "Title",
  "description": "Desc",
  "category": "category",
  "tags": [
    "tag",
    "tag2"
  ]
}
200
{
  "asset": {
    "id": "gTbzYtmxC4ZaaRSLH0xl",
    "external_id": null,
    "parent_id": null,
    "project_id": null,
    "owner": "admin-user-149@example.com",
    "title": "Title",
    "description": "Desc",
    "category": "category",
    "tags": [
      "tag",
      "tag2"
    ],
    "ai_tags": [],
    "status": "open",
    "media_type": "placeholder",
    "original_filename": null,
    "drop_folder_id": 50,
    "md5_sum": null,
    "created_date": "2023-11-27T09:43:09.943Z",
    "modification_date": "2023-11-27T09:43:09.999Z",
    "deleted": null
  }
}
// Missing parameter
POST /api/v2/drop_folders/51/assets/incoming
{
  "description": "Desc",
  "category": "category",
  "tags": [
    "tag",
    "tag2"
  ]
}
422
{
  "error": "Missing parameter title"
}
// Nonexistant Drop Folder ID
POST /api/v2/drop_folders/non-functioning-id/assets/incoming
{
  "title": "Title",
  "description": "Desc",
  "category": "category",
  "tags": [
    "tag",
    "tag2"
  ]
}
404
{
  "error": "dropfolder not found"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters

POST /api/v2/drop_folders/:drop_folder_id/assets/outgoing
Create outgoing asset to drop folder

Headers

Header name Description
Content-Type
required
application/json
X-API-KEY
required
YOUR_API_KEY

Params

Param name Description
drop_folder_id
required

Drop Folder ID

Validations:

  • Must be a String

title
required

Title

Validations:

  • Must be a String

description
optional

Description

Validations:

  • Must be a String

category
optional

Category

Validations:

  • Must be a String

tags
optional

Tags

Validations:

  • Must be an array of String

external_id
optional

External ID

Validations:

  • Must be a String

url
optional

Media from URL

Validations:

  • Must be a Hash

url[file_url]
required

File URL

Validations:

  • Must be a String

url[filename]
required

Filename

Validations:

  • Must be a String

s3
optional

Media from S3

Validations:

  • Must be a Hash

s3[s3_key]
required

File URL

Validations:

  • Must be a String

s3[filename]
required

Filename

Validations:

  • Must be a String

Examples

// Successful request
POST /api/v2/drop_folders/52/assets/outgoing
{
  "title": "Title",
  "description": "Desc",
  "category": "category",
  "tags": [
    "tag",
    "tag2"
  ]
}
200
{
  "asset": {
    "id": "nVafvsKyLorRFkSowowp",
    "external_id": null,
    "parent_id": null,
    "project_id": null,
    "owner": "admin-user-152@example.com",
    "title": "Title",
    "description": "Desc",
    "category": "category",
    "tags": [
      "tag",
      "tag2"
    ],
    "ai_tags": [],
    "status": "open",
    "media_type": "placeholder",
    "original_filename": null,
    "drop_folder_id": 52,
    "md5_sum": null,
    "created_date": "2023-11-27T09:43:10.619Z",
    "modification_date": "2023-11-27T09:43:10.668Z",
    "deleted": null
  }
}
// Missing parameter
POST /api/v2/drop_folders/53/assets/outgoing
{
  "description": "Desc",
  "category": "category",
  "tags": [
    "tag",
    "tag2"
  ]
}
422
{
  "error": "Missing parameter title"
}
// Nonexistant Drop Folder ID
POST /api/v2/drop_folders/non-functioning-id/assets/outgoing
{
  "title": "Title",
  "description": "Desc",
  "category": "category",
  "tags": [
    "tag",
    "tag2"
  ]
}
404
{
  "error": "dropfolder not found"
}

Errors

Code Description
401 Unauthorized
404 Not found
500 Internal Server Error
422 Missing parameters