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