Python SDK Reference
Installation
Usage
Instantiate and use the client with the following:
Async Client
The SDK also exports an async client so that you can make non-blocking calls to our API. Note that if you are constructing an Async httpx client class to pass into this client, use httpx.AsyncClient() instead of httpx.Client() (e.g. for the httpx_client parameter of this client).
Exception Handling
When the API returns a non-success status code (4xx or 5xx response), a subclass of the following error will be thrown.
Pagination
Paginated requests will return a SyncPager or AsyncPager, which can be used as generators for the underlying object.
Advanced
Access Raw Response Data
The SDK provides access to raw response data, including headers, through the .with_raw_response property. The .with_raw_response property returns a “raw” client that can be used to access the .headers and .data attributes.
Retries
The SDK is instrumented with automatic retries with exponential backoff. A request will be retried as long as the request is deemed retryable and the number of retry attempts has not grown larger than the configured retry limit (default: 2).
A request is deemed retryable when any of the following HTTP status codes is returned:
- 408 (Timeout)
- 429 (Too Many Requests)
- 5XX (Internal Server Errors)
Use the max_retries request option to configure this behavior.
Timeouts
The SDK defaults to a 60 second timeout. You can configure this with a timeout option at the client or request level.
Custom Client
You can override the httpx client to customize it for your use-case. Some common use-cases include support for proxies and transports.
Reference
Auth
frameio.auth.ServerToServerAuth(*, client_id, client_secret, ...)
Authenticate using the OAuth 2.0 client_credentials grant. This flow does not involve a user and does not return a refresh token. When the access token expires the SDK automatically requests a new one using the client credentials. For async usage, use AsyncServerToServerAuth.
Parameters
client_id: str — Adobe IMS OAuth client ID.
client_secret: str — Adobe IMS OAuth client secret.
scopes: str — Space-separated scopes (OAuth 2.0 RFC 6749). Defaults to openid AdobeID frame.s2s.all.
ims_base_url: str — IMS base URL for staging/alternative environments. Defaults to production.
http_client: typing.Optional[httpx.Client] — Optional httpx.Client for proxy, TLS, or connection pooling.
on_token_refreshed: typing.Optional[typing.Callable[[dict[str, Any]], None]] — Optional callback fired after every token fetch.
timeout: float — HTTP request timeout in seconds. Defaults to 30.
max_retries: int — Maximum number of retries for transient failures. Defaults to 2.
refresh_buffer: int — Seconds before expiry to trigger proactive refresh. Defaults to 60.
Methods
get_token() -> str — Return a valid access token, refreshing if necessary. Pass this method reference (not a call) to the SDK: Frameio(token=auth.get_token).
authenticate() -> dict[str, Any] — Explicitly fetch a new access token. Returns the token response dict with access_token, expires_in, etc.
revoke() -> None — Revoke both tokens server-side and clear local state.
export_tokens() -> dict[str, Any] — Export current token state for persistence.
import_tokens(data: dict[str, Any]) -> None — Restore token state from a previously exported dict.
frameio.auth.WebAppAuth(*, client_id, client_secret, redirect_uri, ...)
Authenticate using the OAuth 2.0 authorization_code grant. Use this for server-side applications that can securely store a client secret. For async usage, use AsyncWebAppAuth.
Parameters
client_id: str — Adobe IMS OAuth client ID.
client_secret: str — Adobe IMS OAuth client secret.
redirect_uri: str — Registered redirect URI.
scopes: str — Space-separated scopes (OAuth 2.0 RFC 6749).
ims_base_url: str — IMS base URL for staging/alternative environments. Defaults to production.
http_client: typing.Optional[httpx.Client] — Optional httpx.Client for proxy, TLS, or connection pooling.
on_token_refreshed: typing.Optional[typing.Callable[[dict[str, Any]], None]] — Optional callback fired after every token refresh.
timeout: float — HTTP request timeout in seconds. Defaults to 30.
max_retries: int — Maximum number of retries for transient failures. Defaults to 2.
refresh_buffer: int — Seconds before expiry to trigger proactive refresh. Defaults to 60.
Methods
get_token() -> str — Return a valid access token, refreshing if necessary. Pass this method reference to the SDK: Frameio(token=auth.get_token).
get_authorization_url(state: str) -> str — Build the Adobe IMS authorization URL. Pass an opaque CSRF/state value that will be echoed back.
exchange_code(code: str) -> dict[str, Any] — Exchange an authorization code for access and refresh tokens.
refresh() -> dict[str, Any] — Manually trigger a token refresh.
revoke() -> None — Revoke both tokens server-side and clear local state.
export_tokens() -> dict[str, Any] — Export current token state for persistence.
import_tokens(data: dict[str, Any]) -> None — Restore token state from a previously exported dict.
frameio.auth.SPAAuth(*, client_id, redirect_uri, ...)
Authenticate using authorization_code + PKCE (no client secret). Use this for browser-based or native apps that cannot securely store a client secret. For async usage, use AsyncSPAAuth.
Parameters
client_id: str — Adobe IMS OAuth client ID.
redirect_uri: str — Registered redirect URI.
scopes: str — Space-separated scopes (OAuth 2.0 RFC 6749).
ims_base_url: str — IMS base URL for staging/alternative environments. Defaults to production.
http_client: typing.Optional[httpx.Client] — Optional httpx.Client for proxy, TLS, or connection pooling.
on_token_refreshed: typing.Optional[typing.Callable[[dict[str, Any]], None]] — Optional callback fired after every token refresh.
timeout: float — HTTP request timeout in seconds. Defaults to 30.
max_retries: int — Maximum number of retries for transient failures. Defaults to 2.
refresh_buffer: int — Seconds before expiry to trigger proactive refresh. Defaults to 60.
Methods
get_token() -> str — Return a valid access token, refreshing if necessary. Pass this method reference to the SDK: Frameio(token=auth.get_token).
get_authorization_url(state: str) -> AuthorizationUrlResult — Build the Adobe IMS authorization URL with PKCE challenge. Returns an AuthorizationUrlResult with url and code_verifier attributes.
exchange_code(code: str, code_verifier: str) -> dict[str, Any] — Exchange an authorization code + PKCE verifier for tokens.
refresh() -> dict[str, Any] — Manually trigger a token refresh.
revoke() -> None — Revoke both tokens server-side and clear local state.
export_tokens() -> dict[str, Any] — Export current token state for persistence.
import_tokens(data: dict[str, Any]) -> None — Restore token state from a previously exported dict.
frameio.auth.AuthorizationUrlResult
Frozen dataclass returned by SPAAuth.get_authorization_url() and AsyncSPAAuth.get_authorization_url(). Holds the authorization URL and the PKCE code verifier.
Attributes
url: str — The full authorization URL to redirect the user to.
code_verifier: str — The PKCE code verifier to store and pass to exchange_code().
frameio.auth.close_clients() / aclose_clients()
Close the module-level HTTP clients used by the auth module. Call close_clients() in sync code or await aclose_clients() in async code during application shutdown to release connections.
Auth Exceptions
All auth exceptions inherit from FrameioAuthError.
Metadata
client.metadata.bulk_update(...) -> AsyncHttpResponse[None]
Update metadata values across multiple files.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
project_id: Uuid —
data: BulkUpdateMetadataParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.metadata.show(...) -> AsyncHttpResponse[MetadataResponse]
Show the metadata of a file.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
file_id: Uuid —
show_null: typing.Optional[bool] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
Metadata Fields
client.metadata_fields.metadata_field_definitions_delete(...) -> AsyncHttpResponse[None]
Delete account level custom field definitions.
Rate Limits: 60 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
field_definition_id: Uuid —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.metadata_fields.metadata_field_definitions_update(...) -> AsyncHttpResponse[FieldDefinitionResponse]
Update account level custom field definitions.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
field_definition_id: Uuid —
data: typing.Optional[UpdateFieldDefinitionParamsData]
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.metadata_fields.metadata_field_definitions_index(...) -> AsyncHttpResponse[FieldDefinitionsWithIncludesResponse]
List account level field definitions.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
include: typing.Optional[typing.Literal[“creator”]] —
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
page_size: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.metadata_fields.metadata_field_definitions_create(...) -> AsyncHttpResponse[FieldDefinitionResponse]
Create account level field definitions.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
data: typing.Optional[CreateFieldDefinitionParamsData]
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
Project Permissions
client.project_permissions.index(...) -> AsyncPager[UserRole, UserRolesResponse]
List user roles for a given project.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
project_id: Uuid —
include_deactivated: typing.Optional[bool] — Supports including deactivated users in the response. Default is false.
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
page_size: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.project_permissions.delete(...) -> AsyncHttpResponse[None]
Remove a user from a given project.
Rate Limits: 60 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
project_id: Uuid —
user_id: Uuid —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.project_permissions.project_user_roles_update(...) -> AsyncHttpResponse[UpdateUserRolesResponse]
Update user roles for the given project if the user is already added to the project. If the user is not added to the project, the user will be added with the given role.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
project_id: Uuid —
user_id: Uuid —
data: UpdateUserRolesParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
Projects
client.projects.show(...) -> AsyncHttpResponse[ProjectWithIncludesResponse]
Show project details.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
project_id: Uuid —
include: typing.Optional[typing.Literal["owner"]] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.projects.delete(...) -> AsyncHttpResponse[None]
Delete a project.
Rate Limits: 60 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
project_id: Uuid —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.projects.update(...) -> AsyncHttpResponse[ProjectResponse]
Update project details.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
project_id: Uuid —
data: ProjectUpdateParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.projects.index(...) -> AsyncPager[ProjectWithIncludes, ProjectsWithIncludesResponse]
List projects in a given workspace.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
workspace_id: Uuid —
include: typing.Optional[typing.Literal["owner"]] —
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
page_size: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount]` —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.projects.create(...) -> AsyncHttpResponse[ProjectResponse]
Create project in a given workspace.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
workspace_id: Uuid —
data: ProjectParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
Folders
client.folders.show(...) -> AsyncHttpResponse[FolderWithIncludesResponse]
Show folder details.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
folder_id: Uuid —
include: typing.Optional[AssetInclude] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.folders.delete(...) -> AsyncHttpResponse[None]
Delete folder by id.
Rate Limits: 60 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
folder_id: Uuid —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.folders.update(...) -> AsyncHttpResponse[FolderResponse]
Update folder details.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
folder_id: Uuid —
data: FolderUpdateParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.folders.index(...) -> AsyncHttpResponse[AssetsWithIncludesResponse]
List the children in the given folder. Use the include query parameter to selectively include additional properties in the response.
media_links.original and the user does not have permission to download files in the corresponding project, then this endpoint will respond with a 403 Forbidden error. If the content is inaccessible because watermarking is required for this user and isn’t supported by the requested media_links, then the request will succeed but the unsupported media links will be set to null. Similarly, if a requested transcode link does not exist for a particular file (e.g. including media_links.video_h264_180 on a static image file) or transoding process hasn’t finished (i.e. the file’s status is “uploaded” rather than “transcoded”), then the a media link will also be set to null in the response payload. In short, the client must handle null media links gracefully.Parameters
account_id: Uuid —
folder_id: Uuid —
include: typing.Optional[FileWithMediaLinksInclude] —
type: typing.Optional[ChildrenType] —
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
page_size: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.folders.copy(...) -> AsyncHttpResponse[FolderCopyResponse]
Copy folder.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
folder_id: Uuid —
copy_metadata: typing.Optional[bool] — Whether to copy metadata values along with the folder
data: typing.Optional[FolderCopyParamsData]
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.folders.list(...) -> AsyncHttpResponse[FoldersWithIncludesResponse]
List folders in a given folder.
Rate Limits: 5 calls per 1 second(s) per account_user
Parameters
account_id: Uuid —
folder_id: Uuid —
include: typing.Optional[AssetInclude] —
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
page_size: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.folders.create(...) -> AsyncHttpResponse[FolderResponse]
Create a new folder inside the given folder_id path param.
Rate Limits: 3 calls per 1 second(s) per account_user
Parameters
account_id: Uuid —
folder_id: Uuid —
data: FolderCreateParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.folders.move(...) -> AsyncHttpResponse[FolderResponse]
Move folder to a folder.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
folder_id: Uuid —
data: FolderMoveParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
Version Stacks
client.version_stacks.index(...) -> AsyncHttpResponse[AssetsWithIncludesResponse]
List the children (files) in a given version stack. Use the include query parameter to selectively include additional properties in the response.
media_links.original and the user does not have permission to download files in the corresponding project, then this endpoint will respond with a 403 Forbidden error. If the content is inaccessible because watermarking is required for this user and isn’t supported by the requested media_links, then the request will succeed but the unsupported media links will be set to null. Similarly, if a requested transcode link does not exist for a particular file (e.g. including media_links.video_h264_180 on a static image file) or transoding process hasn’t finished (i.e. the file’s status is “uploaded” rather than “transcoded”), then the a media link will also be set to null in the response payload. In short, the client must handle null media links gracefully.Parameters
account_id: Uuid —
version_stack_id: Uuid —
include: typing.Optional[FileWithMediaLinksInclude] —
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
page_size: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.version_stacks.show(...) -> AsyncHttpResponse[VersionStackWithIncludesResponse]
Show version stack details.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
version_stack_id: Uuid —
include: typing.Optional[VersionStacksShowRequestInclude] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.version_stacks.copy(...) -> AsyncHttpResponse[VersionStackCopyResponse]
Copy version stack.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
version_stack_id: Uuid —
copy_metadata: typing.Optional[bool] — Whether to copy metadata values along with the version stack
data: typing.Optional[VersionStackCopyParamsData]
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.version_stacks.list(...) -> AsyncHttpResponse[VersionStacksWithIncludesResponse]
List version stacks in a given folder.
Rate Limits: 5 calls per 1 second(s) per account_user
Parameters
account_id: Uuid —
folder_id: Uuid —
include: typing.Optional[FileWithMediaLinksInclude] —
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
page_size: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.version_stacks.create(...) -> AsyncHttpResponse[VersionStackWithIncludesResponse]
Create a new Version Stack under the parent folder.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
folder_id: Uuid —
data: VersionStackCreateParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.version_stacks.move(...) -> AsyncHttpResponse[VersionStackResponse]
Move version stack to a folder.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
version_stack_id: Uuid —
data: VersionStackMoveParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
Account Permissions
client.account_permissions.index(...) -> AsyncPager[AccountUserRole, AccountUserRolesResponse]
List user roles for a given account.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
include_deactivated: typing.Optional[bool] — Supports including deactivated users in the response. Default is false.
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
page_size: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
Accounts
client.accounts.index(...) -> AsyncPager[Account, AccountsResponse]
List accounts for the current user.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
page_size: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
Comments
client.comments.show(...) -> AsyncHttpResponse[CommentWithIncludesResponse]
Show a single comment on a file.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
comment_id: Uuid —
include: typing.Optional[CommentsShowRequestInclude] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.comments.delete(...) -> AsyncHttpResponse[None]
Delete comment from an asset.
Rate Limits: 60 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
comment_id: Uuid —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.comments.update(...) -> AsyncHttpResponse[CommentResponse]
Update comment on given asset.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
comment_id: Uuid —
data: UpdateCommentParamsData
timestamp_as_timecode: typing.Optional[bool] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.comments.index(...) -> AsyncPager[CommentWithIncludes, CommentsWithIncludesResponse]
List comments on a given asset.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
file_id: Uuid —
include: typing.Optional[CommentInclude] —
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
page_size: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.comments.create(...) -> AsyncHttpResponse[CommentResponse]
Create a comment on a file.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
file_id: Uuid —
data: CreateCommentParamsData
timestamp_as_timecode: typing.Optional[bool] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
Webhooks
client.webhooks.index(...) -> AsyncPager[WebhookWithIncludes, WebhooksWithIncludesResponse]
List webhooks for the given workspace.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
workspace_id: Uuid —
include: typing.Optional[typing.Literal[“creator”]] —
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
page_size: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.webhooks.create(...) -> AsyncHttpResponse[WebhookCreateResponse]
Creates a single webhook with secret.
Valid events:
file.created,
file.deleted,
file.ready,
file.updated,
file.upload.completed,
file.versioned,
file.copied,
folder.created,
folder.deleted,
folder.updated,
folder.copied,
comment.completed,
comment.created,
comment.deleted,
comment.uncompleted,
comment.updated,
customfield.created,
customfield.updated,
customfield.deleted,
metadata.value.updated,
project.created,
project.deleted,
project.updated,
collection.created,
collection.updated,
collection.deleted,
share.created,
share.updated,
share.deleted,
share.viewed.
Rate Limits: 10 calls per 1.00 minute(s) per account
Parameters
account_id: Uuid —
workspace_id: Uuid —
data: WebhookCreateParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.webhooks.show(...) -> AsyncHttpResponse[WebhookWithIncludesResponse]
Show webhook details.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
webhook_id: Uuid —
include: typing.Optional[typing.Literal[“creator”]] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.webhooks.delete(...) -> AsyncHttpResponse[None]
Delete a webhook.
Rate Limits: 60 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
webhook_id: Uuid —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.webhooks.update(...) -> AsyncHttpResponse[WebhookResponse]
Update webhook details.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
webhook_id: Uuid —
data: WebhookUpdateParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
Workspace Permissions
client.workspace_permissions.index(...) -> AsyncPager[UserRole, UserRolesResponse]
List user roles for a given workspace.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
workspace_id: Uuid —
includ_deactivated: typing.Optional[bool] — Supports including deactivated users in the response. Default is false.
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
page_size: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.workspace_permissions.workspace_user_roles_delete(...) -> AsyncHttpResponse[None]
Remove a user from a given workspace.
Rate Limits: 60 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
workspace_id: Uuid —
user_id: Uuid —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.workspace_permissions.workspace_user_roles_update(...) -> AsyncHttpResponse[UpdateUserRolesResponse]
Update user roles for the given workspace if the user is already added to the workspace. If the user is not added to the workspace, the user will be added with the given role.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
workspace_id: Uuid—
user_id: Uuid —
data: UpdateUserRolesParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
Workspaces
client.workspaces.show(...) -> AsyncHttpResponse[WorkspaceWithIncludesResponse]
Show workspace details.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
workspace_id: Uuid —
include: typing.Optional[typing.Literal[“creator”]] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.workspaces.delete(...) -> AsyncHttpResponse[None]
Delete workspace from account.
Rate Limits: 60 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
workspace_id: Uuid —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.workspaces.update(...) -> AsyncHttpResponse[WorkspaceResponse]
Update a workspace.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
workspace_id: Uuid —
data: WorkspaceParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.workspaces.index(...) -> AsyncPager[WorkspaceWithIncludes, WorkspacesWithIncludesResponse]
List workspaces for a given account.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
workspace_id: Uuid —
include: typing.Optional[typing.Literal[“owner”]] —
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
`page_size“: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.workspaces.create(...) -> AsyncHttpResponse[WorkspaceResponse]
Create workspace from an account.
Rate Limits: 10 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
data: WorkspaceParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
Shares
Files
client.files.list(...) -> AsyncHttpResponse[AssetsWithIncludesResponse]
List files in a given folder.
Rate Limits: 5 calls per 1 second(s) per account_user
Parameters
account_id: Uuid —
folder_id: Uuid —
include: typing.Optional[FileWithMediaLinksInclude] —
after: typing.Optional[RequestAfterOpaqueCursor]
Opaque Cursor query param for requests returning paginated results.
page_size: typing.Optional[RequestPageSize] —
include_total_count: typing.Optional[IncludeTotalCount] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.files.create(...) -> AsyncHttpResponse[FileWithUploadUrlsResponse]
Create new file under parent folder. Create file (local upload) and Create file (remote upload) have replaced this endpoint.
Rate Limits: 5 calls per 1 second(s) per account_user
Parameters
account_id: Uuid —
folder_id: Uuid —
data: FileCreateParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.files.show(...) -> AsyncHttpResponse[FileWithIncludesResponse]
Show file details. Use the include query parameter to selectively include additional properties in the response.
media_links.original and the user does not have permission to download the file then this endpoint will respond with a 403 Forbidden error. If the content is inaccessible because watermarking is required for this user and isn’t supported by the requested media_links, then the request will succeed but the unsupported media links will be set to null. Similarly, if a requested transcode link does not exist for a particular file (e.g. including media_links.video_h264_180 on a static image file) or transoding process hasn’t completed (i.e. the file’s status is “uploaded” rather than “transcoded”), then the link will also be set to null in the response payload. In short, the client must handle null media links gracefully.Parameters
account_id: Uuid —
file_id: Uuid —
include: typing.Optional[FileWithMediaLinksInclude] —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.files.delete(...) -> AsyncHttpResponse[None]
Delete file by ID.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
file_id: Uuid —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.files.update(...) -> AsyncHttpResponse[FileResponse]
Update file details.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
file_id: Uuid —
data: FileUpdateParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.files.copy(...) -> AsyncHttpResponse[FileCopyResponse]
Copy file.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
file_id: Uuid —
copy_metadata: typing.Optional[bool] — Whether to copy metadata values along with the file
copy_comments: typing.Optional[FilesCopyRequestCopyComments] — Which comments to copy along with the file
data: typing.Optional[FileCopyParamsData]
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.files.create_remote_upload(...) -> AsyncHttpResponse[FileRemoteUploadResponse]
Create new file under parent folder through remote upload.
Rate Limits: 5 calls per 1 second(s) per account_user
Parameters
account_id: Uuid —
folder_id: Uuid —
data: FileCreateRemoteUploadParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.files.move(...) -> AsyncHttpResponse[FileResponse]
Move file to a folder or version_stack.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
account_id: Uuid —
file_id: Uuid —
data: FileMoveParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.files.create_local_upload(...) -> AsyncHttpResponse[FileWithUploadUrlsResponse]
Create new file under parent folder through local upload.
Rate Limits: 5 calls per 1 second(s) per account_user
Parameters
account_id: Uuid —
file_id: Uuid —
data: FileCreateLocalUploadParamsData
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
client.files.create_local_upload(...) -> AsyncHttpResponse[FileWithUploadUrlsResponse]
Show file upload status details.
Rate Limits: 5 calls per 1 second(s) per account_user
Parameters
account_id: Uuid —
file_id: Uuid —
request_options: typing.Optional[RequestOptions] — Request-specific configuration.
Users
client.users.show() -> AsyncHttpResponse[ProfileResponse]
Inspect details of the user associated with the bearer token.
Rate Limits: 100 calls per 1.00 minute(s) per account_user
Parameters
request_options: typing.Optional[RequestOptions] — Request-specific configuration.