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 Comments API
version: v4.0
servers:
- url: https://api.frame.io
variables: {}
security:
- OAuth2: []
- bearer: []
tags:
- description: Manage Comments and related operations.
name: Comments
paths:
/v4/accounts/{account_id}/comments/{comment_id}/attachments/{attachment_id}:
delete:
callbacks: {}
description: 'Delete an attachment from a comment.
Rate Limits: 60 calls per 1.00 minute(s) per account_user'
operationId: comments.delete_attachment
parameters:
- description: ''
example: 669978f7-2e79-4bce-a03b-6a348eedfafa
in: path
name: account_id
required: true
schema:
$ref: '#/components/schemas/FrameOrAdobeId'
- description: ''
example: 3f57e071-2443-4959-8935-d278f6a34938
in: path
name: comment_id
required: true
schema:
$ref: '#/components/schemas/UUID'
- description: ''
example: 32e6e5bd-7748-431b-8f16-bbc17c50bfd5
in: path
name: attachment_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: Delete comment attachment
tags:
- Comments
/v4/accounts/{account_id}/comments/{comment_id}/attachments:
post:
callbacks: {}
description: 'Create an attachment for an existing comment.
Rate Limits: 60 calls per 1.00 minute(s) per account_user'
operationId: comments.create_attachment
parameters:
- description: ''
example: f660423f-018b-47aa-84c2-e968f80c9b5a
in: path
name: account_id
required: true
schema:
$ref: '#/components/schemas/FrameOrAdobeId'
- description: ''
example: a0a8ddeb-1dbf-42a6-a236-95c2ce7af593
in: path
name: comment_id
required: true
schema:
$ref: '#/components/schemas/UUID'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAttachmentParams'
description: Comment attachment params body
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CommentAttachmentResponse'
description: Created
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: Create comment attachment
tags:
- Comments
/v4/accounts/{account_id}/comments/{comment_id}:
delete:
callbacks: {}
description: 'Delete comment from an asset.
Rate Limits: 60 calls per 1.00 minute(s) per account_user'
operationId: comments.delete
parameters:
- description: ''
example: 3118d9c7-34c8-4242-aa54-d511db1a37ec
in: path
name: account_id
required: true
schema:
$ref: '#/components/schemas/FrameOrAdobeId'
- description: ''
example: 46728852-0f85-49ea-b9cb-6759b0d8c159
in: path
name: comment_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: Delete comment
tags:
- Comments
get:
callbacks: {}
description: 'Show a single comment on a file.
Rate Limits: 100 calls per 1.00 minute(s) per account_user'
operationId: comments.show
parameters:
- description: ''
example: 66082a8b-7e17-40d1-ae77-d37e5af48d78
in: path
name: account_id
required: true
schema:
$ref: '#/components/schemas/FrameOrAdobeId'
- description: ''
example: c1b0c99d-ac3f-435c-a1fb-ea916900d1ad
in: path
name: comment_id
required: true
schema:
$ref: '#/components/schemas/UUID'
- description: ''
in: query
name: timestamp_as_timecode
required: false
schema:
description: Enables display of timestamp as timecode (HH:MM:SS:FF) when true
type: boolean
- description: ''
in: query
name: include
required: false
schema:
description: Include query parameter for comments
enum:
- owner
- replies
example: owner
title: CommentInclude
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CommentWithIncludesResponse'
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: Show comment
tags:
- Comments
patch:
callbacks: {}
description: 'Update comment on given asset.
Rate Limits: 10 calls per 1.00 minute(s) per account_user'
operationId: comments.update
parameters:
- description: ''
example: 6c7358f4-0e2b-4d65-81ce-2d86b2f74df8
in: path
name: account_id
required: true
schema:
$ref: '#/components/schemas/FrameOrAdobeId'
- description: ''
example: 51165bfc-7544-42e0-9aea-4f0c54d36599
in: path
name: comment_id
required: true
schema:
$ref: '#/components/schemas/UUID'
- description: ''
in: query
name: timestamp_as_timecode
required: false
schema:
description: Enables display of timestamp as timecode (HH:MM:SS:FF) when true
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCommentParams'
description: Comment params body
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CommentResponse'
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 comment
tags:
- Comments
/v4/accounts/{account_id}/files/{file_id}/comments:
get:
callbacks: {}
description: 'List comments on a given asset.
Rate Limits: 100 calls per 1.00 minute(s) per account_user'
operationId: comments.index
parameters:
- description: ''
example: d9536267-4d48-4969-a4ae-328027176e5a
in: path
name: account_id
required: true
schema:
$ref: '#/components/schemas/FrameOrAdobeId'
- description: ''
example: ae27bb7b-efb4-4101-b445-acb0cb4933a7
in: path
name: file_id
required: true
schema:
$ref: '#/components/schemas/FrameOrAdobeId'
- description: ''
in: query
name: timestamp_as_timecode
required: false
schema:
description: Enables display of timestamp as timecode (HH:MM:SS:FF) when true
type: boolean
- description: ''
in: query
name: include
required: false
schema:
description: Include query parameter for comments
enum:
- owner
- replies
example: owner
title: CommentInclude
type: string
- description: Sort comments by query params
in: query
name: sort
required: false
schema:
description: Sort query parameter for comments. Include query params for owner is required when sorting by owner.
enum:
- owner_asc
- owner_desc
- completed_at_asc
- completed_at_desc
- created_at_asc
- created_at_desc
example: completed_at_asc
title: CommentSort
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/CommentsWithIncludesResponse'
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 comments
tags:
- Comments
post:
callbacks: {}
description: 'Create a comment on a file.
Rate Limits: 100 calls per 1.00 minute(s) per account_user'
operationId: comments.create
parameters:
- description: ''
example: 02efe07a-28a3-43f2-8611-764d7ccc61f0
in: path
name: account_id
required: true
schema:
$ref: '#/components/schemas/FrameOrAdobeId'
- description: ''
example: 4bd7f46d-95bb-43ac-b3bd-456a56f7da50
in: path
name: file_id
required: true
schema:
$ref: '#/components/schemas/FrameOrAdobeId'
- description: ''
in: query
name: timestamp_as_timecode
required: false
schema:
description: Enables display of timestamp as timecode (HH:MM:SS:FF) when true
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCommentParams'
description: Comment params body
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CommentResponse'
description: Created
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: Create comment
tags:
- Comments
components:
schemas:
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
Link:
example:
end_index: 13
start_index: 5
text: Test User
url: https://www.example.com
properties:
end_index:
description: End index of link text
minimum: 1
type: integer
start_index:
description: Start index of link text
format: int32
minimum: 0
type: integer
text:
description: Link text
type: string
url:
description: Link URL
type: string
required:
- start_index
- end_index
- text
- url
title: Link
type: object
CommentsWithIncludesResponse:
example:
data:
- anchor:
x: 0.5
y: 0.5
annotation: annotation
attachments:
- created_at: '2024-02-02T21:19:24.828948Z'
file_size: 1024000
id: 325ce490-eeac-4b84-879d-57d2a939bfae
media_type: image/png
name: screenshot.png
upload_urls:
- https://s3.amazonaws.com/bucket/part1?signature=...
completed_at: null
completer_id: null
created_at: '2024-02-02T21:19:24.828948Z'
duration: 10
file_id: 4ae08df1-b419-4897-aba5-560198a18237
id: ec771386-c3a8-4ed9-bb94-c8e0a2b84bd8
links:
- end_index: 13
start_index: 5
text: Test User
url: https://www.example.com
mentions:
- end_index: 13
start_index: 5
text: Test User
user_id: 38f42ae2-f44e-4bc3-9c34-b22fbcc57fbb
owner:
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
page: 1
replies: []
text: This is great!
text_edited_at: '2024-02-02T21:19:24.828948Z'
text_review_annotation:
bounds:
- height: 42.0
width: 130.0
x: 12.5
y: 24.0
selection_text: existing copy
suggested_text: updated copy
text_review_annotation_type: replace
timestamp: 123
updated_at: '2024-02-02T21:19:24.828948Z'
- anchor:
x: 0.5
y: 0.5
annotation: annotation
attachments:
- created_at: '2024-02-02T21:19:24.828948Z'
file_size: 1024000
id: 325ce490-eeac-4b84-879d-57d2a939bfae
media_type: image/png
name: screenshot.png
upload_urls:
- https://s3.amazonaws.com/bucket/part1?signature=...
completed_at: null
completer_id: null
created_at: '2024-02-02T21:19:24.828948Z'
duration: 10
file_id: 4ae08df1-b419-4897-aba5-560198a18237
id: ec771386-c3a8-4ed9-bb94-c8e0a2b84bd8
links:
- end_index: 13
start_index: 5
text: Test User
url: https://www.example.com
mentions:
- end_index: 13
start_index: 5
text: Test User
user_id: 38f42ae2-f44e-4bc3-9c34-b22fbcc57fbb
owner:
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
page: 1
replies:
- anchor:
x: 0.5
y: 0.5
annotation: annotation
attachments:
- created_at: '2024-02-02T21:19:24.828948Z'
file_size: 1024000
id: 325ce490-eeac-4b84-879d-57d2a939bfae
media_type: image/png
name: screenshot.png
upload_urls:
- https://s3.amazonaws.com/bucket/part1?signature=...
completed_at: null
completer_id: null
created_at: '2024-02-02T21:19:24.828948Z'
duration: 10
file_id: 4ae08df1-b419-4897-aba5-560198a18237
id: ec771386-c3a8-4ed9-bb94-c8e0a2b84bd8
links:
- end_index: 13
start_index: 5
text: Test User
url: https://www.example.com
mentions:
- end_index: 13
start_index: 5
text: Test User
user_id: 38f42ae2-f44e-4bc3-9c34-b22fbcc57fbb
page: 1
text: This is great!
text_edited_at: '2024-02-02T21:19:24.828948Z'
text_review_annotation:
bounds:
- height: 42.0
width: 130.0
x: 12.5
y: 24.0
selection_text: existing copy
suggested_text: updated copy
text_review_annotation_type: replace
timestamp: 123
updated_at: '2024-02-02T21:19:24.828948Z'
text: This is great!
text_edited_at: '2024-02-02T21:19:24.828948Z'
text_review_annotation:
bounds:
- height: 42.0
width: 130.0
x: 12.5
y: 24.0
selection_text: existing copy
suggested_text: updated copy
text_review_annotation_type: replace
timestamp: 123
updated_at: '2024-02-02T21:19:24.828948Z'
links:
next: /v4/accounts/123/files/123/comments
total_count: 10
properties:
data:
description: Comments
items:
$ref: '#/components/schemas/CommentWithIncludes'
type: array
links:
$ref: '#/components/schemas/Links'
total_count:
description: Total count
nullable: true
type: integer
required:
- data
- links
title: CommentsWithIncludesResponse
type: object
CommentAttachmentResponse:
example:
data:
created_at: '2025-11-11T17:41:34.358394Z'
file_size: 1024000
id: 1a3ccfb4-c431-4f39-b0b6-6b146b9beefe
media_type: image/png
name: Comp2.png
upload_urls:
- https://s3.amazonaws.com/bucket/part1?signature=...
properties:
data:
$ref: '#/components/schemas/CommentAttachment'
title: CommentAttachmentResponse
type: object
TimeStamp:
example: 00:00:02:12
oneOf:
- description: Comment timecode in media. Only allowed when file type is 'audio', 'stream', or 'video'.
format: HH:MM:SS:FF
nullable: true
type: string
- description: Comment frame in media. Only allowed when file type is 'audio', 'stream', or 'video'.
format: int32
minimum: 0
nullable: true
type: integer
title: TimeStamp
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
Comment:
example:
anchor:
x: 0.5
y: 0.5
annotation: annotation
attachments:
- created_at: '2024-02-02T21:19:24.828948Z'
file_size: 1024000
id: 325ce490-eeac-4b84-879d-57d2a939bfae
media_type: image/png
name: screenshot.png
upload_urls:
- https://s3.amazonaws.com/bucket/part1?signature=...
completed_at: null
completer_id: null
created_at: '2024-02-02T21:19:24.828948Z'
duration: 10
file_id: 4ae08df1-b419-4897-aba5-560198a18237
id: ec771386-c3a8-4ed9-bb94-c8e0a2b84bd8
links:
- end_index: 13
start_index: 5
text: Test User
url: https://www.example.com
mentions:
- end_index: 13
start_index: 5
text: Test User
user_id: 38f42ae2-f44e-4bc3-9c34-b22fbcc57fbb
page: 1
text: This is great!
text_edited_at: '2024-02-02T21:19:24.828948Z'
text_review_annotation:
bounds:
- height: 42.0
width: 130.0
x: 12.5
y: 24.0
selection_text: existing copy
suggested_text: updated copy
text_review_annotation_type: replace
timestamp: 123
updated_at: '2024-02-02T21:19:24.828948Z'
properties:
anchor:
allOf:
- $ref: '#/components/schemas/Anchor'
description: Comment anchor location. {(x, y) | 0 <= x <= 1, 0 <= y <= 1}.
nullable: true
type: object
annotation:
nullable: true
type: string
attachments:
description: Attachments associated with this comment (0-6 attachments allowed)
items:
$ref: '#/components/schemas/CommentAttachment'
nullable: true
type: array
completed_at:
description: Completion timestamp
format: date-time
nullable: true
type: string
completer_id:
description: ID of user who marked the comment as completed
format: uuid
nullable: true
type: string
created_at:
description: Creation timestamp
format: date-time
type: string
duration:
description: Duration of comment in frames. Requires presence of timestamp parameter
format: int32
minimum: 1
nullable: true
type: integer
file_id:
description: File ID
format: uuid
type: string
id:
description: Comment ID
format: uuid
type: string
links:
description: Links
items:
$ref: '#/components/schemas/Link'
type: array
mentions:
description: Mentions
items:
$ref: '#/components/schemas/Mention'
type: array
page:
description: Document page
nullable: true
type: integer
text:
description: Comment text
type: string
text_edited_at:
description: Text edited timestamp
format: date-time
nullable: true
type: string
text_review_annotation:
allOf:
- $ref: '#/components/schemas/TextReviewAnnotation'
description: Text review annotation details for comments left on text documents.
nullable: true
type: object
timestamp:
$ref: '#/components/schemas/TimeStamp'
updated_at:
description: Update timestamp
format: date-time
type: string
required:
- id
- file_id
- text
- annotation
- page
- text_edited_at
- timestamp
- duration
- text_review_annotation
- created_at
- updated_at
- completed_at
- completer_id
- attachments
- mentions
- links
title: Comment
type: object
Mention:
example:
end_index: 13
start_index: 5
text: Test User
user_id: 38f42ae2-f44e-4bc3-9c34-b22fbcc57fbb
properties:
end_index:
description: End index of mention text
type: integer
start_index:
description: Start index of mention text
type: integer
text:
description: Mention text
type: string
user_id:
description: Mentioned user ID
format: uuid
type: string
required:
- user_id
- start_index
- end_index
- text
title: Mention
type: object
Anchor:
example:
x: 0.5
y: 0.5
properties:
x:
description: Horizontal comment anchor location.
format: float
maximum: 1.0
minimum: 0.0
type: number
y:
description: Vertical comment anchor location.
format: float
maximum: 1.0
minimum: 0.0
type: number
required:
- x
- y
title: Anchor
type: object
UpdateCommentParams:
additionalProperties: false
description: Frame.io update comment params
example:
data:
anchor:
x: 0.5
y: 0.5
annotation: '[{"tool":"rect","color":"#F22237","size":8,"x":0.277726001863933,"y":0.12909555568499534,"w":0.3153168321877913,"h":0.5308131407269339,"ix":0.277726001863933,"iy":0.12909555568499534,"radius":8}]'
completed: false
duration: 10
links:
- end_index: 13
start_index: 5
url: https://www.example.com
page: 4
text: This is great!
text_review_annotation:
selection_text: existing copy
suggested_text: updated copy
timestamp: 100
properties:
data:
additionalProperties: false
properties:
anchor:
allOf:
- $ref: '#/components/schemas/Anchor'
description: Comment anchor location. {(x, y) | 0 <= x <= 1, 0 <= y <= 1}.
nullable: true
type: object
annotation:
description: JSON geometry for on-screen drawings. Allowed for document, image, video, or stream file types. JSON must be stringified.
maxLength: 200000
nullable: true
type: string
completed:
description: Comment completion status
nullable: true
type: boolean
duration:
description: Duration of comment in frames. Requires presence of timestamp parameter
format: int32
minimum: 1
nullable: true
type: integer
links:
description: Comment text links.
items:
$ref: '#/components/schemas/LinkParams'
type: array
page:
description: Document page. Only allowed when file type is a pdf document
minimum: 1
nullable: true
type: integer
text:
description: Comment text
maxLength: 40000
minLength: 1
type: string
text_review_annotation:
$ref: '#/components/schemas/TextReviewAnnotationUpdate'
timestamp:
$ref: '#/components/schemas/TimeStamp'
type: object
required:
- data
title: UpdateCommentParams
type: object
TextReviewAnnotationBounds:
example:
height: 42.0
width: 130.0
x: 12.5
y: 24.0
properties:
height:
description: Height of the rectangle
minimum: 0
type: number
width:
description: Width of the rectangle
minimum: 0
type: number
x:
description: Left corner position.
type: number
y:
description: Bottom corner position.
type: number
required:
- x
- y
- width
- height
title: TextReviewAnnotationBounds
type: object
TextReviewAnnotationUpdate:
description: Payload for updating an existing text review annotation.
example:
selection_text: existing copy
suggested_text: updated copy
minProperties: 1
properties:
bounds:
description: Optional bounds array. When omitted, previously stored bounds are preserved.
items:
$ref: '#/components/schemas/TextReviewAnnotationBounds'
minItems: 1
type: array
selection_text:
description: Optional selection text override.
nullable: true
type: string
suggested_text:
description: Optional suggestion override.
maxLength: 3000
nullable: true
type: string
text_review_annotation_type:
description: Optional annotation type override.
enum:
- highlight
- insert
- remove
- replace
type: string
title: TextReviewAnnotationUpdate
type: object
IncludeTotalCount:
default: false
description: Page query param to include the count of all entities
example: false
title: IncludeTotalCount
type: boolean
CommentAttachment:
example:
created_at: '2024-02-02T21:19:24.828948Z'
file_size: 1024000
id: 325ce490-eeac-4b84-879d-57d2a939bfae
media_type: image/png
name: screenshot.png
upload_urls:
- https://s3.amazonaws.com/bucket/part1?signature=...
properties:
created_at:
description: Creation timestamp
format: date-time
type: string
file_size:
description: Attachment file size in bytes (up to 5TB)
type: integer
id:
description: Comment attachment ID
format: uuid
type: string
media_type:
description: File media type
nullable: true
type: string
name:
description: File name for the attachment
type: string
upload_urls:
description: Comment attachment upload URLs. Number of URLs returned will vary depending on the file size.
items:
type: string
nullable: true
type: array
required:
- id
- name
- file_size
- media_type
- created_at
title: CommentAttachment
type: object
CreateAttachmentParams:
additionalProperties: false
description: Request body for creating a comment attachment
example:
data:
file_size: 1024000
media_type: image/png
name: screenshot.png
properties:
data:
$ref: '#/components/schemas/AttachmentInput'
required:
- data
title: CreateAttachmentParams
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
AttachmentInput:
additionalProperties: false
description: Input for creating a comment attachment
example:
file_size: 1024000
media_type: image/png
name: screenshot.png
properties:
file_size:
description: Attachment file size in bytes (up to 5TB)
maximum: 5000000000000
minimum: 1
type: integer
media_type:
description: File media type
maxLength: 255
minLength: 1
type: string
name:
description: Filename
maxLength: 255
minLength: 1
type: string
required:
- name
- file_size
- media_type
title: AttachmentInput
type: object
NoContent:
description: Response schema for generic no content response.
example: ''
title: NoContent
type: string
CommentResponse:
example:
data:
anchor:
x: 0.5
y: 0.5
annotation: annotation
attachments:
- created_at: '2024-02-02T21:19:24.828948Z'
file_size: 1024000
id: 325ce490-eeac-4b84-879d-57d2a939bfae
media_type: image/png
name: screenshot.png
upload_urls:
- https://s3.amazonaws.com/bucket/part1?signature=...
completed_at: null
completer_id: null
created_at: '2024-02-02T21:19:24.828948Z'
duration: 10
file_id: 4ae08df1-b419-4897-aba5-560198a18237
id: ec771386-c3a8-4ed9-bb94-c8e0a2b84bd8
links:
- end_index: 13
start_index: 5
text: Test User
url: https://www.example.com
mentions:
- end_index: 13
start_index: 5
text: Test User
user_id: 38f42ae2-f44e-4bc3-9c34-b22fbcc57fbb
page: 1
text: This is great!
text_edited_at: '2024-02-02T21:19:24.828948Z'
text_review_annotation:
bounds:
- height: 42.0
width: 130.0
x: 12.5
y: 24.0
selection_text: existing copy
suggested_text: updated copy
text_review_annotation_type: replace
timestamp: 123
updated_at: '2024-02-02T21:19:24.828948Z'
properties:
data:
$ref: '#/components/schemas/Comment'
required:
- data
title: CommentResponse
type: object
CommentWithIncludes:
allOf:
- $ref: '#/components/schemas/Comment'
- properties:
owner:
$ref: '#/components/schemas/User'
replies:
description: Replies
items:
$ref: '#/components/schemas/Comment'
type: array
type: object
example:
anchor:
x: 0.5
y: 0.5
annotation: annotation
attachments:
- created_at: '2024-02-02T21:19:24.828948Z'
file_size: 1024000
id: 325ce490-eeac-4b84-879d-57d2a939bfae
media_type: image/png
name: screenshot.png
upload_urls:
- https://s3.amazonaws.com/bucket/part1?signature=...
completed_at: null
completer_id: null
created_at: '2024-02-02T21:19:24.828948Z'
duration: 10
file_id: 4ae08df1-b419-4897-aba5-560198a18237
id: ec771386-c3a8-4ed9-bb94-c8e0a2b84bd8
links:
- end_index: 13
start_index: 5
text: Test User
url: https://www.example.com
mentions:
- end_index: 13
start_index: 5
text: Test User
user_id: 38f42ae2-f44e-4bc3-9c34-b22fbcc57fbb
owner:
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
page: 1
replies: []
text: This is great!
text_edited_at: '2024-02-02T21:19:24.828948Z'
text_review_annotation:
bounds:
- height: 42.0
width: 130.0
x: 12.5
y: 24.0
selection_text: existing copy
suggested_text: updated copy
text_review_annotation_type: replace
timestamp: 123
updated_at: '2024-02-02T21:19:24.828948Z'
title: CommentWithIncludes
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
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
CommentWithIncludesResponse:
example:
data:
anchor:
x: 0.5
y: 0.5
annotation: annotation
attachments:
- created_at: '2024-02-02T21:19:24.828948Z'
file_size: 1024000
id: 325ce490-eeac-4b84-879d-57d2a939bfae
media_type: image/png
name: screenshot.png
upload_urls:
- https://s3.amazonaws.com/bucket/part1?signature=...
completed_at: null
completer_id: null
created_at: '2024-02-02T21:19:24.828948Z'
duration: 10
file_id: 4ae08df1-b419-4897-aba5-560198a18237
id: ec771386-c3a8-4ed9-bb94-c8e0a2b84bd8
links:
- end_index: 13
start_index: 5
text: Test User
url: https://www.example.com
mentions:
- end_index: 13
start_index: 5
text: Test User
user_id: 38f42ae2-f44e-4bc3-9c34-b22fbcc57fbb
owner:
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
page: 1
replies: []
text: This is great!
text_edited_at: '2024-02-02T21:19:24.828948Z'
text_review_annotation:
bounds:
- height: 42.0
width: 130.0
x: 12.5
y: 24.0
selection_text: existing copy
suggested_text: updated copy
text_review_annotation_type: replace
timestamp: 123
updated_at: '2024-02-02T21:19:24.828948Z'
properties:
data:
$ref: '#/components/schemas/CommentWithIncludes'
required:
- data
title: CommentWithIncludesResponse
type: object
CreateCommentParams:
additionalProperties: false
description: Frame.io create comment params
example:
data:
anchor:
x: 0.5
y: 0.5
annotation: '[{"tool":"rect","color":"#F22237","size":8,"x":0.277726001863933,"y":0.12909555568499534,"w":0.3153168321877913,"h":0.5308131407269339,"ix":0.277726001863933,"iy":0.12909555568499534,"radius":8}]'
attachments:
- file_size: 1024000
media_type: image/png
name: screenshot.png
completed: false
duration: 10
links:
- end_index: 13
start_index: 5
url: https://www.example.com
page: 4
text: This is great!
text_review_annotation:
bounds:
- height: 42.0
width: 130.0
x: 12.5
y: 24.0
selection_text: existing copy
suggested_text: updated copy
text_review_annotation_type: replace
timestamp: 00:00:02:12
properties:
data:
additionalProperties: false
properties:
anchor:
allOf:
- $ref: '#/components/schemas/Anchor'
description: Comment anchor location. {(x, y) | 0 <= x <= 1, 0 <= y <= 1}.
nullable: true
type: object
annotation:
description: JSON geometry for on-screen drawings. Allowed for document, image, video, or stream file types. JSON must be stringified
maxLength: 200000
nullable: true
type: string
attachments:
description: Optional attachments to create with the comment (max 6 attachments)
items:
$ref: '#/components/schemas/AttachmentInput'
type: array
completed:
description: Comment completion status
nullable: true
type: boolean
duration:
description: Duration of comment in frames. Requires presence of timestamp parameter
format: int32
minimum: 1
nullable: true
type: integer
links:
description: Comment text links.
items:
$ref: '#/components/schemas/LinkParams'
type: array
page:
description: Document page. Only allowed when file type is a pdf document
minimum: 1
nullable: true
type: integer
text:
description: Comment text (required)
maxLength: 40000
minLength: 1
type: string
text_review_annotation:
allOf:
- $ref: '#/components/schemas/TextReviewAnnotation'
description: Text review annotation details for comments left on text documents.
timestamp:
$ref: '#/components/schemas/TimeStamp'
required:
- text
type: object
required:
- data
title: CreateCommentParams
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
LinkParams:
example:
end_index: 13
start_index: 5
url: https://www.example.com
properties:
end_index:
description: End index of link text
format: int32
minimum: 1
type: integer
start_index:
description: Start index of link text
format: int32
minimum: 0
type: integer
url:
description: Link URL
type: string
required:
- start_index
- end_index
- url
title: LinkParams
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
TextReviewAnnotation:
example:
bounds:
- height: 42.0
width: 130.0
x: 12.5
y: 24.0
selection_text: existing copy
suggested_text: updated copy
text_review_annotation_type: replace
properties:
bounds:
description: An array of bounds representing a multiline selection origin at the lower-left corner.
items:
$ref: '#/components/schemas/TextReviewAnnotationBounds'
minItems: 1
type: array
selection_text:
description: Selected text from the document.
nullable: true
type: string
suggested_text:
description: Suggested replacement or insertion text.
maxLength: 3000
nullable: true
type: string
text_review_annotation_type:
description: 'The type of text review annotation. '
enum:
- highlight
- insert
- remove
- replace
type: string
required:
- bounds
- suggested_text
- selection_text
- text_review_annotation_type
title: TextReviewAnnotation
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
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