openapi: 3.0.0
info:
description: 'For more information, see: https://developer.adobe.com/frameio'
license:
name: Adobe
url: https://www.adobe.com/legal/terms.html
title: Frame.io Account Permissions Folder Permissions API
version: v4.0
servers:
- url: https://api.frame.io
variables: {}
security:
- OAuth2: []
- bearer: []
tags:
- description: Manage Folder Permissions and related operations.
name: Folder Permissions
paths:
/v4/accounts/{account_id}/folders/{folder_id}/users:
get:
callbacks: {}
description: 'List user roles for a given folder.
Rate Limits: 100 calls per 1.00 minute(s) per account_user'
operationId: folder_user_roles.index
parameters:
- description: ''
example: f42b495c-abbf-4315-a597-7efec3df5431
in: path
name: account_id
required: true
schema:
$ref: '#/components/schemas/UUID'
- description: ''
example: c9c47544-de89-4fef-bbaa-f89218003079
in: path
name: folder_id
required: true
schema:
$ref: '#/components/schemas/UUID'
- description: Supports including deactivated users in the response. Default is false.
in: query
name: include_deactivated
required: false
schema:
type: boolean
- description: 'Opaque Cursor query param for requests returning paginated results.
NOTE: this value is auto-generated and included as part of links from a previous response. It is not intended to be human readable.
'
in: query
name: after
required: false
schema:
$ref: '#/components/schemas/RequestAfterOpaqueCursor'
- description: ''
in: query
name: page_size
required: false
schema:
$ref: '#/components/schemas/RequestPageSize'
- description: ''
in: query
name: include_total_count
required: false
schema:
$ref: '#/components/schemas/IncludeTotalCount'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserRolesResponse'
description: OK
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
description: Bad request
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
description: Unauthorized
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
description: Forbidden
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
description: Not found
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/Conflict'
description: Conflict
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableContent'
description: Unprocessable content
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
description: Too many requests
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
summary: List folder user roles
tags:
- Folder Permissions
/v4/accounts/{account_id}/folders/{folder_id}/users/{user_id}:
delete:
callbacks: {}
description: 'Remove a user from a given folder.
Rate Limits: 60 calls per 1.00 minute(s) per account_user'
operationId: folder_permissions.delete
parameters:
- description: ''
example: 2f36cc43-0bbd-46d0-b44d-4ca80ab3b1bc
in: path
name: account_id
required: true
schema:
$ref: '#/components/schemas/UUID'
- description: ''
example: e1ab4254-8297-4fca-98dc-8e6d04a73d21
in: path
name: folder_id
required: true
schema:
$ref: '#/components/schemas/UUID'
- description: ''
example: 9848c38e-27ae-4247-b16c-35ecd7c3bb02
in: path
name: user_id
required: true
schema:
$ref: '#/components/schemas/UUID'
responses:
'204':
content:
'*':
schema:
$ref: '#/components/schemas/NoContent'
description: No Content
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
description: Bad request
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
description: Unauthorized
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
description: Forbidden
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
description: Not found
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/Conflict'
description: Conflict
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableContent'
description: Unprocessable content
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
description: Too many requests
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
summary: Remove a user from a given folder
tags:
- Folder Permissions
patch:
callbacks: {}
description: "Update user roles for the given folder if the user is already added to the folder. If the user is\n not added to the folder, the user will be added with the given role.
Rate Limits: 10 calls per 1.00 minute(s) per account_user"
operationId: folder_user_roles.update
parameters:
- description: ''
example: 93f60820-6b16-4334-8130-b8d2c502503a
in: path
name: account_id
required: true
schema:
$ref: '#/components/schemas/UUID'
- description: ''
example: a411d02f-34ff-4485-b532-5344d6afa690
in: path
name: folder_id
required: true
schema:
$ref: '#/components/schemas/UUID'
- description: ''
example: b85a0570-e1b5-488c-b777-ca0309757ca9
in: path
name: user_id
required: true
schema:
$ref: '#/components/schemas/UUID'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserRolesParams'
description: Update user roles params body
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserRolesResponse'
description: OK
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
description: Bad request
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
description: Unauthorized
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
description: Forbidden
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
description: Not found
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/Conflict'
description: Conflict
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableContent'
description: Unprocessable content
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
description: Too many requests
headers:
x-ratelimit-limit:
description: Rate limit
example: 100
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-remaining:
description: Rate limit remaining
example: 99
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
x-ratelimit-window:
description: Rate limit window in milliseconds
example: 60000
required: true
schema:
format: int32
minimum: 0
type: integer
style: simple
summary: Update user roles for the given folder
tags:
- Folder Permissions
components:
schemas:
User:
description: User details
example:
active: true
avatar_url: https://assets.frame.io/uploads/cd58cb8e-24b3-4448-8d0f-9532fcd04d11/original.png?response-content-disposition=attachment%3B+filename%3D%22foo.png&Expires=1729857600&Signature=L09h0pi82dCrMYjr9lMHBragByWYh1&Key-Pair-Id=KKI497NESTHMN
email: user_email@example.com
id: 196C1A5666BF4EB00A49411B@176719f5667c82b4494214.e
name: Jon Doe
properties:
active:
description: User active status
nullable: true
type: boolean
adobe_user_id:
description: Adobe user ID
nullable: true
type: string
avatar_url:
description: User avatar image url
nullable: true
type: string
email:
description: User email
type: string
id:
description: User ID - can be null for invited users with no frame account
nullable: true
type: string
name:
description: User name
nullable: true
type: string
required:
- id
- name
- email
- avatar_url
- active
title: User
type: object
UnprocessableContent:
example:
errors:
- detail: Unprocessable content
properties:
errors:
items:
additionalProperties: false
properties:
detail:
type: string
source:
properties:
pointer:
type: string
type: object
title:
type: string
required:
- detail
type: object
type: array
required:
- errors
title: UnprocessableContent
type: object
Conflict:
example:
errors:
- detail: Conflict
properties:
errors:
items:
additionalProperties: false
properties:
detail:
type: string
source:
properties:
pointer:
type: string
type: object
title:
type: string
required:
- detail
type: object
type: array
required:
- errors
title: Conflict
type: object
UpdateUserRolesResponse:
example:
data:
role: editor
properties:
data:
additionalProperties: false
properties:
role:
enum:
- full_access
- editor
- edit_only
- commenter
- viewer
type: string
type: object
required:
- data
title: UpdateUserRolesResponse
type: object
UpdateUserRolesParams:
additionalProperties: false
description: Update user roles params
example:
data:
role: editor
properties:
data:
additionalProperties: false
properties:
role:
enum:
- full_access
- editor
- edit_only
- commenter
- viewer
type: string
required:
- role
type: object
required:
- data
title: UpdateUserRolesParams
type: object
RequestAfterOpaqueCursor:
description: 'Opaque Cursor query param for requests returning paginated results.
NOTE: this value is auto-generated and included as part of links from a previous response. It is not intended to be human readable.
'
example:
nullable: true
title: RequestAfterOpaqueCursor
type: string
Unauthorized:
example:
errors:
- detail: Unauthorized
properties:
errors:
items:
additionalProperties: false
properties:
detail:
type: string
source:
properties:
pointer:
type: string
type: object
title:
type: string
required:
- detail
type: object
type: array
required:
- errors
title: Unauthorized
type: object
Links:
additionalProperties: false
description: Links to paginated data
example:
next: /v4/accounts/1234/workspaces/5678/projects?after=g3QAAAACZAACaWRtAAAAJGFiMmNiY2QzLWFkODQtNDQwMC05YTRkLWE1ZDRkMGE4ZTIxM2QABG5hbWVtAAAACVByb2plY3QgMg==
properties:
next:
description: '"Link to next page of data.
This link is the request path with the addition of the `after` query parameter to fetch the next page of results.
Optional query parameters `page_size` and `include_total_count` are supported when paginating data."
'
nullable: true
type: string
required:
- next
title: Links
type: object
NotFound:
example:
errors:
- detail: Not found
properties:
errors:
items:
additionalProperties: false
properties:
detail:
type: string
source:
properties:
pointer:
type: string
type: object
title:
type: string
required:
- detail
type: object
type: array
required:
- errors
title: NotFound
type: object
RequestPageSize:
default: 50
description: Page size query param for requests
example: 10
format: int32
maximum: 100
minimum: 1
title: RequestPageSize
type: integer
IncludeTotalCount:
default: false
description: Page query param to include the count of all entities
example: false
title: IncludeTotalCount
type: boolean
UUID:
description: A UUID string that uniquely identifies a Frame.io entity.
example: b2702c44-c6da-4bb6-8bbd-be6e547ccf1b
format: uuid
title: UUID
type: string
BadRequest:
example:
errors:
- detail: Bad request
properties:
errors:
items:
additionalProperties: false
properties:
detail:
type: string
source:
properties:
pointer:
type: string
type: object
title:
type: string
required:
- detail
type: object
type: array
required:
- errors
title: BadRequest
type: object
TooManyRequests:
example:
errors:
- detail: Too many requests
properties:
errors:
items:
additionalProperties: false
properties:
detail:
type: string
source:
properties:
pointer:
type: string
type: object
title:
type: string
required:
- detail
type: object
type: array
required:
- errors
title: TooManyRequests
type: object
Forbidden:
example:
errors:
- detail: Forbidden
properties:
errors:
items:
additionalProperties: false
properties:
detail:
type: string
source:
properties:
pointer:
type: string
type: object
title:
type: string
required:
- detail
type: object
type: array
required:
- errors
title: Forbidden
type: object
NoContent:
description: Response schema for generic no content response.
example: ''
title: NoContent
type: string
UserRole:
description: Frame.io User Role
example:
role: full_access
user:
active: true
avatar_url: https://assets.frame.io/uploads/cd58cb8e-24b3-4448-8d0f-9532fcd04d11/original.png?response-content-disposition=attachment%3B+filename%3D%22foo.png&Expires=1729857600&Signature=L09h0pi82dCrMYjr9lMHBragByWYh1&Key-Pair-Id=KKI497NESTHMN
email: user_email@example.com
id: 196C1A5666BF4EB00A49411B@176719f5667c82b4494214.e
name: Jon Doe
properties:
role:
enum:
- workspace_admin
- full_access
- editor
- edit_only
- commenter
- viewer
- admin
- owner
type: string
user:
$ref: '#/components/schemas/User'
required:
- role
- user
title: UserRole
type: object
UserRolesResponse:
description: Frame.io user role details
example:
data:
- role: full_access
user:
active: true
avatar_url: https://assets.frame.io/uploads/cd58cb8e-24b3-4448-8d0f-9532fcd04d11/original.png?response-content-disposition=attachment%3B+filename%3D%22foo.png&Expires=1729857600&Signature=L09h0pi82dCrMYjr9lMHBragByWYh1&Key-Pair-Id=KKI497NESTHMN
email: user_email@example.com
id: 196C1A5666BF4EB00A49411B@176719f5667c82b4494214.e
name: Jon Doe
links:
next: /v4/accounts/123/folders/123/users
total_count: 10
properties:
data:
description: User Roles
items:
$ref: '#/components/schemas/UserRole'
type: array
links:
$ref: '#/components/schemas/Links'
total_count:
description: Total count
nullable: true
type: integer
required:
- data
- links
title: UserRolesResponse
type: object
securitySchemes:
OAuth2:
description: 'For more information, see: https://developer.adobe.com/frameio'
flows:
authorizationCode:
authorizationUrl: https://ims-na1.adobelogin.com/ims/authorize/v2
refreshUrl: https://ims-na1.adobelogin.com/ims/token/v3
scopes:
additional_info.roles: Adobe Commerce Admin
offline_access: Maintain access to the data the user had consented to for refresh tokens
openid: Sign in a user
profile: Read the user's basic information
tokenUrl: https://ims-na1.adobelogin.com/ims/token/v3
type: oauth2
bearer:
description: 'For more information, see: https://developer.adobe.com/frameio'
flows:
authorizationCode:
authorizationUrl: https://ims-na1.adobelogin.com/ims/authorize/v2
refreshUrl: https://ims-na1.adobelogin.com/ims/token/v3
scopes:
additional_info.roles: Adobe Commerce Admin
offline_access: Maintain access to the data the user had consented to for refresh tokens
openid: Sign in a user
profile: Read the user's basic information
tokenUrl: https://ims-na1.adobelogin.com/ims/token/v3
type: oauth2
s2s_auth:
description: Server to server authentication flow
flows:
clientCredentials:
scopes:
AdobeID: Adobe ID
frame.s2s.all: Frame.io Server to Server access
openid: Sign in a user
tokenUrl: https://ims-na1.adobelogin.com/ims/token/v3
type: oauth2
x-tagGroups:
- name: Accounts, Users and Permissions
tags:
- Accounts
- Users
- Account Permissions
- Workspace Permissions
- Project Permissions
- Folder Permissions
- Groups
- name: Workspace Management
tags:
- Projects
- Workspaces
- Shares
- name: Assets
tags:
- Files
- Folders
- Version Stacks
- name: Comments
tags:
- Comments
- name: Collections
tags:
- Collections
- name: Metadata
tags:
- Metadata Fields
- Metadata
- name: Integrations
tags:
- Webhooks
- Custom Actions