Example outputs coming soon
Details
mock-video
Providers & Pricing (1)
Mock Video (Testing) is free to use through Lumenfall.
lumenfall/mock-video
Mock Video (Testing) API Async video generation
https://api.lumenfall.ai/v1
mock-video
Text to Video Generate
Submit a prompt, poll for the result, and download the video
# Step 1: Submit video generation request
VIDEO_ID=$(curl -s -X POST \
https://api.lumenfall.ai/v1/videos \
-H "Authorization: Bearer $LUMENFALL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "mock-video",
"prompt": "A serene mountain landscape at sunset",
"size": "1024x1024"
}' | jq -r '.id')
echo "Video ID: $VIDEO_ID"
# Step 2: Poll for completion
while true; do
RESULT=$(curl -s \
https://api.lumenfall.ai/v1/videos/$VIDEO_ID \
-H "Authorization: Bearer $LUMENFALL_API_KEY")
STATUS=$(echo $RESULT | jq -r '.status')
echo "Status: $STATUS"
if [ "$STATUS" = "completed" ]; then
echo $RESULT | jq -r '.output.url'
break
elif [ "$STATUS" = "failed" ]; then
echo $RESULT | jq -r '.error.message'
break
fi
sleep 5
done
const BASE_URL = 'https://api.lumenfall.ai/v1';
const API_KEY = 'YOUR_API_KEY';
// Step 1: Submit video generation request
const submitRes = await fetch(`${BASE_URL}/videos`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'mock-video',
prompt: 'A serene mountain landscape at sunset',
size: '1024x1024'
})
});
const { id: videoId } = await submitRes.json();
console.log('Video ID:', videoId);
// Step 2: Poll for completion
while (true) {
const pollRes = await fetch(`${BASE_URL}/videos/${videoId}`, {
headers: { 'Authorization': `Bearer ${API_KEY}` }
});
const result = await pollRes.json();
if (result.status === 'completed') {
console.log('Video URL:', result.output.url);
break;
} else if (result.status === 'failed') {
console.error('Error:', result.error.message);
break;
}
await new Promise(r => setTimeout(r, 5000));
}
import requests
import time
BASE_URL = "https://api.lumenfall.ai/v1"
API_KEY = "YOUR_API_KEY"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# Step 1: Submit video generation request
response = requests.post(
f"{BASE_URL}/videos",
headers=HEADERS,
json={
"model": "mock-video",
"prompt": "A serene mountain landscape at sunset",
"size": "1024x1024"
}
)
video_id = response.json()["id"]
print(f"Video ID: {video_id}")
# Step 2: Poll for completion
while True:
result = requests.get(
f"{BASE_URL}/videos/{video_id}",
headers=HEADERS
).json()
if result["status"] == "completed":
print(f"Video URL: {result['output']['url']}")
break
elif result["status"] == "failed":
print(f"Error: {result['error']['message']}")
break
time.sleep(5)
Size, Aspect Ratio & Resolution Reference
Three optional parameters for controlling output dimensions
size
Exact pixel dimensions
"1920x1080"
aspect_ratio
Shape only, default scale
"16:9"
resolution
Scale tier, preserves shape
"1K"
Priority when combined
size is most specific and always wins. aspect_ratio and resolution control shape and scale independently.
How matching works
7:1 on a model with
4:1 and 8:1,
you get 8:1.
0.5K 1K 2K 4K)
or megapixel tiers (0.25 1).
If the exact tier isn't available, you get the nearest one.
Parameters & Unified Output Reference
These work the same regardless of which provider runs your request
response_format
url or
b64_json.
If you ask for a URL but the provider returns base64, we store it temporarily and hand you a link valid for 60 minutes.
output_format
Pick from png
jpeg
gif
webp
avif.
We convert if the provider generates a different format.
output_compression
Quality level from 1 to
100 for lossy formats (jpeg, webp, avif).
Higher means better quality, larger file.
n
Request multiple images in one call. If the provider caps at 1, we run parallel requests behind the scenes and return them together.
Parameter support
Not every provider speaks the same language. When you send a parameter, we handle it in one of four ways depending on what the model supports:
| Mode | What happens | Example |
|---|---|---|
passthrough |
Sent as-is to the provider | style, quality |
renamed |
Same value, mapped to the field name the provider expects | prompt |
converted |
Transformed to the provider's native format | size |
emulated |
Works even if the provider has no concept of it | n, response_format |
Parameters we don't recognize pass straight through to the upstream API, so provider-specific options still work.
Mock Video (Testing) FAQ
How much does Mock Video (Testing) cost?
Mock Video (Testing) is free to use through Lumenfall's unified API.
How do I use Mock Video (Testing) via API?
You can use Mock Video (Testing) through Lumenfall's OpenAI-compatible API. Send requests to the unified endpoint with model ID "mock-video". Code examples are available in Python, JavaScript, and cURL.
Which providers offer Mock Video (Testing)?
Mock Video (Testing) is available through Lumenfall on Lumenfall. Lumenfall automatically routes requests to the best available provider.
Try Mock Video (Testing) in Playground
Generate images with custom prompts — no API key needed.