MuAPI
Image and media generation. Vendo holds the upstream credential and bills per generation.
MuAPI aggregates dozens of media-generation models — Flux, SDXL, Veo, lipsync, music, voice clones — behind a single API. Point your client at Vendo's proxy and Vendo authenticates the call, forwards to MuAPI, and bills one generation at the model's per-call rate. Status polls on submitted jobs and file uploads are not billed.
Auth modes
| Profile | Default | How it works |
|---|---|---|
vendo_managed_pool (Vendo-managed pool) | Yes | Vendo holds the upstream credential and bills per call against the tenant's Vendo balance. No tenant signup with the provider required. |
Environment variables
These are the env vars Vendo injects into your deployment at boot when this integration is bound. Source values are resolved by resolveConnectionEnvVars in packages/integrations/lib/ from the connection record (credential, metadata) and deployment context (proxy URL, Vendo-issued API key).
| Variable | Profiles | Source | Secret |
|---|---|---|---|
MUAPI_API_KEY | all | Vendo-issued API key (vendo_sk_*) | Yes |
MUAPI_BASE_URL | all | Vendo proxy base URL (https://<slug>-proxy.vendo.run/v1) | No |
Reading the credential at runtime
Vendo writes MUAPI_API_KEY (and any companion vars above) into your deployment's environment at boot — the official MuAPI SDK auto-discovers it, so most code just instantiates the client with no extra wiring. vendo.token(slug) is the resolution-chain-aware alternative that reads the same value in Vendo mode and falls back to whatever you set in OSS mode; use whichever fits your style. See Two modes for the full resolution chain.
Proxy endpoint
Calls to MuAPI are brokered through Vendo's proxy at:
https://muapi-proxy.vendo.runPoint the official MuAPI SDK at this base URL; Vendo authenticates, meters per call, and forwards upstream. Your code never sees the upstream credential.
Quickstart
import vendo
# Image, video, audio, and lipsync generation through Vendo. One API for the long tail of media models, billed per generation against your Vendo balance.
token = vendo.token("muapi")
# Use `token` wherever you would have used the provider's API key —
# pass it to the official SDK or set it as the env var the SDK reads.
print(token)import { Vendo } from "@vendodev/sdk";
const vendo = new Vendo();
// Image, video, audio, and lipsync generation through Vendo. One API for the long tail of media models, billed per generation against your Vendo balance.
const muapiToken = await vendo.token("muapi");
// Use `muapiToken` wherever you would have used the provider's API
// key — pass it to the official SDK or read it as the env var the SDK expects.
console.log(muapiToken);import VendoSDK
let vendo = Vendo()
// Image, video, audio, and lipsync generation through Vendo. One API for the long tail of media models, billed per generation against your Vendo balance.
let token = try await vendo.token("muapi")
// Use `token` wherever you would have used the provider's API key.
print(token)Learn more
-
Concepts: connections & integrations — how connections, bindings, and credentials fit together.
-
Build a tool: SDK — full
vendo.tokenandvendo.data.executesemantics.