openapi: 3.0.3 info: title: Acquia DAM (Widen) Acquia-DAM-Webhooks Assets API description: 'Acquia Digital Asset Management (formerly Widen Collective) provides REST APIs for managing digital assets, metadata, collections, embed codes, and asset distribution workflows. The API supports asset search and discovery, metadata management, analytics, orders, products, webhooks, and workflow automation across both v1 and v2 endpoints. ' version: '2.0' contact: name: Acquia Support url: https://acquia.my.site.com/s/ x-api-id: acquia-dam license: name: Proprietary servers: - url: https://api.widencollective.com/v2 description: Acquia DAM API v2 - url: https://api.widencollective.com/v1 description: Acquia DAM API v1 (legacy) security: - bearerAuth: [] tags: - name: Assets description: Create, retrieve, update, delete, and search digital assets. paths: /assets/search: get: operationId: assetListBySearchQuery summary: Search for assets tags: - Assets parameters: - name: query in: query schema: type: string description: DAM quicksearch query string - name: limit in: query schema: type: integer minimum: 1 maximum: 100 default: 100 - name: offset in: query schema: type: integer minimum: 0 maximum: 10000 default: 0 - name: sort in: query schema: type: string default: -created_date - name: expand in: query schema: type: array items: type: string enum: - asset_properties - embeds - file_properties - metadata - metadata_info - metadata_vocabulary - security - thumbnails style: form explode: true - name: facet in: query schema: type: array items: type: string enum: - file_types - categories - metadata style: form explode: true - name: include_archived in: query schema: type: boolean default: false - name: include_deleted in: query schema: type: boolean default: false - name: scroll in: query schema: type: boolean default: false - name: search_document_text in: query schema: type: boolean default: false - name: scroll_id in: query schema: type: string description: scroll_id from a previous paginated search responses: '200': description: Matching assets content: application/json: schema: $ref: '#/components/schemas/SearchAssetsResult' /assets/{id}: get: operationId: assetRetrieveById summary: Retrieve an asset by ID tags: - Assets parameters: - name: id in: path required: true schema: type: string - name: expand in: query schema: type: array items: type: string style: form explode: true responses: '200': description: Asset details content: application/json: schema: $ref: '#/components/schemas/GetAssetResult' delete: operationId: assetDelete summary: Delete an asset (send to Pending Delete queue) tags: - Assets parameters: - name: id in: path required: true schema: type: string responses: '204': description: Asset queued for deletion /assets/{id}/versions/{version_id}: get: operationId: assetRetrieveByIdAndVersion summary: Retrieve a specific version of an asset tags: - Assets parameters: - name: id in: path required: true schema: type: string - name: version_id in: path required: true schema: type: string - name: expand in: query schema: type: array items: type: string style: form explode: true responses: '200': description: Asset version details content: application/json: schema: $ref: '#/components/schemas/GetAssetResult' /assets/{id}/metadata: get: operationId: assetMetadataRetrieve summary: Retrieve asset metadata tags: - Assets parameters: - name: id in: path required: true schema: type: string responses: '200': description: Asset metadata content: application/json: schema: $ref: '#/components/schemas/MetadataExpand' put: operationId: assetMetadataUpdate summary: Update asset metadata fields tags: - Assets parameters: - name: id in: path required: true schema: type: string - name: patch in: query schema: type: string description: Comma-separated list of fields to update requestBody: required: true content: application/json: schema: type: object required: - fields properties: fields: type: object additionalProperties: type: array items: type: string responses: '204': description: Metadata updated /assets/{id}/security: get: operationId: assetRetrieveSecurity summary: Retrieve asset security settings tags: - Assets parameters: - name: id in: path required: true schema: type: string responses: '200': description: Asset security content: application/json: schema: $ref: '#/components/schemas/SecurityExpand' put: operationId: assetUpdateSecurity summary: Update asset security settings tags: - Assets parameters: - name: id in: path required: true schema: type: string - name: patch in: query schema: type: string requestBody: required: true content: application/json: schema: type: object properties: asset_groups: type: array items: type: string expiration_date: type: string format: date-time nullable: true release_date: type: string format: date-time nullable: true responses: '204': description: Security updated /assets/{id}/filename: put: operationId: assetRename summary: Rename an asset tags: - Assets parameters: - name: id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object required: - filename properties: filename: type: string responses: '204': description: Asset renamed /assets/{id}/alternatepreview: post: operationId: alternatePreviewUpload summary: Upload an alternate preview for an asset tags: - Assets parameters: - name: id in: path required: true schema: type: string requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '204': description: Alternate preview uploaded delete: operationId: alternatePreviewDelete summary: Remove alternate preview from an asset tags: - Assets parameters: - name: id in: path required: true schema: type: string responses: '204': description: Alternate preview removed /assets/assetgroups: get: operationId: assetGroupsGet summary: List asset groups tags: - Assets responses: '200': description: List of asset groups content: application/json: schema: $ref: '#/components/schemas/ListAssetGroupsResult' /uploads: post: operationId: uploadAsset summary: Create a new asset tags: - Assets requestBody: required: true content: multipart/form-data: schema: type: object required: - profile - filename properties: profile: type: string filename: type: string file: type: string format: binary file_id: type: string url: type: string metadata: type: string description: JSON string of metadata fields responses: '201': description: Asset created content: application/json: schema: $ref: '#/components/schemas/CreateAssetResult' /uploads/profiles: get: operationId: uploadAssetProfilesList summary: List upload profiles tags: - Assets responses: '200': description: List of upload profiles content: application/json: schema: $ref: '#/components/schemas/ListUploadProfilesResult' /uploads/chunks/start: post: operationId: uploadChunk0 summary: Start a chunked upload session tags: - Assets responses: '200': description: Chunked upload session started content: application/json: schema: $ref: '#/components/schemas/StartChunkedUploadResult' /uploads/chunks/upload: post: operationId: uploadChunk1 summary: Upload a file chunk tags: - Assets requestBody: required: true content: multipart/form-data: schema: type: object required: - session_id - chunk_number - file properties: session_id: type: string chunk_number: type: integer minimum: 1 maximum: 10000 file: type: string format: binary responses: '200': description: Chunk uploaded content: application/json: schema: $ref: '#/components/schemas/UploadChunkResult' /uploads/chunks/complete: post: operationId: uploadChunk3 summary: Complete a chunked upload session tags: - Assets requestBody: required: true content: application/json: schema: type: object required: - session_id - tags properties: session_id: type: string tags: type: array items: type: string responses: '200': description: Chunked upload complete content: application/json: schema: $ref: '#/components/schemas/CompleteChunkedUploadResult' /asset/uuid/{id}/assetversions: get: operationId: getAssetVersions summary: List asset versions (v1) tags: - Assets x-api-version: '1' parameters: - name: id in: path required: true schema: type: string responses: '200': description: Asset versions content: application/json: schema: $ref: '#/components/schemas/ListVersionsResult' /asset/changemetadatatype/asset/{id}/type/{metadata_type_uuid}: put: operationId: updateMetadataType summary: Change an asset's metadata type (v1) tags: - Assets x-api-version: '1' parameters: - name: id in: path required: true schema: type: string - name: metadata_type_uuid in: path required: true schema: type: string responses: '204': description: Metadata type updated components: schemas: CreateAssetResult: type: object properties: _links: type: object properties: self: type: string id: type: string nullable: true MetadataExpand: type: object properties: fields: type: object additionalProperties: type: array items: type: string GetAssetResult: type: object properties: _links: type: object properties: download: type: string asset_properties: $ref: '#/components/schemas/AssetPropertiesExpand' nullable: true created_date: type: string format: date-time current_version: type: boolean deleted_date: type: string format: date-time nullable: true embeds: type: object nullable: true additionalProperties: type: object properties: apps: type: array items: type: string html: type: string share: type: string url: type: string expanded: type: object external_id: type: string file_properties: $ref: '#/components/schemas/FilePropertiesExpand' nullable: true file_upload_date: type: string format: date-time filename: type: string id: type: string last_update_date: type: string format: date-time metadata: $ref: '#/components/schemas/MetadataExpand' nullable: true released_and_not_expired: type: boolean security: $ref: '#/components/schemas/SecurityExpand' nullable: true status: $ref: '#/components/schemas/StatusExpand' nullable: true thumbnails: $ref: '#/components/schemas/ThumbnailsExpand' nullable: true version_id: type: string FileTypeFacet: type: object properties: count: type: integer name: type: string search_query: type: string FilePropertiesExpand: type: object properties: format: type: string format_type: type: string image_properties: type: object nullable: true properties: aspect_ratio: type: number height: type: integer nullable: true width: type: integer nullable: true size_in_bytes: type: integer size_in_kbytes: type: number video_properties: type: object nullable: true properties: aspect_ratio: type: number nullable: true duration: type: number nullable: true height: type: integer nullable: true width: type: integer nullable: true Thumbnail: type: object properties: url: type: string valid_until: type: string format: date-time MetadataFacet: type: object properties: display_key: type: string display_name: type: string values: type: array items: type: object properties: count: type: integer search_query: type: string value: type: string values: type: array items: type: string UploadChunkResult: type: object properties: tag: type: string ListAssetGroupsResult: type: object properties: item_type: type: string items: type: array items: type: object properties: name: type: string uuid: type: string total_count: type: integer SearchAssetsResult: type: object properties: facets: type: object nullable: true properties: categories: type: array items: $ref: '#/components/schemas/CategoryFacet' file_types: type: array items: $ref: '#/components/schemas/FileTypeFacet' metadata: type: array items: $ref: '#/components/schemas/MetadataFacet' include_archived: type: boolean include_deleted: type: boolean item_type: type: string items: type: array items: $ref: '#/components/schemas/GetAssetResult' limit: type: integer offset: type: integer query: type: string nullable: true query_explained: type: string query_syntax_ok: type: boolean scroll_id: type: string nullable: true scroll_timeout: type: string nullable: true sort: type: string sort_explained: type: string total_count: type: integer CategoryFacet: type: object properties: count: type: integer id: type: string name: type: string path: type: string search_query: type: string StatusExpand: type: object properties: upload_progress: type: string enum: - pending - verifying - complete AssetPropertiesExpand: type: object properties: cutline_caption: type: string favorite: type: boolean popularity: type: integer CompleteChunkedUploadResult: type: object properties: file_id: type: string StartChunkedUploadResult: type: object properties: session_id: type: string SecurityExpand: type: object properties: asset_groups: type: array items: type: string expiration_date: type: string format: date-time nullable: true release_date: type: string format: date-time nullable: true ListUploadProfilesResult: type: array items: type: object properties: asset_groups: type: array items: type: string immediate_release: type: boolean metadata_type: type: string name: type: string release_date: type: string format: date-time nullable: true ThumbnailsExpand: type: object properties: 125px: $ref: '#/components/schemas/Thumbnail' 160px: $ref: '#/components/schemas/Thumbnail' 300px: $ref: '#/components/schemas/Thumbnail' 600px: $ref: '#/components/schemas/Thumbnail' 2048px: $ref: '#/components/schemas/Thumbnail' ListVersionsResult: type: object properties: numResults: type: integer uuid: type: string versions: type: array items: type: object properties: dateAdded: type: string format: date-time dateLastEdited: type: string format: date-time externalId: type: string fileFormat: type: string finalized: type: boolean name: type: string previews: type: object size: type: string type: type: string uuid: type: string versionNumber: type: integer securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: OAuth2 Bearer token obtained from Acquia DAM. externalDocs: description: Acquia DAM API v2 Documentation url: https://docs.acquia.com/acquia-dam/api-v2