Video / MODEL API
wan3.0-video-prime
From $0.0748 / sec
OVERVIEW
Model overview
wan3.0-video-prime. Explore model specifications, API rates, and request examples.
Specifications
- Category
- Video
- Input modalities
- text, image, audio, video
- Output modalities
- video
MODEL PRICING
Model API pricing
Video generation pricing
Rates depend on output resolution and reference video input. Check the billing unit for each model.
| Resolution | Reference video | Rate |
|---|---|---|
| 480p | Without video | $0.0748 / sec |
| 480p | With video | $0.0748 / sec |
| 720p | Without video | $0.154 / sec |
| 720p | With video | $0.154 / sec |
| 1080p | Without video | $0.308 / sec |
| 1080p | With video | $0.308 / sec |
Public platform rates refresh every five minutes. A dash means a rate is not provided; it does not mean free. Check the console for final charges.
BUILT FOR YOUR STACK
API quickstart
Expand connection setup and run the preparation commands first. Then save and run the Python or cURL example.
Connection setup & preparationActual API address, model ID, and environment variables
- API address
https://api.ecohash.com/v1- API model ID
wan3.0-video-prime
Replace YOUR_API_KEY with the full inference API key issued in the console. Run setup in macOS/Linux or a compatible shell. JSON cURL examples use the Python standard library to build the request body.
python -m pip install requests
export GIGACOMMA_API_BASE_URL='https://api.ecohash.com/v1'
export GIGACOMMA_MODEL_ID='wan3.0-video-prime'
export GIGACOMMA_API_KEY="YOUR_API_KEY"GIGACOMMA_API_KEY is the environment variable name. Its value is an inference API key from the console, not an OpenAI API key. Get an API key
import timeimport osimport requestsMODEL_ID = os.environ["GIGACOMMA_MODEL_ID"]BASE_URL = os.environ["GIGACOMMA_API_BASE_URL"].rstrip("/")headers = {"Authorization": f"Bearer {os.environ['GIGACOMMA_API_KEY']}"}response = requests.post( f"{BASE_URL}/video/generations", headers=headers, json={"model": os.environ["GIGACOMMA_MODEL_ID"], "prompt": "A sunset over mountains, cinematic", "resolution": "720p", "duration": 5}, timeout=120,)response.raise_for_status()job_id = response.json()["id"]for _ in range(120): status = requests.get( f"{BASE_URL}/video/jobs/{job_id}", headers=headers, timeout=30, ) status.raise_for_status() job = status.json() if job["status"] == "completed": print(job["url"]) break if job["status"] == "failed": raise RuntimeError(job) time.sleep(5)else: raise TimeoutError(f"Video job {job_id} is still running")