Skip to content

Instantly share code, notes, and snippets.

@jhodges10
Created August 23, 2023 16:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jhodges10/ddb8b5c27a6e74a676f9035d95be0141 to your computer and use it in GitHub Desktop.
Save jhodges10/ddb8b5c27a6e74a676f9035d95be0141 to your computer and use it in GitHub Desktop.
Frame.io OpenAPI Spec
{
"tags": [
{
"name": "Accounts"
},
{
"name": "Assets"
},
{
"name": "Audit Logs"
},
{
"name": "Authorization"
},
{
"name": "Comments"
},
{
"name": "Custom Actions"
},
{
"name": "Devices"
},
{
"name": "Presentations"
},
{
"name": "Projects"
},
{
"name": "Review Links"
},
{
"name": "Teams"
},
{
"name": "Users"
},
{
"name": "Webhooks"
}
],
"components": {
"securitySchemes": {
"JWT": {
"bearerFormat": "JWT",
"scheme": "bearer",
"type": "http",
"description": "Bearer token used by Frame.io developed applications like our web app, iOS app, FCPX integration, Premiere integration, After Effects integration, Watch Folders app, etc."
},
"DeveloperToken": {
"type": "http",
"scheme": "bearer",
"description": "Developer Token from https://developer.frame.io/app/tokens"
},
"OAuth2": {
"flows": {
"authorizationCode": {
"authorizationUrl": "https://applications.frame.io/oauth2/auth",
"refreshUrl": "https://applications.frame.io/oauth2/token",
"scopes": {
"presentation.update": "modify presentations",
"comment.read": "read comments",
"asset.update": "modify assets",
"reviewlink.update": "modify review links",
"webhook.create": "create webhooks",
"account.read": "read accounts",
"action.update": "modify actions",
"reviewlink.read": "read review links",
"presentation.read": "read presentations",
"action.create": "create actions",
"presentation.create": "create presentations",
"auditlog.read": "read audit logs",
"team.create": "create teams",
"comment.create": "create comments",
"team.read": "read teams",
"offline": "generate refresh tokens",
"reviewlink.delete": "delete review links",
"project.update": "modify projects",
"project.delete": "delete projects",
"webhook.delete": "delete webhooks",
"action.delete": "delete actions",
"asset.delete": "delete assets",
"webhook.read": "read webhooks",
"asset.create": "create assets",
"comment.delete": "delete comments",
"webhook.update": "modify webhooks",
"asset.read": "read assets",
"comment.update": "modify comments",
"project.read": "read projects",
"action.read": "read actions",
"reviewlink.create": "create review links",
"presentation.delete": "delete presentations",
"project.create": "create projects",
"team.update": "modify teams"
},
"tokenUrl": "https://applications.frame.io/oauth2/token"
},
"implicit": {
"authorizationUrl": "https://applications.frame.io/oauth2/auth",
"scopes": {
"presentation.update": "modify presentations",
"comment.read": "read comments",
"asset.update": "modify assets",
"reviewlink.update": "modify review links",
"webhook.create": "create webhooks",
"account.read": "read accounts",
"action.update": "modify actions",
"reviewlink.read": "read review links",
"presentation.read": "read presentations",
"action.create": "create actions",
"presentation.create": "create presentations",
"auditlog.read": "read audit logs",
"team.create": "create teams",
"comment.create": "create comments",
"team.read": "read teams",
"offline": "generate refresh tokens",
"reviewlink.delete": "delete review links",
"project.update": "modify projects",
"project.delete": "delete projects",
"webhook.delete": "delete webhooks",
"action.delete": "delete actions",
"asset.delete": "delete assets",
"webhook.read": "read webhooks",
"asset.create": "create assets",
"comment.delete": "delete comments",
"webhook.update": "modify webhooks",
"asset.read": "read assets",
"comment.update": "modify comments",
"project.read": "read projects",
"action.read": "read actions",
"reviewlink.create": "create review links",
"presentation.delete": "delete presentations",
"project.create": "create projects",
"team.update": "modify teams"
}
}
},
"type": "oauth2",
"description": "OAuth Token - configured on https://developer.frame.io/app/ouath-apps"
},
"C2CDeviceAuth": {
"type": "oauth2",
"flows": {
"authorizationCode": {
"refreshUrl": "https://api.frame.io/v2/auth/token",
"scopes": {
"offline": "Enables refreshing of tokens",
"asset_create": "Enables ability to create assets in fixed folder structure"
},
"authorizationUrl": "https://api.frame.io/v2/auth/device/code",
"tokenUrl": "https://api.frame.io/v2/auth/token"
}
},
"description": "C2C Device Auth"
},
"C2COAuth2": {
"type": "oauth2",
"flows": {
"authorizationCode": {
"authorizationUrl": "https://applications.frame.io/oauth2/auth",
"tokenUrl": "https://applications.frame.io/oauth2/token",
"refreshUrl": "https://applications.frame.io/oauth2/token",
"scopes": {
"offline": "Enables refreshing of tokens",
"asset_create": "Enables ability to create assets in fixed folder structure",
"device_connect": "Enables ability to connect to project as a device"
}
}
},
"description": "C2C Application Auth"
}
},
"schemas": {
"User": {
"description": "User model",
"type": "object",
"x-examples": {
"Blank user Example": {
"digest_frequency": "string",
"features_seen": null,
"profile_image_original": null,
"image_32": "string",
"image_128": "string",
"from_google": true,
"mfa_enforced_at": "string",
"email": "string",
"bio": null,
"name": "string",
"image_64": "string",
"timezone_value": "string",
"account_id": "string",
"updated_at": "string",
"image_256": "string",
"_type": "string",
"user_hash": "string",
"context": null,
"upload_url": "string",
"location": null,
"phone": null,
"deleted_at": null,
"profile_image": "string",
"first_login_at": "string",
"joined_via": "string",
"email_confirm_by": null,
"id": "string",
"next_digest_date": "string",
"email_preferences": null,
"last_seen": "string",
"inserted_at": "string",
"roles": {
"admin": true,
"id": "string",
"sales": true,
"support": true
},
"user_default_color": "string"
}
},
"title": "",
"properties": {
"digest_frequency": {
"type": "string",
"minLength": 1
},
"features_seen": {},
"profile_image_original": {},
"image_32": {
"type": "string",
"minLength": 1
},
"image_128": {
"type": "string",
"minLength": 1
},
"from_google": {
"type": "boolean"
},
"mfa_enforced_at": {
"type": "string",
"minLength": 1
},
"email": {
"type": "string",
"minLength": 1
},
"bio": {},
"name": {
"type": "string",
"minLength": 1
},
"image_64": {
"type": "string",
"minLength": 1
},
"timezone_value": {
"type": "string",
"minLength": 1
},
"account_id": {
"type": "string",
"minLength": 1
},
"updated_at": {
"type": "string",
"minLength": 1
},
"image_256": {
"type": "string",
"minLength": 1
},
"_type": {
"type": "string",
"minLength": 1
},
"user_hash": {
"type": "string",
"minLength": 1
},
"context": {},
"upload_url": {
"type": "string",
"minLength": 1
},
"location": {},
"phone": {},
"deleted_at": {},
"profile_image": {
"type": "string",
"minLength": 1
},
"first_login_at": {
"type": "string",
"minLength": 1
},
"joined_via": {
"type": "string",
"minLength": 1
},
"email_confirm_by": {},
"id": {
"type": "string",
"minLength": 1
},
"next_digest_date": {
"type": "string",
"minLength": 1
},
"email_preferences": {},
"last_seen": {
"type": "string",
"minLength": 1
},
"inserted_at": {
"type": "string",
"minLength": 1
},
"roles": {
"type": "object",
"properties": {
"admin": {
"type": "boolean"
},
"id": {
"type": "string",
"minLength": 1
},
"sales": {
"type": "boolean"
},
"support": {
"type": "boolean"
}
}
},
"user_default_color": {
"type": "string",
"minLength": 1
}
}
},
"MetadataFlags": {
"properties": {
"id": {
"format": "uuid",
"type": "string"
},
"is_360": {
"type": "boolean"
},
"is_hdr": {
"type": "boolean"
},
"is_original_player_compatible": {
"type": "boolean"
}
},
"type": "object"
},
"RequiredTranscodes": {
"properties": {
"cover": {
"type": "boolean"
},
"finalized": {
"items": {
"enum": [
"thumb",
"thumb_540",
"thumb_scrub",
"image_full",
"image_high",
"cover",
"h264_360",
"h264_540",
"h264_720",
"h264_1080_best",
"h264_2160",
"page_proxy",
"thumb_orig_ar_540"
],
"type": "string"
},
"type": "array"
},
"h264_1080_best": {
"type": "boolean"
},
"h264_2160": {
"type": "boolean"
},
"h264_360": {
"type": "boolean"
},
"h264_540": {
"type": "boolean"
},
"h264_720": {
"type": "boolean"
},
"image_full": {
"type": "boolean"
},
"image_high": {
"type": "boolean"
},
"page_proxy": {
"type": "boolean"
},
"thumb": {
"type": "boolean"
},
"thumb_540": {
"type": "boolean"
},
"thumb_orig_ar_540": {
"type": "boolean"
},
"thumb_scrub": {
"type": "boolean"
}
},
"type": "object",
"title": ""
},
"UserPermissions": {
"properties": {
"can_download": {
"type": "boolean"
},
"can_modify_template": {
"type": "boolean"
},
"can_public_share_presentation": {
"type": "boolean"
},
"can_public_share_review_link": {
"type": "boolean"
},
"can_share_downloadable_presentation": {
"type": "boolean"
},
"can_share_downloadable_review_link": {
"type": "boolean"
},
"can_share_unwatermarked_presentation": {
"type": "boolean"
},
"can_share_unwatermarked_review_link": {
"type": "boolean"
}
},
"type": "object"
},
"Asset": {
"type": "object",
"description": "",
"title": "",
"properties": {
"account_id": {
"format": "uuid",
"type": "string",
"description": "Account ID this asset belongs to"
},
"asset_type": {
"type": "string",
"enum": [
"document",
"image",
"stream"
]
},
"archive_from": {
"type": "string",
"format": "date-time",
"nullable": true
},
"bundle": {
"type": "boolean",
"deprecated": true
},
"bundle_view": {
"type": "string",
"deprecated": true
},
"cover_asset_id": {
"format": "uuid",
"type": "string"
},
"creator": {
"$ref": "#/components/schemas/User"
},
"frames": {
"type": "integer",
"description": "The number of frames in this asset (really only useful for videos)"
},
"hard_deleted_at": {
"format": "date-time",
"type": "string",
"description": "Indicates the datetime this asset was hard deleted (30 days after soft-deletion)",
"nullable": true
},
"id": {
"format": "uuid",
"type": "string",
"description": "The ID for this asset, can be used in places like `https://app.frame.io/player/:id` to go directly to an asset"
},
"index": {
"format": "float",
"type": "number",
"description": "Represented within the Frame.io UI as the \"custom sort order\" within the grid view"
},
"is_bundle_child": {
"type": "boolean",
"deprecated": true,
"description": "Indicates whether an asset is the child of a bundle asset"
},
"is_hls_required": {
"type": "boolean",
"description": "Indicates whether HLS is required to playback this asset"
},
"is_session_watermarked": {
"type": "boolean",
"description": "Indicates if this asset is subject to Session Based Watermarking (WMID)"
},
"item_count": {
"type": "integer",
"description": "Applies only to folders and version stacks, indicates the number of items in that container"
},
"label": {
"description": "Status of the given Asset",
"oneOf": [
{
"enum": [
"approved",
"needs_review",
"in_progress"
],
"description": "Represents the \"status\" of an asset as shown in the top-right above the player"
}
],
"type": "string"
},
"metadata": {
"type": "object"
},
"metadata_flags": {
"$ref": "#/components/schemas/MetadataFlags"
},
"name": {
"type": "string",
"description": "Represents the name of the asset (filename)"
},
"original": {
"type": "string",
"description": "This is a URL to download the original asset, or in the event it's subject to watermarking but you still have permission to download - an asset that will be watermarked just-in-time as you download it"
},
"parent_asset_id": {
"format": "uuid",
"type": "string",
"description": "The folder that this asset is in"
},
"project_id": {
"format": "uuid",
"type": "string",
"description": "The project ID that this asset belongs to"
},
"properties": {
"oneOf": [
{
"properties": {
"": {
"type": "string"
}
}
}
],
"description": "Accepts arbitrary key/value pairs for storing information on an asset",
"type": "object"
},
"required_transcodes": {
"$ref": "#/components/schemas/RequiredTranscodes"
},
"team_id": {
"format": "uuid",
"type": "string"
},
"user_permissions": {
"$ref": "#/components/schemas/UserPermissions"
},
"type": {
"enum": [
"file",
"folder",
"version_stack",
"bundle"
],
"type": "string"
},
"view_count": {
"type": "integer",
"description": "Not a very helpful number, this really just represents the number of times this asset has been requested via the API"
}
}
},
"HTTPError": {
"properties": {
"code": {
"type": "integer"
},
"errors": {
"items": {
"properties": {
"code": {
"type": "integer"
},
"detail": {
"type": "string"
},
"status": {
"type": "integer"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"message": {
"type": "string"
}
},
"type": "object",
"title": ""
},
"SessionWatermarkDataPoint": {
"properties": {
"order": {
"type": "integer"
},
"type": {
"enum": [
"email",
"username",
"ip_address",
"timestamp",
"custom_text",
"user_input"
],
"type": "string"
},
"value": {
"type": "string"
}
},
"type": "object"
},
"SessionWatermarkBlock": {
"properties": {
"alpha": {
"default": 0.5,
"type": "number"
},
"data_points": {
"items": {
"$ref": "#/components/schemas/SessionWatermarkDataPoint"
},
"type": "array"
},
"font_size": {
"default": "medium",
"enum": [
"small",
"medium",
"large",
"huge"
],
"type": "string"
},
"name": {
"type": "string"
},
"position": {
"default": "top_left",
"enum": [
"top_left",
"top_center",
"top_right",
"middle_left",
"middle_center",
"middle_right",
"bottom_left",
"bottom_center",
"bottom_right"
],
"type": "string"
},
"position_reference_point": {
"enum": [
"top_left",
"top_center",
"top_right",
"middle_left",
"middle_center",
"middle_right",
"bottom_left",
"bottom_center",
"bottom_right"
],
"type": "string"
},
"position_x": {
"type": "integer"
},
"position_y": {
"type": "integer"
},
"scroll_text": {
"default": "none",
"enum": [
"none",
"ltr",
"rtl"
],
"type": "string"
},
"text_alignment": {
"default": "left",
"enum": [
"left",
"right",
"center"
],
"type": "string"
},
"text_color": {
"default": "#FFFFFF",
"type": "string"
},
"text_shadow": {
"default": false,
"type": "boolean"
}
},
"type": "object"
},
"SessionWatermarkTemplate": {
"properties": {
"account_id": {
"format": "uuid",
"type": "string"
},
"app_default": {
"default": false,
"type": "boolean"
},
"creator_id": {
"format": "uuid",
"type": "string"
},
"id": {
"format": "uuid",
"type": "string"
},
"name": {
"type": "string"
},
"watermark_blocks": {
"items": {
"$ref": "#/components/schemas/SessionWatermarkBlock"
},
"type": "array"
}
},
"type": "object"
},
"AdminOnlyAction": {
"properties": {
"lifecycle": {
"default": false,
"type": "boolean"
}
},
"type": "object"
},
"Account": {
"properties": {
"invoice_emails": {
"items": {
"type": "string"
},
"type": "array"
},
"city": {
"type": "string"
},
"account_default_color": {
"type": "string"
},
"company_name": {
"type": "string"
},
"storage": {
"type": "integer"
},
"file_count": {
"type": "integer"
},
"owner": {
"$ref": "#/components/schemas/User"
},
"upload_url": {
"type": "string"
},
"deleted_at": {
"format": "date-time",
"type": "string"
},
"line1": {
"type": "string"
},
"postal_code": {
"type": "string"
},
"vat": {
"type": "string"
},
"company_address": {
"type": "string"
},
"lifetime_file_count": {
"type": "integer"
},
"state": {
"type": "string"
},
"teams": {
"items": {
"$ref": "#/components/schemas/Team"
},
"type": "array"
},
"image_64": {
"type": "string"
},
"archived_storage": {
"type": "integer"
},
"image_128": {
"type": "string"
},
"owner_id": {
"format": "uuid",
"type": "string"
},
"user_count": {
"type": "integer"
},
"locked_at": {
"format": "date-time",
"type": "string"
},
"image": {
"type": "string"
},
"team_count": {
"type": "integer"
},
"collaborator_role_count": {
"type": "integer"
},
"billing_emails": {
"type": "string"
},
"image_32": {
"type": "string"
},
"unpaid_at": {
"format": "date-time",
"type": "string"
},
"inserted_at": {
"format": "date-time",
"type": "string"
},
"updated_at": {
"format": "date-time",
"type": "string"
},
"project_count": {
"type": "integer"
},
"duration": {
"type": "integer"
},
"delinquent_at": {
"format": "date-time",
"type": "string"
},
"collaborator_count": {
"type": "integer"
},
"plan": {
"$ref": "#/components/schemas/Plan"
},
"watermark": {
"$ref": "#/components/schemas/Watermark"
},
"folder_count": {
"type": "integer"
},
"id": {
"format": "uuid",
"type": "string"
},
"display_name": {
"type": "string"
},
"country": {
"type": "string"
},
"subscription": {
"$ref": "#/components/schemas/Subscription"
},
"account_members": {
"items": {
"$ref": "#/components/schemas/AccountMember"
},
"type": "array"
},
"frames": {
"type": "integer"
},
"member_count": {
"type": "integer"
},
"image_256": {
"type": "string"
}
},
"type": "object"
},
"Image": {
"properties": {
"bucket": {
"type": "string"
},
"key": {
"type": "string"
},
"type": {
"default": "image/jpeg",
"type": "string"
},
"uploaded": {
"default": false,
"type": "boolean"
}
},
"type": "object"
},
"WatermarkImage": {
"properties": {
"alpha": {
"default": 0.5,
"type": "number"
},
"image": {
"$ref": "#/components/schemas/Image"
},
"position": {
"default": "top_left",
"enum": [
"top_left",
"top_right",
"bottom_left",
"bottom_right"
],
"type": "string"
}
},
"type": "object"
},
"WatermarkText": {
"properties": {
"alpha": {
"default": 0.5,
"type": "number"
},
"lines": {
"items": {
"type": "string"
},
"type": "array"
},
"position": {
"default": "top",
"enum": [
"top",
"center",
"bottom"
],
"type": "string"
}
},
"type": "object"
},
"Watermark": {
"properties": {
"image": {
"$ref": "#/components/schemas/WatermarkImage"
},
"text": {
"$ref": "#/components/schemas/WatermarkText"
}
},
"type": "object"
},
"EmailBranding": {
"properties": {
"accent_color": {
"type": "string"
},
"background_color": {
"type": "string"
},
"image": {
"$ref": "#/components/schemas/Image"
}
},
"type": "object"
},
"Team": {
"properties": {
"account_id": {
"format": "uuid",
"type": "string"
},
"disable_sbwm_internally": {
"default": false,
"type": "boolean"
},
"creator_id": {
"format": "uuid",
"type": "string"
},
"storage": {
"default": 0,
"type": "integer"
},
"default_font_color": {
"type": "string"
},
"access": {
"enum": [
"private",
"public",
"restricted"
],
"type": "string"
},
"font_color": {
"type": "string"
},
"user_role": {
"type": "object"
},
"file_count": {
"default": 0,
"type": "integer"
},
"default_session_watermark_template": {
"$ref": "#/components/schemas/SessionWatermarkTemplate"
},
"link": {
"type": "string"
},
"asset_lifecycle_policy": {
"type": "integer"
},
"upload_url": {
"type": "string"
},
"admin_only_actions": {
"$ref": "#/components/schemas/AdminOnlyAction"
},
"deleted_at": {
"format": "date-time",
"type": "string"
},
"default_background_color": {
"type": "string"
},
"storage_limit": {
"type": "integer"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"default_color": {
"type": "string"
},
"slack_webhook": {
"type": "object"
},
"image_64": {
"type": "string"
},
"archived_storage": {
"default": 0,
"type": "integer"
},
"image_128": {
"type": "string"
},
"solo": {
"default": false,
"type": "boolean"
},
"account": {
"$ref": "#/components/schemas/Account"
},
"image_32": {
"type": "string"
},
"inserted_at": {
"format": "date-time",
"type": "string"
},
"updated_at": {
"format": "date-time",
"type": "string"
},
"project_count": {
"default": 0,
"type": "integer"
},
"duration": {
"default": 0,
"type": "integer"
},
"team_image": {
"type": "string"
},
"collaborator_count": {
"default": 0,
"type": "integer"
},
"bio": {
"type": "string"
},
"color": {
"type": "string"
},
"email_branding": {
"$ref": "#/components/schemas/EmailBranding"
},
"folder_count": {
"default": 0,
"type": "integer"
},
"dark_theme": {
"default": false,
"type": "boolean"
},
"default_session_watermark_template_id": {
"format": "uuid",
"type": "string"
},
"session_watermark_templates": {
"items": {
"$ref": "#/components/schemas/SessionWatermarkTemplate"
},
"type": "array"
},
"id": {
"format": "uuid",
"type": "string"
},
"member_limit": {
"type": "integer"
},
"frames": {
"default": 0,
"type": "integer"
},
"member_count": {
"default": 0,
"type": "integer"
},
"image_256": {
"type": "string"
},
"background_color": {
"type": "string"
}
},
"type": "object"
},
"AvailableFeatures": {
"properties": {
"archival_storage": {
"type": "boolean"
},
"custom_branded_emails": {
"type": "boolean"
},
"custom_branded_presentations": {
"type": "boolean"
},
"reel_player": {
"type": "boolean"
},
"secure_sharing": {
"type": "boolean"
},
"session_based_watermarking": {
"type": "boolean"
},
"team_only_comments": {
"type": "boolean"
}
},
"type": "object"
},
"Plan": {
"properties": {
"archived_storage_limit": {
"type": "integer"
},
"autoscaling": {
"type": "boolean"
},
"available_features": {
"$ref": "#/components/schemas/AvailableFeatures"
},
"collaborator_limit": {
"type": "integer"
},
"cost": {
"type": "integer"
},
"default_plan": {
"type": "boolean"
},
"deleted_at": {
"format": "date-time",
"type": "string"
},
"enterprise": {
"type": "boolean"
},
"file_limit": {
"type": "integer"
},
"id": {
"format": "uuid",
"type": "string"
},
"inserted_at": {
"format": "date-time",
"type": "string"
},
"lifetime_file_limit": {
"type": "integer"
},
"member_limit": {
"type": "integer"
},
"name": {
"type": "string"
},
"payment_method": {
"enum": [
"stripe",
"check"
],
"type": "string"
},
"period": {
"enum": [
"monthly",
"yearly",
"semiannually"
],
"type": "string"
},
"project_limit": {
"type": "integer"
},
"storage_limit": {
"type": "integer"
},
"team_limit": {
"type": "integer"
},
"tier": {
"enum": [
"free",
"starter",
"pro",
"team",
"business",
"enterprise"
],
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"format": "date-time",
"type": "string"
},
"user_limit": {
"type": "integer"
},
"user_max": {
"type": "integer"
},
"version": {
"type": "integer"
}
},
"type": "object"
},
"Subscription": {
"properties": {
"account_id": {
"format": "uuid",
"type": "string"
},
"archived_storage_limit": {
"type": "integer"
},
"balance": {
"type": "integer"
},
"cancellation_option": {
"type": "string"
},
"cancellation_reason": {
"type": "string"
},
"cancelled_at": {
"format": "date-time",
"type": "string"
},
"deleted_at": {
"format": "date-time",
"type": "string"
},
"id": {
"format": "uuid",
"type": "string"
},
"inserted_at": {
"format": "date-time",
"type": "string"
},
"last_payment_at": {
"format": "date-time",
"type": "string"
},
"member_limit": {
"type": "integer"
},
"next_bill_at": {
"format": "date-time",
"type": "string"
},
"on_trial": {
"type": "boolean"
},
"plan": {
"$ref": "#/components/schemas/Plan"
},
"plan_id": {
"format": "uuid",
"type": "string"
},
"promotion_expires_at": {
"format": "date-time",
"type": "string"
},
"promotion_id": {
"format": "uuid",
"type": "string"
},
"requires_autoscaling": {
"type": "boolean"
},
"storage_limit": {
"type": "integer"
},
"subscription_end_at": {
"format": "date-time",
"type": "string"
},
"total_archived_storage_limit": {
"type": "integer"
},
"total_lifetime_file_limit": {
"type": "integer"
},
"total_member_limit": {
"type": "integer"
},
"total_project_limit": {
"type": "integer"
},
"total_storage_limit": {
"type": "integer"
},
"total_user_limit": {
"type": "integer"
},
"updated_at": {
"format": "date-time",
"type": "string"
},
"user_limit": {
"type": "integer"
}
},
"type": "object"
},
"AccountMember": {
"properties": {
"accepted_at": {
"format": "date-time",
"type": "string"
},
"account_id": {
"format": "uuid",
"type": "string"
},
"declined_at": {
"format": "date-time",
"type": "string"
},
"deleted_at": {
"format": "date-time",
"type": "string"
},
"inserted_at": {
"format": "date-time",
"type": "string"
},
"role": {
"enum": [
"admin",
"billing_manager",
"account_manager",
"member"
],
"type": "string"
},
"updated_at": {
"format": "date-time",
"type": "string"
},
"user_id": {
"format": "uuid",
"type": "string"
}
},
"type": "object"
},
"ShareableEntityAccessControl": {
"properties": {
"invite_only": {
"type": "boolean"
}
},
"type": "object"
},
"ReviewLink": {
"properties": {
"access_control": {
"$ref": "#/components/schemas/ShareableEntityAccessControl"
},
"name": {
"type": "string",
"description": "Name of the Review Link"
},
"available_features": {
"type": "object",
"readOnly": true
},
"allow_approvals": {
"type": "boolean",
"default": true,
"description": "Enable/disable changing an Asset's status by non-Collaborator/Team Members via the Review Link."
},
"bundle_count": {
"default": 0,
"type": "integer",
"readOnly": true,
"deprecated": true
},
"current_version_only": {
"type": "boolean",
"default": false,
"description": "Show **only** the most recent version of Assets in the Review Link"
},
"deleted_at": {
"format": "date-time",
"type": "string",
"description": "Deletion time of the Review Link",
"readOnly": true
},
"enable_downloading": {
"type": "boolean",
"description": "Enable or disable downloading on this Review Link. The default depends on whether the auth used to create this review link allows for this or not."
},
"expires_at": {
"format": "date-time",
"type": "string",
"description": "Expiration time of the Review Link",
"readOnly": true
},
"enable_comments": {
"default": true,
"type": "boolean"
},
"folder_item_count": {
"default": 0,
"type": "integer",
"readOnly": true
},
"is_active": {
"type": "boolean",
"default": true,
"description": "Disable an Review Link by switching this from `true` -> `false`, and vice-versa."
},
"notify_on_view": {
"type": "boolean",
"readOnly": true,
"default": true
},
"password": {
"type": "string",
"description": "Actually a `passphrase`, this is an additional security measure for a second layer of security on your Review Links. \n\n Supports alphanumeric input."
},
"has_password": {
"type": "boolean",
"default": false,
"description": "If false, the Review Link has no passphrase",
"readOnly": true
},
"id": {
"format": "uuid",
"type": "string",
"description": "UUID of the Review Link",
"readOnly": true
},
"inserted_at": {
"format": "date-time",
"type": "string",
"readOnly": true
},
"is_autoplay": {
"default": false,
"type": "boolean",
"deprecated": true,
"readOnly": true
},
"item_count": {
"default": 0,
"type": "integer",
"description": "Number of items included at the root of the Review Link",
"readOnly": true
},
"items": {
"items": {
"$ref": "#/components/schemas/ReviewLinkItem"
},
"type": "array",
"readOnly": true
},
"owner_id": {
"format": "uuid",
"type": "string",
"readOnly": true
},
"project_id": {
"format": "uuid",
"type": "string",
"readOnly": true
},
"reviewer_count": {
"default": 0,
"type": "integer",
"readOnly": true
},
"short_url": {
"type": "string",
"readOnly": true
},
"owner": {
"$ref": "#/components/schemas/User",
"readOnly": true
},
"project": {
"$ref": "#/components/schemas/Project",
"readOnly": true
},
"team": {
"$ref": "#/components/schemas/Team",
"readOnly": true
},
"updated_at": {
"format": "date-time",
"type": "string",
"readOnly": true
},
"view_count": {
"default": 0,
"type": "integer",
"readOnly": true
},
"watermark_user_input": {
"default": null,
"description": "",
"type": "string"
}
},
"type": "object",
"required": [
"name"
]
},
"ReviewLinkItem": {
"type": "object",
"properties": {
"asset": {
"$ref": "#/components/schemas/Asset"
},
"asset_id": {
"format": "uuid",
"type": "string"
},
"deleted_at": {
"format": "date-time",
"type": "string"
},
"index": {
"type": "integer"
},
"inserted_at": {
"format": "date-time",
"type": "string"
},
"review_link": {
"$ref": "#/components/schemas/ReviewLink"
},
"review_link_id": {
"format": "uuid",
"type": "string"
},
"updated_at": {
"format": "date-time",
"type": "string"
}
}
},
"Collaborator": {
"properties": {
"_type": {
"enum": [
"collaborator",
"pending_collaborator"
],
"type": "string"
},
"email": {
"type": "string"
},
"project_id": {
"format": "uuid",
"type": "string"
},
"user": {
"$ref": "#/components/schemas/User"
},
"user_id": {
"format": "uuid",
"type": "string"
}
},
"type": "object"
},
"ProjectPreferences": {
"properties": {
"collaborator_can_download": {
"type": "boolean"
},
"collaborator_can_invite": {
"type": "boolean"
},
"collaborator_can_share": {
"type": "boolean"
},
"notify_on_new_asset": {
"type": "boolean"
},
"notify_on_new_collaborator": {
"type": "boolean"
},
"notify_on_new_comment": {
"type": "boolean"
},
"notify_on_updated_label": {
"type": "boolean"
},
"notify_slack": {
"type": "boolean"
}
},
"type": "object"
},
"Project": {
"type": "object",
"properties": {
"archive_status": {
"enum": [
"standard",
"archiving",
"unarchiving",
"archived"
],
"type": "string",
"description": "Archival status for this Project"
},
"archived_at": {
"format": "date-time",
"type": "string",
"description": "When a Project was archived"
},
"archived_file_count": {
"default": 0,
"type": "integer"
},
"archived_storage": {
"default": 0,
"type": "integer"
},
"collaborator_count": {
"default": 0,
"type": "integer"
},
"deleted_at": {
"format": "date-time",
"type": "string",
"description": "If deleted, when this Project was deleted"
},
"description": {
"type": "string"
},
"file_count": {
"default": 0,
"type": "integer"
},
"folder_count": {
"default": 0,
"type": "integer"
},
"id": {
"format": "uuid",
"type": "string"
},
"ignore_archive": {
"default": false,
"type": "boolean"
},
"inserted_at": {
"format": "date-time",
"type": "string",
"description": "When was this Project created"
},
"invite_url": {
"type": "string"
},
"name": {
"type": "string",
"description": "Name of this Project"
},
"owner_id": {
"format": "uuid",
"type": "string"
},
"private": {
"default": false,
"type": "boolean"
},
"project_preferences": {
"$ref": "#/components/schemas/ProjectPreferences"
},
"read_only": {
"default": false,
"type": "boolean"
},
"root_asset": {
"$ref": "#/components/schemas/Asset"
},
"root_asset_id": {
"format": "uuid",
"type": "string"
},
"shared": {
"default": false,
"type": "boolean"
},
"storage": {
"default": 0,
"type": "integer"
},
"team": {
"$ref": "#/components/schemas/Team"
},
"team_id": {
"format": "uuid",
"type": "string"
},
"updated_at": {
"format": "date-time",
"type": "string"
},
"user_permissions": {
"$ref": "#/components/schemas/UserPermissions"
},
"user_preferences": {
"$ref": "#/components/schemas/ProjectPreferences"
},
"watermark": {
"$ref": "#/components/schemas/Watermark"
}
}
},
"Events": {
"type": "string",
"enum": [
"project.created",
"project.updated",
"project.deleted",
"asset.created",
"asset.copied",
"asset.updated",
"asset.deleted",
"asset.ready",
"asset.versioned",
"action.executed",
"interaction.executed",
"asset.label.updated",
"comment.created",
"comment.updated",
"comment.deleted",
"comment.completed",
"comment.uncompleted",
"reviewlink.created",
"collaborator.created",
"collaborator.deleted",
"teammember.created",
"teammember.deleted"
]
},
"Webhook": {
"properties": {
"account_id": {
"format": "uuid",
"type": "string"
},
"active": {
"type": "boolean"
},
"app_id": {
"format": "uuid",
"type": "string"
},
"deleted_at": {
"format": "date-time",
"type": "string"
},
"events": {
"items": {
"$ref": "#/components/schemas/Events"
},
"type": "array"
},
"id": {
"format": "uuid",
"type": "string"
},
"inserted_at": {
"format": "date-time",
"type": "string"
},
"name": {
"type": "string"
},
"project_id": {
"format": "uuid",
"type": "string"
},
"secret": {
"type": "string"
},
"team": {
"$ref": "#/components/schemas/Team"
},
"team_id": {
"format": "uuid",
"type": "string"
},
"updated_at": {
"format": "date-time",
"type": "string"
},
"url": {
"type": "string"
}
},
"type": "object"
},
"Action": {
"properties": {
"active": {
"type": "boolean"
},
"allow_collaborators": {
"type": "boolean"
},
"creator_id": {
"format": "uuid",
"type": "string"
},
"deleted_at": {
"format": "date-time",
"type": "string"
},
"description": {
"type": "string"
},
"event": {
"type": "string"
},
"id": {
"format": "uuid",
"type": "string"
},
"image": {
"type": "string"
},
"inserted_at": {
"format": "date-time",
"type": "string"
},
"name": {
"type": "string"
},
"team": {
"$ref": "#/components/schemas/Team"
},
"team_id": {
"format": "uuid",
"type": "string"
},
"updated_at": {
"format": "date-time",
"type": "string"
},
"upload_url": {
"type": "string"
},
"url": {
"type": "string"
},
"webhook": {
"$ref": "#/components/schemas/Webhook"
}
},
"type": "object"
},
"AnonymousUser": {
"properties": {
"deleted_at": {
"format": "date-time",
"type": "string"
},
"email": {
"type": "string"
},
"id": {
"format": "uuid",
"type": "string"
},
"inserted_at": {
"format": "date-time",
"type": "string"
},
"name": {
"type": "string"
},
"notification_preferences": {
"$ref": "#/components/schemas/ProjectPreferences"
},
"updated_at": {
"format": "date-time",
"type": "string"
},
"user_default_color": {
"type": "string"
}
},
"type": "object"
},
"Audit": {
"type": "object",
"properties": {
"account_id": {
"format": "uuid",
"type": "string"
},
"action": {
"type": "string"
},
"actor": {
"oneOf": [
{
"$ref": "#/components/schemas/User"
},
{
"$ref": "#/components/schemas/AnonymousUser"
}
]
},
"actor_id": {
"format": "uuid",
"type": "string"
},
"application_id": {
"format": "uuid",
"type": "string"
},
"inserted_at": {
"format": "date-time",
"type": "string"
},
"ip_address": {
"type": "string"
},
"item_id": {
"format": "uuid",
"type": "string"
},
"item_type": {
"type": "string"
},
"request_id": {
"format": "uuid",
"type": "string"
},
"resource": {
"type": "object"
},
"team_id": {
"format": "uuid",
"type": "string"
},
"updated_at": {
"format": "date-time",
"type": "string"
}
},
"description": "",
"title": ""
},
"BatchInviteParams": {
"properties": {
"batch": {
"items": {
"properties": {
"email": {
"description": "Create an invite for the given email",
"type": "string"
},
"message": {
"description": "Invite message to be used for this one bath op",
"type": "string"
},
"team_id": {
"description": "Create a set of invites for all approved team members within the given team",
"format": "uuid",
"type": "string"
},
"user_group_id": {
"description": "Create a set of invites for all the users within the given user group",
"format": "uuid",
"type": "string"
},
"user_id": {
"description": "Create an invite for the given user_id",
"format": "uuid",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"default_message": {
"description": "Default invite message to be applied to all invites created",
"type": "string"
},
"send_email": {
"default": true,
"description": "When false no emails will be sent to the new Reviewers and Pending Reviewers",
"type": "boolean"
}
},
"type": "object"
},
"Comment": {
"type": "object",
"title": "",
"description": "",
"x-examples": {},
"properties": {
"annotation": {
"type": "string"
},
"completed": {
"type": "boolean"
},
"completed_at": {
"type": "string"
},
"completer_id": {
"format": "uuid",
"type": "string"
},
"has_replies": {
"type": "boolean"
},
"id": {
"format": "uuid",
"type": "string"
},
"like_count": {
"type": "integer"
},
"owner": {
"$ref": "#/components/schemas/User"
},
"owner_id": {
"format": "uuid",
"type": "string"
},
"text": {
"type": "string"
},
"timestamp": {
"type": "integer"
}
}
},
"ProjectMembership": {
"properties": {
"collaborator": {
"type": "boolean"
},
"owner": {
"type": "boolean"
},
"team_member": {
"type": "boolean"
},
"team_role": {
"type": "string"
}
},
"type": "object"
},
"AssetSubtitle": {
"properties": {
"_type": {
"enum": [
"asset_subtitle"
],
"type": "string"
},
"id": {
"format": "uuid",
"type": "string"
},
"subtitle_tracks": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"AccountMembership": {
"properties": {
"account": {
"enum": [
"owner",
"admin",
"account_manager",
"billing_manager"
],
"type": "string"
},
"reviewer": {
"type": "boolean"
},
"team": {
"enum": [
"team_manager",
"member"
],
"type": "string"
}
},
"type": "object"
},
"AssetSearch": {
"properties": {
"account_id": {
"format": "uuid",
"type": "string"
},
"filter": {
"description": "Custom ES filters to apply to your query",
"type": "object"
},
"include": {
"type": "string"
},
"include_deleted": {
"description": "Flag to include soft-deleted records in results",
"type": "boolean"
},
"opts": {
"description": "Additional request options",
"type": "object"
},
"page": {
"description": "The page to retrieve",
"type": "integer"
},
"page_size": {
"description": "The number of results to include in the page",
"type": "integer"
},
"project_id": {
"format": "uuid",
"type": "string"
},
"properties": {
"type": "object"
},
"q": {
"description": "Search text",
"type": "string"
},
"query": {
"description": "Search text",
"type": "string"
},
"shared_projects": {
"type": "boolean"
},
"sort": {
"description": "Sorting parameters",
"type": "string"
},
"team_id": {
"oneOf": [
{
"format": "uuid",
"type": "string"
},
{
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
}
]
},
"type": {
"type": "string"
}
},
"type": "object"
},
"AssetAudio": {
"properties": {
"_type": {
"enum": [
"asset_audio"
],
"type": "string"
},
"audio_tracks": {
"items": {
"type": "string"
},
"type": "array"
},
"id": {
"format": "uuid",
"type": "string"
}
},
"type": "object"
},
"CommentImpression": {
"type": "object",
"properties": {
"asset_id": {
"format": "uuid",
"type": "string"
},
"count": {
"type": "integer",
"format": "int32"
},
"deleted_at": {
"type": "string",
"format": "date-time"
},
"id": {
"format": "uuid",
"type": "string"
},
"inserted_at": {
"type": "string",
"format": "date-time"
},
"review_link_id": {
"format": "uuid",
"type": "string"
},
"type": {
"type": "string"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"user": {
"$ref": "#/components/schemas/User"
},
"user_id": {
"format": "uuid",
"type": "string"
}
}
},
"LibrarySearch": {
"properties": {
"account_id": {
"format": "uuid",
"type": "string"
},
"filter": {
"description": "Custom ES filters to apply to your query",
"type": "object"
},
"include_deleted": {
"description": "Flag to include soft-deleted records in results",
"type": "boolean"
},
"opts": {
"description": "Additional request options",
"type": "object"
},
"page": {
"description": "The page to retrieve",
"type": "integer"
},
"page_size": {
"description": "The number of results to include in the page",
"type": "integer"
},
"q": {
"description": "Search text",
"type": "string"
},
"query": {
"description": "Search text",
"type": "string"
},
"sort": {
"description": "Sorting parameters",
"type": "string"
}
},
"type": "object"
},
"Installation": {
"properties": {
"account_id": {
"format": "uuid",
"type": "string"
},
"app_id": {
"format": "uuid",
"type": "string"
},
"app_version": {
"type": "integer"
},
"bot_user_id": {
"format": "uuid",
"type": "string"
},
"deleted_at": {
"format": "date-time",
"type": "string"
},
"id": {
"format": "uuid",
"type": "string"
},
"installed_at": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"Presentation": {
"properties": {
"enabled": {
"type": "boolean"
},
"vanity": {
"type": "string"
},
"include_upload_date": {
"type": "boolean"
},
"presentation_items": {
"items": {
"$ref": "#/components/schemas/PresentationItem"
},
"type": "array"
},
"available_features": {
"type": "object"
},
"autoplay": {
"type": "boolean"
},
"access_control": {
"$ref": "#/components/schemas/ShareableEntityAccessControl"
},
"secure": {
"type": "boolean"
},
"asset_id": {
"format": "uuid",
"type": "string"
},
"project_id": {
"format": "uuid",
"type": "string"
},
"include_ext": {
"type": "boolean"
},
"layout": {
"enum": [
"blog",
"reel"
],
"type": "string"
},
"assets": {
"items": {
"$ref": "#/components/schemas/Asset"
},
"type": "array"
},
"description": {
"type": "string"
},
"deleted_at": {
"format": "date-time",
"type": "string"
},
"password": {
"type": "string"
},
"asset": {
"$ref": "#/components/schemas/Asset"
},
"team": {
"$ref": "#/components/schemas/Team"
},
"name": {
"type": "string"
},
"format": {
"type": "string"
},
"owner_id": {
"format": "uuid",
"type": "string"
},
"can_download": {
"type": "boolean"
},
"project": {
"$ref": "#/components/schemas/Project"
},
"short_url": {
"type": "string"
},
"inserted_at": {
"format": "date-time",
"type": "string"
},
"updated_at": {
"format": "date-time",
"type": "string"
},
"style": {
"type": "string"
},
"text_color": {
"type": "string"
},
"title": {
"type": "string"
},
"expires_at": {
"format": "date-time",
"type": "string"
},
"color": {
"type": "string"
},
"id": {
"format": "uuid",
"type": "string"
},
"view_count": {
"default": 0,
"type": "integer"
},
"reviewer_count": {
"default": 0,
"type": "integer"
},
"background_color": {
"type": "string"
}
},
"type": "object"
},
"PresentationItem": {
"properties": {
"asset": {
"$ref": "#/components/schemas/Asset"
},
"id": {
"format": "uuid",
"type": "string"
},
"index": {
"type": "integer"
},
"inserted_at": {
"format": "date-time",
"type": "string"
},
"presentation": {
"$ref": "#/components/schemas/Presentation"
},
"updated_at": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"AssetSource": {
"properties": {
"url": {
"type": "string"
}
},
"type": "object"
},
"ProjectDeviceAuthorization": {
"description": "",
"type": "object",
"x-examples": {
"Device Auth example": {
"_type": "project_device",
"asset_type": "video",
"authorization": {
"_type": "project_device_authorization",
"creator": {
"_type": "user",
"id": "e7e96254-8bd6-4d59-b54d-28c58570a8de",
"name": "janedoe@frame.io"
},
"creator_id": "e7e96254-8bd6-4d59-b54d-28c58570a8de",
"expires_at": null,
"id": "479afffb-17bd-4bd3-b229-b19d82e6c21d",
"inserted_at": "2022-04-12T21:33:06.634189Z",
"project_device_id": "5cb42e58-2df1-4e60-a252-97a07ba12f38",
"scopes": {
"account_read": false,
"action_create": false,
"action_delete": false,
"action_read": false,
"action_update": false,
"asset_create": true,
"asset_delete": false,
"asset_read": false,
"asset_update": false,
"auditlog_read": false,
"comment_create": false,
"comment_delete": false,
"comment_read": false,
"comment_update": false,
"device_connect": false,
"id": "0548b46c-3f1b-40b6-b001-33d52f423b7c",
"offline": true,
"presentation_create": false,
"presentation_delete": false,
"presentation_read": false,
"presentation_update": false,
"project_create": false,
"project_delete": false,
"project_read": false,
"project_update": false,
"reviewlink_create": false,
"reviewlink_delete": false,
"reviewlink_read": false,
"reviewlink_update": false,
"team_create": false,
"team_read": false,
"team_update": false,
"webhook_create": false,
"webhook_delete": false,
"webhook_read": false,
"webhook_update": false
}
},
"channels": [
{
"_type": "project_device_channel",
"asset_type": "video",
"device_id": "92b74f5e-1548-4ff8-89ff-684505f5cf91",
"external_index": 0,
"id": "8006cd52-a11b-464c-87ce-dc82c14d082e",
"inserted_at": "2022-04-07T18:37:55.142232Z",
"name": "Channel 1",
"project_device_id": "5cb42e58-2df1-4e60-a252-97a07ba12f38",
"project_id": "2ad59fe6-77b6-4ffc-a9d2-3dd0413ed4a3",
"status": "online",
"updated_at": "2022-04-07T18:37:55.142232Z"
}
],
"creator_id": "e7e96254-8bd6-4d59-b54d-28c58570a8de",
"deleted_at": null,
"device_id": "92b74f5e-1548-4ff8-89ff-684505f5cf91",
"id": "5cb42e58-2df1-4e60-a252-97a07ba12f38",
"inserted_at": "2022-04-07T18:37:55.107497Z",
"last_seen_at": "2022-04-12T21:33:06Z",
"name": "TEST",
"project": {
"_type": "project",
"id": "2ad59fe6-77b6-4ffc-a9d2-3dd0413ed4a3",
"name": "Testbed"
},
"project_id": "2ad59fe6-77b6-4ffc-a9d2-3dd0413ed4a3",
"status": "online",
"timezone": "America/New_York",
"updated_at": "2022-04-12T21:33:06.638091Z"
}
},
"title": "",
"properties": {
"_type": {
"type": "string",
"enum": [
"project_device"
]
},
"asset_type": {
"type": "string",
"enum": [
"video",
"audio",
"data"
]
},
"authorization": {
"type": "object",
"required": [
"_type",
"creator",
"creator_id",
"id",
"inserted_at",
"project_device_id",
"scopes"
],
"properties": {
"_type": {
"type": "string",
"enum": [
"project_device_authorization"
]
},
"creator": {
"type": "object",
"required": [
"_type",
"id",
"name"
],
"properties": {
"_type": {
"type": "string",
"minLength": 1,
"enum": [
"user"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string",
"minLength": 1
}
}
},
"creator_id": {
"type": "string",
"format": "uuid"
},
"expires_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"id": {
"type": "string",
"format": "uuid"
},
"inserted_at": {
"type": "string",
"format": "date-time"
},
"project_device_id": {
"type": "string",
"format": "uuid"
},
"scopes": {
"type": "object",
"required": [
"account_read",
"action_create",
"action_delete",
"action_read",
"action_update",
"asset_create",
"asset_delete",
"asset_read",
"asset_update",
"auditlog_read",
"comment_create",
"comment_delete",
"comment_read",
"comment_update",
"device_connect",
"id",
"offline",
"presentation_create",
"presentation_delete",
"presentation_read",
"presentation_update",
"project_create",
"project_delete",
"project_read",
"project_update",
"reviewlink_create",
"reviewlink_delete",
"reviewlink_read",
"reviewlink_update",
"team_create",
"team_read",
"team_update",
"webhook_create",
"webhook_delete",
"webhook_read",
"webhook_update"
],
"properties": {
"account_read": {
"type": "boolean"
},
"action_create": {
"type": "boolean"
},
"action_delete": {
"type": "boolean"
},
"action_read": {
"type": "boolean"
},
"action_update": {
"type": "boolean"
},
"asset_create": {
"type": "boolean"
},
"asset_delete": {
"type": "boolean"
},
"asset_read": {
"type": "boolean"
},
"asset_update": {
"type": "boolean"
},
"auditlog_read": {
"type": "boolean"
},
"comment_create": {
"type": "boolean"
},
"comment_delete": {
"type": "boolean"
},
"comment_read": {
"type": "boolean"
},
"comment_update": {
"type": "boolean"
},
"device_connect": {
"type": "boolean"
},
"id": {
"type": "string",
"minLength": 1
},
"offline": {
"type": "boolean"
},
"presentation_create": {
"type": "boolean"
},
"presentation_delete": {
"type": "boolean"
},
"presentation_read": {
"type": "boolean"
},
"presentation_update": {
"type": "boolean"
},
"project_create": {
"type": "boolean"
},
"project_delete": {
"type": "boolean"
},
"project_read": {
"type": "boolean"
},
"project_update": {
"type": "boolean"
},
"reviewlink_create": {
"type": "boolean"
},
"reviewlink_delete": {
"type": "boolean"
},
"reviewlink_read": {
"type": "boolean"
},
"reviewlink_update": {
"type": "boolean"
},
"team_create": {
"type": "boolean"
},
"team_read": {
"type": "boolean"
},
"team_update": {
"type": "boolean"
},
"webhook_create": {
"type": "boolean"
},
"webhook_delete": {
"type": "boolean"
},
"webhook_read": {
"type": "boolean"
},
"webhook_update": {
"type": "boolean"
}
}
}
}
},
"channels": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"$ref": "#/components/schemas/ProjectDeviceChannel"
}
},
"creator_id": {
"type": "string",
"format": "uuid"
},
"deleted_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"device_id": {
"type": "string",
"format": "uuid"
},
"id": {
"type": "string",
"format": "uuid"
},
"inserted_at": {
"type": "string",
"format": "date-time"
},
"last_seen_at": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string",
"maxLength": 250
},
"project": {
"type": "object",
"required": [
"_type",
"id",
"name"
],
"properties": {
"_type": {
"type": "string",
"minLength": 1
},
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
}
}
},
"project_id": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"enum": [
"online",
"offline",
"paused"
]
},
"timezone": {
"type": "string"
},
"updated_at": {
"type": "string",
"minLength": 1,
"format": "date-time"
}
},
"required": [
"_type",
"asset_type",
"authorization",
"channels",
"creator_id",
"device_id",
"id",
"inserted_at",
"last_seen_at",
"name",
"project",
"project_id",
"status",
"timezone",
"updated_at"
]
},
"ProjectDevice": {
"title": "ProjectDevice",
"type": "object",
"description": "Represents the correlation between a physical device and a Frame.io project.",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"asset_type": {
"description": "The type of asset that this device will be producing",
"oneOf": [
{
"enum": [
"video",
"audio",
"data"
]
}
],
"type": "string"
},
"creator_id": {
"type": "string",
"format": "uuid"
},
"deleted_at": {
"type": "string",
"format": "date-time",
"example": "2021-08-03T00:00:00Z"
},
"device_id": {
"type": "string",
"format": "uuid"
},
"inserted_at": {
"type": "string",
"format": "date-time",
"example": "2021-08-03T00:00:00Z"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"example": "2021-08-03T00:00:00Z"
},
"name": {
"type": "string",
"description": "Name of this device as shown in the iOS app and web app",
"maxLength": 255
},
"project_id": {
"type": "string",
"format": "uuid",
"description": "The Project ID that this device is linked to"
},
"updated_at": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"offline",
"online"
]
},
"timezone": {
"type": "string"
},
"authorization": {
"$ref": "#/components/schemas/ProjectDeviceAuthorization"
},
"project": {
"$ref": "#/components/schemas/Project"
},
"channels": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProjectDeviceChannel"
}
},
"channel_count": {
"type": "integer",
"maximum": 100
},
"path_asset_type": {
"type": "string",
"maxLength": 50
},
"path_name": {
"type": "string",
"maxLength": 50
},
"required_metadata_attributes": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"ProjectDeviceChannel": {
"title": "ProjectDeviceChannel",
"type": "object",
"properties": {
"_type": {
"type": "string",
"default": "project_device_channel"
},
"id": {
"type": "string",
"format": "uuid"
},
"actor_id": {
"type": "string",
"format": "uuid"
},
"asset_type": {
"type": "string",
"enum": [
"audio",
"video",
"data"
]
},
"device_id": {
"type": "string",
"format": "uuid"
},
"external_index": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"inserted_at": {
"type": "string",
"format": "date-time",
"example": "2021-08-03T00:00:00Z"
},
"name": {
"type": "string",
"description": "Auto-generated name, based on the device model"
},
"project_id": {
"type": "string",
"description": "The Project ID that this device is linked to"
},
"project_device_id": {
"type": "string"
},
"real_time_logging_capable": {
"type": "boolean",
"default": false
},
"status": {
"type": "string",
"enum": [
"offline",
"online"
]
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2021-08-03T00:00:00Z"
}
}
},
"SMPTETimeRepresentation": {
"type": "object",
"properties": {
"smpte_timecode": {
"type": "string",
"example": "01:00:00:00",
"description": "Timecode represented as a SMPTE string, \n\n Learn more about timecode [here](https://workflow.frame.io/guide/timecode)!"
},
"rate": {
"type": "object",
"description": "Framerate of the timecode stream",
"properties": {
"playback": {
"type": "array",
"description": "Playback speed of the framerate, represented as a `[numerator, denominator]` pair in an array. Optionally, this field also accepts fractions in string format, `\"numerator/denominator\"`. NTSC framerates like 23.98 should be sent as they're fully qualified rational value: `[24000, 1001]`.",
"items": {
"type": "integer"
},
"example": [
24000,
1001
],
"minItems": 2,
"maxItems": 2
},
"ntsc": {
"type": "string",
"description": "The NTSC standard of the timecode. Can be `\"non_drop\"` or `null`. If `null`, playback must represent a whole-number value, such as `[24, 1]`. If `\"non_drop\"`, playback must represent a valid NTSC framerate, such as `[24000, 1001]`.",
"enum": [
"ntsc"
],
"nullable": true
}
}
}
}
},
"RealtimeAssetResponse": {
"title": "RealtimeAssetCreateResponse",
"x-stoplight": {
"id": "371c0a12912b3"
},
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "The ID for this asset, can be used in places like `https://app.frame.io/player/:id` to go directly to an asset."
},
"name": {
"type": "string",
"description": "Represents the name of the asset (filename).",
"example": "my_video.mp4"
}
},
"required": [
"id",
"name"
]
}
},
"responses": {
"AssetResponse": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Asset"
}
}
},
"description": "Asset success response",
"headers": {
"x-ratelimit-limit": {
"$ref": "#/components/headers/x-ratelimit-limit"
},
"x-ratelimit-window": {
"$ref": "#/components/headers/x-ratelimit-window"
},
"x-ratelimit-remaining": {
"$ref": "#/components/headers/x-ratelimit-remaining"
}
}
},
"Unauthorized": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"code": 401,
"errors": [
{
"code": 401,
"detail": "You are not allowed to access that resource",
"status": 401,
"title": "Not Authorized"
}
],
"message": "Not Authorized"
}
}
},
"schema": {
"$ref": "#/components/schemas/HTTPError"
}
}
},
"description": "Unauthorized response"
},
"NotFound": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"code": 404,
"errors": [
{
"code": 404,
"detail": "Could not find the requested resource",
"status": 404,
"title": "Not Found"
}
],
"message": "Not Found"
}
}
},
"schema": {
"$ref": "#/components/schemas/HTTPError"
}
}
},
"description": "Not Found response"
},
"AccountsResponse": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/Account"
},
"type": "array"
}
}
},
"description": "Paginated accounts success response",
"headers": {
"link": {
"$ref": "#/components/headers/LinkHeader"
},
"page-number": {
"$ref": "#/components/headers/PageNumber"
},
"per-page": {
"$ref": "#/components/headers/PerPage"
},
"total": {
"$ref": "#/components/headers/Total"
},
"total-pages": {
"$ref": "#/components/headers/TotalPages"
}
}
},
"ReviewLinkResponse": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReviewLink"
}
}
},
"description": "ReviewLink success response"
},
"ActionsResponse": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/Action"
},
"type": "array"
}
}
},
"description": "Action success response",
"headers": {
"link": {
"$ref": "#/components/headers/LinkHeader"
},
"page-number": {
"$ref": "#/components/headers/PageNumber"
},
"per-page": {
"$ref": "#/components/headers/PerPage"
},
"total": {
"$ref": "#/components/headers/Total"
},
"total-pages": {
"$ref": "#/components/headers/TotalPages"
}
}
},
"ActionResponse": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Action"
}
}
},
"description": "Action success response"
},
"AuditsResponse": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/Audit"
},
"type": "array"
}
}
},
"description": "Audit logs list response",
"headers": {
"link": {
"$ref": "#/components/headers/LinkHeader"
},
"page-number": {
"$ref": "#/components/headers/PageNumber"
},
"per-page": {
"$ref": "#/components/headers/PerPage"
},
"total": {
"$ref": "#/components/headers/Total"
},
"total-pages": {
"$ref": "#/components/headers/TotalPages"
}
}
},
"BatchCollaboratorCreateResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"error": {
"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa": "Something went wrong!"
}
}
}
},
"schema": {
"properties": {
"error": {
"type": "object"
}
},
"type": "object"
}
}
},
"description": "Batch create success response"
},
"BatchCollaboratorDeleteResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"error": {
"failed@foobar.biz": "Something went wrong!"
}
}
}
},
"schema": {
"properties": {
"error": {
"type": "object"
}
},
"type": "object"
}
}
},
"description": "Batch Delete success response"
},
"AccountResponse": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Account"
}
}
},
"description": "Account success response"
},
"DeviceChannelAlreadyExists": {
"description": "Device channel already exists",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPError"
}
}
}
},
"ProjectsResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": [
{
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"name": "My Project",
"owner_id": "dddddddd-dddd-dddd-dddd-dddddddddddd",
"private": false,
"project_preferences": {},
"root_asset_id": "cccccccc-cccc-cccc-cccc-cccccccccccc",
"team_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
}
]
}
},
"schema": {
"items": {
"$ref": "#/components/schemas/Project"
},
"type": "array"
}
}
},
"description": "Paginated projects success response",
"headers": {
"link": {
"$ref": "#/components/headers/LinkHeader"
},
"page-number": {
"$ref": "#/components/headers/PageNumber"
},
"per-page": {
"$ref": "#/components/headers/PerPage"
},
"total": {
"$ref": "#/components/headers/Total"
},
"total-pages": {
"$ref": "#/components/headers/TotalPages"
}
}
},
"ProjectResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"name": "My Project",
"owner_id": "dddddddd-dffd-dddd-dddd-dddddddddddd",
"private": false,
"project_preferences": {},
"root_asset_id": "cccccccc-cccc-cccc-cccc-cccccccccccc",
"team_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
}
}
},
"schema": {
"$ref": "#/components/schemas/Project"
}
}
},
"description": "Project success response"
},
"CollaboratorResponse": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Collaborator"
}
}
},
"description": "Collaborator success response"
},
"CommentsResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": [
{
"annotation": "[...]",
"completed": false,
"completed_at": "2020-07-15T17:30:00.906305Z",
"completer_id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"has_replies": true,
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"like_count": 10,
"owner": {
"account_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
"email": "jane@frame.io",
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"name": "Jane Doe"
},
"owner_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
"text": "This is a comment.",
"timestamp": 60
}
]
}
},
"schema": {
"items": {
"$ref": "#/components/schemas/Comment"
},
"type": "array"
}
}
},
"description": "Comments success response",
"headers": {
"link": {
"$ref": "#/components/headers/LinkHeader"
},
"page-number": {
"$ref": "#/components/headers/PageNumber"
},
"per-page": {
"$ref": "#/components/headers/PerPage"
},
"total": {
"$ref": "#/components/headers/Total"
},
"total-pages": {
"$ref": "#/components/headers/TotalPages"
}
}
},
"CommentResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"annotation": "[...]",
"completed": false,
"completed_at": "2020-07-15T17:30:00.906305Z",
"completer_id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"has_replies": true,
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"like_count": 10,
"owner": {
"account_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
"email": "jane@frame.io",
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"name": "Jane Doe"
},
"owner_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
"text": "This is a comment.",
"timestamp": 60
}
}
},
"schema": {
"$ref": "#/components/schemas/Comment"
}
}
},
"description": "Comment success response"
},
"ProjectMembershipResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"collaborator": true,
"owner": true,
"team_member": true,
"team_role": "team_manager"
}
}
},
"schema": {
"$ref": "#/components/schemas/ProjectMembership"
}
}
},
"description": "Project membership success response"
},
"AssetSubtitleResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"_type": "asset_subtitle",
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"subtitle_tracks": [
"https://frameio-app.com/subtitle_track/3gsa-3456aa",
"https://frameio-app.com/subtitle_track/fms2-amfng4"
]
}
}
},
"schema": {
"$ref": "#/components/schemas/AssetSubtitle"
}
}
},
"description": "Asset subtitle response"
},
"WebhookResponse": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Webhook"
}
}
},
"description": "Webhook success response"
},
"TeamsResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": [
{
"access": "public",
"collaborator_count": 3,
"file_count": 1,
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"name": "My Team",
"project_count": 2,
"storage": 123456
}
]
}
},
"schema": {
"items": {
"$ref": "#/components/schemas/Team"
},
"type": "array"
}
}
},
"description": "Paginated Teams success response",
"headers": {
"link": {
"$ref": "#/components/headers/LinkHeader"
},
"page-number": {
"$ref": "#/components/headers/PageNumber"
},
"per-page": {
"$ref": "#/components/headers/PerPage"
},
"total": {
"$ref": "#/components/headers/Total"
},
"total-pages": {
"$ref": "#/components/headers/TotalPages"
}
}
},
"AccountMembershipResponse": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccountMembership"
}
}
},
"description": "Account membership success response"
},
"AssetsResponse": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/Asset"
},
"type": "array"
}
}
},
"description": "Assets success response",
"headers": {
"link": {
"$ref": "#/components/headers/LinkHeader"
},
"page-number": {
"$ref": "#/components/headers/PageNumber"
},
"per-page": {
"$ref": "#/components/headers/PerPage"
},
"total": {
"$ref": "#/components/headers/Total"
},
"total-pages": {
"$ref": "#/components/headers/TotalPages"
}
}
},
"AssetAudioResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"_type": "asset_audio",
"audio_tracks": [
"https://frameio-app.com/audio_track/2mgz5-tj39md",
"https://frameio-app.com/audio_track/5masj-135md"
],
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
}
}
},
"schema": {
"$ref": "#/components/schemas/AssetAudio"
}
}
},
"description": "Asset audio response"
},
"CommentImpressionsResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": [
{
"asset_id": "bbbbbbbb-bbbb-bb123-bbbb-bbbbbbbbbbbb",
"count": 10,
"deleted_at": "2020-07-15T17:30:00.906305Z",
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"inserted_at": "2020-07-15T17:30:00.906305Z",
"review_link_id": "cccccccc-cccc-cccc-cccc-cccccccccccc",
"type": "view",
"user": {
"account_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
"email": "jane@frame.io",
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"name": "Jane Doe"
},
"user_id": "dddddddd-dddd-dddd-dddd-dddddddddddd"
}
]
}
},
"schema": {
"items": {
"$ref": "#/components/schemas/CommentImpression"
},
"type": "array"
}
}
},
"description": "Comment Impressions success response",
"headers": {
"link": {
"$ref": "#/components/headers/LinkHeader"
},
"page-number": {
"$ref": "#/components/headers/PageNumber"
},
"per-page": {
"$ref": "#/components/headers/PerPage"
},
"total": {
"$ref": "#/components/headers/Total"
},
"total-pages": {
"$ref": "#/components/headers/TotalPages"
}
}
},
"ReviewLinksResponse": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/ReviewLink"
},
"type": "array"
}
}
},
"description": "ReviewLink success response",
"headers": {
"link": {
"$ref": "#/components/headers/LinkHeader"
},
"page-number": {
"$ref": "#/components/headers/PageNumber"
},
"per-page": {
"$ref": "#/components/headers/PerPage"
},
"total": {
"$ref": "#/components/headers/Total"
},
"total-pages": {
"$ref": "#/components/headers/TotalPages"
}
}
},
"WebhooksResponse": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/Webhook"
},
"type": "array"
}
}
},
"description": "Webhook success response",
"headers": {
"link": {
"$ref": "#/components/headers/LinkHeader"
},
"page-number": {
"$ref": "#/components/headers/PageNumber"
},
"per-page": {
"$ref": "#/components/headers/PerPage"
},
"total": {
"$ref": "#/components/headers/Total"
},
"total-pages": {
"$ref": "#/components/headers/TotalPages"
}
}
},
"UserResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"account_id": "bbbbbbbb-b12b-bbbb-bbbb-bbbbbbbbbbbb",
"email": "jane@frame.io",
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"name": "Jane Doe"
}
}
},
"schema": {
"$ref": "#/components/schemas/User"
}
}
},
"description": "User success response"
},
"TeamResponse": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Team"
}
}
},
"description": "Team success response"
},
"TeamMembershipResonse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"role": "team_manager"
}
}
},
"schema": {
"properties": {
"role": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Team membership success response"
},
"BatchAssetCopyResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"error": {
"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa": "Something went wrong!"
}
}
}
},
"schema": {
"type": "object",
"x-examples": {
"example-1": {
"error": {},
"success": {
"60ff4cca-f97b-4311-be24-0eecd6970c01": {
"parent_id": "488f81d8-cce3-4b55-bd8b-98a2df9ce09e",
"image_high": null,
"webm_1080_best": null,
"duration": 7.296,
"user_permissions": {
"can_download": true,
"can_manage_devices": true,
"can_modify_template": false,
"can_public_share_presentation": true,
"can_public_share_review_link": true,
"can_share_downloadable_presentation": true,
"can_share_downloadable_review_link": true,
"can_share_unwatermarked_presentation": true,
"can_share_unwatermarked_review_link": true,
"can_view_devices": true
},
"resource_id": null,
"h265_hdr_2160": null,
"filetype": "video/mp4",
"h265_hdr_720": null,
"thumb": "https://assets.frame.io/asset/video-thumbnail/60ff4cca-f97b-4311-be24-0eecd6970c01/thumb.jpg?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiI1MThjM2VkYWQ2NzFiZjdiMWFlYTFiNDM0NmZkOWMwNjE5MWNmZjgyZTRkYzEzMjRiMWU3YmFiYzI1MmRmNGQ1IiwidmVyc2lvbiI6MH0.Kg2ABhhvEhHMBAmBZiQMXat53pfuZDP1jUR6ghQL8jLqjnWUnI8PnK8cnqktIaCqCFaG7ln8helNFSowc5l3lw",
"creator_id": "eefb57e0-79f2-4bc7-9b70-99fbc175175c",
"description": null,
"video_h264_180": null,
"hard_deleted_at": null,
"label": "none",
"includes": [
"video",
"audio"
],
"project_id": "67b2bc15-40b8-4687-8c17-92af7f99c8f2",
"drm": null,
"id": "d9fbf734-9570-4e64-82ce-8607e1f5c9a6",
"timecode": "00:00:00:00",
"view_count": 16,
"metadata_flags": null,
"page_small": null,
"upload_completed_at": "2020-06-10T15:38:08.827466Z",
"thumb_orig_ar_540": "https://assets.frame.io/asset/video-thumbnail/60ff4cca-f97b-4311-be24-0eecd6970c01/thumb_orig_ar_540.jpg?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiJlZTgyNDA0ZTA2MTgzYThkMDNmOWMyZDQyMGJlZTc5ZWVkODJhMTlmMmNjMTgxYjQyNzc0ZmRjMzIzYWEzODMwIiwidmVyc2lvbiI6MH0.0khPX0MKo3fkHdq1YVA-YH4mipGVT7f9tqUQsylfc-X8rnbn7vHVmdppb6w6Mwqrc1DTE_wZiVJqj86kXH1CJg",
"waveform": null,
"archived_at": null,
"is_session_watermarked": false,
"thumb_scrub": "https://assets.frame.io/asset/scrub/60ff4cca-f97b-4311-be24-0eecd6970c01/thumb_scrub.jpg?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiI2OWIwYzNhMzE3MDcxNjMwMjNkZDU1OGJmMjI1NWNkNDZhNDU0OWY5OWMwZDRiZjQ3YWQzY2Y4ZGJlMDg2Y2E1IiwidmVyc2lvbiI6MH0._ypW6uMfI2k3TtVK3bPDG5cs0V8F1rBbAVIpFYigroj6vJWLeqeyMmQp4Tiz-oxVmghZeLy7FUVowu_0ew6MBw",
"name": "Jeff's awesome video.mp4",
"page_high": null,
"required_transcodes": [
"cover",
"h264_1080_best",
"h264_360",
"h264_540",
"h264_720",
"image_full",
"thumb",
"thumb_540",
"thumb_orig_ar_540",
"thumb_scrub"
],
"archive_scheduled_at": null,
"public_item_count": 0,
"thumb_540": "https://assets.frame.io/asset/video-thumbnail/60ff4cca-f97b-4311-be24-0eecd6970c01/thumb_540.png?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiIxOGIzOGY4MjRmYzlmYzRkY2Y3MWQ2MzFiZWNiMWJhMTQ3NzRkNTNjMTJkMjE3YzZlZjFiNGE1M2RjYjdmNmYyIiwidmVyc2lvbiI6MH0.lLyxuqb98UzVy7i-KZDaW_zj9uKOpTad_QCBSlMTSO_xeOzxDGNJn92Dsz3X3t5gpA7rLjrtnZjZ1dIyltQYmQ",
"frame_thumb": null,
"frame_custom": null,
"h265_hdr_540": null,
"cover": "https://assets.frame.io/asset/video-cover/60ff4cca-f97b-4311-be24-0eecd6970c01/cover.jpg?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiIwNzI5ODI5OTk1ZWIzZmU5OTVjZjM3MGQwOTM2NTAyMDkxNzNiYjQ5NThkYzc1YzFmZDFiZjkyN2NmZGQyMGI2IiwidmVyc2lvbiI6MH0.6GI9bwk5VSdD6O4FVKG9UYgKP_sFJh0Fgoh-42dXIBYOcbHwx1F81l_MifFEzKE2bYREwUXy8JNJLYv3_hON6g",
"h264_540": "https://assets.frame.io/asset/encode/60ff4cca-f97b-4311-be24-0eecd6970c01/h264_540.mp4?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiI2NmVjM2E0NjM1MDRiYjM4YjdiYTA4OWJlN2FjMjRlNzkzYjhkMmUyMDA1MzExMmViMmRkYjEyMTY4OWM2YmZiIiwidmVyc2lvbiI6MH0.qrB7OGaDzwAo1fGtxiKl-1dDyaxqIvinGSRAL43Bvp0holKgJooS1o8gObq4LnhToeVZ9y_VNXo6EwwGG-6gUA",
"versions": 0,
"status": "transcoded",
"asset_type": "stream",
"is_360": false,
"private": false,
"filesize": 16505499,
"deleted_at": null,
"team_id": "b44d6420-fa8d-4e85-af05-0f26785c54f5",
"webm_540": null,
"_type": "file",
"frame_cover": null,
"account_id": "6bdcb4d9-9a2e-4548-a765-ae6b27a6c024",
"hls_manifest": "https://stream.frame.io/lgate/manifest/hls/master?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbInBheWxvYWQiLCJleUpoZFdScGJ5STZXeUp6TXpvdkwyWnlZVzFsYVc4dFlYTnpaWFJ6TFhCeWIyUjFZM1JwYjI0dlpXNWpiMlJsTHpZd1ptWTBZMk5oTFdZNU4ySXRORE14TVMxaVpUSTBMVEJsWldOa05qazNNR013TVM5b01qWTBYek0yTUM1dGNEUWlYU3dpYVdRaU9pSmtPV1ppWmpjek5DMDVOVGN3TFRSbE5qUXRPREpqWlMwNE5qQTNaVEZtTldNNVlUWWlMQ0oxYzJWeVgyTnZibVpwWnlJNmV5SmhZMk52ZFc1MFgybGtJam9pTm1Ka1kySTBaRGt0T1dFeVpTMDBOVFE0TFdFM05qVXRZV1UyWWpJM1lUWmpNREkwSWl3aVlYTnpaWFJmYVdRaU9pSmtPV1ppWmpjek5DMDVOVGN3TFRSbE5qUXRPREpqWlMwNE5qQTNaVEZtTldNNVlUWWlMQ0p3YkdGNVpYSmZkSGx3WlNJNkltbHVkR1Z5Ym1Gc0lpd2ljSEpsYzJWdWRHRjBhVzl1WDJsa0lqcHVkV3hzTENKd2NtOXFaV04wWDJsa0lqb2lOamRpTW1Kak1UVXROREJpT0MwME5qZzNMVGhqTVRjdE9USmhaamRtT1Rsak9HWXlJaXdpY21WMmFXVjNYMnhwYm10ZmFXUWlPbTUxYkd3c0luTmxjM05wYjI1ZmFXUWlPaUkwTXpsaVlURmxPV1UyWlRSbU0yWTNZMkV6TW1WaFpHUXdabU5sTWpVMk16STVaakV4TlRjMUlpd2lkR1ZoYlY5cFpDSTZJbUkwTkdRMk5ESXdMV1poT0dRdE5HVTROUzFoWmpBMUxUQm1NalkzT0RWak5UUm1OU0o5TENKMmFXUmxieUk2V3lKek16b3ZMMlp5WVcxbGFXOHRZWE56WlhSekxYQnliMlIxWTNScGIyNHZaVzVqYjJSbEx6WXdabVkwWTJOaExXWTVOMkl0TkRNeE1TMWlaVEkwTFRCbFpXTmtOamszTUdNd01TOW9NalkwWHpNMk1DNXRjRFFpTENKek16b3ZMMlp5WVcxbGFXOHRZWE56WlhSekxYQnliMlIxWTNScGIyNHZaVzVqYjJSbEx6WXdabVkwWTJOaExXWTVOMkl0TkRNeE1TMWlaVEkwTFRCbFpXTmtOamszTUdNd01TOW9NalkwWHpVME1DNXRjRFFpTENKek16b3ZMMlp5WVcxbGFXOHRZWE56WlhSekxYQnliMlIxWTNScGIyNHZaVzVqYjJSbEx6WXdabVkwWTJOaExXWTVOMkl0TkRNeE1TMWlaVEkwTFRCbFpXTmtOamszTUdNd01TOW9NalkwWHpjeU1DNXRjRFFpTENKek16b3ZMMlp5WVcxbGFXOHRZWE56WlhSekxYQnliMlIxWTNScGIyNHZaVzVqYjJSbEx6WXdabVkwWTJOaExXWTVOMkl0TkRNeE1TMWlaVEkwTFRCbFpXTmtOamszTUdNd01TOW9NalkwWHpFd09EQmZZbVZ6ZEM1dGNEUWlYWDA9Il1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiIzMzc0ZGI4ZjZhODBkNmIwNDUyM2YzNzBkZDgyY2EyMThmODI1ZGQ3YjFiMTczNWQyZDA1NzhiZDI5YWY0NzU0IiwidmVyc2lvbiI6MH0.2VqdY1IADDfeXgDhe0dRW31Y5gyZcON3ni4ZKJm-xTKmfagD6DjtS7lM4LTucm5cyWCRjEAGMTW80L1Tw8B7aw",
"inserted_at": "2022-06-21T01:13:10.301298Z",
"comment_count": 0,
"type": "file",
"upload_failed_at": null,
"h265_hdr_360": null,
"downloads": {
"h264_1080_best": "https://assets.frame.io/asset/encode/60ff4cca-f97b-4311-be24-0eecd6970c01/h264_1080_best.mp4?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl0sWyJyZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uIiwiYXR0YWNobWVudDsgZmlsZW5hbWU9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLm1wNFwiOyBmaWxlbmFtZSo9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLm1wNFwiIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiJlYzBkNmU4MzVhMWVlZGUxYTM0MWE0YTNhY2RmN2ZmOGY1NDVjYWJmMzA1YzY5MWRjNmJhYzc1MWE5NzU0OGE5IiwidmVyc2lvbiI6MH0.c3dVb2gi-JBnpUPByvk9QfUjxtezZ9Rr_e17dyJhXtYSm9lW5_6Uc6Bax40E8yvkhWU8fdLbJrysMuOli1SXdw",
"h264_2160": null,
"h264_360": "https://assets.frame.io/asset/encode/60ff4cca-f97b-4311-be24-0eecd6970c01/h264_360.mp4?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl0sWyJyZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uIiwiYXR0YWNobWVudDsgZmlsZW5hbWU9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLm1wNFwiOyBmaWxlbmFtZSo9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLm1wNFwiIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiI0ZDBmODJkMTZjNmQ1YTBkZTRhNzliZGNiYzFjMzQ5MjYwODRhNDJmNWRhMjEyZTkzMjY3OTBmY2Y0NTk5NDMzIiwidmVyc2lvbiI6MH0.IsWjM2YXCXZymR1vb5-_E9N1VZ8YTPGqnEusLpH4wnGWPfS6EJUEhh-oTf5nOWnDQSUlzyA15TPiz9a3F1F16Q",
"h264_540": "https://assets.frame.io/asset/encode/60ff4cca-f97b-4311-be24-0eecd6970c01/h264_540.mp4?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl0sWyJyZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uIiwiYXR0YWNobWVudDsgZmlsZW5hbWU9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLm1wNFwiOyBmaWxlbmFtZSo9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLm1wNFwiIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiI2NmVjM2E0NjM1MDRiYjM4YjdiYTA4OWJlN2FjMjRlNzkzYjhkMmUyMDA1MzExMmViMmRkYjEyMTY4OWM2YmZiIiwidmVyc2lvbiI6MH0.JQZq0u8hHvd58Fy1N7nBMAfILEr5Uh1iGULSq4syjhWghJjV3klmbLm9rtkUbl8kFkkyUxafz-Pgm3BZxEfOpQ",
"h264_720": "https://assets.frame.io/asset/encode/60ff4cca-f97b-4311-be24-0eecd6970c01/h264_720.mp4?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl0sWyJyZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uIiwiYXR0YWNobWVudDsgZmlsZW5hbWU9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLm1wNFwiOyBmaWxlbmFtZSo9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLm1wNFwiIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiIyNzM0NmRlOTUyMjMxOGVjMGZmMDAwOWE0Y2E3MTk4ZTc5ZTVmOWQzYjZkNjg1MDJiZDExNDRlMjZhMGE5N2RjIiwidmVyc2lvbiI6MH0.cXqVxKf4DEfQLOqf2eq8VEiP92jKUctYmaWX7gLjvHj9fhuIeKkDcI01hTbubEFKtsxvLRU00CVvqkkCUtGwBQ",
"image_full": "https://assets.frame.io/asset/image/60ff4cca-f97b-4311-be24-0eecd6970c01/image_full.jpg?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl0sWyJyZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uIiwiYXR0YWNobWVudDsgZmlsZW5hbWU9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLmpwZ1wiOyBmaWxlbmFtZSo9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLmpwZ1wiIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiI3NGZlZGY4Mjc5YWI4NzBhMjAwM2Q1ZDQ2NGJkY2NiN2VlNmY1NzRhZjBmZDM2Y2I2ZTA0NWNmZDI4MmNkMjE4IiwidmVyc2lvbiI6MH0.6d0FWZI6wjjxnavHI4nbE-woPZ8xJSOG49I0spsyGRweMNIyh6Q-TIh8kW46uoqtFbWmeWNXmcoyd1WNM7Ru5Q",
"image_high": null,
"image_small": "https://assets.frame.io/asset/image/60ff4cca-f97b-4311-be24-0eecd6970c01/image_small.jpg?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl0sWyJyZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uIiwiYXR0YWNobWVudDsgZmlsZW5hbWU9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLmpwZ1wiOyBmaWxlbmFtZSo9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLmpwZ1wiIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiIwOGU2YTI2MjgxOWYwZmRkZmYwN2FmMjYwZDk0MWIzNmY2NTZkMmJmZjdiMzM5OTQ4MGVmZWExMTg2YjY1NjY3IiwidmVyc2lvbiI6MH0.wwaSe9dAP2Sb7EtOCDApDo6rWajeQ5v7uW_7p-WXM6oMpaywPE_OrUDdtYewxJGIBi76Iz86L_Q0eEUtVylmWw"
},
"page_full": null,
"h265_hdr_1080": null,
"cover_asset_id": null,
"properties": {
"AVID_MOBID": "060a2b340101010101010f0013-000000-0000038726fe8cb9-060e2b347f7f-2a80",
"AVID_USER": "avid"
},
"copy": true,
"audio_tracks": null,
"frames": 174,
"is_hls_required": false,
"allow_original_playback": null,
"h264_1080_best": "https://assets.frame.io/asset/encode/60ff4cca-f97b-4311-be24-0eecd6970c01/h264_1080_best.mp4?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiJlYzBkNmU4MzVhMWVlZGUxYTM0MWE0YTNhY2RmN2ZmOGY1NDVjYWJmMzA1YzY5MWRjNmJhYzc1MWE5NzU0OGE5IiwidmVyc2lvbiI6MH0.ElJZFwmc5AupB3SfVtjdHym8caO0pglRrAXCuU6gxZ72w_bsf3uiFSRCDdH0ev-Rq9Cb-1qYQmqOIWLGzLp8aw",
"item_count": 0,
"subtitle_tracks": null,
"updated_at": "2022-06-21T01:13:10.301298Z",
"webm_720": null,
"webm_360": null,
"transcodes": {
"_type": "transcode_state",
"codec": "AVC",
"id": "ff63881b-3f3e-46f6-af45-2a42ffae2517",
"original_height": 1080,
"original_width": 1920,
"resolutions": [
1080,
720,
540,
360
],
"thumb_height": 135,
"thumb_state": "media",
"thumb_width": 240,
"thumbs": 50,
"total_audio_tracks": 1
},
"checksums": {
"id": "71cfbdd4-48c5-4b21-bbe2-08a4646d68c3",
"xx_hash": "a5c29a1dc0485d74"
},
"transcoded_at": "2020-06-10T15:39:43.151243Z",
"index": -3,
"archive_from": "2022-06-21T01:13:10.301298Z",
"fps": 23.976024,
"autoversion_id": null,
"transcode_statuses": {
"audio_track": {
"codec": null,
"duration": null,
"encode_status": "success",
"encode_time": null,
"error": null,
"filesize": null,
"fps": null,
"height": null,
"language": null,
"num_channels": null,
"num_frames": null,
"storage_class": "regular",
"watermark": null,
"width": null
},
"cover": {
"codec": null,
"duration": null,
"encode_status": "success",
"encode_time": null,
"error": null,
"filesize": 101270,
"fps": null,
"height": null,
"language": null,
"num_channels": null,
"num_frames": null,
"storage_class": "regular",
"watermark": null,
"width": null
},
"h264_1080_best": {
"codec": null,
"duration": null,
"encode_status": "success",
"encode_time": 6,
"error": null,
"filesize": 4776921,
"fps": null,
"height": null,
"language": null,
"num_channels": null,
"num_frames": null,
"storage_class": "regular",
"watermark": {
"image": false,
"text": false
},
"width": null
},
"h264_360": {
"codec": null,
"duration": null,
"encode_status": "success",
"encode_time": 4,
"error": null,
"filesize": 1211864,
"fps": null,
"height": null,
"language": null,
"num_channels": null,
"num_frames": null,
"storage_class": "regular",
"watermark": {
"image": false,
"text": false
},
"width": null
},
"h264_540": {
"codec": null,
"duration": null,
"encode_status": "success",
"encode_time": 4,
"error": null,
"filesize": 2035653,
"fps": null,
"height": null,
"language": null,
"num_channels": null,
"num_frames": null,
"storage_class": "regular",
"watermark": {
"image": false,
"text": false
},
"width": null
},
"h264_720": {
"codec": null,
"duration": null,
"encode_status": "success",
"encode_time": 5,
"error": null,
"filesize": 2985266,
"fps": null,
"height": null,
"language": null,
"num_channels": null,
"num_frames": null,
"storage_class": "regular",
"watermark": {
"image": false,
"text": false
},
"width": null
},
"image_full": {
"codec": null,
"duration": null,
"encode_status": "success",
"encode_time": null,
"error": null,
"filesize": 121178,
"fps": null,
"height": null,
"language": null,
"num_channels": null,
"num_frames": null,
"storage_class": "regular",
"watermark": {
"image": false,
"text": false
},
"width": null
},
"image_small": {
"codec": null,
"duration": null,
"encode_status": "success",
"encode_time": null,
"error": null,
"filesize": 14560,
"fps": null,
"height": null,
"language": null,
"num_channels": null,
"num_frames": null,
"storage_class": "regular",
"watermark": {
"image": false,
"text": false
},
"width": null
},
"thumb": {
"codec": null,
"duration": null,
"encode_status": "success",
"encode_time": null,
"error": null,
"filesize": 6453,
"fps": null,
"height": null,
"language": null,
"num_channels": null,
"num_frames": null,
"storage_class": "regular",
"watermark": null,
"width": null
},
"thumb_540": {
"codec": null,
"duration": null,
"encode_status": "success",
"encode_time": null,
"error": null,
"filesize": 683720,
"fps": null,
"height": null,
"language": null,
"num_channels": null,
"num_frames": null,
"storage_class": "regular",
"watermark": null,
"width": null
},
"thumb_orig_ar_540": {
"codec": null,
"duration": null,
"encode_status": "success",
"encode_time": null,
"error": null,
"filesize": 60800,
"fps": null,
"height": null,
"language": null,
"num_channels": null,
"num_frames": null,
"storage_class": "regular",
"watermark": null,
"width": null
},
"thumb_scrub": {
"codec": null,
"duration": null,
"encode_status": "success",
"encode_time": null,
"error": null,
"filesize": 227505,
"fps": null,
"height": null,
"language": null,
"num_channels": null,
"num_frames": null,
"storage_class": "regular",
"watermark": null,
"width": null
}
},
"page_thumb": null,
"uploaded_at": "2020-06-10T15:37:58.435106Z",
"source": null,
"h264_720": "https://assets.frame.io/asset/encode/60ff4cca-f97b-4311-be24-0eecd6970c01/h264_720.mp4?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiIyNzM0NmRlOTUyMjMxOGVjMGZmMDAwOWE0Y2E3MTk4ZTc5ZTVmOWQzYjZkNjg1MDJiZDExNDRlMjZhMGE5N2RjIiwidmVyc2lvbiI6MH0.8SgkKgccHzT_GTXpO6hSq0mtvYePBFpg3dCnJk9JJ067scAL9qX0pZOLtyFIjk2JjVVI2nq4pDBY9MLnPb7FVA",
"image_full": "https://assets.frame.io/asset/image/60ff4cca-f97b-4311-be24-0eecd6970c01/image_full.jpg?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiI3NGZlZGY4Mjc5YWI4NzBhMjAwM2Q1ZDQ2NGJkY2NiN2VlNmY1NzRhZjBmZDM2Y2I2ZTA0NWNmZDI4MmNkMjE4IiwidmVyc2lvbiI6MH0.p1I9jCvSN1Uans1COVbblKttR-zpdf2p1jGqE9UFxx5X6xA-kJFrGj3fa0OOafNbGBVFHf2i0aBvdCCGJ0JfrA",
"original": "https://assets.frame.io/uasset/uploads/60ff4cca-f97b-4311-be24-0eecd6970c01/original.mp4?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl0sWyJyZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uIiwiYXR0YWNobWVudDsgZmlsZW5hbWU9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLm1wNFwiOyBmaWxlbmFtZSo9XCJKZWZmXFwncyBhd2Vzb21lIHZpZGVvLm1wNFwiIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiJjZjIzNzQwMGNlZjY2NDgwYzY5MDQwYmVmNGE3YjZlODFkMzhmMmViYWE4ODQwNDJhMDM3ZTQwNWU3NDliMmNlIiwidmVyc2lvbiI6MH0.8TDOi2lbPDeiJBub_nQgV0ROr3tqjQvv4eywHkgEcy_KtpT2LSqDsHrKFnUwrKS9hvDV-thohvaTXHrPkBx6wg",
"shared": false,
"image_small": "https://assets.frame.io/asset/image/60ff4cca-f97b-4311-be24-0eecd6970c01/image_small.jpg?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiIwOGU2YTI2MjgxOWYwZmRkZmYwN2FmMjYwZDk0MWIzNmY2NTZkMmJmZjdiMzM5OTQ4MGVmZWExMTg2YjY1NjY3IiwidmVyc2lvbiI6MH0.pK3XDCTpOIOz2xofeVLmgE5ZfXkrQPi_p47CExTAlVBaFx3vaIrahVcarPxlDPoJeOZjKVtfW1hf3inAcPx9Ig",
"rating": null,
"h264_360": "https://assets.frame.io/asset/encode/60ff4cca-f97b-4311-be24-0eecd6970c01/h264_360.mp4?X-Frame-Edge-Auth=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE2NTU4MDI3OTEsInF1ZXJ5X3BhcmFtcyI6W1sieC1hbXotbWV0YS1yZXF1ZXN0X2lkIiwiRnZwOXEtYnFwWENUOElZQVlYVUgiXSxbIngtYW16LW1ldGEtdXNlcl9pZCIsImVlZmI1N2UwLTc5ZjItNGJjNy05YjcwLTk5ZmJjMTc1MTc1YyJdLFsieC1hbXotbWV0YS1yZXNvdXJjZV90eXBlIiwiYXNzZXQiXSxbIngtYW16LW1ldGEtcmVzb3VyY2VfaWQiLCJkOWZiZjczNC05NTcwLTRlNjQtODJjZS04NjA3ZTFmNWM5YTYiXSxbIngtYW16LW1ldGEtcHJvamVjdF9pZCIsIjY3YjJiYzE1LTQwYjgtNDY4Ny04YzE3LTkyYWY3Zjk5YzhmMiJdLFsieC1hbXotbWV0YS1wcm9qZWN0X2lkIiwiNjdiMmJjMTUtNDBiOC00Njg3LThjMTctOTJhZjdmOTljOGYyIl1dLCJzZXNzaW9uX2hhc2giOiJhYjU5ODdlZjViNTM1M2I5ODgzOTdiNzc5MWZhMjk3NWU1ZDRiNTIyMTU1MmJkYTFlYzAzZjM5ZGQxM2U0ODVkIiwidXJsX2hhc2giOiI0ZDBmODJkMTZjNmQ1YTBkZTRhNzliZGNiYzFjMzQ5MjYwODRhNDJmNWRhMjEyZTkzMjY3OTBmY2Y0NTk5NDMzIiwidmVyc2lvbiI6MH0.cP8g8ONo_uE5dMA9g4C8Cj5FLvWwuc2rOJIZi8vkZjhjpbs2kwRjCRgbrP7a7gIsfDb_Wbwt7deBqQRxTnqJ5A",
"archive_status": null,
"h264_2160": null
}
}
}
},
"properties": {
"error": {
"type": "object",
"description": "Assets that were not copied, and why they weren't copied"
},
"success": {
"type": "object",
"description": "The assets that were succesfully copied",
"properties": {
"id": {
"$ref": "#/components/schemas/Asset"
}
}
},
"succes_test": {
"type": "object",
"properties": {
"": {
"type": "object"
}
}
},
"": {
"type": "string"
}
}
}
}
},
"description": "Batch copy success response"
},
"InstallationResponse": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Installation"
}
}
},
"description": "Installation success response"
},
"BatchAssetDeleteResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"error": {
"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa": "Something went wrong!"
}
}
}
},
"schema": {
"properties": {
"error": {
"type": "object"
}
},
"type": "object"
}
}
},
"description": "Batch delete success response"
},
"PresentationsResponse": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/Presentation"
},
"type": "array"
}
}
},
"description": "Presentations success response",
"headers": {
"link": {
"$ref": "#/components/headers/LinkHeader"
},
"page-number": {
"$ref": "#/components/headers/PageNumber"
},
"per-page": {
"$ref": "#/components/headers/PerPage"
},
"total": {
"$ref": "#/components/headers/Total"
},
"total-pages": {
"$ref": "#/components/headers/TotalPages"
}
}
},
"TeamMemberResponse": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"role": "team_manager",
"user_id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
}
}
},
"schema": {
"properties": {
"role": {
"type": "string"
},
"user_id": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Team member success response"
},
"ReviewLinkItemsResponse": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/ReviewLinkItem"
},
"type": "array"
}
}
},
"description": "ReviewLinkItems success response",
"headers": {
"link": {
"$ref": "#/components/headers/LinkHeader"
},
"page-number": {
"$ref": "#/components/headers/PageNumber"
},
"per-page": {
"$ref": "#/components/headers/PerPage"
},
"total": {
"$ref": "#/components/headers/Total"
},
"total-pages": {
"$ref": "#/components/headers/TotalPages"
}
}
},
"PresentationResponse": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Presentation"
}
}
},
"description": "Presentation success response"
},
"DeviceIdentityResponse": {
"description": "Succesful response after identifying the device.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProjectDevice"
}
}
}
},
"ProjectDeviceResponse": {
"description": "Example response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProjectDeviceAuthorization"
}
}
},
"headers": {}
},
"ProjectDeviceChannelConnectResponse": {
"description": "Example response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProjectDeviceChannel"
}
}
},
"headers": {}
},
"DeviceAccountsResponse": {
"description": "Example response",
"content": {
"application/json": {
"schema": {
"type": "array",
"description": "",
"minItems": 1,
"uniqueItems": true,
"x-examples": {
"example-1": [
{
"_type": "account",
"display_name": "Hogwarts General",
"id": "46b7ea11-3041-4e2b-97f7-98fbf5c974c9"
},
{
"_type": "account",
"display_name": "Gryffindor",
"id": "e6007a3d-cad7-4666-9ee3-23c1af032060"
},
{
"_type": "account",
"display_name": "QUIDDITCH LEGENDS -- LETS GOOOOOOOOOO",
"id": "cc94119d-f957-4d6e-b8cf-0c095211b1b9"
}
]
},
"items": {
"type": "object",
"properties": {
"_type": {
"type": "string",
"enum": [
"account"
],
"description": "The resource type, will always be `account`."
},
"display_name": {
"type": "string",
"description": "The account's display name"
},
"id": {
"type": "string",
"format": "uuid",
"description": "The unique identifier for this account"
}
},
"required": [
"_type",
"display_name",
"id"
]
}
},
"examples": {
"AccountsResponse": {
"value": [
{
"_type": "account",
"display_name": "Hogwarts General",
"id": "46b7ea11-3041-4e2b-97f7-98fbf5c974c9"
},
{
"_type": "account",
"display_name": "Gryffindor",
"id": "e6007a3d-cad7-4666-9ee3-23c1af032060"
},
{
"_type": "account",
"display_name": "QUIDDITCH LEGENDS -- LETS GOOOOOOOOOO",
"id": "cc94119d-f957-4d6e-b8cf-0c095211b1b9"
}
]
}
}
}
},
"headers": {
"x-ratelimit-limit": {
"$ref": "#/components/headers/x-ratelimit-limit"
},
"x-ratelimit-window": {
"$ref": "#/components/headers/x-ratelimit-window"
},
"x-ratelimit-remaining": {
"$ref": "#/components/headers/x-ratelimit-remaining"
}
}
},
"DeviceProjectsResponse": {
"description": "Example response",
"content": {
"application/json": {
"schema": {
"type": "array",
"description": "",
"minItems": 1,
"uniqueItems": true,
"x-examples": {
"example-1": [
{
"_type": "project",
"id": "921480ec-1225-424a-9447-19c61a3a1ef2",
"name": "Match Recordings"
},
{
"_type": "project",
"id": "ed5dbf4a-f146-416b-add0-74de98201876",
"name": "Year Book Material"
}
]
},
"items": {
"type": "object",
"properties": {
"_type": {
"type": "string",
"enum": [
"project"
],
"description": "Type of the returned object."
},
"id": {
"type": "string",
"format": "uuid",
"description": "Frame.io project ID"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 250,
"description": "Name of the Frame.io project"
}
},
"required": [
"_type",
"id",
"name"
]
}
}
}
},
"headers": {
"x-ratelimit-limit": {
"$ref": "#/components/headers/x-ratelimit-limit"
},
"x-ratelimit-remaining": {
"$ref": "#/components/headers/x-ratelimit-remaining"
},
"x-ratelimit-window": {
"$ref": "#/components/headers/x-ratelimit-window"
}
}
},
"DeviceAssetCreateResponse": {
"description": "Asset create success response. \n\nWhen `is_realtime_asset` was set to `true` in the request, a simplified payload will be returned.",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/Asset"
},
{
"$ref": "#/components/schemas/RealtimeAssetResponse"
}
]
}
}
},
"headers": {
"x-ratelimit-limit": {
"$ref": "#/components/headers/x-ratelimit-limit"
},
"x-ratelimit-remaining": {
"$ref": "#/components/headers/x-ratelimit-remaining"
},
"x-ratelimit-window": {
"$ref": "#/components/headers/x-ratelimit-window"
}
}
},
"BadRequest": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPError"
}
}
}
},
"RealtimePartsCreateResponse": {
"description": "Returns array of upload URLs for created parts.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"upload_urls": {
"type": "array",
"minItems": 1,
"description": "Array of AWS S3 presigned upload PUT URLs.\n\nReturned in the same order as the `parts` field of the request.",
"items": {
"type": "string",
"format": "uri",
"example": "https://frameio-uploads-production.s3-accelerate.amazonaws.com/parts/[part_02_path]"
}
}
},
"required": [
"upload_urls"
]
},
"examples": {
"Basic": {
"value": {
"id": [
"https://frameio-uploads-production.s3-accelerate.amazonaws.com/parts/[part_02_path]"
]
}
}
}
}
}
},
"TooManyRequests": {
"description": "Standard frame.io API error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPError"
}
}
},
"headers": {}
},
"AssetCreateResponse": {
"description": "Asset create success response. \n\nWhen `is_realtime_asset` was set to `true` in the request, a simplified payload will be returned.",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/Asset"
},
{
"$ref": "#/components/schemas/RealtimeAssetResponse"
}
]
}
}
},
"headers": {
"x-ratelimit-limit": {
"$ref": "#/components/headers/x-ratelimit-limit"
},
"x-ratelimit-window": {
"$ref": "#/components/headers/x-ratelimit-window"
},
"x-ratelimit-remaining": {
"$ref": "#/components/headers/x-ratelimit-remaining"
}
}
}
},
"headers": {
"LinkHeader": {
"description": "Pagination links",
"schema": {
"type": "string"
}
},
"PageNumber": {
"description": "Current page of results",
"schema": {
"type": "integer"
}
},
"PerPage": {
"description": "Number of entries per page",
"schema": {
"type": "integer"
}
},
"Total": {
"description": "Total entries across all pagess",
"schema": {
"type": "integer"
}
},
"TotalPages": {
"description": "Number of pages",
"schema": {
"type": "integer"
}
},
"x-ratelimit-limit": {
"description": "The number of times you can make this call within the `x-ratelimit-window`",
"schema": {
"type": "number"
}
},
"x-ratelimit-remaining": {
"description": "The number of remaining times you can make this API call in the `x-ratelimit-window`",
"schema": {
"type": "string"
}
},
"x-ratelimit-window": {
"description": "The length in milliseconds of the rate limit window",
"schema": {
"type": "string"
}
}
},
"requestBodies": {
"ReviewLinkItemCreateRequest": {
"content": {
"application/json": {
"schema": {
"description": "",
"type": "object",
"properties": {
"asset_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid",
"minLength": 1
}
}
},
"required": [
"asset_ids"
]
},
"examples": {
"example-1": {
"value": {
"asset_ids": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}
}
}
}
},
"description": "ReviewLinkItem to create"
},
"ActionRequest": {
"content": {
"application/json": {
"schema": {
"properties": {
"allow_collaborators": {
"default": false,
"type": "boolean"
},
"description": {
"description": "Description of the custom Action",
"type": "string"
},
"event": {
"description": "Arbitrary event name to include in custom Action webhook payloads",
"type": "string"
},
"include": {
"description": "Any associations to include in the response",
"type": "string"
},
"name": {
"description": "Name of the custom Action",
"type": "string"
},
"url": {
"description": "HTTPS endpoint to deliver Action events to",
"type": "string"
}
},
"required": [
"url",
"name",
"event",
"description"
],
"type": "object"
}
}
},
"description": "Action to create or update"
},
"BatchCollaboratorCreateRequest": {
"content": {
"application/json": {
"examples": {
"request_with_default_message": {
"value": {
"batch": [
{
"message": "Please review this!",
"user_id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
},
{
"user_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
},
{
"user_group_id": "cccccccc-cccc-cccc-cccc-cccccccccccc"
},
{
"email": "testing@foobar.biz"
}
],
"default_message": "Welcome!"
}
},
"request_without_default_message": {
"value": {
"batch": [
{
"message": "Please review this!",
"user_id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
},
{
"user_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
},
{
"user_group_id": "cccccccc-cccc-cccc-cccc-cccccccccccc"
},
{
"email": "testing@foobar.biz"
}
]
}
}
},
"schema": {
"$ref": "#/components/schemas/BatchInviteParams"
}
}
},
"description": "An array of batch operations"
},
"ProjectRequest": {
"content": {
"application/json": {
"schema": {
"properties": {
"name": {
"description": "Project name",
"type": "string"
},
"private": {
"description": "If true, the project is private to the creating user",
"type": "boolean"
},
"project_preferences": {
"$ref": "#/components/schemas/ProjectPreferences"
}
},
"type": "object"
}
}
},
"description": "Project to create or update"
},
"AssetUpdateRequest": {
"content": {
"application/json": {
"schema": {
"properties": {
"description": {
"description": "Brief description of the Asset",
"type": "string"
},
"name": {
"description": "Name of the Asset",
"type": "string"
},
"properties": {
"description": "Custom key-value data",
"type": "object"
}
},
"required": [
"name"
],
"type": "object"
}
}
},
"description": "Asset to update"
},
"CollaboratorRequest": {
"content": {
"application/json": {
"schema": {
"properties": {
"email": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Collaborator to create or update"
},
"CommentRequest": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"annotation": {
"description": "Serialized list of geometry and/or drawing data.\n\nLearn more [here](https://developer.frame.io/docs/workflows-assets/working-with-annotations)",
"type": "string"
},
"page": {
"description": "Page number for a comment (documents only).",
"type": "integer"
},
"pitch": {
"type": "integer",
"description": "Pitch measurement for the comment (360deg video only).",
"deprecated": true
},
"text": {
"description": "The body of the comment.",
"type": "string"
},
"timestamp": {
"type": "number",
"description": "Timestamp for the comment, in frames, starting at 0. \n\nComments can \"global\" to an asset in which you don't provide the timestamp, or if you're reviewing a \"document\" like a PDF then you would use `page` instead of `timestamp` to identify where the comment belongs."
},
"yaw": {
"type": "integer",
"description": "Yaw measurement for the comment (360deg video only).",
"deprecated": true
},
"duration": {
"description": "Used to produce range-based comments, this is the duration measured in frames.",
"type": "integer"
},
"private": {
"type": "boolean",
"description": "Set to true to make your comment a \"Team-only Comment\" that won't be visible to anonymous reviewers or Collaborators."
}
},
"required": [
"text"
]
}
}
},
"description": "Comment to create or update"
},
"WebhookRequest": {
"content": {
"application/json": {
"schema": {
"properties": {
"events": {
"items": {
"type": "string"
},
"type": "array"
},
"name": {
"description": "Name of the Webhook",
"type": "string"
},
"url": {
"description": "HTTPS endpoint to delivery events to",
"type": "string"
}
},
"required": [
"url",
"name"
],
"type": "object"
}
}
},
"description": "Webhook to create or update"
},
"AssetSearchRequest": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssetSearch"
}
}
},
"description": "Asset search"
},
"LibrarySearchRequest": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LibrarySearch"
}
}
},
"description": "Advanced asset search"
},
"ReviewLinkCreateRequest": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReviewLink"
},
"examples": {
"example-1": {
"value": {
"name": "Example review link"
}
}
}
}
},
"description": "ReviewLink to create"
},
"TeamRequest": {
"content": {
"application/json": {
"schema": {
"properties": {
"access": {
"enum": [
"private",
"public",
"restricted"
],
"type": "string"
},
"account_id": {
"format": "uuid",
"type": "string"
},
"admin_only_actions": {
"$ref": "#/components/schemas/AdminOnlyAction"
},
"background_color": {
"type": "string"
},
"bio": {
"type": "string"
},
"color": {
"type": "string"
},
"colors": {
"items": {
"type": "string"
},
"type": "array"
},
"dark_theme": {
"default": false,
"type": "boolean"
},
"default_session_watermark_template_id": {
"format": "uuid",
"type": "string"
},
"email_branding": {
"$ref": "#/components/schemas/EmailBranding"
},
"font_color": {
"type": "string"
},
"image": {
"$ref": "#/components/schemas/Image"
},
"link": {
"type": "string"
},
"location": {
"type": "string"
},
"member_limit": {
"type": "integer"
},
"name": {
"type": "string"
},
"slack_webhook": {
"type": "object"
},
"solo": {
"default": false,
"type": "boolean"
},
"storage_limit": {
"type": "integer"
},
"watermark": {
"$ref": "#/components/schemas/Watermark"
}
},
"type": "object"
}
}
},
"description": "Team create or update request"
},
"BatchAssetCopyRequest": {
"content": {
"application/json": {
"examples": {
"batch_copy_asset_example": {
"value": {
"batch": [
{
"id": 1
},
{
"id": 2
}
],
"copy_comments": "none"
}
}
},
"schema": {
"type": "object",
"properties": {
"batch": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "Identifier of an asset to be copied",
"type": "integer"
}
},
"required": [
"id"
]
}
},
"copy_comments": {
"type": "string",
"enum": [
"all",
"none"
],
"example": "all"
}
}
}
}
},
"description": "An array of batch operations"
},
"AssetCopyRequest": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "Identifier of the asset to be copied"
}
},
"required": [
"id"
],
"type": "object"
}
}
},
"description": "Asset copy request"
},
"AssetMoveRequest": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "Identifier of the asset to be moved"
}
},
"required": [
"id"
],
"type": "object"
}
}
},
"description": "Asset copy request"
},
"AssetCreateRequest": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"type": {
"enum": [
"file",
"folder"
],
"type": "string",
"description": "Must be `file` if `is_realtime_upload` is `true`."
},
"name": {
"description": "The name the asset should have in Frame.io. This value does not have to match the name of the file on disk; it can be whatever you want it to be in Frame.io.\n\nRequired if `is_realtime_upload` is `false`.\n\nIf `is_realtime_upload` is `true`, must containa valid extension in the form of `\".[ext]\"`, unless `extension` is provided, in which case this field may be `null` or omitted.",
"type": "string"
},
"extension": {
"type": "string",
"description": "Required when `is_realtime_upload` is `true`, when `name` is not known at time of asset creation. If `name` is provided, must match extension of that value.\n\nIgnored when `is_realtime_upload` is `false`.\n\nWhen supplied, asset will be creted with `name` value of `\"[new file].extension\"`."
},
"filetype": {
"type": "string",
"description": "MIME type like `video/quicktime`. Many languages have built in utilities for detecting file mimetype (see Go and Python for examples).\n\nRequired if `is_realtime_upload` is `true`."
},
"is_realtime_upload": {
"type": "boolean",
"description": "If `true`, File data for this asset is to be uploaded through the Real-time Uploads API.\n\nIf `false`, File data for this asset will be uploaded through the default API.\n\nMust be `false` if `filetype` is not `file`.",
"default": false
},
"description": {
"description": "Brief description of the Asset",
"type": "string"
},
"filesize": {
"description": "File size in bytes.\n\nRequired if `is_realtime_upload` is not `true`.",
"type": "integer",
"default": null
},
"properties": {
"description": "Custom key-value data",
"type": "object"
},
"source": {
"$ref": "#/components/schemas/AssetSource"
}
},
"required": [
"type"
]
},
"examples": {
"BasicAsset": {
"value": {
"name": "my_movie",
"type": "file",
"filetype": "video/mp4",
"auto_version_id": "4386e276-6317-4d8d-b82c-8a16df9b66d2",
"filesize": 80000000
}
},
"RealtimeAsset": {
"value": {
"name": "my_video.mp4",
"filetype": "video/mp4",
"is_realtime_upload": true,
"channel": 0,
"offset": -10
}
},
"RealtimeAsset_NameUnknown": {
"value": {
"extension": ".mp4",
"filetype": "video/mp4",
"is_realtime_upload": true
}
}
}
}
},
"description": "While supported, we encourage you to switch from `application/x-ww-form-urlencoded` to `application/json` in order to support future workflows that will only be supported through JSON.\n\nWhen `is_realtime_upload` is `true`, call must be made in `application/json`."
},
"TeamMemberRequest": {
"content": {
"application/json": {
"schema": {
"properties": {
"email": {
"type": "string"
},
"role": {
"default": "member",
"enum": [
"member",
"team_manager"
],
"type": "string"
},
"user_id": {
"format": "uuid",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Team member to create or update"
},
"ReviewLinkUpdateRequest": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReviewLink"
}
}
},
"description": "ReviewLink to update"
},
"PresentationUpdateRequest": {
"content": {
"application/json": {
"schema": {
"properties": {
"access_control": {
"$ref": "#/components/schemas/ShareableEntityAccessControl"
},
"asset_id": {
"format": "uuid",
"type": "string"
},
"autoplay": {
"type": "boolean"
},
"background_color": {
"type": "string"
},
"can_download": {
"type": "boolean"
},
"color": {
"type": "string"
},
"deleted_at": {
"format": "date-time",
"type": "string"
},
"description": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"expires_at": {
"format": "date-time",
"type": "string"
},
"format": {
"type": "string"
},
"include_ext": {
"type": "boolean"
},
"include_upload_date": {
"type": "boolean"
},
"layout": {
"enum": [
"blog",
"reel"
],
"type": "string"
},
"name": {
"type": "string"
},
"owner_id": {
"format": "uuid",
"type": "string"
},
"password": {
"type": "string"
},
"project_id": {
"format": "uuid",
"type": "string"
},
"secure": {
"type": "boolean"
},
"style": {
"type": "string"
},
"text_color": {
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Presentation to update"
},
"PresentationCreateRequest": {
"content": {
"application/json": {
"schema": {
"properties": {
"access_control": {
"$ref": "#/components/schemas/ShareableEntityAccessControl"
},
"asset_id": {
"format": "uuid",
"type": "string"
},
"autoplay": {
"type": "boolean"
},
"background_color": {
"type": "string"
},
"can_download": {
"type": "boolean"
},
"color": {
"type": "string"
},
"deleted_at": {
"format": "date-time",
"type": "string"
},
"description": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"expires_at": {
"format": "date-time",
"type": "string"
},
"format": {
"type": "string"
},
"include_ext": {
"type": "boolean"
},
"include_upload_date": {
"type": "boolean"
},
"layout": {
"enum": [
"blog",
"reel"
],
"type": "string"
},
"name": {
"type": "string"
},
"owner_id": {
"format": "uuid",
"type": "string"
},
"password": {
"type": "string"
},
"project_id": {
"format": "uuid",
"type": "string"
},
"secure": {
"type": "boolean"
},
"style": {
"type": "string"
},
"text_color": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"project_id",
"owner_id",
"asset_id"
],
"type": "object"
}
}
},
"description": "Presentation to create"
},
"DeviceChannelConnectRequest": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"client_id": {
"type": "string",
"format": "uuid"
},
"device_model_id": {
"type": "string",
"format": "uuid"
}
}
}
}
},
"description": "Payload"
},
"DeviceChannelTriggerRequest": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"action_type": {
"type": "string",
"enum": [
"single_press"
]
},
"offset": {
"type": "integer",
"minimum": 0
},
"start": {
"$ref": "#/components/schemas/SMPTETimeRepresentation"
},
"duration": {
"$ref": "#/components/schemas/SMPTETimeRepresentation"
}
}
}
}
}
},
"DeviceAssetCreateRequest": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name the asset should have in Frame.io. This value does not have to match the name of the file on disk; it can be whatever you want it to be in Frame.io.\n\nRequired if `is_realtime_upload` is `false`.\n\nIf `is_realtime_upload` is `true`, must containa valid extension in the form of `\".[ext]\"`, unless `extension` is provided, in which case this field may be `null` or omitted.",
"default": ""
},
"extension": {
"type": "string",
"pattern": "\\..+",
"example": ".mov",
"default": null,
"description": "Required when `is_realtime_upload` is `true`, when `name` is not known at time of asset creation. If `name` is provided, must match extension of that value.\n\nIgnored when `is_realtime_upload` is `false`.\n\nWhen supplied, asset will be creted with `name` value of `\"[new file].extension\"`."
},
"filetype": {
"type": "string",
"description": "MIME type like `video/quicktime`. Many languages have built in utilities for detecting file mimetype (see Go and Python for examples).\n\nRequired if `is_realtime_upload` is `true`."
},
"auto_version_id": {
"type": "string",
"description": "The asset you'd like this to be the next version of",
"format": "uuid"
},
"is_realtime_upload": {
"type": "boolean",
"description": "If `true`, File data for this asset is to be uploaded through the Real-time Uploads API.\n\nIf `false`, File data for this asset will be uploaded through the default API.\n\nMust be `false` if `filetype` is not `file`.",
"default": false
},
"filesize": {
"oneOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"channel": {
"oneOf": [
{
"type": "string"
},
{
"type": "integer",
"default": 0
}
]
},
"offset": {
"oneOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"parts": {
"oneOf": [
{
"type": "string"
},
{
"type": "integer",
"maximum": 10000,
"minimum": 1
}
]
}
}
},
"examples": {
"RealtimeAsset": {
"value": {
"name": "my_video.mp4",
"filetype": "video/mp4",
"is_realtime_upload": true,
"channel": 0,
"offset": -10
}
},
"RealtimeAsset_NameUnknown": {
"value": {
"extension": ".mp4",
"filetype": "video/mp4",
"is_realtime_upload": true
}
},
"CreateBasicAsset": {
"value": {
"name": "my_movie",
"filetype": "video/mp4",
"auto_version_id": "4386e276-6317-4d8d-b82c-8a16df9b66d2",
"filesize": 80000000,
"channel": 0,
"offset": -10
}
}
}
},
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the asset to be uploaded"
},
"filetype": {
"type": "string",
"description": "This should be a MIME type like `video/quicktime`"
},
"filesize": {
"type": "string",
"description": "File size in bytes"
},
"channel": {
"type": "string"
},
"offset": {
"type": "string",
"description": "Timezone offset"
},
"parts": {
"type": "string",
"description": "Number of parts you'd like to upload your file in (you'll get 1 URL for each part)."
},
"auto_version_id": {
"type": "string",
"description": "The asset you'd like this to be the next version of",
"format": "uuid"
}
},
"required": [
"name",
"filetype",
"filesize",
"channel",
"offset",
"parts"
]
}
}
},
"description": "While supported, we encourage you to switch from `application/x-ww-form-urlencoded` to `application/json` in order to support future workflows that will only be supported through JSON.\n\nWhen `is_realtime_upload` is `true`, call must be made in `application/json`."
},
"RealtimePartsCreateRequest": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"parts": {
"type": "array",
"description": "List of file upload parts to register with Frame.",
"items": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"description": "The part number/index, starting at 1. Part numbers may be skipped, and may be uploaded in any order, but will be used to concatinate the final file in sequentual order. \n\nCannot be greater than 10,000 (the maximum number of parts that AWS allows)."
},
"size": {
"type": "integer",
"minimum": 1,
"maximum": 5368709120,
"description": "The size of the part in bytes. If the size does not abide by the [AWS Multi-Part upload restrictions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html), an error will be returned.\n\nFor instance, must be greater than or equal to 5 MiB, (5,242,880 bytes) is `is_final` is not t`true`."
},
"is_final": {
"type": "boolean",
"description": "Whether this is the final part of the file."
}
},
"required": [
"number",
"size",
"is_final"
]
}
},
"asset_name": {
"type": "string",
"default": null,
"pattern": "\\..+",
"description": "Updates the asset name if only `extension` was supplied to assetCreate, and the default name is still in use.\n\nOtherwise, will be ignored.",
"example": "my_movie.mp4"
},
"asset_filesize": {
"type": "integer",
"minimum": 1,
"maximum": 5497558138880,
"default": null,
"description": "The full filesize for the upload in bytes. This field is required when an object in `parts` has `is_final` set to `true`.\n\nMust be no more than 5 TiB."
}
},
"required": [
"parts"
]
},
"examples": {
"BasicPartsRequest": {
"value": {
"parts": [
{
"number": 1,
"size": 2000000000,
"is_final": false
},
{
"number": 2,
"size": 1500000000,
"is_final": false
}
]
}
},
"FinalPartsRequest": {
"value": {
"asset_name": "my_movie.mp4",
"asset_filesize": 55000001000,
"parts": [
{
"number": 3,
"size": 2000000000,
"is_final": false
},
{
"number": 4,
"size": 1000,
"is_final": true
}
]
}
}
}
}
},
"description": "Enumerates parts that upload URLs should be created for."
}
},
"examples": {
"CommentExample": {
"value": {
"description": "Example shared example",
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
]
}
}
},
"parameters": {
"team_id": {
"name": "team_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"example": "eefb57e0-79f2-4bc7-9b70-99fbc175175c"
},
"description": "Team ID"
},
"user_id": {
"name": "user_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"default": "eefb57e0-79f2-4bc7-9b70-99fbc175175c"
},
"description": "User ID"
},
"account_id": {
"name": "account_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"example": "eefb57e0-79f2-4bc7-9b70-99fbc175175c"
},
"description": "Account ID"
},
"project_id": {
"name": "project_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"example": "eefb57e0-79f2-4bc7-9b70-99fbc175175c"
},
"description": "Project ID"
},
"asset_id": {
"name": "asset_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"example": "eefb57e0-79f2-4bc7-9b70-99fbc175175c"
},
"description": "Asset ID"
},
"review_link_id": {
"name": "review_link_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"example": "eefb57e0-79f2-4bc7-9b70-99fbc175175c"
},
"description": "Review Link ID"
},
"version_id": {
"name": "version_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"example": "eefb57e0-79f2-4bc7-9b70-99fbc175175c"
},
"description": "Version ID"
},
"comment_id": {
"name": "comment_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"example": "eefb57e0-79f2-4bc7-9b70-99fbc175175c"
},
"description": "Comment ID"
},
"include": {
"name": "include",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"review_link",
"cover_asset",
"children",
"version_stacks"
]
},
"description": "Optional includes when fetch a Project or Asset"
},
"presentation_id": {
"name": "presentation_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Presentation Link ID"
},
"destination_id": {
"name": "destination_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"example": "eefb57e0-79f2-4bc7-9b70-99fbc175175c",
"format": "uuid"
},
"description": "Destination folder `id` - must be in the same folder"
},
"action_id": {
"name": "action_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"example": "eefb57e0-79f2-4bc7-9b70-99fbc175175c"
},
"description": "Custom Action ID"
},
"hook_id": {
"name": "hook_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"example": "eefb57e0-79f2-4bc7-9b70-99fbc175175c",
"format": "uuid"
},
"description": "Webhook ID"
},
"page": {
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "number"
},
"description": "The current page number in this Paginated Response"
},
"page_size": {
"name": "page_size",
"in": "query",
"required": false,
"schema": {
"type": "number"
},
"description": "Number of pages in this Paginated Response"
},
"firmware_version": {
"name": "x-client-version",
"in": "header",
"schema": {
"type": "string",
"default": "0.0.0",
"example": "2.16.4"
},
"description": "Firmware or software version of a C2C integration. Will be used to determine the correct Device Model configuration for the device when multiple are available. Must be a valid semantic version. \n\n For more on semantic versions, see here: https://semver.org/"
}
}
},
"info": {
"description": "## Frame.io Developer Platform\nNot every creative team, process, or software stack is exactly the same. That's where our Developer Platform comes in. The Frame.io Developer Platform allows you to handle common tasks using our API. Some popular use cases developers have used our API for include automatically adding existing files or folders to the Frame.io app, uploading new content, and managing teams.\n\n## Camera to Cloud (C2C) Program\nCamera to Cloud is a unique type of integration. These integrations are purpose built for any device or application that is generating data. If you are building a C2C integration then you will want to use the [C2C Integration guides](/device-integrations/getting-started-with-cloud-device-integrations). There you can find all the information you need to get started connecting to the cloud with Frame.io!\n\n## Frame.io Official SDKs\n* [Python SDK](https://github.com/Frameio/python-frameio-client): Frame.io offers an SDK in Python to make getting started with our API easier, including abstraction of key concepts like pagination and rate limiting. This project is available on PyPI, so `pip install frameioclient` and off you go!\n* [Python CLI](https://github.com/Frameio/fioctl): If you'd prefer to work from the command line FIOCTL is also available on PyPI.\n\n## Quick Start Guide\nIf you want to get started right away, just click this button to bring our API into Postman!\n\n[![Run in Postman](https://run.pstmn.io/button.svg)](https://www.getpostman.com/collections/c2dfffb88990a9dc34c2)\n\nOtherwise, read on. As a starting point, you'll need to ensure that you have a Frame.io account that you can sign in with.\n\nFrom there:\n* [Sign into the Developer Portal](https://developer.frame.io) using your Frame.io credentials\n* [Create a Developer Token](/getting-started/authentication#developer-tokens)\n\nTo confirm that your token is working, go ahead and make a test call using a language, tool, or proxy of your choice:\n\n```curl\ncurl --request GET \\\n --url https://api.frame.io/v2/me \\\n --header 'authorization: Bearer <DEV_TOKEN>'\n```\n```python\nimport requests\n\nurl = \"https://api.frame.io/v2/me\"\nheaders = {\n\"Authorization\": \"Bearer <DEV_TOKEN>\"\n}\n\nrequests.GET(url,headers=headers)\n```\nIn response, you should see your user information.\n\n## Error codes\nThe Frame.io API may return the following common errors:\n\n| HTTP Status | Details | Reason(s) |\n| ---------- | ---------- | ---------- |\n| `401` | **Unauthorized** | Invalid API token. Check to make sure you're using Bearer Token authentication, and passing your token via the Authorization header. |\n| `402` | **Usage exceeded** | You have gone over your Frame.io plan limits. |\n| `403` | **Forbidden** | You do not have access to that resource. Returned for both user access and token scope. |\n| `404` | **Not Found** | Resource has been moved or deleted.|\n| `409` | **Conflict** | That resource already exists. |\n| `422` | **Invalid arguments** | One or more parameters supplied were invalid. |\n| `429` | **Rate Limited** | You have hit the rate limit for the API. |\n| `500` | **Server Error** | Our server doesn't know how to interpret your request, or was unable to complete your request within the available timeframe (30 seconds). |\n\n## Troubleshooting common errors\nWhen using a valid API token to perform common tasks, the most common errors are `403`, `404` and `500`.\n\nA **403** error will usually indicate one of three scenarios:\n\n1. The token used in the request, and/or the User to which the token belongs, does not have sufficient access to the area of the Frame.io Account where the resource was requested.\n2. The token does not have sufficient [Scopes]() for the resource requested. For example: calling `GET /comments/` without the `comments.read` scope.\n3. A network traffic problem is preventing the Frame.io API from processing the request. *If you suspect your requests are being blocked by a network traffic problem, please contact Customer Support.*\n\nA **404** error will usually indicate a resource no longer exists -- it has been moved or deleted.\n\nA **500** error usually indicates a malformed request URL or body, but could also happen when we're unable to complete the request within the available timeframe (30s).\n\n## Rate limits\nWhether you're using a Developer Token, accessing via an OAuth App, or you're interacting with our API using any of our internal apps, **all API calls to Frame.io are rate limited.**\n\nRate limits apply are applied across any and all API requests from an individual user (irrespective of which token or auth method is used), are depleted and refilled progressively, and are reflected in the response headers of every request made to the Frame.io API. Each endpoint is configured with its own limits, which range from as low as `10` requests/minute, to as high as `100` requests/second.\n\nRequests that have exceeded the rate limit for a particular endpoint will receive a `429` HTTP error in response.\n\n### Limit depletion and refill\nThe Frame.io API uses a [leaky bucket](https://wikipedia.org/wiki/Leaky_bucket) strategy of progressive rate limiting, in which limits refresh gradually during their allotted time window. In other words, there is not a concept of any hard cutoff after which limits refresh for a particular resource (i.e. \"fixed\" and \"sliding window\" enforcement strategies). Rather, remaining limits are constantly refreshing at a pace relative to a resource's limit and time window.\n\n### Exponential backoff\nOur recommended strategy for managing rate limits is usually referred to as \"exponential backoff.\"\n\nIn short:\n\n* When receiving a `429`, pause for a period (normally one second)\n* If another `429` is received, exponentially increase the wait period until normal function resumes\n\n### Headers\nResponses to API requests will always include the following three headers that should be utilized to limit your outbound requests:\n\n| Header | Value |\n| ---------- | ---------- |\n| `x-ratelimit-limit` | The rate limit for this resource path, measured in requests. |\n| `x-ratelimit-remaining` | The number of requests remaining in the current time window. |\n| `x-ratelimit-window` | The time window for this resource path's limits, measured in milliseconds (ms). |\n\n### Example\nThe following example is from the response to `GET v2/assets/:id/children`, to fetch the child assets of a Project root, folder, or Version Stack. The limit for that path is 40 requests per 60,000 ms (one minute), and there are 39 requests remaining after one has been made.\n\n```\nx-ratelimit-limit → 40\nx-ratelimit-remaining → 39\nx-ratelimit-window → 60000\n```\n\n### Details\nRate limits vary greatly across resource paths in the Frame.io API. Below are some select details, expressed for readability as resource and action (e.g. \"Assets -- Update\" instead of `PUT /assets/:id`).\n\nAs a general rule, resource paths that create new data are limited at or below 100 calls per minute, and resource paths that fetch lists of assets are limited to 200 calls per minute.\n\n| Resource | Action | Limit (requests) | Limit window (ms) |\n| ---------- | ---------- | ---------- | ---------- |\n| **Assets** | `create` | `5` | 1,000 |\n| **Assets** | `update` | `10` | 1,000\n| **Assets** | `read` | `5` | 1,000 |\n| **Comments<br />Presentations<br />Projects<br />Review Links<br />Teams<br />Team Members** | `create` | `100` | 60,000 |\n| **Search** | `read` | `200` | 60,000 |\n",
"title": "Frame.io API",
"version": "2.0.0",
"contact": {
"name": "Developer Relations",
"url": "http://developer.frame.io",
"email": "platform@frame.io"
},
"license": {
"name": "MIT License",
"url": "https://opensource.org/licenses/MIT"
}
},
"openapi": "3.0.0",
"paths": {
"/v2/me": {
"get": {
"operationId": "getMe",
"parameters": [],
"responses": {
"200": {
"$ref": "#/components/responses/UserResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
},
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
},
{
"OAuth2": [
"account.read"
]
},
{
"C2COAuth2": []
}
],
"summary": "Get the current authenticated User",
"tags": [
"Users",
"Devices"
],
"description": "Get information about the currently authenticated user",
"x-internal": false
}
},
"/v2/accounts": {
"get": {
"operationId": "getAccounts",
"parameters": [],
"responses": {
"200": {
"$ref": "#/components/responses/AccountsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"account.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get Accounts for User",
"description": "Fetch all Accounts that a given User has access to",
"tags": [
"Accounts"
]
}
},
"/v2/accounts/{account_id}": {
"get": {
"operationId": "getAccount",
"responses": {
"200": {
"$ref": "#/components/responses/AccountResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"account.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get Account",
"tags": [
"Accounts"
],
"description": "Fetch a particular account by ID"
},
"parameters": [
{
"$ref": "#/components/parameters/account_id"
}
]
},
"/v2/accounts/{account_id}/membership": {
"get": {
"operationId": "getAccountMembership",
"parameters": [
{
"in": "path",
"name": "account_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/AccountMembershipResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"account.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get Account membership",
"tags": [
"Accounts"
],
"description": "Get the membership status for the auth token making the request"
},
"parameters": [
{
"$ref": "#/components/parameters/account_id"
}
]
},
"/v2/accounts/{account_id}/teams": {
"get": {
"operationId": "getTeamsByAccount",
"parameters": [
{
"in": "path",
"name": "account_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "query",
"name": "include",
"schema": {
"enum": [
"user_role"
],
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/TeamsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"team.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get all Teams on an Account",
"description": "Return an array of all of the Teams accessible via a given Account",
"tags": [
"Teams"
]
},
"post": {
"operationId": "createTeam",
"parameters": [
{
"in": "path",
"name": "account_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"$ref": "#/components/requestBodies/TeamRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/TeamResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"team.create"
]
},
{
"DeveloperToken": []
}
],
"summary": "Create a Team for the given Account",
"tags": [
"Teams"
],
"description": "Create a new Team inside the given Account. \n\n_Limited to Pro and Enterprise plans_"
},
"parameters": [
{
"$ref": "#/components/parameters/account_id"
}
]
},
"/v2/accounts/{account_id}/audit_logs": {
"get": {
"operationId": "getAuditLogs",
"responses": {
"200": {
"$ref": "#/components/responses/AuditsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"auditlog.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get Audit Logs for an Account",
"tags": [
"Audit Logs"
],
"description": "Fetch audit logs with some filtering capabilities via query params",
"parameters": [
{
"schema": {
"type": "string",
"format": "uuid"
},
"in": "query",
"name": "filter[item_id]",
"description": "Filter by Item ID (Asset ID, Project ID, User ID)"
},
{
"schema": {
"type": "string",
"enum": [
"eq",
"gt",
"lt",
"gte",
"lte"
],
"example": "gt"
},
"in": "query",
"name": "filter[inserted_at][op]",
"description": "Filter by log datetime using logical operators"
},
{
"schema": {
"type": "string",
"format": "date-time",
"example": "2021-08-03T00:00:00Z"
},
"in": "query",
"name": "filter[inserted_at][value]",
"description": "ISO Datetime"
},
{
"schema": {
"type": "string",
"enum": [
"asset",
"review_link",
"presentation",
"collaborator",
"pending_collaborator",
"comment",
"review_link_item",
"account",
"account_member",
"pending_account_member",
"subscription",
"subscription_line_item",
"team",
"team_member",
"pending_team_member",
"user",
"action",
"oauth_app",
"user_token",
"webhook",
"file",
"folder",
"version_stack",
"like",
"read"
]
},
"in": "query",
"name": "filter[item_type]",
"description": "Filter by Item Type"
},
{
"schema": {
"type": "string",
"enum": [
"AssetDeleted",
"PresentationUpdated",
"AssetMoved",
"AssetVersioned",
"AccountDelinquent",
"CollaboratorDeleted",
"PushTokensAdded",
"AccountPendingUserRemoved",
"JoinRequestAccepted",
"SubscriptionRestored",
"EmailChanged",
"AccountMemberDeleted",
"AccountMemberUpdated",
"RoleAdded",
"ApplicationCreated",
"CommentCreated",
"AssetUpdated",
"CommentUpdated",
"CommentDeleted",
"AssetArchived",
"ProjectUpdated",
"TeamUpdated",
"ReviewLinkEmailed",
"SBWMTemplateDeleted",
"PendingTeamMemberCreated",
"PasswordResetRequested",
"ProjectInviteLinkCreated",
"AccountPendingCollaboratorsRemoved",
"GoogleAuthDisabled",
"TeamDeleted",
"ActionDeleted",
"ProjectCreated",
"PresentationCreated",
"AssetCopied",
"PreferenceUpdated",
"AccountCollaboratorsRemoved",
"PendingCollaboratorDeleted",
"ProjectMoved",
"ReviewerDeleted",
"PendingTeamMemberDeleted",
"ActionUpdated",
"AssetCreated",
"ReviewLinkUpdated",
"CollaboratorCreated",
"AssetsUnversioned",
"EmailConfirmed",
"TeamCreated",
"AccountUpdated",
"AccountRestored",
"JoinRequestCreated",
"SubscriptionCardUpdated",
"AccountLocked",
"TeamMemberUpdated",
"JoinRequestReset",
"WebhookDeleted",
"ProjectInviteLinksRevoked",
"WebhookCreated",
"SubscriptionLineItemDeleted",
"ApplicationUpdated",
"MetadataCreated",
"UserLoginAttempt",
"ReviewLinkAssetsAdded",
"ProjectDeleted",
"ProjectArchiveCompleted",
"AccountMemberCreated",
"OauthAppCreated",
"SessionRevoked",
"SubscriptionLineItemCreated",
"UserTokenDeleted",
"PendingReviewerDeleted",
"ActionCreated",
"TeamMemberReset",
"LoginFactorCreated",
"JoinRequestDeleted",
"UserTokenDisabled",
"AssetUnarchived",
"AssetLabelUpdated",
"SubscriptionCreated",
"PendingReviewerCreated",
"TeamMemberRemoved",
"PushTokensDeleted",
"ProjectUnarchived",
"SubscriptionCancelled",
"ProjectUnarchiveCompleted",
"ProjectRestored",
"WebhookUpdated",
"ApplicationDeleted",
"AssetHardDeleted",
"OauthAppDeleted",
"AccountMFAEnforced",
"AccountOwnershipTransferred",
"CommentCompleted",
"ReviewerCreated",
"UserLogin",
"SubscriptionUpdated",
"AssetRestored",
"CommentUncompleted",
"ProjectArchived",
"JoinRequestDeclined",
"PendingAccountMemberCreated",
"SBWMTemplateCreated",
"TeamCreatorUpdated",
"TeamLifecyclePolicyUpdated",
"SBWMTemplateUpdated",
"LoginFactorValidated",
"ReviewLinkCreated",
"TeamMemberCreated",
"ReplyCreated",
"UserUpdated",
"PendingCollaboratorCreated",
"AnonymousUserCreated",
"PasswordChange",
"ReviewLinkDeleted",
"AccountUserRemoved",
"UserTokenCreated",
"PresentationDeleted",
"UserTokenUpdated",
"OauthAppUpdated",
"UserTokenEnabled"
]
},
"in": "query",
"name": "filter[action]",
"description": "Filter by Action"
},
{
"schema": {
"type": "string",
"format": "uuid"
},
"in": "query",
"name": "filter[actor_id]",
"description": "Filter by Actor ID"
},
{
"schema": {
"type": "string",
"format": "uuid"
},
"in": "query",
"name": "filter[team_id]",
"description": "Filter by Team ID"
},
{
"schema": {
"type": "string"
},
"in": "query",
"name": "filter[ip_address]",
"description": "Filter by IP Address"
},
{
"schema": {
"type": "integer"
},
"in": "query",
"name": "page",
"description": "Page number"
},
{
"schema": {
"type": "integer",
"default": 50,
"maximum": 10000
},
"in": "query",
"name": "page_size",
"description": "Records per page"
}
]
},
"parameters": [
{
"$ref": "#/components/parameters/account_id"
}
]
},
"/v2/accounts/{account_id}/actions": {
"get": {
"operationId": "getActionsByAccount",
"parameters": [
{
"in": "path",
"name": "account_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/ActionsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
},
{
"OAuth2": [
"action.read"
]
}
],
"summary": "Get Custom Actions for an Account or Team",
"tags": [
"Custom Actions"
],
"description": "Get Custom Actions available to a given Account"
},
"parameters": [
{
"$ref": "#/components/parameters/account_id"
}
]
},
"/v2/accounts/{account_id}/hooks": {
"get": {
"operationId": "getWebhooksByAccount",
"parameters": [
{
"in": "path",
"name": "account_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/WebhooksResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
}
],
"summary": "Get Webhooks for Account",
"tags": [
"Webhooks"
],
"description": "Get Webhooks belonging to a given Account"
},
"parameters": [
{
"$ref": "#/components/parameters/account_id"
}
]
},
"/v2/assets/{asset_id}": {
"delete": {
"operationId": "deleteAsset",
"parameters": [
{
"in": "path",
"name": "asset_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/AssetResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.delete"
]
},
{
"DeveloperToken": []
}
],
"summary": "Delete an Asset",
"tags": [
"Assets"
],
"description": "Delete the referenced Asset ID"
},
"get": {
"operationId": "getAsset",
"parameters": [
{
"in": "path",
"name": "asset_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "query",
"name": "include_deleted",
"schema": {
"type": "boolean"
}
},
{
"in": "query",
"name": "type",
"schema": {
"oneOf": [
{
"enum": [
"file",
"folder",
"version_stack",
"bundle"
],
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
]
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/AssetResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get an Asset",
"tags": [
"Assets"
],
"description": "Fetch the full Asset manifest"
},
"put": {
"operationId": "updateAsset",
"parameters": [
{
"in": "path",
"name": "asset_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/AssetResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.update"
]
},
{
"DeveloperToken": []
}
],
"summary": "Update an Asset",
"description": "Update the manifest on an Asset",
"tags": [
"Assets"
]
},
"parameters": [
{
"$ref": "#/components/parameters/asset_id"
}
]
},
"/v2/assets/{asset_id}/audio": {
"get": {
"operationId": "getAudio",
"parameters": [
{
"in": "path",
"name": "asset_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/AssetAudioResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get audio for an Asset",
"tags": [
"Assets"
],
"description": "Fetch the audio tracks for a given Asset"
}
},
"/v2/assets/{asset_id}/subtitles": {
"get": {
"operationId": "getSubtitles",
"parameters": [
{
"in": "path",
"name": "asset_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/AssetSubtitleResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get the subtitles for an Asset",
"tags": [
"Assets",
"Private"
],
"description": "Fetch subtitles that have been hoisted out by the media pipeline"
}
},
"/v2/assets/{asset_id}/version": {
"post": {
"operationId": "addVersionToAsset",
"parameters": [
{
"in": "path",
"name": "asset_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"next_asset_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"next_asset_id"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/AssetResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.update"
]
},
{
"DeveloperToken": []
}
],
"summary": "Version an Asset",
"tags": [
"Assets"
],
"description": "Add an asset to a version stack, or create one if one doesn't already exist"
}
},
"/v2/assets/{asset_id}/unversion": {
"delete": {
"operationId": "unversionAsset",
"parameters": [
{
"in": "path",
"name": "asset_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/AssetResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.update"
]
},
{
"DeveloperToken": []
}
],
"summary": "Unversion an Asset",
"tags": [
"Assets"
],
"description": "Unversion an Asset from a Version Stack"
}
},
"/v2/assets/{asset_id}/comments": {
"get": {
"operationId": "getComments",
"parameters": [
{
"in": "path",
"name": "asset_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/CommentsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"comment.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get all the Comments and Replies from a Comment thread",
"tags": [
"Comments"
],
"description": "This endpoint will return all comments and replies in a flat list."
},
"post": {
"operationId": "createComment",
"parameters": [
{
"in": "path",
"name": "asset_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"$ref": "#/components/requestBodies/CommentRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/CommentResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"comment.create"
]
},
{
"DeveloperToken": []
}
],
"summary": "Create a Comment",
"description": "Leave a Comment on an Asset",
"tags": [
"Comments"
]
}
},
"/v2/assets/{asset_id}/children": {
"get": {
"operationId": "getAssets",
"parameters": [
{
"in": "path",
"name": "asset_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "query",
"name": "include_deleted",
"description": "Include deleted files by passing `true`",
"schema": {
"type": "boolean",
"default": "false"
}
},
{
"name": "include",
"description": "Include additional \"pre-loads\" for related resources",
"in": "query",
"schema": {
"type": "string",
"enum": [
"children",
"cover_asset",
"review_links"
]
}
},
{
"name": "sort",
"description": "The sorting order for the returned list of Assets. Supporting chaining like `comment_count,id`. Also supports reversing the order with `-` i.e. `-comment_count,id` or `filetype,-id`.",
"in": "query",
"schema": {
"type": "string",
"enum": [
"comment_count",
"filesize",
"filetype",
"id",
"label",
"name",
"uploaded_at"
]
}
},
{
"name": "page",
"$ref": "#/components/parameters/page"
},
{
"name": "page_size",
"in": "query",
"$ref": "#/components/parameters/page_size"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/AssetsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.read"
]
},
{
"DeveloperToken": [
"asset.read"
]
}
],
"summary": "Fetch child Assets",
"tags": [
"Assets"
],
"description": "Get child elements of a given asset. Can be used to get the items in a review link, version stack, folder, as well as including an asset to use on the cover of a folder."
},
"post": {
"operationId": "createAsset",
"parameters": [
{
"in": "path",
"name": "asset_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"$ref": "#/components/requestBodies/AssetCreateRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/DeviceAssetCreateResponse"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"429": {
"$ref": "#/components/responses/TooManyRequests"
}
},
"x-code-samples": [
{
"lang": "Python SDK",
"source": "from frameioclient import FrameioClient\nimport os\n\ndef main():\n client = FrameioClient(\"TOKEN\")\n\n filesize = os.path.getsize('demo.mov')\n\n asset = client.create_asset(\n parent_asset_id=\"PARENT_ASSET_ID\",\n name=\"Test123.mov\",\n type=\"file\",\n filetype=\"video/quicktime\",\n filesize=filesize\n )\n\n file = open(\"demo.mov\", \"rb\")\n client.upload(asset, file)\n\nif __name__ == \"__main__\":\n main()\n"
}
],
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.create"
]
},
{
"DeveloperToken": []
}
],
"summary": "Create an Asset",
"tags": [
"Assets"
],
"description": "Create a new asset."
},
"parameters": [
{
"$ref": "#/components/parameters/asset_id"
}
]
},
"/v2/assets/{asset_id}/realtime_upload/parts": {
"parameters": [
{
"name": "asset_id",
"description": "Asset ID",
"in": "path",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"post": {
"summary": "Request upload URLs for real-time upload",
"tags": [
"Assets"
],
"responses": {
"200": {
"$ref": "#/components/responses/RealtimePartsCreateResponse"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"429": {
"$ref": "#/components/responses/TooManyRequests"
}
},
"operationId": "createRealtimeUploadParts",
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.create"
]
},
{
"DeveloperToken": []
}
],
"requestBody": {
"$ref": "#/components/requestBodies/RealtimePartsCreateRequest"
},
"description": "Register real-time upload parts and generate presigned AWS S3 upload PUT URLs."
}
},
"/v2/comments/{comment_id}": {
"delete": {
"operationId": "deleteComment",
"responses": {
"200": {
"$ref": "#/components/responses/CommentResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"comment.delete"
]
},
{
"DeveloperToken": []
}
],
"summary": "Delete a Comment",
"tags": [
"Comments"
],
"description": "Delete a Comment or Reply using its ID"
},
"get": {
"operationId": "getComment",
"parameters": [
{
"in": "query",
"name": "include",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/CommentResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"comment.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get a Comment by ID",
"tags": [
"Comments"
],
"description": "Fetch a Comment by its ID"
},
"put": {
"operationId": "updateComment",
"requestBody": {
"$ref": "#/components/requestBodies/CommentRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/CommentResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"comment.update"
]
},
{
"DeveloperToken": []
}
],
"summary": "Update a Comment",
"tags": [
"Comments"
],
"description": "Update a Comment via its ID, overwriting only the passed key/value pairs"
},
"parameters": [
{
"$ref": "#/components/parameters/comment_id"
}
]
},
"/v2/comments/{comment_id}/complete": {
"delete": {
"operationId": "uncompleteComment",
"parameters": [
{
"in": "path",
"name": "comment_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/CommentResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"comment.update"
]
},
{
"DeveloperToken": []
}
],
"description": "If a Comment has been marked **Completed**, you can reset its to **Uncompleted** by hitting this endpoint.",
"summary": "Mark a Comment as Uncompleted",
"tags": [
"Comments"
]
},
"post": {
"operationId": "completeComment",
"parameters": [
{
"in": "path",
"name": "comment_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/CommentResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"comment.update"
]
},
{
"DeveloperToken": []
}
],
"summary": "Mark completed",
"tags": [
"Comments"
],
"description": "Complete a \"Task\" on a given Comment"
},
"parameters": [
{
"$ref": "#/components/parameters/comment_id"
}
]
},
"/v2/comments/{comment_id}/impressions": {
"get": {
"operationId": "getCommentImpressions",
"parameters": [
{
"in": "path",
"name": "comment_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/CommentImpressionsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"comment.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get impressions",
"tags": [
"Comments"
],
"description": "Fetch a list of who has 'seen' your comment"
},
"parameters": [
{
"schema": {
"type": "string"
},
"name": "comment_id",
"in": "path",
"required": true,
"description": "Comment ID"
}
]
},
"/v2/comments/{comment_id}/replies": {
"get": {
"operationId": "getReplies",
"parameters": [
{
"in": "path",
"name": "comment_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "string",
"default": "replies"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/CommentsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"comment.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get comments and replies",
"tags": [
"Comments"
],
"description": "Fetch all Comments and Replies for a given Comment or Reply ID"
},
"post": {
"operationId": "createReply",
"parameters": [
{
"in": "path",
"name": "comment_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"$ref": "#/components/requestBodies/CommentRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/CommentResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"comment.create"
]
},
{
"DeveloperToken": []
}
],
"summary": "Leave a Reply on a Comment",
"tags": [
"Comments"
],
"description": "Leave a Reply on a given Comment"
},
"parameters": [
{
"$ref": "#/components/parameters/comment_id"
}
]
},
"/v2/batch/projects/{project_id}/collaborators": {
"delete": {
"operationId": "batchDeleteCollaborators",
"parameters": [
{
"in": "path",
"name": "project_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/BatchCollaboratorDeleteResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
},
{
"OAuth2": [
"project.update"
]
}
],
"summary": "Batch delete Collaborators and PendingCollaborators for a Project",
"tags": [
"Projects"
],
"description": "Submit a list of Collaborators you wish to remove from a given Project",
"requestBody": {
"content": {
"application/json": {
"schema": {
"description": "",
"type": "object",
"x-examples": {
"example-1": {
"batch": [
{
"email": "anotherone@foobar.biz"
}
]
}
},
"properties": {
"batch": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"minLength": 1,
"format": "email"
}
},
"required": [
"email"
]
}
}
},
"required": [
"batch"
]
}
}
},
"description": ""
}
},
"post": {
"operationId": "batchCreateCollaborators",
"parameters": [
{
"in": "path",
"name": "project_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"$ref": "#/components/requestBodies/BatchCollaboratorCreateRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/BatchCollaboratorCreateResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
}
],
"summary": "Batch create Collaborators and PendingCollaborators within a Project",
"tags": [
"Projects"
],
"description": "Submit a list of Collaborators to add to the given Project as Collaborators"
},
"parameters": [
{
"$ref": "#/components/parameters/project_id"
}
]
},
"/v2/projects/shared": {
"get": {
"operationId": "getSharedProjects",
"parameters": [
{
"in": "query",
"name": "filter[account_id]",
"description": "Filter projects to those belonging to the specified account",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "query",
"name": "filter[archived]",
"description": "Filter projects by archival status",
"schema": {
"default": false,
"type": "boolean"
}
},
{
"in": "query",
"name": "filter[name]",
"description": "Filter projects by name",
"schema": {
"type": "string"
}
},
{
"name": "page",
"$ref": "#/components/parameters/page"
},
{
"name": "page_size",
"$ref": "#/components/parameters/page_size"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/ProjectsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"project.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get Projects where User is a Collaborator",
"description": "Fetch all of the Projects that a User has Collaborator access to (not team-member)",
"tags": [
"Users"
]
}
},
"/v2/projects/{project_id}/collaborators": {
"post": {
"operationId": "addCollaboratorToProject",
"parameters": [
{
"in": "path",
"name": "project_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"schema": {
"type": "string",
"example": "project_role"
},
"in": "query",
"name": "include",
"description": "Include additional \"pre-loads\" for this resource"
}
],
"requestBody": {
"$ref": "#/components/requestBodies/CollaboratorRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/CollaboratorResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"project.update"
]
},
{
"DeveloperToken": []
}
],
"summary": "Add a Collaborator to a Project",
"tags": [
"Projects"
],
"description": "Add a new Collaborator to a Project"
},
"parameters": [
{
"$ref": "#/components/parameters/project_id"
}
],
"get": {
"summary": "Get Project Collaborators",
"operationId": "getProjectCollaborators",
"responses": {
"200": {
"$ref": "#/components/responses/ProjectResponse"
},
"201": {
"description": "ProjectCollaboratorsResponse",
"content": {
"application/json": {
"schema": {
"type": "array",
"description": "",
"minItems": 1,
"uniqueItems": true,
"x-examples": {
"example-1": [
{
"_type": "collaborator",
"creator_id": "eefb57e0-79f2-4bc7-9b70-99fbc175175c",
"deleted_at": null,
"id": "b86a57f9-201e-403c-bfd1-952e8e65e7b3",
"inserted_at": "2020-08-24T16:26:04.355714Z",
"message": null,
"project_id": "57ffc1f3-1ad2-40d6-9297-6ced42a798c6",
"updated_at": "2020-08-24T16:26:04.355714Z",
"user": {
"phone": null,
"name": "Jane Doe",
"user_default_color": "#4069ff",
"_type": "user",
"digest_frequency": "0 9 * * *",
"location": null,
"inserted_at": "2020-03-17T13:50:41.053160Z",
"image_32": "https://picture.frame.io/image/convert/",
"email_confirm_by": null,
"profile_image": "https://picture.frame.io/image/convert/",
"timezone_value": "America/Los_Angeles",
"context": null,
"updated_at": "2021-07-30T00:08:32.975340Z",
"profile_image_original": null,
"deleted_at": null,
"project_role": {
"collaborator": true,
"owner": false,
"team_member": false,
"team_role": null
},
"first_login_at": "2020-03-17T13:50:56.652000Z",
"mfa_enforced_at": "2021-01-23T15:51:43.578167Z",
"roles": {
"admin": false,
"id": "c38458d8-93e2-463d-8230-d0e66f8613a6",
"sales": false,
"support": false
},
"image_128": "https://picture.frame.io/image/convert/",
"features_seen": null,
"email": "janedoe@frame.io",
"image_256": "https://picture.frame.io/image/convert/",
"bio": null,
"joined_via": "team_member",
"id": "eefb57e0-79f2-4bc7-9b70-99fbc175175c",
"email_preferences": null,
"image_64": "https://picture.frame.io/image/convert/",
"last_seen": "2021-07-30T00:08:32.975309Z",
"upload_url": "https://frameio-uploads-production.s3-accelerate.amazonaws.com/",
"account_id": "6bdcb4d9-9a2e-4548-a765-ae6b27a6c024",
"next_digest_date": "2021-07-30T09:00:00.000000Z",
"from_google": true
},
"user_id": "eefb57e0-79f2-4bc7-9b70-99fbc175175c"
}
]
},
"items": {
"type": "object",
"properties": {
"_type": {
"type": "string",
"minLength": 1
},
"creator_id": {
"type": "string",
"minLength": 1
},
"deleted_at": {},
"id": {
"type": "string",
"minLength": 1
},
"inserted_at": {
"type": "string",
"minLength": 1
},
"message": {},
"project_id": {
"type": "string",
"minLength": 1
},
"updated_at": {
"type": "string",
"minLength": 1
},
"user": {
"type": "object",
"required": [
"name",
"user_default_color",
"_type",
"digest_frequency",
"inserted_at",
"image_32",
"profile_image",
"timezone_value",
"updated_at",
"project_role",
"first_login_at",
"mfa_enforced_at",
"roles",
"image_128",
"email",
"image_256",
"joined_via",
"id",
"image_64",
"last_seen",
"upload_url",
"account_id",
"next_digest_date",
"from_google"
],
"properties": {
"phone": {},
"name": {
"type": "string",
"minLength": 1
},
"user_default_color": {
"type": "string",
"minLength": 1
},
"_type": {
"type": "string",
"minLength": 1
},
"digest_frequency": {
"type": "string",
"minLength": 1
},
"location": {},
"inserted_at": {
"type": "string",
"minLength": 1
},
"image_32": {
"type": "string",
"minLength": 1
},
"email_confirm_by": {},
"profile_image": {
"type": "string",
"minLength": 1
},
"timezone_value": {
"type": "string",
"minLength": 1
},
"context": {},
"updated_at": {
"type": "string",
"minLength": 1
},
"profile_image_original": {},
"deleted_at": {},
"project_role": {
"type": "object",
"required": [
"collaborator",
"owner",
"team_member"
],
"properties": {
"collaborator": {
"type": "boolean"
},
"owner": {
"type": "boolean"
},
"team_member": {
"type": "boolean"
},
"team_role": {}
}
},
"first_login_at": {
"type": "string",
"minLength": 1
},
"mfa_enforced_at": {
"type": "string",
"minLength": 1
},
"roles": {
"type": "object",
"required": [
"admin",
"id",
"sales",
"support"
],
"properties": {
"admin": {
"type": "boolean"
},
"id": {
"type": "string",
"minLength": 1
},
"sales": {
"type": "boolean"
},
"support": {
"type": "boolean"
}
}
},
"image_128": {
"type": "string",
"minLength": 1
},
"features_seen": {},
"email": {
"type": "string",
"minLength": 1
},
"image_256": {
"type": "string",
"minLength": 1
},
"bio": {},
"joined_via": {
"type": "string",
"minLength": 1
},
"id": {
"type": "string",
"minLength": 1
},
"email_preferences": {},
"image_64": {
"type": "string",
"minLength": 1
},
"last_seen": {
"type": "string",
"minLength": 1
},
"upload_url": {
"type": "string",
"minLength": 1
},
"account_id": {
"type": "string",
"minLength": 1
},
"next_digest_date": {
"type": "string",
"minLength": 1
},
"from_google": {
"type": "boolean"
}
}
},
"user_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"_type",
"creator_id",
"id",
"inserted_at",
"project_id",
"updated_at",
"user",
"user_id"
]
}
}
}
}
}
},
"description": "Fetch the list of Collaborators with access to a Project.",
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
},
{
"OAuth2": [
"project.read"
]
}
],
"tags": [
"Projects"
]
}
},
"/v2/projects/{project_id}/presentations": {
"get": {
"operationId": "getProjectPresentations",
"parameters": [
{
"in": "path",
"name": "project_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/PresentationsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"presentation.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get a paginated list of Presentations",
"tags": [
"Presentations"
],
"description": "Get a paginated list of Presentations"
},
"parameters": [
{
"$ref": "#/components/parameters/project_id"
}
]
},
"/v2/projects/{project_id}/membership": {
"get": {
"operationId": "getProjectMembership",
"parameters": [
{
"in": "path",
"name": "project_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "query",
"name": "user_id",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/ProjectMembershipResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"project.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get current User(s) membership for a Project",
"tags": [
"Projects"
],
"description": "Get the Membership context for a given user within a Project via its ID"
},
"parameters": [
{
"$ref": "#/components/parameters/project_id"
}
]
},
"/v2/teams": {
"get": {
"operationId": "getTeams",
"parameters": [],
"responses": {
"200": {
"$ref": "#/components/responses/TeamsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"team.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get Teams for User",
"description": "Return an array of all the Teams a user has access to",
"tags": [
"Teams"
]
}
},
"/v2/teams/{team_id}": {
"get": {
"operationId": "getTeam",
"parameters": [
{
"in": "query",
"name": "include",
"schema": {
"enum": [
"account",
"user_role"
],
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/TeamResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"team.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get a Team",
"tags": [
"Teams"
],
"description": "Fetch a given Team's information by ID"
},
"parameters": [
{
"$ref": "#/components/parameters/team_id"
}
]
},
"/v2/teams/{team_id}/projects": {
"get": {
"operationId": "getProjectsByTeam",
"parameters": [
{
"in": "path",
"name": "team_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"schema": {
"type": "string",
"example": "all"
},
"in": "query",
"name": "filter[archived]",
"description": "Add this query param with the value `all` to return both archived and non-archived projects"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/ProjectsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"project.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get Projects by Team",
"tags": [
"Projects"
],
"description": "Fetch a paginated list of all Projects belonging to a Team"
},
"post": {
"operationId": "createProject",
"parameters": [
{
"in": "path",
"name": "team_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"$ref": "#/components/requestBodies/ProjectRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/ProjectResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"project.create"
]
},
{
"DeveloperToken": []
}
],
"summary": "Create a Project",
"tags": [
"Projects"
],
"description": "Create a new Project belonging to a Team"
},
"parameters": [
{
"$ref": "#/components/parameters/team_id"
}
]
},
"/v2/teams/{team_id}/actions": {
"get": {
"operationId": "getActionsByTeam",
"parameters": [
{
"in": "path",
"name": "team_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/ActionsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
},
{
"OAuth2": [
"action.read"
]
}
],
"summary": "Get Custom Actions for a given Team",
"tags": [
"Custom Actions"
],
"description": "Fetch Custom Actions belonging to a given Team"
},
"post": {
"operationId": "createActionForTeam",
"parameters": [
{
"in": "path",
"name": "team_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"$ref": "#/components/requestBodies/ActionRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/ActionResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
},
{
"OAuth2": [
"action.create"
]
}
],
"summary": "Create a Custom Action",
"tags": [
"Custom Actions"
],
"description": "Create a Custom Action belonging to A Team"
},
"parameters": [
{
"$ref": "#/components/parameters/team_id"
}
]
},
"/v2/teams/{team_id}/hooks": {
"post": {
"operationId": "createWebhookForTeam",
"parameters": [
{
"in": "path",
"name": "team_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"$ref": "#/components/requestBodies/WebhookRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/WebhookResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
},
{
"OAuth2": [
"webhook.create"
]
}
],
"summary": "Create team webhook",
"tags": [
"Webhooks"
],
"description": "Create an outbound Webhook for all appropriate actions for a given Team"
}
},
"/v2/teams/{team_id}/members": {
"post": {
"operationId": "addTeamMember",
"parameters": [
{
"in": "path",
"name": "team_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"$ref": "#/components/requestBodies/TeamMemberRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/TeamMemberResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"team.update"
]
},
{
"DeveloperToken": []
}
],
"summary": "Add a Team member",
"tags": [
"Teams"
],
"description": "Add a Team member to a given Team"
},
"get": {
"summary": "Get Team Members",
"operationId": "getTeamMembers",
"responses": {
"200": {
"$ref": "#/components/responses/TeamResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"description": "List the members on a given Team",
"security": [
{
"JWT": []
},
{
"OAuth2": [
"team.read"
]
},
{
"DeveloperToken": []
}
],
"tags": [
"Teams"
]
},
"parameters": [
{
"$ref": "#/components/parameters/team_id"
}
]
},
"/v2/comments/{comment_id}/like": {
"delete": {
"operationId": "deleteCommentImpressionLike",
"parameters": [
{
"in": "path",
"name": "comment_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/CommentImpressionsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"comment.update"
]
},
{
"DeveloperToken": []
}
],
"summary": "Delete a like from a comment",
"tags": [
"Comments"
],
"description": "Remove a Like from a Comment"
},
"post": {
"operationId": "createCommentImpressionLike",
"parameters": [
{
"in": "path",
"name": "comment_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/CommentImpressionsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"comment.update"
]
},
{
"DeveloperToken": []
}
],
"summary": "Create a Like on a Comment",
"tags": [
"Comments"
],
"description": "Leave a thumbs-up on a Comment"
}
},
"/v2/assets/{destination_folder}/copy": {
"post": {
"operationId": "copyAsset",
"requestBody": {
"$ref": "#/components/requestBodies/AssetCopyRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/AssetResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.create"
]
},
{
"DeveloperToken": []
}
],
"summary": "Copy asset",
"tags": [
"Assets"
],
"description": "Copy an Asset to a new location"
},
"parameters": [
{
"schema": {
"type": "string",
"format": "uuid"
},
"name": "destination_folder",
"in": "path",
"required": true,
"description": "Destination folder `id`"
}
]
},
"/v2/assets/{destination_folder}/move": {
"post": {
"operationId": "moveAsset",
"responses": {
"200": {
"$ref": "#/components/responses/AssetResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.update"
]
},
{
"DeveloperToken": []
}
],
"summary": "Move asset",
"tags": [
"Assets"
],
"description": "Move an asset to a new location",
"requestBody": {
"$ref": "#/components/requestBodies/AssetCopyRequest"
}
},
"parameters": [
{
"schema": {
"type": "string",
"format": "uuid"
},
"name": "destination_folder",
"in": "path",
"required": true,
"description": "Destination folder `id`"
}
]
},
"/v2/search/assets": {
"get": {
"operationId": "assetSearchGet",
"parameters": [
{
"in": "query",
"name": "account_id",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"description": "Custom ES filters to apply to your query",
"in": "query",
"name": "filter",
"schema": {
"type": "object"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "string"
}
},
{
"description": "Flag to include soft-deleted records in results",
"in": "query",
"name": "include_deleted",
"schema": {
"type": "boolean"
}
},
{
"description": "Additional request options",
"in": "query",
"name": "opts",
"schema": {
"type": "object"
}
},
{
"description": "The page to retrieve",
"in": "query",
"name": "page",
"schema": {
"type": "integer"
}
},
{
"description": "The number of results to include in the page",
"in": "query",
"name": "page_size",
"schema": {
"type": "integer"
}
},
{
"in": "query",
"name": "project_id",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "query",
"name": "properties",
"schema": {
"type": "object"
}
},
{
"description": "Search text",
"in": "query",
"name": "q",
"schema": {
"type": "string"
}
},
{
"description": "Search text",
"in": "query",
"name": "query",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "shared_projects",
"schema": {
"type": "boolean"
}
},
{
"description": "Sorting parameters",
"in": "query",
"name": "sort",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "team_id",
"schema": {
"oneOf": [
{
"format": "uuid",
"type": "string"
},
{
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
}
]
}
},
{
"in": "query",
"name": "type",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/AssetsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Search for Assets",
"tags": [
"Assets"
],
"description": "Search for Assets via query parameters"
},
"post": {
"operationId": "assetSearchPost",
"requestBody": {
"$ref": "#/components/requestBodies/AssetSearchRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/AssetsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Search for Assets",
"tags": [
"Assets"
],
"description": "Search for Assets using a JSON payload"
}
},
"/v2/search/library": {
"get": {
"operationId": "librarySearchGet",
"parameters": [
{
"in": "query",
"name": "account_id",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"description": "Custom ES filters to apply to your query",
"in": "query",
"name": "filter",
"schema": {
"type": "object"
}
},
{
"description": "Flag to include soft-deleted records in results",
"in": "query",
"name": "include_deleted",
"schema": {
"type": "boolean"
}
},
{
"description": "Additional request options",
"in": "query",
"name": "opts",
"schema": {
"type": "object"
}
},
{
"description": "The page to retrieve",
"in": "query",
"name": "page",
"schema": {
"type": "integer"
}
},
{
"description": "The number of results to include in the page",
"in": "query",
"name": "page_size",
"schema": {
"type": "integer"
}
},
{
"description": "Search text",
"in": "query",
"name": "q",
"schema": {
"type": "string"
}
},
{
"description": "Search text",
"in": "query",
"name": "query",
"schema": {
"type": "string"
}
},
{
"description": "Sorting parameters",
"in": "query",
"name": "sort",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/AssetsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Advanced search for Assets",
"description": "Advanced Asset Search",
"tags": [
"Assets"
]
},
"post": {
"operationId": "librarySearchPost",
"requestBody": {
"$ref": "#/components/requestBodies/LibrarySearchRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/AssetsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Advanced search for Assets",
"description": "Search using ElasticSearch key/value pairs",
"tags": [
"Assets"
]
}
},
"/v2/projects/{project_id}/review_links": {
"get": {
"operationId": "reviewLinksList",
"parameters": [
{
"in": "path",
"name": "project_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/ReviewLinksResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"reviewlink.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "List review links in a project",
"tags": [
"Review Links"
],
"description": "List all the review links belonging to a project"
},
"post": {
"operationId": "reviewLinkCreate",
"parameters": [
{
"in": "path",
"name": "project_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"$ref": "#/components/requestBodies/ReviewLinkCreateRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/ReviewLinkResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"reviewlink.create"
]
},
{
"DeveloperToken": []
}
],
"summary": "Create a Review Link",
"tags": [
"Review Links"
],
"description": "Create a new Review Link in a given Project"
},
"parameters": [
{
"$ref": "#/components/parameters/project_id"
}
]
},
"/v2/teams/{team_id}/membership": {
"get": {
"operationId": "getMembershipByTeam",
"parameters": [
{
"in": "path",
"name": "team_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/TeamMembershipResonse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"team.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get user membership for team",
"tags": [
"Teams"
],
"description": "Get currently authed User's membership within a particular Team"
},
"parameters": [
{
"$ref": "#/components/parameters/team_id"
}
]
},
"/v2/actions/{action_id}": {
"delete": {
"operationId": "deleteAction",
"responses": {
"200": {
"$ref": "#/components/responses/ActionResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
},
{
"OAuth2": [
"action.delete"
]
}
],
"summary": "Delete a Custom Action",
"tags": [
"Custom Actions"
],
"description": "Delete a given Custom Action via its ID"
},
"get": {
"operationId": "getAction",
"responses": {
"200": {
"$ref": "#/components/responses/ActionResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
},
{
"OAuth2": [
"action.read"
]
}
],
"summary": "Get a Custom Action by ID",
"tags": [
"Custom Actions"
],
"description": "Get a Custom Action via its ID"
},
"put": {
"operationId": "updateAction",
"requestBody": {
"$ref": "#/components/requestBodies/ActionRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/ActionResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
},
{
"OAuth2": [
"action.update"
]
}
],
"summary": "Update a Custom Action",
"tags": [
"Custom Actions"
],
"description": "Update a given Custom Action via its ID"
},
"parameters": [
{
"$ref": "#/components/parameters/action_id"
}
]
},
"/v2/hooks/{hook_id}": {
"delete": {
"operationId": "deleteWebhook",
"responses": {
"200": {
"$ref": "#/components/responses/WebhookResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
},
{
"OAuth2": [
"webhook.delete"
]
}
],
"summary": "Delete webhook",
"tags": [
"Webhooks"
],
"description": "Delete a given Webhook via its ID"
},
"get": {
"operationId": "getWebhook",
"responses": {
"200": {
"$ref": "#/components/responses/WebhookResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
},
{
"OAuth2": [
"webhook.read"
]
}
],
"summary": "Get Webhook by ID",
"tags": [
"Webhooks"
],
"description": "Get the information about a given Webhook"
},
"put": {
"operationId": "updateWebhook",
"requestBody": {
"$ref": "#/components/requestBodies/WebhookRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/WebhookResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"DeveloperToken": []
},
{
"OAuth2": [
"webhook.update"
]
}
],
"summary": "Update webhook",
"tags": [
"Webhooks"
],
"description": "Update the settings for a given Webhook via its ID"
},
"parameters": [
{
"$ref": "#/components/parameters/hook_id"
}
]
},
"/v2/installations/for_me": {
"get": {
"operationId": "getInstallationForMe",
"parameters": [],
"responses": {
"200": {
"$ref": "#/components/responses/InstallationResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": []
},
{
"DeveloperToken": []
}
],
"summary": "Get the installations associated with the current bot user",
"tags": [
"App Installations",
"Private"
],
"description": "Get list of available installed Applications (marketplace feature)"
}
},
"/v2/projects/{project_id}": {
"delete": {
"operationId": "deleteProject",
"responses": {
"200": {
"$ref": "#/components/responses/ProjectResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"project.delete"
]
},
{
"DeveloperToken": []
}
],
"summary": "Delete Project by ID",
"tags": [
"Projects"
],
"description": "Delete a Project via its ID"
},
"get": {
"operationId": "getProject",
"responses": {
"200": {
"$ref": "#/components/responses/ProjectResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"project.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get Project by ID",
"tags": [
"Projects"
],
"description": "Fetch a Project via its ID",
"parameters": [
{
"schema": {
"type": "string"
},
"in": "query",
"name": "include"
}
]
},
"put": {
"operationId": "updateProject",
"requestBody": {
"$ref": "#/components/requestBodies/ProjectRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/ProjectResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"project.update"
]
},
{
"DeveloperToken": []
}
],
"summary": "Update a Project",
"tags": [
"Projects"
],
"description": "Update a Project ID with only the fields provided (overwrite)"
},
"parameters": [
{
"$ref": "#/components/parameters/project_id"
}
]
},
"/v2/batch/assets/{destination_id}/copy": {
"post": {
"operationId": "batchCopyAsset",
"requestBody": {
"$ref": "#/components/requestBodies/BatchAssetCopyRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/BatchAssetCopyResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.create"
]
},
{
"DeveloperToken": []
}
],
"summary": "Bulk copy assets",
"tags": [
"Assets"
],
"description": "Copy a batch of asset ids to a new folder. You can also choose to copy over all or none of the comments from the original to the copied asset."
},
"parameters": [
{
"$ref": "#/components/parameters/destination_id"
}
]
},
"/v2/batch/assets": {
"delete": {
"operationId": "batchDeleteAsset",
"parameters": [],
"responses": {
"200": {
"$ref": "#/components/responses/BatchAssetDeleteResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"asset.delete"
]
},
{
"DeveloperToken": []
}
],
"summary": "Bulk delete assets",
"tags": [
"Assets"
],
"description": "Delete a list of Assets",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"asset_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
"required": [
"asset_ids"
]
}
}
},
"description": "Delete a list of Assets by their ID's"
}
}
},
"/v2/review_links/{review_link_id}": {
"delete": {
"operationId": "reviewLinkDelete",
"parameters": [
{
"in": "path",
"name": "review_link_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/ReviewLinkResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"reviewlink.delete"
]
},
{
"DeveloperToken": []
}
],
"summary": "Delete a Review Link",
"tags": [
"Review Links"
],
"description": "Delete a given Review Link"
},
"get": {
"operationId": "reviewLinkGet",
"parameters": [
{
"in": "path",
"name": "review_link_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/ReviewLinkResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"reviewlink.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get a Review Link",
"tags": [
"Review Links"
],
"description": "Get a full Review Link manifest"
},
"put": {
"operationId": "reviewLinkUpdate",
"parameters": [
{
"in": "path",
"name": "review_link_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"$ref": "#/components/requestBodies/ReviewLinkUpdateRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/ReviewLinkResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"reviewlink.update"
]
},
{
"DeveloperToken": []
}
],
"summary": "Update a Review Link",
"tags": [
"Review Links"
],
"description": "Update a Review Links manifest, overwriting any specified key/value pairs"
},
"parameters": [
{
"$ref": "#/components/parameters/review_link_id"
}
]
},
"/v2/review_links/{review_link_id}/items": {
"get": {
"operationId": "reviewLinkItemsList",
"parameters": [
{
"in": "path",
"name": "review_link_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/ReviewLinkItemsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"reviewlink.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get items in a Review Link",
"tags": [
"Review Links"
],
"description": "Fetch the list of items (assets, folders, and version stacks) on a given Review Link"
}
},
"/v2/review_links/{review_link_id}/assets": {
"post": {
"operationId": "reviewLinkItemCreate",
"parameters": [
{
"in": "path",
"name": "review_link_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"$ref": "#/components/requestBodies/ReviewLinkItemCreateRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/ReviewLinkResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"reviewlink.create"
]
},
{
"DeveloperToken": []
}
],
"summary": "Add Asset to a Review Link",
"tags": [
"Review Links"
],
"description": "Add assets to a Review Link"
},
"put": {
"summary": "Update Assets in a Review Link",
"operationId": "reviewLinkItemUpdate",
"parameters": [
{
"in": "path",
"name": "review_link_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/ReviewLinkResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"description": "Replace the assets on this Review Link",
"requestBody": {
"$ref": "#/components/requestBodies/ReviewLinkItemCreateRequest"
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"reviewlink.update"
]
},
{
"DeveloperToken": []
}
],
"tags": [
"Review Links"
]
},
"parameters": [
{
"schema": {
"type": "string"
},
"name": "review_link_id",
"in": "path",
"required": true
}
]
},
"/v2/presentations": {
"get": {
"operationId": "getUserPresentations",
"parameters": [],
"responses": {
"200": {
"$ref": "#/components/responses/PresentationsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"presentation.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get global presentation links",
"tags": [
"Presentations"
],
"description": "Get recently created Presentation Links across a user's account"
}
},
"/v2/presentations/{presentation_id}": {
"delete": {
"operationId": "deletePresentation",
"responses": {
"200": {
"$ref": "#/components/responses/PresentationResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"presentation.delete"
]
},
{
"DeveloperToken": []
}
],
"summary": "Delete a Presentation",
"tags": [
"Presentations"
],
"description": "Delete a given Presentation Link",
"deprecated": true
},
"get": {
"operationId": "showPresentation",
"responses": {
"200": {
"$ref": "#/components/responses/PresentationResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"presentation.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Show a Presentation",
"tags": [
"Presentations"
],
"description": "Fetch a particular presentaiton link's id"
},
"put": {
"operationId": "updatePresentation",
"requestBody": {
"$ref": "#/components/requestBodies/PresentationUpdateRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/PresentationResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"presentation.update"
]
},
{
"DeveloperToken": []
}
],
"summary": "Update a Presentation",
"tags": [
"Presentations"
],
"description": "Update a Presentation Link via it's ID"
},
"parameters": [
{
"$ref": "#/components/parameters/presentation_id"
}
]
},
"/v2/assets/{asset_id}/presentations": {
"get": {
"operationId": "getAssetPresentations",
"parameters": [
{
"in": "path",
"name": "asset_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/PresentationsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"presentation.read"
]
},
{
"DeveloperToken": []
}
],
"summary": "Get Presentation Links for a particular asset",
"tags": [
"Presentations"
],
"description": "Get a paginated list of Presentation Links attached to a particular asset ID"
},
"post": {
"operationId": "createPresentation",
"parameters": [
{
"in": "path",
"name": "asset_id",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"$ref": "#/components/requestBodies/PresentationCreateRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/PresentationResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"JWT": []
},
{
"OAuth2": [
"presentation.create"
]
},
{
"DeveloperToken": []
}
],
"summary": "Create a Presentation Link for an asset",
"tags": [
"Presentations"
],
"description": "Create a new Presentation Link"
},
"parameters": [
{
"$ref": "#/components/parameters/asset_id"
}
]
},
"/v2/devices/me": {
"parameters": [],
"get": {
"summary": "Device Information",
"operationId": "deviceIdentify",
"responses": {
"200": {
"$ref": "#/components/responses/ProjectDeviceResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
},
"description": "Fetches information about the current device connection. \n\nCan be used to verify authorization token and returns information useful to present useful information in your user interface.",
"security": [
{
"C2CDeviceAuth": []
},
{
"OAuth2": []
}
],
"tags": [
"Accounts",
"Devices"
],
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
}
]
}
},
"/v2/devices/channels": {
"post": {
"summary": "Connect a new device channel",
"operationId": "connectDeviceChannel",
"requestBody": {
"$ref": "#/components/requestBodies/DeviceChannelConnectRequest"
},
"responses": {
"200": {
"$ref": "#/components/responses/ProjectDeviceChannelConnectResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"409": {
"$ref": "#/components/responses/DeviceChannelAlreadyExists"
}
},
"description": "We can connect a new channel with the following request",
"security": [
{
"C2COAuth2": [
"device_connect"
]
}
],
"tags": [
"Devices"
],
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
}
]
}
},
"/v2/devices/channels/{channel_id}/inputs/{input_index}/trigger": {
"post": {
"summary": "Trigger a real-time logging event",
"operationId": "triggerRealtimeLoggingEvent",
"requestBody": {
"$ref": "#/components/requestBodies/DeviceChannelTriggerRequest"
},
"responses": {
"204": {
"description": "OK"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
},
"description": "Triggers an event on the device channel. \n\n Can be used for logging a quick comment, or for other things that haven't been dreamed up yet!",
"security": [
{
"C2COAuth2": [
"device_connect"
]
}
],
"tags": [
"Devices"
],
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
},
{
"schema": {
"type": "string",
"format": "uuid"
},
"name": "channel_id",
"description": "Device channel id",
"in": "path",
"required": true
},
{
"schema": {
"type": "integer",
"minimum": 0
},
"name": "input_index",
"description": "An 0-indexed integer that will be used to identify the input",
"in": "path",
"required": true
}
]
}
},
"/v2/devices/channels/{channel_id}/disconnect": {
"post": {
"summary": "Disconnect a specific device channel",
"operationId": "disconnectDeviceChannel",
"responses": {
"204": {
"description": "OK"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"description": "Disconnect a device channel with the following request",
"security": [
{
"C2COAuth2": [
"device_connect"
]
}
],
"tags": [
"Devices"
],
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
},
{
"schema": {
"type": "string"
},
"name": "channel_id",
"description": "Device channel id",
"in": "path",
"required": true
}
]
}
},
"/v2/devices/channels/disconnect": {
"post": {
"summary": "Disconnect all device channels",
"operationId": "disconnectAllDeviceChannels",
"responses": {
"204": {
"description": "OK"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
},
"description": "Disconnects all connected device channels",
"security": [
{
"C2COAuth2": [
"device_connect"
]
}
],
"tags": [
"Devices"
],
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
}
]
}
},
"/v2/device/code": {
"post": {
"summary": "Request device code",
"tags": [
"Authorization",
"Devices"
],
"responses": {
"200": {
"description": "Succesful request",
"content": {
"application/json": {
"schema": {
"description": "",
"type": "object",
"x-examples": {
"example-1": {
"device_code": "[device_code]",
"expires_in": 120,
"interval": 5,
"name": "MyDevice-[client_id]",
"user_code": "573131"
}
},
"properties": {
"device_code": {
"type": "string",
"minLength": 1,
"description": "The device code should be hidden from the user, and is used to identify this authorization request when polling to see if the user has entered their code successfully."
},
"expires_in": {
"type": "number",
"maximum": 120,
"example": 120,
"description": "The number of seconds until this code expires."
},
"interval": {
"type": "number",
"description": "How long the we should wait between polling requests to see if the user has entered the code."
},
"name": {
"type": "string",
"minLength": 1,
"description": "The name of the device we are trying to connect."
},
"user_code": {
"type": "string",
"minLength": 1,
"description": "The six-digit code the user will enter into Frame.io to pair the device to a project."
}
},
"required": [
"device_code",
"expires_in",
"interval",
"name",
"user_code"
]
},
"examples": {
"example-1": {
"value": {
"device_code": "string",
"expires_in": 0,
"interval": 0,
"name": "string",
"user_code": "string"
}
}
}
}
}
}
},
"operationId": "deviceRequestCode",
"description": "",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"client_id": {
"type": "string",
"description": "A unique identifier for the physical hardware device. This value needs to be guaranteed to be unique for the device. This could be a serial number or a randomly generated UUID."
},
"client_secret": {
"type": "string",
"description": "This will be issued to you by Frame.io support and identifies the your device model. This value should be kept secret from the user, and should be encrypted at rest"
},
"scope": {
"type": "string",
"description": "The permissions we are requesting, with spaces used as delimiters. Hardware devices can only request the following two scopes",
"enum": [
"asset_create",
"offline"
],
"example": "asset_create offline"
}
},
"required": [
"client_id",
"client_secret",
"scope"
]
}
}
},
"description": ""
},
"security": [],
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
}
]
}
},
"/v2/auth/token": {
"parameters": [],
"post": {
"summary": "Refresh Device Token",
"operationId": "authDeviceRefreshToken",
"responses": {
"200": {
"description": "OK"
}
},
"description": "Refresh your devices token",
"parameters": [],
"tags": [
"Devices",
"Authorization"
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"client_id": {
"type": "string",
"description": "Must be a unique identifier per hardware device, such as a unique hardware serial number. Must be the same as the client id used on initial authorization."
},
"client_secret": {
"type": "string",
"description": "A static string, provided by Frame.io to be embedded for a device manufacturer/model. Acts as an identifier within Frame.io."
},
"grant_type": {
"type": "string",
"description": "Grant type",
"enum": [
"refresh_token"
]
},
"refresh_tokem": {
"type": "string",
"description": "A valid `refresh_token`, from a previous authorization. Refresh tokens are valid for 14 days from issuance. This is received after the initial authorization and will receive a new `refresh-token` after every refresh."
}
},
"required": [
"client_id",
"client_secret",
"grant_type",
"refresh_tokem"
]
}
}
},
"description": ""
},
"security": []
},
"get": {
"summary": "Polling for Device Authorization",
"operationId": "authDeviceConfirmDevice",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"description": "",
"type": "object",
"x-examples": {
"example-1": {
"access_token": "[access_token]",
"expires_in": 28800,
"refresh_token": "[refresh_token]",
"token_type": "bearer"
}
},
"properties": {
"access_token": {
"type": "string",
"description": "This is your key to the rest of the Frame.io backend. We will need to add this to the header of the rest of the requests we are going to make in these tutorials."
},
"expires_in": {
"type": "number",
"description": "The number of seconds until `access_token` expires. After the token's time is up, it will need to be refreshed, which we will go over in a future tutorial."
},
"refresh_token": {
"type": "string",
"description": "A token we can use to manage our access_token. It will most commonly be used to refresh our authorization, but it can also be used to revoke it.",
"format": "uuid"
},
"token_type": {
"type": "string",
"description": "Will always be bearer for the C2C API, and is not actionable.",
"enum": [
"bearer"
]
}
},
"required": [
"access_token",
"expires_in",
"refresh_token",
"token_type"
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"description": "",
"type": "object",
"x-examples": {
"example-1": {
"error": "authorization_pending"
}
},
"properties": {
"error": {
"type": "string",
"minLength": 1,
"enum": [
"authorization_pending",
"expired_token",
"invalid_grant",
"invalid_client",
"invalid_request",
"slow_down"
]
}
},
"required": [
"error"
]
},
"examples": {
"AuthorizationPending": {
"value": {
"error": "authorization_pending"
}
},
"ExpiredToken": {
"value": {
"error": "expired_token"
}
}
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
}
],
"tags": [
"Devices",
"Authorization"
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"grant_type": {
"type": "string",
"description": "The type of authorization grant our OAuth system is issuing.",
"enum": [
"urn:ietf:params:oauth:grant-type:device_code"
]
},
"client_id": {
"type": "string",
"description": "The unique device id, such as the device serial number. Must be the same as the client id used on the initiation request."
},
"device_code": {
"type": "string",
"description": "The unique `device_code` generated by the server for this authorization attempt. Returned from the initiation request."
}
},
"required": [
"grant_type",
"client_id",
"device_code"
]
}
}
},
"description": ""
},
"description": "Once we have handed the pairing code to the user, we need to check and see if they've entered it. To do so, we can make the following request.",
"security": []
}
},
"/v2/devices/heartbeat": {
"post": {
"summary": "Heartbeat ping",
"operationId": "deviceHeartbeat",
"responses": {
"204": {
"description": "No Content"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
},
"description": "Ommit heartbeat event to Frame.io. This powers the device \"online\" status in the C2C Connections tab on iOS and Web.\n\nThis should be called no more then once a minute, and no less than once every 5 minutes.",
"tags": [
"Devices"
],
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
}
],
"security": []
}
},
"/v2/devices/connect": {
"post": {
"summary": "Connect device",
"tags": [
"Devices"
],
"responses": {
"204": {
"$ref": "#/components/responses/DeviceIdentityResponse"
}
},
"operationId": "deviceProjectConnect",
"security": [
{
"C2COAuth2": [
"device_connect"
]
}
],
"description": "Connect to the provided C2C Project.",
"x-internal": false,
"parameters": [
{
"schema": {
"type": "string"
},
"in": "query",
"name": "project_id",
"description": "The `project_id` you intend to connect to"
},
{
"$ref": "#/components/parameters/firmware_version"
}
]
},
"parameters": []
},
"/v2/devices/disconnect": {
"post": {
"summary": "Disconnect device",
"tags": [
"Devices"
],
"responses": {
"204": {
"description": "No Content"
}
},
"operationId": "deviceProjectDisconnect",
"security": [
{
"C2COAuth2": [
"device_connect"
]
}
],
"description": "Disconnect the device from the project it's currently connected to.",
"x-internal": false,
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
}
]
},
"parameters": []
},
"/v2/auth/revoke": {
"post": {
"summary": "Revoke Device Authorization",
"tags": [
"Authorization",
"Devices"
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
},
"operationId": "authDeviceRevokeToken",
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
}
],
"description": "Revoke device authorization",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"client_id": {
"type": "string",
"description": "Must be a unique identifier per hardware device, such as a unique hardware serial number. Must be the same `client_id` used on initial authorization."
},
"client_secret": {
"type": "string",
"description": "A static string, provided by Frame.io to be embedded for a device manufacturer/model. Acts as an identifier within Frame.io."
},
"token": {
"type": "string"
}
}
}
}
},
"description": ""
},
"security": []
}
},
"/v2/devices/accounts/{account_id}/projects": {
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"example": "eefb57e0-79f2-4bc7-9b70-99fbc175175c"
},
"description": "Account ID"
}
],
"get": {
"summary": "List projects for account",
"operationId": "deviceListProjects",
"tags": [
"Devices"
],
"description": "List available Projects to pair your C2C device with.",
"responses": {
"200": {
"$ref": "#/components/responses/DeviceProjectsResponse"
},
"403": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
},
"security": [
{
"C2COAuth2": [
"device_connect"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
}
]
}
},
"/v2/devices/accounts": {
"parameters": [],
"get": {
"summary": "List accounts",
"operationId": "deviceListAccounts",
"responses": {
"200": {
"$ref": "#/components/responses/DeviceAccountsResponse"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"description": "Not Found"
}
},
"tags": [
"Devices",
"Accounts"
],
"description": "List available accounts to pair your C2C device with.",
"security": [
{
"C2COAuth2": [
"device_connect"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
}
]
}
},
"/v2/assets": {
"post": {
"summary": "Create C2C asset",
"operationId": "deviceAssetCreateDeprecated",
"responses": {
"200": {
"$ref": "#/components/responses/AssetCreateResponse"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"409": {
"description": "",
"content": {
"application/json": {
"schema": {
"description": "",
"type": "object",
"x-examples": {
"example-1": {
"code": 409,
"errors": [
{
"code": 409,
"detail": "The channel you're uploading from is currently paused.",
"status": 409,
"title": "Channel Paused"
}
],
"message": "Channel Paused"
}
},
"properties": {
"code": {
"type": "number",
"enum": [
409
]
},
"errors": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "object",
"properties": {
"code": {
"type": "number",
"enum": [
409
]
},
"detail": {
"type": "string",
"minLength": 1
},
"status": {
"type": "number",
"minimum": 200,
"maximum": 599,
"enum": [
409
]
},
"title": {
"type": "string",
"minLength": 1
}
},
"required": [
"code",
"detail",
"status",
"title"
]
}
},
"message": {
"type": "string",
"minLength": 1,
"enum": [
"Channel Paused",
"invalid_client",
"slow_down"
]
}
},
"required": [
"code",
"errors",
"message"
]
}
}
}
},
"429": {
"$ref": "#/components/responses/TooManyRequests"
}
},
"tags": [
"Devices",
"Assets"
],
"description": "**THIS ENDPOINT IS DEPRECATED**. Please use `/v2/devices/assets` instead. While this endpoint will continue to function as normal, we ask that integrations begin using the new endpoint instead for consistency with the rest of the C2C API.\n\nAsset upload initiation specifically for C2C devices and applications.",
"security": [
{
"C2CDeviceAuth": [
"asset_create"
]
},
{
"C2COAuth2": [
"asset_create"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
}
],
"requestBody": {
"$ref": "#/components/requestBodies/DeviceAssetCreateRequest"
},
"deprecated": true
},
"parameters": []
},
"/v2/devices/assets": {
"post": {
"summary": "Create C2C asset",
"operationId": "deviceAssetCreate",
"responses": {
"200": {
"$ref": "#/components/responses/AssetCreateResponse"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"description": "",
"type": "object",
"x-examples": {
"example-1": {
"code": 409,
"errors": [
{
"code": 409,
"detail": "The channel you're uploading from is currently paused.",
"status": 409,
"title": "Channel Paused"
}
],
"message": "Channel Paused"
}
},
"properties": {
"code": {
"type": "number",
"enum": [
409
]
},
"errors": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "object",
"properties": {
"code": {
"type": "number",
"enum": [
409
]
},
"detail": {
"type": "string",
"minLength": 1
},
"status": {
"type": "number",
"minimum": 200,
"maximum": 599,
"enum": [
409
]
},
"title": {
"type": "string",
"minLength": 1
}
},
"required": [
"code",
"detail",
"status",
"title"
]
}
},
"message": {
"type": "string",
"minLength": 1,
"enum": [
"Channel Paused",
"invalid_client",
"slow_down"
]
}
},
"required": [
"code",
"errors",
"message"
]
}
}
}
},
"429": {
"$ref": "#/components/responses/TooManyRequests"
}
},
"tags": [
"Devices",
"Assets"
],
"description": "Asset upload initiation specifically for C2C devices and applications.\n\nNote: This endpoint used to be `/v2/assets`, and while that endpoint will continue to function as normal, we suggest you use this one instead.",
"security": [
{
"C2CDeviceAuth": [
"asset_create"
]
},
{
"C2COAuth2": [
"asset_create"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
}
],
"requestBody": {
"$ref": "#/components/requestBodies/DeviceAssetCreateRequest"
}
},
"parameters": []
},
"/v2/devices/assets/{asset_id}/realtime_upload/parts": {
"parameters": [
{
"schema": {
"type": "string",
"format": "uuid",
"example": "87817fee-e5b1-4aad-8165-2ee2bedd99cc"
},
"name": "asset_id",
"in": "path",
"required": true,
"description": "Asset ID"
}
],
"post": {
"summary": "Request upload URLs for real-time upload",
"tags": [
"Devices"
],
"responses": {
"200": {
"$ref": "#/components/responses/RealtimePartsCreateResponse"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"429": {
"$ref": "#/components/responses/TooManyRequests"
}
},
"operationId": "deviceCreateRealtimeUploadParts",
"security": [
{
"C2CDeviceAuth": [
"asset_create"
]
},
{
"C2COAuth2": [
"asset_create"
]
}
],
"description": "Register real-time upload parts and generate presigned AWS S3 upload PUT URLs.",
"parameters": [
{
"$ref": "#/components/parameters/firmware_version"
}
],
"requestBody": {
"$ref": "#/components/requestBodies/RealtimePartsCreateRequest"
}
}
},
"/health": {
"get": {
"summary": "Status check",
"tags": [
"System"
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ok"
]
}
},
"required": [
"status"
]
}
}
},
"headers": {
"x-ratelimit-limit": {
"$ref": "#/components/headers/x-ratelimit-limit"
},
"x-ratelimit-remaining": {
"$ref": "#/components/headers/x-ratelimit-remaining"
},
"x-ratelimit-window": {
"$ref": "#/components/headers/x-ratelimit-window"
}
}
},
"429": {
"description": "Too Many Requests"
},
"500": {
"description": "Internal Server Error"
},
"502": {
"description": "Bad Gateway"
},
"503": {
"description": "Service Unavailable"
}
},
"operationId": "healthCheck",
"description": "Check status of the Frame.io API",
"parameters": [],
"security": []
}
},
"/v2/notifications": {
"get": {
"summary": "Get Grouped Notifications",
"tags": [
"Notifications",
"Private"
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date-time",
"example": "2022-08-02T15:47:33Z",
"readOnly": true
},
"link_to": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "asset",
"enum": [
"asset",
"comment"
]
},
"id": {
"type": "string",
"format": "uuid"
}
}
}
},
"user_count": {
"type": "integer",
"example": 5,
"format": "int32"
},
"notification_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"id": {
"type": "string",
"description": "First notification id",
"format": "uuid"
},
"text_elements": {
"type": "object",
"properties": {
"header": {
"type": "array",
"items": {
"allOf": [
{
"properties": {
"type": {
"type": "string",
"example": "text_element",
"enum": [
"text_element"
],
"description": "The type of the text element"
},
"format": {
"type": "string",
"enum": [
"plain_text",
"strong"
],
"example": "strong"
},
"value": {
"type": "string",
"example": "Gabriel, Matthew and 3 others"
}
}
},
{
"properties": {
"type": {
"type": "string",
"enum": [
"text_element"
],
"example": "text_element",
"description": "The type of the text element"
},
"format": {
"type": "string",
"enum": [
"strong",
"plain_text"
],
"example": "plain_text"
},
"value": {
"type": "string",
"example": "commented on",
"enum": [
"commented on",
"comentado"
]
}
}
},
{
"properties": {
"text_element": {
"type": "string",
"enum": [
"text_element"
],
"example": "text_element",
"description": "The type of the text element"
},
"format": {
"type": "string",
"enum": [
"strong",
"plain_text"
],
"example": "strong"
},
"value": {
"type": "string",
"example": "Awesome.mov"
}
}
}
],
"type": "object"
}
},
"body": {
"type": "array",
"items": {
"allOf": [
{
"properties": {
"type": {
"type": "string",
"enum": [
"text_element"
],
"example": "text_element",
"description": "The type of the text element"
},
"format": {
"type": "string",
"enum": [
"plain_text",
"strong"
],
"example": "plain_text"
},
"value": {
"type": "string",
"example": "This movie rules!"
}
}
},
{
"properties": {
"type": {
"type": "string",
"example": "status",
"enum": [
"status"
]
},
"status": {
"type": "string",
"enum": [
"status_in_progress",
"status_approved",
"status_needs_review"
],
"example": "status_in_progress"
},
"value": {
"type": "string",
"enum": [
"In Progress",
"Approved",
"Needs Review"
],
"example": "Approved"
}
}
}
],
"type": "object"
}
},
"footer": {
"type": "array",
"items": {
"type": "object"
}
}
}
},
"thumbs": {
"type": "array",
"items": {
"type": "object"
}
},
"status": {
"type": "string",
"description": "Notification status",
"enum": [
"read",
"unread"
],
"example": "read"
},
"asset_type": {
"type": "string",
"enum": [
"DocumentAsset",
"VideoAsset"
],
"example": "VideoAsset"
}
}
}
}
}
}
},
"operationId": "getGroupedNotifications",
"description": "",
"security": [
{
"JWT": []
}
]
}
}
},
"servers": [
{
"url": "https://api.frame.io",
"description": "Production"
}
],
"x-explorer-enabled": true,
"x-proxy-enabled": true,
"x-samples-enabled": true,
"x-samples-languages": [
"curl",
"node",
"ruby",
"javascript",
"python"
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment