Same models. Less per second.
Shot on Seedance 2.5.
Seedance 2.5
Sound in sync.
| Per second | 480p | 720p | 1080p |
|---|---|---|---|
| Seedance 2.5 4–30 s. References: up to 30 images, 10 clips, 10 audio. | $0.0884 | $0.1987 | $0.48903 |
| Seedance 2.0 4–15 s. References: up to 9 images, 3 clips, 3 audio. | $0.0604 | $0.1300 | $0.3218 |
| Seedance 2.0 Fast 4–15 s. | $0.0483 | $0.1040 | Not offered |
Billed per delivered second. Each clip is rounded up to the cent. Credit never expires. No fees. Pricing
POST a prompt. GET the clip.
curl
curl https://loopling.ai/v1/video/generations \
-H "Authorization: Bearer $LOOPLING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"prompt": "A paper lantern drifting over a night harbour, slow dolly in",
"aspect_ratio": "16:9",
"resolution": "1080p",
"duration": 5
}'Node
const res = await fetch('https://loopling.ai/v1/video/generations', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.LOOPLING_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'seedance-2.5',
prompt: 'A paper lantern drifting over a night harbour, slow dolly in',
aspect_ratio: '16:9',
resolution: '1080p',
duration: 5,
}),
})
const generation = await res.json() // { id: 'vgen_…', status: 'queued', ink_reserved, … }Python
import os, requests
res = requests.post(
"https://loopling.ai/v1/video/generations",
headers={"Authorization": f"Bearer {os.environ['LOOPLING_API_KEY']}"},
json={
"model": "seedance-2.5",
"prompt": "A paper lantern drifting over a night harbour, slow dolly in",
"aspect_ratio": "16:9",
"resolution": "1080p",
"duration": 5,
},
)
generation = res.json() # {"id": "vgen_…", "status": "queued", "ink_reserved": …}Then GET /v1/video/generations/{id}
loopling.ai · hello@loopling.ai · for agents · community · pricing · API · terms · privacy