openapi: 3.0.3
info:
title: MediaValet Open Assets Uploads 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: Uploads
description: Chunked ingest of new files into a library.
paths:
/uploads:
post:
operationId: createUpload
tags:
- Uploads
summary: Create an upload session
description: Create an upload session for a new file. The response returns the storage location and identifiers used to transfer file chunks and, once all chunks are transferred, to commit the upload for processing into an asset.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UploadRequest'
responses:
'201':
description: The created upload session.
content:
application/json:
schema:
$ref: '#/components/schemas/Upload'
'401':
$ref: '#/components/responses/Unauthorized'
/uploads/{uploadId}:
get:
operationId: getUpload
tags:
- Uploads
summary: Get an upload session
description: Retrieve the status of an upload session.
parameters:
- name: uploadId
in: path
required: true
schema:
type: string
responses:
'200':
description: The upload session status.
content:
application/json:
schema:
$ref: '#/components/schemas/Upload'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: commitUpload
tags:
- Uploads
summary: Commit an upload session
description: Commit a completed upload session so MediaValet processes the transferred file into a managed asset with generated renditions.
parameters:
- name: uploadId
in: path
required: true
schema:
type: string
responses:
'202':
description: The upload was accepted for processing.
'401':
$ref: '#/components/responses/Unauthorized'
components:
responses:
Unauthorized:
description: Authentication failed - missing or invalid access token or subscription key.
schemas:
Upload:
type: object
properties:
id:
type: string
format: uuid
filename:
type: string
status:
type: string
description: The processing status of the upload session.
storageLocation:
type: string
description: The location to which file chunks are transferred.
UploadRequest:
type: object
required:
- filename
properties:
filename:
type: string
fileSize:
type: integer
format: int64
categoryId:
type: string
format: uuid
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.