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 Workspace Permissions API version: v4.0 servers: - url: https://api.frame.io variables: {} security: - OAuth2: [] - bearer: [] tags: - description: Manage Workspace Permissions and related operations. name: Workspace Permissions paths: /v4/accounts/{account_id}/workspaces/{workspace_id}/users/{user_id}: delete: callbacks: {} description: 'Remove a user from a given workspace.
Rate Limits: 60 calls per 1.00 minute(s) per account_user' operationId: workspace_user_roles.delete parameters: - description: '' example: 3aebf3b5-8b71-436c-8c1d-6c9aa1099bf6 in: path name: account_id required: true schema: $ref: '#/components/schemas/FrameOrAdobeId' - description: '' example: 5481dcfa-6825-45cc-ad03-b6d1a03e12d3 in: path name: workspace_id required: true schema: $ref: '#/components/schemas/UUID' - description: '' example: 9007b7b2-b3d9-4a13-bf00-2b8626dfb2ee 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 workspace tags: - Workspace Permissions patch: callbacks: {} description: "Update user roles for the given workspace if the user is already added to the workspace. If the user is\n not added to the workspace, the user will be added with the given role.
Rate Limits: 10 calls per 1.00 minute(s) per account_user" operationId: workspace_user_roles.update parameters: - description: '' example: b754ae40-3b7a-4d89-b23d-dba2255f2fec in: path name: account_id required: true schema: $ref: '#/components/schemas/FrameOrAdobeId' - description: '' example: 6c6567b3-20af-4cc8-a4fd-9aa52196de7c in: path name: workspace_id required: true schema: $ref: '#/components/schemas/UUID' - description: '' example: 72575ceb-f56c-4447-bc4b-2cd773b3860b in: path name: user_id required: true schema: $ref: '#/components/schemas/UUID' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateWorkspaceRoleParams' description: Update user roles params body required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpdateWorkspaceRoleResponse' 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 workspace tags: - Workspace Permissions /v4/accounts/{account_id}/workspaces/{workspace_id}/users: get: callbacks: {} description: 'List user roles for a given workspace.
Rate Limits: 100 calls per 1.00 minute(s) per account_user' operationId: workspace_user_roles.index parameters: - description: '' example: 217af13a-ff57-4d99-84db-eb55c855ebb0 in: path name: account_id required: true schema: $ref: '#/components/schemas/FrameOrAdobeId' - description: '' example: 9cdc08c3-bd0f-46cc-aa78-c61534a54fbf in: path name: workspace_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: Sort users by query params in: query name: sort required: false schema: description: Sort query parameter for users enum: - role_asc - role_desc - name_asc - name_desc - email_asc - email_desc example: role_asc title: UserRoleSort type: string - 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/WorkspaceUserRolesResponse' 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 workspace user roles tags: - Workspace Permissions components: schemas: WorkspaceRole: description: A workspace role. enum: - workspace_admin - full_access - editor - edit_only - commenter - viewer example: editor title: WorkspaceRole type: string 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 WorkspaceUserRolesResponse: description: Frame.io workspace 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/workspaces/123/users total_count: 10 properties: data: description: User Roles items: $ref: '#/components/schemas/WorkspaceUserRole' type: array links: $ref: '#/components/schemas/Links' total_count: description: Total count nullable: true type: integer required: - data - links title: WorkspaceUserRolesResponse type: object 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 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 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 IncludeTotalCount: default: false description: Page query param to include the count of all entities example: false title: IncludeTotalCount type: boolean 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 NoContent: description: Response schema for generic no content response. example: '' title: NoContent type: string 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 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 UUID: description: A UUID string that uniquely identifies a Frame.io entity. example: b2702c44-c6da-4bb6-8bbd-be6e547ccf1b format: uuid title: UUID type: string UpdateWorkspaceRoleParams: additionalProperties: false description: Update workspace role params example: data: role: editor properties: data: additionalProperties: false properties: role: $ref: '#/components/schemas/WorkspaceRole' required: - role type: object required: - data title: UpdateWorkspaceRoleParams type: object FrameOrAdobeId: description: A Frame.io or Adobe entity identifier. Typically a Frame.io UUID. But for accounts, projects, folders, files, and version stacks that reside in Adobe cloud storage, which is the case for Workfront-connected accounts and projects, an Adobe-assigned id may also be used interchangeably. These ids must be prefixed with `adobe:` (e.g. `adobe:` for an account, `adobe:` for a project or folder, `adobe:`adobe:|` for a file asset). example: b2702c44-c6da-4bb6-8bbd-be6e547ccf1b title: FrameOrAdobeId type: string 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 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 UpdateWorkspaceRoleResponse: example: data: role: editor properties: data: additionalProperties: false properties: role: $ref: '#/components/schemas/WorkspaceRole' type: object required: - data title: UpdateWorkspaceRoleResponse 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 WorkspaceUserRole: description: Frame.io Workspace 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: - full_access - editor - edit_only - commenter - viewer - admin - owner - workspace_admin type: string user: $ref: '#/components/schemas/User' required: - role - user title: WorkspaceUserRole 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