openapi: 3.0.3
info:
title: MediaValet Open Assets Categories API
description: 'The MediaValet Open API is a RESTful, JSON, hypermedia-driven interface to the MediaValet cloud digital asset management (DAM) platform. It lets developers and partners automate the management of digital assets, categories, attributes, keywords, uploads, and users. Requests are made to the API gateway at https://api.mediavalet.com and must carry two credentials: an OAuth 2.0 (OIDC) Bearer access token obtained from https://login.mediavalet.com/connect/token, and a per-account subscription key sent in the Ocp-Apim-Subscription-Key header. Access to the API requires a MediaValet subscription and Developer Portal registration. The paths documented here are modeled from MediaValet''s public developer documentation and community SDKs; verify exact request/response schemas against the live reference at docs.mediavalet.com.'
version: '1.0'
contact:
name: MediaValet
url: https://www.mediavalet.com
servers:
- url: https://api.mediavalet.com
description: MediaValet API gateway (public)
security:
- oauth2: []
subscriptionKey: []
tags:
- name: Categories
description: Hierarchical folders that organize assets.
paths:
/categories:
get:
operationId: listCategories
tags:
- Categories
summary: List categories
description: List the categories in the library.
responses:
'200':
description: A list of categories.
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createCategory
tags:
- Categories
summary: Create a category
description: Create a new category in the library tree.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Category'
responses:
'201':
description: The created category.
content:
application/json:
schema:
$ref: '#/components/schemas/Category'
'401':
$ref: '#/components/responses/Unauthorized'
/categories/{categoryId}:
get:
operationId: getCategory
tags:
- Categories
summary: Get a category
description: Retrieve a single category by its identifier.
parameters:
- $ref: '#/components/parameters/CategoryId'
responses:
'200':
description: The requested category.
content:
application/json:
schema:
$ref: '#/components/schemas/Category'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/categories/{categoryId}/assets:
get:
operationId: getCategoryAssets
tags:
- Categories
summary: List assets in a category
description: List the assets filed under a category.
parameters:
- $ref: '#/components/parameters/CategoryId'
responses:
'200':
description: A list of assets in the category.
content:
application/json:
schema:
$ref: '#/components/schemas/AssetList'
'401':
$ref: '#/components/responses/Unauthorized'
/categories/permissionSets:
get:
operationId: listCategoryPermissionSets
tags:
- Categories
summary: List category permission sets
description: List the permission sets that govern access to categories.
responses:
'200':
description: A list of permission sets.
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
components:
parameters:
CategoryId:
name: categoryId
in: path
required: true
description: The unique identifier (UUID) of the category.
schema:
type: string
format: uuid
schemas:
Category:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
parentId:
type: string
format: uuid
assetCount:
type: integer
Asset:
type: object
properties:
id:
type: string
format: uuid
filename:
type: string
title:
type: string
description:
type: string
mediaType:
type: string
description: The kind of media, e.g. image, video, document.
createdDate:
type: string
format: date-time
modifiedDate:
type: string
format: date-time
AssetList:
type: object
properties:
totalCount:
type: integer
offset:
type: integer
count:
type: integer
payload:
type: array
items:
$ref: '#/components/schemas/Asset'
responses:
Unauthorized:
description: Authentication failed - missing or invalid access token or subscription key.
NotFound:
description: The requested resource was not found.
securitySchemes:
oauth2:
type: oauth2
description: OAuth 2.0 / OpenID Connect. Obtain an access token from https://login.mediavalet.com/connect/token using the authorization code flow (interactive apps) or password / client-credential grants, with scopes openid api offline_access. Send the token as a Bearer Authorization header.
flows:
authorizationCode:
authorizationUrl: https://login.mediavalet.com/connect/authorize
tokenUrl: https://login.mediavalet.com/connect/token
scopes:
openid: OpenID Connect identity
api: Access the MediaValet API
offline_access: Obtain a refresh token
subscriptionKey:
type: apiKey
in: header
name: Ocp-Apim-Subscription-Key
description: Per-account API subscription key issued through the MediaValet Developer Portal.