Playable Media API

The media API from Playable — 1 operation(s) for media.

Operations 1

POST /v1/media/upload Upload media #

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/playable-media-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

playable-media-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Swagger with Laravel Media API
  description: This documentation aims to provide all the information you need to work with our API.
  version: 1.0.0
servers:
- url: https://api.playable.com
  description: Production
- url: https://api.dev.playable.com
  description: QA
security:
- clientCredentials:
  - campaigns.list
  - campaigns.view
  - campaigns.pause
  - campaigns.resume
  - campaigns.activate
  - campaigns.integrations.list
  - campaigns.game-data-statistics
  - campaigns.game-settings.view
  - campaigns.game-settings.modify
  - campaigns.sections.list
  - campaigns.sections.view
  - campaigns.sections.form-fields.list
  - campaigns.sections.form-fields.view
  - campaigns.prizes.list
  - campaigns.prizes.view
  - campaigns.bulk-prizes.list
  - campaigns.bulk-prizes.view
  - campaigns.bulk-prizes.modify
  - campaigns.bulk-prizes-items.send-email
  - campaigns.email-log.list
  - campaigns.email-log.view
  - campaigns.sms-log.list
  - campaigns.sms-log.view
  - campaigns.registrations.list
  - campaigns.registrations.view
  - campaigns.registrations.delete
  - campaigns.voucher.list
  - campaigns.voucher.view
  - campaigns.voucher.delete
  - campaigns.types.list
  - campaigns.types.view
  - campaigns.copy
  - campaigns.modify
  - campaigns.delete
  - campaigns.clear-cache
  - media.upload
  - user.create-login-token
tags:
- name: Media
paths:
  /v1/media/upload:
    post:
      tags:
      - Media
      summary: Upload media
      description: 'This API uploads a media file. Must be POSTed as form-data.


        Requires scope:


        `media.upload`'
      security:
      - clientCredentials:
        - media.upload
      requestBody:
        description: "Path for the file to be saved at:\n\nFile to be uploaded.\nAllowed extensions and their maximum sizes in kilobytes: \n\n'png' => 700, 'jpeg' => 700, 'gif' => 4400, 'jpg' => 700, 'svg' => 4400, \n'ttf' => 3000, 'pdf' => 4400, 'woff' => 3000, 'woff2' => 3000, 'eot' => 3000,\n'txt' => 700, 'doc' => 700, 'xls' => 4400, 'xlsx' => 4400, 'ico' => 700,\n'mp3' => 3000, 'xml' => 4400, 'webp' => 500\n"
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                path:
                  type: string
                file:
                  type: string
                  format: binary
              required:
              - path
      responses:
        '204':
          description: ''
        '401':
          description: 'Unauthorized.


            Possible reasons:

            Token has expired

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: 'message": "Unauthenticated.'
      operationId: postV1MediaUpload
      x-operation-id-source: derived
components:
  securitySchemes:
    clientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /oauth/token
          scopes:
            campaigns.list: Grant right to
            campaigns.view: Grant right to
            campaigns.pause: Grant right to
            campaigns.resume: Grant right to
            campaigns.activate: Grant right to
            campaigns.integrations.list: Grant right to
            campaigns.game-data-statistics: Grant right to
            campaigns.game-settings.view: Grant right to
            campaigns.game-settings.modify: Grant right to
            campaigns.sections.list: Grant right to
            campaigns.sections.view: Grant right to
            campaigns.sections.form-fields.list: Grant right to
            campaigns.sections.form-fields.view: Grant right to
            campaigns.prizes.list: Grant right to
            campaigns.prizes.view: Grant right to
            campaigns.bulk-prizes.list: Grant right to
            campaigns.bulk-prizes.view: Grant right to
            campaigns.bulk-prizes.modify: Grant right to
            campaigns.bulk-prizes-items.send-email: Grant right to
            campaigns.email-log.list: Grant right to
            campaigns.email-log.view: Grant right to
            campaigns.sms-log.list: Grant right to
            campaigns.sms-log.view: Grant right to
            campaigns.registrations.list: Grant right to
            campaigns.registrations.view: Grant right to
            campaigns.registrations.delete: Grant right to
            campaigns.voucher.list: Grant right to
            campaigns.voucher.view: Grant right to
            campaigns.voucher.delete: Grant right to
            campaigns.types.list: Grant right to
            campaigns.types.view: Grant right to
            campaigns.copy: Grant right to
            campaigns.modify: Grant right to
            campaigns.delete: Grant right to
            campaigns.clear-cache: Grant right to
            media.upload: Grant right to
            user.create-login-token: Grant right to