1. Get an API Key
API keys are available on paid plans only — Pro or Premium.
Open Settings → API Key in the studio and click "Create API Key". Copy the key (it starts with vvo_) and store it somewhere safe. You can regenerate or revoke it at any time.
2. Authentication
Every request must include your API key in the Authorization header. The API key is tied to your account — generated images and credit deductions are billed to you.
Authorization: Bearer vvo_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3. Generate Images
Send a POST request to /api/v1/generate with a JSON body. Returns up to 4 generated images — each with an absolute image URL and the raw image as base64 (b64_json), ready to use directly in your own web app.
Request body
cURL
curl -X POST https://vvo.me/api/v1/generate \
-H "Authorization: Bearer vvo_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"prompt": "a cyberpunk city street at night, neon rain",
"aspectRatio": "16:9",
"count": 2
}'JavaScript
const res = await fetch('https://vvo.me/api/v1/generate', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({ prompt: 'a cyberpunk city street at night', count: 2 })
});
const data = await res.json();
console.log(data.generations);Response
{
"success": true,
"generations": [
{
"id": 123,
"user_id": 5,
"prompt": "a cyberpunk city street at night",
"style": "default",
"aspect_ratio": "16:9",
"image_url": "https://vvo.me/generated/gen-...jpg",
"b64_json": "/9j/4AAQSkZJRg... (base64 of the image)",
"status": "done",
"created_at": "2026-08-07T12:00:00.000Z"
}
],
"credits": { "plan": "pro", "quota": 40, "used": 2, "remaining": 38,
"balance": 0, "available": 38, "unlimited": false,
"imageCost": 1, "apiImageCost": 2, "resetInDays": 20 }
}Use it in your web app
const { generations } = await res.json();
const img = generations[0];
// 1) Base64 → data URL, langsung render di halamanmu
const el = document.createElement('img');
el.src = 'data:image/jpeg;base64,' + img.b64_json;
document.body.appendChild(el);
// 2) Atau pakai URL absolut (bisa juga di <img src> biasa)
// <img src={img.image_url} alt={img.prompt} />4. Credits & Pricing
Each image generated through the API costs credits at your plan's API rate — 2 credits per image by default, set by the site administrator for each plan. You are only charged for images that actually succeed; failed attempts cost nothing.
Credits come from your plan quota (Pro: 40 credits/month, Premium: 250 credits/month) or your prepaid balance, which is used first. Top up prepaid credits anytime in Settings → Billing — they never expire. If you run out, the API returns 402 with your current credit state.
5. Limitations
The API accepts text prompts only. Reference images (image-to-image editing) are not supported — if you pass a references field, the API rejects the request with 400. The style parameter is also not available; all API generations use the default style.
6. Errors
7. View Your Generations
List all images generated on your account (studio or API) with a GET request. The response includes each image URL relative to the site, ready to be loaded directly.
curl https://vvo.me/api/generate-image \ -H "Authorization: Bearer vvo_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Support
Questions about the API, billing, or credits? Reach us at [email protected] and we will get back to you promptly.