Camtasia Assets API

Browse and manage media assets

OpenAPI Specification

camtasia-assets-api-openapi.yml Raw ↑
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