Generieren Sie Anzeigenvideos aus Fotos, bearbeiten Sie sie ohne erneutes Rendering, fügen Sie KI-Voiceovers mit synchronisierten Untertiteln hinzu und wählen Sie Hintergrundmusik — alles über synchrone JSON-Aufrufe.
POST/api/create_video
Erstellt ein MP4-Video aus einer Liste von Bildern mit Bewegungseffekten, optionalen Untertiteln, Hintergrundmusik, Immobilienmerkmal-Overlays und Endkarten. Der Endpunkt ist synchron: Er blockiert, bis das Video gerendert ist, und gibt dann HTTP 200 mit der finalen videoUrl zurück.
Synchron — setzen Sie ein großzügiges Client-Timeout
Der Endpunkt blockiert während des Video-Renderings und gibt dann die abspielbare URL zurück. Das Rendering kann mehrere Minuten dauern, setzen Sie das Timeout Ihres HTTP-Clients daher großzügig — die Standard-30–60 Sekunden der meisten HTTP-Bibliotheken werden vor Pedras Antwort abbrechen.
Parameter auf oberster Ebene
apiKeystringerforderlich
Ihr API-Schlüssel.
imagesarrayerforderlich
Geordnete Liste von Image-Objekten. Jedes wird zu einem Frame/Clip im Video. Siehe "Image-Objekt" unten.
isVerticalboolean
9:16 vertikales Format für Instagram Reels / TikTok. Standard ist 16:9 horizontal.
Default:false
propertyCharacteristicsarray
Array von {label, value}-Paaren (Bedrooms, Bathrooms, Surface, Price, etc). Standardmäßig auf jedem Frame sichtbar, wenn angegeben; setzen Sie characteristics.enabled = false bei einem Bild, um es dort auszublenden.
Voiceover. Objekt: { enabled: boolean, audioId: string, showSubtitles: boolean }. Erzeugen Sie die audioId mit /api/generate_voice. Siehe Abschnitt Stimme unten.
brandingobject
Individuelles Logo, Agentenfoto und Markenfarben-Overlay. Siehe Abschnitt "Branding".
endingTitlestring
Überschrift, die auf der Endkarte angezeigt wird.
endingSubtitlestring
Untertitel auf der Endkarte (normalerweise ein CTA oder Kontaktinformationen).
propertyIdstring
Optionale Id der Immobilie (von list_properties oder create_property), zu der diese Fotos gehören. Wenn angegeben, wird das fertige Video in dieser Immobilie gespeichert — sichtbar im Tab Videos und in der App bearbeitbar — statt nur als URL zurückgegeben zu werden.
Image-Objekt
Jeder Eintrag in images beschreibt einen Frame:
imageUrlstringerforderlich
URL des Fotos (oder base64 data URI).
effectstringerforderlich
Bewegungseffekt für diesen Frame.
Values:zoom-inzoom-outstatictransition
secondImageUrlstring
Erforderlich, wenn effect = "transition". Das Zielbild für den Übergang.
subtitlestring
Beschriftung über diesem Frame.
titlestring
Großer Titel-Overlay (z. B. "Living Room", "Kitchen").
watermarkobject
Wasserzeichen-Konfiguration: { enabled, position, opacity }. Standardmäßig deaktiviert. Setzen Sie { enabled: true }, um Ihr Wasserzeichen anzuwenden (bottom-right, opacity 1.0 als Standard).
characteristicsobject
Blendet das propertyCharacteristics-Overlay auf diesem Frame ein/aus. Standardmäßig aktiviert, wenn propertyCharacteristics angegeben ist; setzen Sie { enabled: false } zum Ausblenden.
3-Frame-Walkthrough mit gemischten Effekten (zoom-in / zoom-out / transition / static), individuelles Wasserzeichen + Agentenfoto + Markenfarbe, Musik, Voiceover, Untertitel pro Frame, Overlay mit Immobilienmerkmalen und Endkarte. Entspricht dem typischen realen Payload-Muster, das Pedras eigene App verwendet.
{
"message": "Video created successfully",
"videoId": "<uuid>",
"videoUrl": "https://img.pedra.ai/<uuid>"
}
Credits
Jeder Frame kostet 5 Credits — außer Frames mit effect: "static", die kostenlos sind. Ein Video mit 5 Bildern und allen zoom-in/zoom-out-Effekten zieht 25 Credits ab. Siehe Preise.
Validierungsfehler
HTTP 400 wird zurückgegeben bei:
Fehlendes oder leeres images-Array.
Jedes Bild ohne imageUrl (der Fehler nennt den fehlerhaften Index).
effect nicht in [zoom-in, zoom-out, transition, static].
effect: "transition" ohne secondImageUrl.
Verfügbare Merkmalsbezeichnungen
Bei Verwendung von propertyCharacteristics werden die folgenden Etikett-Schlüssel mit passenden Symbolen im Overlay gerendert: Bedrooms, Bathrooms, Surface, Price, Location, Parking, Heating, Outdoor. Benutzerdefinierte Etiketten sind erlaubt, werden aber ohne Symbol gerendert.
Ein bestehendes Video aktualisieren
POST/api/update_video
Bearbeitet ein bereits erstelltes Video — per videoId — ohne unveränderte Clips neu zu rendern. Neu anordnen, Musik oder Voiceover wechseln, Branding, Endkarten, Untertitel und Titel ändern werden kostenlos neu zusammengefügt. Nur neue oder geänderte Fotos werden neu animiert (und kosten Credits). Wie create_video ist der Aufruf synchron und gibt die neue videoUrl zurück. Wurde das Video mit einer propertyId erstellt, wird diese Verknüpfung automatisch übernommen — sie muss nicht erneut mitgeschickt werden.
Patch-Semantik
Alle Felder außer videoId sind optional. Lassen Sie images weg, um die bestehende Timeline beizubehalten und nur Audio/Text/Branding zu ändern (ein kostenloses Neu-Zusammenfügen). Lassen Sie music, voice, branding oder den Endtext weg, um jeden beim gespeicherten Wert zu belassen — das Bearbeiten der Musik löscht nie das Voiceover und umgekehrt. Wenn Sie images senden, wird ein Clip, dessen Foto + Effekt (+ zweites Foto bei Übergängen) einem bestehenden entspricht, unverändert wiederverwendet.
Parameter auf oberster Ebene
apiKeystringerforderlich
Ihr API-Schlüssel.
videoIdstringerforderlich
Id des zu bearbeitenden Videos (die von create_video zurückgegebene videoId).
imagesarray
Vollständige geordnete Bildliste zum Neuaufbau der Timeline; Clips, die einem bestehenden Foto + Effekt entsprechen, werden wiederverwendet (kein Neu-Rendering, keine Credits). Weglassen, um die aktuelle Timeline beizubehalten und nur Audio/Text/Branding zu bearbeiten.
Voiceover. Objekt: { enabled: boolean, audioId: string, showSubtitles: boolean }. Erzeugen Sie die audioId mit /api/generate_voice. Siehe Abschnitt Stimme unten.
brandingobject
Individuelles Logo, Agentenfoto und Markenfarben-Overlay. Siehe Abschnitt "Branding".
endingTitlestring
Überschrift, die auf der Endkarte angezeigt wird.
endingSubtitlestring
Untertitel auf der Endkarte (normalerweise ein CTA oder Kontaktinformationen).
isVerticalboolean
9:16 vertikales Format für Instagram Reels / TikTok. Standard ist 16:9 horizontal.
propertyCharacteristicsarray
Array von {label, value}-Paaren (Bedrooms, Bathrooms, Surface, Price, etc). Standardmäßig auf jedem Frame sichtbar, wenn angegeben; setzen Sie characteristics.enabled = false bei einem Bild, um es dort auszublenden.
Wiederverwendete Clips kosten nichts. Nur neue oder geänderte (nicht statische) Frames werden zu je 5 Credits neu animiert. Eine reine Musik-/Stimme-/Text-Bearbeitung ist kostenlos. Hinweis: Videos, die vor der Clip-Wiederverwendung erstellt wurden, animieren bei ihrer ersten bildbasierten Bearbeitung alle Clips neu.
Voiceover & Audio
Ein zweistufiger Ablauf: Schreiben Sie ein Skript aus den Fotos (oder liefern Sie ein eigenes), rendern Sie es zu Audio und hängen Sie dann die zurückgegebene audioId an das voice-Objekt eines Videos an. Untertitel werden automatisch aus dem Wort-Timing des Voiceovers erzeugt.
Sprechertext generieren
POST/api/generate_voice_script
Schreibt einen kurzen, natürlichen Sprechertext aus den Anzeigenfotos und (optional) den Immobiliendaten. Nutzt Bildverständnis, damit der Text das widerspiegelt, was tatsächlich auf den Bildern zu sehen ist. Gibt den Text zurück — übergeben Sie ihn an /api/generate_voice oder bearbeiten Sie ihn zuvor.
Parameter auf oberster Ebene
apiKeystringerforderlich
Ihr API-Schlüssel.
imagesarray
Fotos als Grundlage für den Text — ein Array aus URL-Strings oder { imageUrl }-Objekten. Die ersten werden per Bildverständnis ausgewertet.
propertyCharacteristicsarray
Optionale {label, value}-Immobiliendaten, die in den Text eingewoben werden (Bedrooms, Surface, Price, etc).
languagestring
Skriptsprache. Standard ist Englisch. Siehe /api/music_library für die akzeptierten Werte.
{
"message": "Script generated successfully",
"script": "Welcome to this bright, renovated two-bedroom apartment. Step into a sunlit, open-plan living space with room to breathe across 85 square metres."
}
Die Skripterstellung ist kostenlos.
Voiceover generieren
POST/api/generate_voice
Rendert ein Skript per Text-to-Speech in eine Voiceover-Tonspur. Gibt eine audioId zurück — übergeben Sie sie an voice.audioId eines Videos in create_video oder update_video, um die Erzählung (und ihre synchronisierten Untertitel) anzuhängen.
Parameter auf oberster Ebene
apiKeystringerforderlich
Ihr API-Schlüssel.
textstringerforderlich
Der zu sprechende Text. Max. 1000 Zeichen.
languagestring
Stimmsprache (wählt den Sprecher). Standard ist Englisch. Siehe /api/music_library für die akzeptierten Werte.
Default:English
curl -X POST https://app.pedra.ai/api/generate_voice \
-H "Content-Type: application/json" \
-d '{
"apiKey": "YOUR_API_KEY",
"text": "Welcome to this bright, renovated two-bedroom apartment.",
"language": "English"
}'
Jedes Voiceover kostet 1 Credit. Das Textlimit beträgt 1000 Zeichen.
Musikbibliothek auflisten
POST/api/music_library
Gibt die gültigen music.track-Werte (Genre-Schlüssel) mit Anzeigebezeichnungen zurück, plus die von den Voiceover-Endpunkten akzeptierten Sprachen. Schreibgeschützt — zieht nie Credits ab und akzeptiert GET oder POST.