# google/veo-3.1/reference-to-video > Google Veo3.1 Reference-to-Video specializes in image-to-video generation that maintains a subject's specific identity and appearance based on reference images. This technology enables seamless motion for characters or products across all frames, offering best performance, no coldstarts, and affordable pricing. ## Overview - **Endpoint**: `https://api.shortapi.ai/api/v1/job/create` - **Model ID**: `google/veo-3.1/reference-to-video` - **Category**: image-to-video - **Kind**: inference ## Pricing The pricing for this model is structured as follows: for 720p and 1080p, the rate is $0.16/sec without audio and $0.32/secwith audio, while 4K is priced at $0.32/sec without audio and $0.48/sec with audio. For more details, please check our pricing page. ## API Information This model can be used via our HTTP API or more conveniently via our client libraries. See the input and output schema below, as well as the usage examples. ### Input Schema The API accepts the following input parameters: - **`prompt`** (`string`, _required_): Positive text prompt - Examples: "An action shot of a black lab swimming..." - **`images`** (`list`, _required_): Reference Images (Up to 3) - **`duration`** (`string`, _optional_): Video Length, unit: s (seconds) - Default: `8` - Options: "8" - **`aspect_ratio`** (`string`, _optional_): The aspect ratio of the generated video frame (width:height) - Default: `16:9` - Options: "16:9", "9:16" - **`resolution`** (`string`, _optional_): Output video resolution - Default: `720p` - Options: "720p", "1080p", "4k" - **`generate_audio`** (`bool`, _optional_): Whether to generate original audio for the video - Default: `false` - Options: "true", "false" ### Output Schema The API returns a JSON response with a `job_id` for tracking the request status. **Create Job Response:** ```json { "code": 0, "data": { "amount": "0.02", "job_id": "" } } ``` **Query Job Result (when status is 2, meaning succeeded):** ```json { "code": 0, "data": { "status": 2, "result": { "images": [{ "url": "https://..." }] } } } ``` ## Use Example To use this model, make an HTTP POST request to the API endpoint, then poll for results using the returned `job_id`. ### Bash (cURL) ```bash # Step 1: Create a job response=$(curl --request POST \ --url https://api.shortapi.ai/api/v1/job/create \ --header "Authorization: Bearer $SHORTAPI_KEY" \ --header "Content-Type: application/json" \ --data '{ "model": "google/veo-3.1/reference-to-video", "args": { "prompt": "A happy giant panda wearing a stylish flat cap and blue denim overalls, running joyfully along a tropical beach at sunset. The panda is splashing through shallow turquoise waves, with wet sand and water droplets glistening in the warm golden light. In the background, tall palm trees sway gently under a vibrant sky filled with orange and purple hues. The camera uses a smooth tracking shot to follow the dynamic movement of the panda, capturing the cheerful facial expression of the panda and the realistic texture of the fur.", "images": ["https://file.shortapi.ai/assets/examples/google/veo-3.1/reference-to-video-image_1.webp","https://file.shortapi.ai/assets/examples/google/veo-3.1/reference-to-video-image_2.webp"] }, "callback_url": "CALLBACK_URL" }') JOB_ID=$(echo "$response" | grep -o '"job_id": *"[^"]*"' | sed 's/"job_id": *//; s/"//g') # Step 2: Poll for results curl --request GET \ --url "https://api.shortapi.ai/api/v1/job/query?id=$JOB_ID" \ --header "Authorization: Bearer $SHORTAPI_KEY" ``` ### JavaScript (Fetch API) ```javascript // Step 1: Create a job const response = await fetch(`https://api.shortapi.ai/api/v1/job/create`, { method: "POST", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ "model": "google/veo-3.1/reference-to-video", "args": { "prompt": "A happy giant panda wearing a stylish flat cap and blue denim overalls, running joyfully along a tropical beach at sunset. The panda is splashing through shallow turquoise waves, with wet sand and water droplets glistening in the warm golden light. In the background, tall palm trees sway gently under a vibrant sky filled with orange and purple hues. The camera uses a smooth tracking shot to follow the dynamic movement of the panda, capturing the cheerful facial expression of the panda and the realistic texture of the fur.", "images": ["https://file.shortapi.ai/assets/examples/google/veo-3.1/reference-to-video-image_1.webp","https://file.shortapi.ai/assets/examples/google/veo-3.1/reference-to-video-image_2.webp"] }, "callback_url": "CALLBACK_URL" }) }); const data = await response.json(); const JOB_ID = data.job_id; // Step 2: Poll for results const result = await fetch(`https://api.shortapi.ai/api/v1/job/query?id=${JOB_ID}`, { method: "GET", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}` } }); const resultData = await result.json(); console.log(resultData); ``` ### Python (Requests) ```python import requests # Step 1: Create a job url = "https://api.shortapi.ai/api/v1/job/create" payload = { "model": "google/veo-3.1/reference-to-video", "args": { "prompt": "A happy giant panda wearing a stylish flat cap and blue denim overalls, running joyfully along a tropical beach at sunset. The panda is splashing through shallow turquoise waves, with wet sand and water droplets glistening in the warm golden light. In the background, tall palm trees sway gently under a vibrant sky filled with orange and purple hues. The camera uses a smooth tracking shot to follow the dynamic movement of the panda, capturing the cheerful facial expression of the panda and the realistic texture of the fur.", "images": ["https://file.shortapi.ai/assets/examples/google/veo-3.1/reference-to-video-image_1.webp","https://file.shortapi.ai/assets/examples/google/veo-3.1/reference-to-video-image_2.webp"] }, "callback_url": "CALLBACK_URL" } headers = { "Authorization": f"Bearer {SHORTAPI_KEY}", "Content-Type": "application/json" } response = requests.post(url, headers=headers, json=payload) data = response.json() JOB_ID = data.get("job_id") # Step 2: Poll for results result_url = f"https://api.shortapi.ai/api/v1/job/query?id={JOB_ID}" result = requests.get(result_url, headers={"Authorization": f"Bearer {SHORTAPI_KEY}"}) print(result.json()) ```