MediaValet Categories API

Hierarchical folders that organize assets.

OpenAPI Specification

mediavalet-categories-api-openapi.yml Raw ↑
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.