{"uid":"cap_0pg9ZklGEI9gsecJ0HJFy","slug":"portal-generation-image-to-video-img2vid-2e7100f1","name":"Portal Generation - Image to Video (img2vid)","description":"AI Image to Video - Animate still images","url":"https://gen.portalfoundation.ai/api/generate-img2vid","method":"POST","headers":{},"bodySchema":{"type":"object","required":["prompt"],"properties":{"model":{"enum":["veo-fast-img2vid","kling-img2vid"],"type":"string","description":"Model ID"},"prompt":{"type":"string","description":"Motion description"},"imageUrl":{"type":"string","description":"URL of image to animate"},"imageBase64":{"type":"string","description":"Base64 encoded image"}}},"responseSchema":{"videoUrl":{"type":"string","description":"URL of the generated video"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"2","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"registry","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$2/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"2","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"2","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_uBLWh-RkivE7nwBB15DQr","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"2","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Animates a still image into a short video clip given a motion description prompt","exampleAgentPrompt":"Can you animate this photo for me — the image is at https://example.com/my-photo.jpg — make the camera slowly pan left across the scene with a gentle breeze effect on the trees?","exampleUseCases":[{"title":"Product demo video from marketing photo","prompt":"I have a product photo of our new smartwatch that's just sitting there. Can you animate it so the camera zooms in smoothly, and make the screen glow with a pulsing blue light effect to show it's active?"},{"title":"Social media content from brand assets","prompt":"Turn this landscape photo into a short clip where the clouds drift slowly across the sky and the water in the foreground has gentle ripples. I want to post it on Instagram Stories."},{"title":"Real estate listing video enhancement","prompt":"I've got a beautiful shot of the living room at https://example.com/living-room.jpg — can you make it so the camera slowly moves from left to right like a virtual walkthrough, and add some subtle light reflecting off the floor?"}],"resultDescription":"A JSON object containing a `videoUrl` field — a URL pointing to the generated animated video clip derived from the input image.","failureModes":["Missing prompt field returns a validation error","Invalid or inaccessible imageUrl returns an error fetching the image","Both imageUrl and imageBase64 absent may result in an error or a text-only animation attempt","Unsupported model ID returns a model not found error","Payment failure via x402 (insufficient funds or unsupported wallet) blocks the request","Large images or long motion descriptions may time out or exceed quota"],"whenToPreferThis":"Choose this endpoint when you need to animate a specific existing still image into video using a text-guided motion description. Prefer this over text-to-video endpoints when you already have a source image and want to preserve its visual content while adding motion. Use over generic video generators when you need image-grounded output rather than fully synthesized scenes.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T22:32:45.743Z","isFirstParty":false}