zvid-io Uploads API

Your hosted media library

Operations 3

GET /api/uploads List uploads #
POST /api/uploads Upload a file #
DELETE /api/uploads/{id} Delete upload #

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/zvid-io:zvid-io-uploads-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

zvid-io-uploads-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Zvid Io Uploads API
  version: 1.1.0
  contact:
    name: Zvid Support
    url: https://zvid.io/contact
  description: 'Operations tagged Uploads across 2 of this provider''s published API definitions: openapi.yaml, zvid-io-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.zvid.io
  description: Production server
security:
- ApiKeyAuth: []
tags:
- name: Uploads
  description: Your hosted media library
paths:
  /api/uploads:
    get:
      tags:
      - Uploads
      summary: List uploads
      description: Your hosted media library — files usable directly as element `src` URLs.
      operationId: listUploads
      responses:
        '200':
          description: Uploaded files and storage usage
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadList'
              examples:
                verifiedResponse:
                  summary: Representative successful response
                  description: Illustrative values verified against the operation contract; identifiers and URLs are examples.
                  value:
                    uploads: []
                    usage:
                      files: 0
                      usedBytes: 0
                      maxTotalBytes: 250000000
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      parameters:
      - name: type
        in: query
        required: false
        schema:
          enum:
          - image
          - video
          - audio
          - gif
    post:
      tags:
      - Uploads
      summary: Upload a file
      description: 'Multipart upload using the file field. Caps: images 25 MiB, GIFs 50 MiB, audio 100 MiB, video 300 MiB. Account storage is 250 MB on Free, 10 GB on Hobby, 50 GB on Startup and 200 GB on Business (decimal). Read usage.maxTotalBytes from the list response. Use upload.url as an element source.'
      operationId: createUpload
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
              required:
              - file
      responses:
        '201':
          description: New upload metadata
          content:
            application/json:
              schema:
                type: object
                properties:
                  upload:
                    $ref: '#/components/schemas/Upload'
                required:
                - upload
                additionalProperties: true
              examples:
                verifiedResponse:
                  summary: Representative successful response
                  description: Illustrative values verified against the operation contract; identifiers and URLs are examples.
                  value:
                    upload:
                      id: upl_example
                      kind: image
                      fileName: photo.jpg
                      mimeType: image/jpeg
                      sizeBytes: 12345
                      width: 1200
                      height: 630
                      duration: null
                      url: https://example.com/photo.jpg
                      createdAt: '2026-09-22T12:00:00Z'
        '400':
          description: Unsupported type or size/quota exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
    servers:
    - url: https://api.zvid.io
      description: Production server
  /api/uploads/{id}:
    delete:
      tags:
      - Uploads
      summary: Delete upload
      operationId: deleteUpload
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: File deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  deleted:
                    type: boolean
                  id:
                    type: string
                required:
                - deleted
                - id
                additionalProperties: true
              examples:
                verifiedResponse:
                  summary: Representative successful response
                  description: Illustrative values verified against the operation contract; identifiers and URLs are examples.
                  value:
                    deleted: true
                    id: upl_example
        '400':
          description: Invalid input or semantic validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '404':
          description: Not found for this account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
    servers:
    - url: https://api.zvid.io
      description: Production server
components:
  schemas:
    ValidationError:
      type: object
      properties:
        error:
          type: string
          example: Validation failed
        message:
          type: string
          example: Please check your input and try again
        details:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
                example: name
              message:
                type: string
                example: Name is required
            required:
            - field
            - message
            additionalProperties: false
        planLimits:
          type: object
          description: Present on render validation errors; contains the authenticated user's current render limits.
          additionalProperties: true
      required:
      - error
      additionalProperties: true
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error type
        message:
          type: string
          description: Human-readable error message
      required:
      - error
      additionalProperties: true
    AuthenticationError:
      type: object
      properties:
        error:
          type: string
          description: Error type
          example: API key required
        message:
          type: string
          description: Human-readable error message
          example: Please provide an API key in the X-API-Key header or Authorization header
      required:
      - error
      additionalProperties: false
    UploadUsage:
      type: object
      properties:
        files:
          type: integer
        usedBytes:
          type: integer
        maxTotalBytes:
          type: integer
      required:
      - files
      - usedBytes
      - maxTotalBytes
      additionalProperties: true
    Upload:
      type: object
      properties:
        id:
          type: string
        kind:
          enum:
          - image
          - video
          - audio
          - gif
        fileName:
          type: string
        mimeType:
          type: string
        sizeBytes:
          type: integer
        width:
          anyOf:
          - type: number
          - type: 'null'
        height:
          anyOf:
          - type: number
          - type: 'null'
        duration:
          anyOf:
          - type: number
          - type: 'null'
        url:
          type: string
        createdAt:
          type: string
      required:
      - id
      - kind
      - fileName
      - sizeBytes
      - url
      additionalProperties: true
    UploadList:
      type: object
      properties:
        uploads:
          type: array
          items:
            $ref: '#/components/schemas/Upload'
        usage:
          $ref: '#/components/schemas/UploadUsage'
      required:
      - uploads
      - usage
      additionalProperties: true
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication. Create one in your dashboard.
    BearerAuth:
      type: http
      scheme: bearer
      description: 'Dashboard JWT in Authorization: Bearer <token>, only on operations that explicitly list this scheme. Prefer x-api-key for REST integrations. OAuth for hosted MCP is a separate connection at https://mcp.zvid.io/mcp.'
x-refined-from:
- openapi.yaml
- zvid-io-openapi.yaml