openapi: 3.1.0 info: title: Camtasia Asset Library Assets API description: API for accessing and managing media assets, templates, and libraries within TechSmith Camtasia. Provides programmatic access to browse, search, download, and manage video assets, audio tracks, images, templates, themes, and other media resources used in Camtasia projects. version: '1.0' contact: name: TechSmith Support url: https://support.techsmith.com email: support@techsmith.com termsOfService: https://www.techsmith.com/terms.html servers: - url: https://api.techsmith.com/camtasia/v1 description: TechSmith Camtasia API Production security: - bearerAuth: [] tags: - name: Assets description: Browse and manage media assets paths: /assets: get: operationId: listAssets summary: Camtasia List assets description: Retrieve a paginated list of available media assets, optionally filtered by type, category, or search query. tags: - Assets parameters: - $ref: '#/components/parameters/assetType' - $ref: '#/components/parameters/categoryId' - $ref: '#/components/parameters/searchQuery' - $ref: '#/components/parameters/pageOffset' - $ref: '#/components/parameters/pageLimit' - $ref: '#/components/parameters/sortBy' responses: '200': description: Paginated list of assets content: application/json: schema: $ref: '#/components/schemas/AssetListResponse' '400': description: Invalid request parameters '401': description: Unauthorized post: operationId: uploadAsset summary: Camtasia Upload an asset description: Upload a new media asset to the user's personal library. tags: - Assets requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/AssetUploadRequest' responses: '201': description: Asset uploaded successfully content: application/json: schema: $ref: '#/components/schemas/Asset' '400': description: Invalid file or metadata '401': description: Unauthorized '413': description: File size exceeds limit /assets/{assetId}: get: operationId: getAsset summary: Camtasia Get an asset description: Retrieve detailed information about a specific asset by its ID. tags: - Assets parameters: - $ref: '#/components/parameters/assetId' responses: '200': description: Asset details content: application/json: schema: $ref: '#/components/schemas/Asset' '401': description: Unauthorized '404': description: Asset not found put: operationId: updateAsset summary: Camtasia Update an asset description: Update metadata for an existing asset owned by the user. tags: - Assets parameters: - $ref: '#/components/parameters/assetId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AssetUpdateRequest' responses: '200': description: Asset updated content: application/json: schema: $ref: '#/components/schemas/Asset' '400': description: Invalid request '401': description: Unauthorized '404': description: Asset not found delete: operationId: deleteAsset summary: Camtasia Delete an asset description: Delete an asset from the user's personal library. tags: - Assets parameters: - $ref: '#/components/parameters/assetId' responses: '204': description: Asset deleted '401': description: Unauthorized '404': description: Asset not found /assets/{assetId}/preview: get: operationId: getAssetPreview summary: Camtasia Get asset preview description: Retrieve a thumbnail or preview image for a specific asset. tags: - Assets parameters: - $ref: '#/components/parameters/assetId' - name: size in: query description: Preview size schema: type: string enum: - small - medium - large default: medium responses: '200': description: Preview image content: image/png: schema: type: string format: binary '401': description: Unauthorized '404': description: Asset not found components: parameters: categoryId: name: categoryId in: query description: Filter by category identifier schema: type: string pageOffset: name: offset in: query description: Pagination offset schema: type: integer default: 0 minimum: 0 pageLimit: name: limit in: query description: Number of results per page schema: type: integer default: 25 minimum: 1 maximum: 100 sortBy: name: sort in: query description: Sort order for results schema: type: string enum: - name - created - modified - popularity default: name searchQuery: name: q in: query description: Search query string schema: type: string assetType: name: type in: query description: Filter by asset type schema: type: string enum: - video - audio - image - animation - effect - transition - annotation - cursor - theme assetId: name: assetId in: path required: true description: Unique identifier for the asset schema: type: string schemas: AssetUpdateRequest: type: object properties: name: type: string description: Updated display name description: type: string description: Updated description tags: type: array items: type: string description: Updated tags categoryId: type: string description: Updated category ID AssetUploadRequest: type: object required: - file - name - type properties: file: type: string format: binary description: The asset file to upload name: type: string description: Display name for the asset description: type: string description: Description of the asset type: type: string enum: - video - audio - image - animation - effect - transition - annotation - cursor - theme description: Type of media asset tags: type: array items: type: string description: Tags to associate with the asset libraryId: type: string description: Target library ID (defaults to personal library) categoryId: type: string description: Category to assign the asset to AssetListResponse: type: object properties: items: type: array items: $ref: '#/components/schemas/Asset' total: type: integer description: Total number of matching assets offset: type: integer description: Current pagination offset limit: type: integer description: Number of results per page Asset: type: object properties: id: type: string description: Unique identifier for the asset name: type: string description: Display name of the asset description: type: string description: Description of the asset type: type: string enum: - video - audio - image - animation - effect - transition - annotation - cursor - theme description: Type of media asset format: type: string description: File format (e.g., mp4, mp3, png) fileSize: type: integer description: File size in bytes duration: type: number description: Duration in seconds (for video and audio assets) width: type: integer description: Width in pixels (for visual assets) height: type: integer description: Height in pixels (for visual assets) thumbnailUrl: type: string format: uri description: URL to the asset thumbnail image downloadUrl: type: string format: uri description: URL to download the asset file tags: type: array items: type: string description: Tags associated with the asset libraryId: type: string description: ID of the library containing the asset categoryId: type: string description: ID of the category this asset belongs to createdAt: type: string format: date-time description: When the asset was created updatedAt: type: string format: date-time description: When the asset was last modified securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: OAuth 2.0 bearer token from TechSmith account authentication externalDocs: description: Camtasia Support Documentation url: https://support.techsmith.com/hc/en-us/categories/camtasia-api