Image to video API: how to animate an image with RelayDance
RelayDance offers an OpenAI-compatible API that converts static images into animated videos using advanced AI models from ByteDance (Seedance 2.0 and 1.5 Pro) and HappyHorse. To animate an image, you submit a POST request to the video generation endpoint with your image as reference media, specify your desired video length and settings, then poll for completion or use webhooks for notifications. The resulting video URL is returned once processing succeeds, with pricing 30 percent or more below official rates.
Getting started with API authentication
Before animating images, you need API credentials from RelayDance. Visit https://relaydance.com/console to create your API key. Authentication uses the standard bearer token format: include Authorization: Bearer YOUR_API_KEY in all requests. The base URL for all API calls is https://relaydance.com/v1. RelayDance accepts USDT and Stripe card payments, with live per-model rates available at https://relaydance.com/models. Failed or errored requests are never billed, so you only pay for successful generations.
Submitting an image-to-video request
To animate an image, POST to /v1/video/generations with your image included in the metadata.content array. Reference the image in your prompt using @image1 notation (up to 9 reference images per request). Required parameters include the model name (such as Seedance 2.0), a descriptive prompt describing the animation, and video length in seconds. Optional metadata includes ratio, resolution, whether to generate audio, and a callback URL for webhook notifications. The API immediately returns a task ID for tracking your generation status.
Video generation workflow
| Step | Action | Details |
|---|---|---|
| 1 | Create API key | Log into console and generate your bearer token |
| 2 | Submit video request | POST to /v1/video/generations with image reference, prompt, and video duration |
| 3 | Monitor status (polling) | GET /v1/video/generations/{task_id} repeatedly until status shows succeeded or failed |
| 4 | Retrieve video URL | Extract video_url from the response when status reaches succeeded |
| 5 | Alternative: webhook mode | Set metadata.callback_url; final state is POSTed to your server automatically |
Configuring reference media and output options
RelayDance supports multiple reference media types to enhance video generation. You can include up to 9 reference images, 3 reference videos (each up to 15 seconds), and 3 audio tracks per request. Reference media are placed in the metadata.content array and cited in your prompt using @image1, @video1, @audio1 notation. Configure output settings via metadata: specify aspect ratio, video resolution, and whether to generate accompanying audio. This flexibility allows you to maintain visual consistency with your original image while controlling the final video dimensions and audio characteristics.
Available video generation models
RelayDance integrates multiple AI video generation models optimized for different use cases. The ByteDance Seedance line (versions 2.0 and 1.5 Pro) excels at photorealistic and detailed animations. HappyHorse video models provide alternative quality and style options. The platform also offers Grok video and image models for additional creative variations. For text-only tasks, Grok text models are available. Current pricing and model specifications are maintained at https://relaydance.com/models, where you can compare features and rates. All mainstream models are priced at least 30 percent below official list prices.
FAQ
- What image formats does RelayDance accept for video generation? RelayDance documentation at https://relaydance.com/docs specifies supported image formats. Submit images via the metadata.content array in your video generation request.
- Can I use multiple images to animate a sequence? Yes, you can include up to 9 reference images per request and reference them individually as @image1, @image2, etc., in your prompt to guide the animation sequence.
- How long does video generation take? Processing time varies by model and video length. Use polling (GET /v1/video/generations/{task_id}) or webhook callbacks to monitor progress without constant manual checks.