Skip to main content

Choose a media input

Each single-file media field accepts one of these forms: Pass the value directly in the model’s media field, such as inputs.source, inputs.reference_image, or a supported audio reference. No separate upload is required for HTTPS or data: inputs. For private Beeble CDN files, use a URL you own or preserve the complete signed URL that grants access. The URL alone does not grant access to another user’s private file. Public CDN samples can be used directly without a signature. For inline files, create the complete URI before submitting the request:
Use the complete value as the media field in the JSON request body. For audio, use data:audio/mpeg;base64,... for MP3 or data:audio/wav;base64,... for WAV; the selected model must support that audio input. External HTTPS imports have a 5 GiB file limit and a 120-second download budget; large files or slow origins should use an upload URL instead. Private network destinations and redirects to them are refused. The selected model’s file type, size, dimensions, and duration limits also apply. Requests with multiple external references may share a shorter download budget, so upload large reference sets first. Keep presigned URLs readable and their contents unchanged through estimation and submission. Separate estimate and job requests can fetch the same URL again. Estimates can import and store media, but do not create jobs or charge credits. Image-sequence directory inputs still require a Beeble cache URI.

Create an upload URL

Request parameters, body, and response schema Set BEEBLE_API_KEY and, for internal teams, BEEBLE_TEAM_ID. Use the same organization and team when submitting the job. Python requires requests; JavaScript examples run in Node.js.
Response (200):

Upload the file

Send the file to the returned upload_url. This example uses a PNG image; use the matching content type for other files. Do not send your API key to this URL. For models with audio references, upload .mp3 with Content-Type: audio/mpeg or .wav with Content-Type: audio/wav, then pass the returned Beeble URI in the model’s audio field. Audio uploads do not change SwitchX’s image/video inputs.

Use the media in a job

After the upload succeeds, use beeble_uri in the model’s media input, usually inputs.source. Continue with the Quickstart.

Media requirements

  • Match the model’s supported media types, dimensions, and duration.
  • SwitchX source and custom-alpha uploads must not exceed 5 GB.
  • Complete uploads before requesting an estimate or submitting a job.

Source metadata

SwitchX, Background Remover, VFX Passes, SDR to HDR, and Reframe measure the source automatically. You can omit generation_type and frame_count; if you supply a media type, it must match the file. Other models follow their input_schema. Reframe still requires all six canvas and source-placement fields. See Reframe.
source_metadata includes media type, width, height, and frame count, plus frame rate and duration for video. frame_count_exact: false means the count was calculated from duration and frame rate. Products without source measurement return source_metadata: null.
See the Upload API Reference for the full schema.