MediaValet Integrations API

Third-party integration registration — apps, allowed origins for iframe embedding, subscriptions, users and entitlements. 12 operations.

Operations 12

GET /integrations/allowed-origins List whitelisted origins for an integration #
POST /integrations/allowed-origins Whitelist an origin for an integration #
DELETE /integrations/allowed-origins/batch Remove one or more allowed origins #
DELETE /integrations/apps/{id} Delete a ThirdParty integration #
GET /integrations/apps/tenant List your tenant's integrations #
POST /integrations/apps Register a new ThirdParty integration #
PATCH /integrations/apps/{id}/name Rename a ThirdParty integration #
GET /integrations/subscriptions/app/{appId}/tenant Get active subscription for an integration #
GET /integrations/subscriptions/{id}/count Get entitlement counts for a subscription #
POST /integrations/users Invite a user into your tenant #
GET /integrations/user-entitlement/subscription/{subscriptionId} List user entitlements in a subscription #
PUT /integrations/user-entitlement Update a user entitlement #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mediavalet-integrations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mediavalet-integrations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: MediaValet Integrations API
  description: The MediaValet API is a RESTful, JSON, hypermedia-driven service that supplies data to clients consuming the MediaValet cloud digital asset management (DAM) platform.
  version: '1.0'
  contact:
    name: MediaValet
    url: https://developer.mediavalet.com
  termsOfService: https://www.mediavalet.com/terms-of-service
servers:
- url: https://api.mediavalet.com
  description: MediaValet API gateway (public)
security:
- oauth2:
  - api
  subscriptionKey: []
tags:
- name: Integrations
  description: 'Third-party integration registration: apps, subscriptions, allowed origins, users and entitlements.'
paths:
  /integrations/allowed-origins:
    get:
      operationId: listWhitelistedOriginsForAnIntegration
      summary: List whitelisted origins for an integration
      description: Return every origin currently whitelisted in the CSP allowlist for the given ThirdParty integration. Used when embedding the integration in an iframe -- only origins on this list may host the embedding page. Pass the integration's id via the appId query parameter.
      tags:
      - Integrations
      parameters:
      - name: appId
        in: query
        required: false
        description: appId query parameter.
        schema:
          type: string
      - name: x-mv-api-version
        in: header
        required: false
        description: x-mv-api-version header.
        schema:
          type: string
        example: '1.2'
      responses:
        '200':
          description: Successful response.
    post:
      operationId: whitelistAnOriginForAnIntegration
      summary: Whitelist an origin for an integration
      description: Add an origin (scheme + host + optional port) to the CSP allowlist for a ThirdParty integration. The change takes effect immediately -- no cache propagation delay. The response payload is the new allowed-origin id (UUID).
      tags:
      - Integrations
      parameters:
      - name: x-mv-api-version
        in: header
        required: false
        description: x-mv-api-version header.
        schema:
          type: string
        example: '1.2'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                appId:
                  type: string
                origin:
                  type: string
            example:
              appId: 00000000-0000-0000-0000-000000000000
              origin: https://your-app.example.com
      responses:
        '200':
          description: Successful response.
  /integrations/allowed-origins/batch:
    delete:
      operationId: removeOneOrMoreAllowedOrigins
      summary: Remove one or more allowed origins
      description: Remove origins by id. Pass a single-element array to remove just one. Only origins belonging to the calling tenant are affected. Response payload.removed is the count of origins removed.
      tags:
      - Integrations
      parameters:
      - name: x-mv-api-version
        in: header
        required: false
        description: x-mv-api-version header.
        schema:
          type: string
        example: '1.2'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                ids:
                  type: array
                  items:
                    type: string
            example:
              ids:
              - 00000000-0000-0000-0000-000000000000
      responses:
        '200':
          description: Successful response.
  /integrations/apps/{id}:
    delete:
      operationId: deleteAThirdPartyIntegration
      summary: Delete a ThirdParty integration
      description: Delete a ThirdParty integration owned by your tenant. Returns 404 if the integration doesn't exist or isn't owned by your tenant. Native integrations cannot be deleted via this endpoint.
      tags:
      - Integrations
      parameters:
      - name: id
        in: path
        required: true
        description: id path parameter.
        schema:
          type: string
      - name: x-mv-api-version
        in: header
        required: false
        description: x-mv-api-version header.
        schema:
          type: string
        example: '1.2'
      responses:
        '200':
          description: Successful response.
  /integrations/apps/tenant:
    get:
      operationId: listYourTenantSIntegrations
      summary: List your tenant's integrations
      description: 'Return every integration registered to the calling tenant -- both Native (MediaValet-managed: Drupal, WordPress, Monday) and ThirdParty (customer-registered). The response payload is an array of integration objects; recordCount.totalRecordsFound is the total.'
      tags:
      - Integrations
      parameters:
      - name: x-mv-api-version
        in: header
        required: false
        description: x-mv-api-version header.
        schema:
          type: string
        example: '1.2'
      responses:
        '200':
          description: Successful response.
  /integrations/apps:
    post:
      operationId: registerANewThirdPartyIntegration
      summary: Register a new ThirdParty integration
      description: Create a new ThirdParty integration for your tenant. Only appName is required in the request body; the other fields (appDescription, iconUrl, currentVersion) are optional partner-facing labels. The response payload.id is the new integration's identifier -- use it as the appId parameter on subsequent calls to manage allowed origins, subscriptions, and user entitlements.
      tags:
      - Integrations
      parameters:
      - name: x-mv-api-version
        in: header
        required: false
        description: x-mv-api-version header.
        schema:
          type: string
        example: '1.2'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                appName:
                  type: string
            example:
              appName: My ThirdParty Integration
      responses:
        '200':
          description: Successful response.
  /integrations/apps/{id}/name:
    patch:
      operationId: renameAThirdPartyIntegration
      summary: Rename a ThirdParty integration
      description: Rename a ThirdParty integration. Native integrations cannot be renamed. Returns the updated integration in the response payload.
      tags:
      - Integrations
      parameters:
      - name: id
        in: path
        required: true
        description: id path parameter.
        schema:
          type: string
      - name: x-mv-api-version
        in: header
        required: false
        description: x-mv-api-version header.
        schema:
          type: string
        example: '1.2'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                appName:
                  type: string
            example:
              appName: My ThirdParty Integration (renamed)
      responses:
        '200':
          description: Successful response.
  /integrations/subscriptions/app/{appId}/tenant:
    get:
      operationId: getActiveSubscriptionForAnIntegration
      summary: Get active subscription for an integration
      description: Return the active subscription for the given integration + the calling tenant. Returns 404 if no active subscription exists. Used by license-management UIs to display subscription details.
      tags:
      - Integrations
      parameters:
      - name: appId
        in: path
        required: true
        description: appId path parameter.
        schema:
          type: string
      - name: x-mv-api-version
        in: header
        required: false
        description: x-mv-api-version header.
        schema:
          type: string
        example: '1.2'
      responses:
        '200':
          description: Successful response.
  /integrations/subscriptions/{id}/count:
    get:
      operationId: getEntitlementCountsForASubscription
      summary: Get entitlement counts for a subscription
      description: Return active-vs-total entitlement counts for a subscription. Useful for license-management dashboards that show how many seats are in use out of the total licensed.
      tags:
      - Integrations
      parameters:
      - name: id
        in: path
        required: true
        description: id path parameter.
        schema:
          type: string
      - name: x-mv-api-version
        in: header
        required: false
        description: x-mv-api-version header.
        schema:
          type: string
        example: '1.2'
      responses:
        '200':
          description: Successful response.
  /integrations/users:
    post:
      operationId: inviteAUserIntoYourTenant
      summary: Invite a user into your tenant
      description: Create a new MediaValet user in your tenant. The user receives an invite email and completes onboarding via the standard MediaValet sign-up flow.
      tags:
      - Integrations
      parameters:
      - name: x-mv-api-version
        in: header
        required: false
        description: x-mv-api-version header.
        schema:
          type: string
        example: '1.2'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                userList:
                  type: array
                  items:
                    type: object
                    properties:
                      username:
                        type: string
                      firstName:
                        type: string
                      lastName:
                        type: string
                      email:
                        type: string
                      subscriptionId:
                        type: string
            example:
              userList:
              - username: partner.user
                firstName: Partner
                lastName: User
                email: partner.user@example.com
                subscriptionId: 00000000-0000-0000-0000-000000000000
      responses:
        '200':
          description: Successful response.
  /integrations/user-entitlement/subscription/{subscriptionId}:
    get:
      operationId: listUserEntitlementsInASubscription
      summary: List user entitlements in a subscription
      description: Return every user entitlement belonging to the given subscription. Each entitlement maps one user to one subscription with a role and an active/inactive flag.
      tags:
      - Integrations
      parameters:
      - name: subscriptionId
        in: path
        required: true
        description: subscriptionId path parameter.
        schema:
          type: string
      - name: x-mv-api-version
        in: header
        required: false
        description: x-mv-api-version header.
        schema:
          type: string
        example: '1.2'
      responses:
        '200':
          description: Successful response.
  /integrations/user-entitlement:
    put:
      operationId: updateAUserEntitlement
      summary: Update a user entitlement
      description: Update an existing user entitlement -- toggle the active flag, change the role, etc. The entitlementId field identifies the entitlement to update.
      tags:
      - Integrations
      parameters:
      - name: x-mv-api-version
        in: header
        required: false
        description: x-mv-api-version header.
        schema:
          type: string
        example: '1.2'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                userEntitlementList:
                  type: array
                  items:
                    type: object
                    properties:
                      entitlementId:
                        type: string
                      status:
                        type: string
            example:
              userEntitlementList:
              - entitlementId: 00000000-0000-0000-0000-000000000000
                status: active
      responses:
        '200':
          description: Successful response.
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 / OpenID Connect issued by https://iam.mediavalet.com via https://login.mediavalet.com. Send the access token as a Bearer Authorization header.
      flows:
        authorizationCode:
          authorizationUrl: https://login.mediavalet.com/connect/authorize
          tokenUrl: https://login.mediavalet.com/connect/token
          refreshUrl: https://login.mediavalet.com/connect/token
          scopes:
            openid: OpenID Connect identity
            profile: User profile claims
            api: Access the MediaValet API
            api:service_principal: Service-principal (machine) access to the MediaValet API
            iam.admin: Administer MediaValet identity and access management
            iam.provisioning: Provision users and organizations
            offline_access: Obtain a refresh token
        clientCredentials:
          tokenUrl: https://login.mediavalet.com/connect/token
          scopes:
            api: Access the MediaValet API
            api:service_principal: Service-principal (machine) access to the MediaValet API
        password:
          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 (Azure API Management).