Docs

Content und Video

Zuletzt aktualisiert: 2026-10-037 Min. Lesezeit

Alle vier Werkzeuge laufen als Aufträge: Antwort 202, das Ergebnis per Abfrage oder Webhook (Aufträge und Ergebnisse). Stimme, Musik, Schlusssatz und Avatar wählen Sie aus den Referenzlisten (Referenzdaten).

Content-Paket

POST /content/generate - Bereich tools:contentgen. Aus Objektdaten und Fotos erstellt GREM Beschreibungen, Social-Media-Posts, ein vertontes Video, eine Landingpage und ein PDF - in einem Auftrag. Für das Paket wird ein Objektentwurf angelegt.

Mindestens 4 Fotos sind nötig - als öffentliche Adressen in form.media.photos. Eigene Dateien laden Sie zuerst mit POST /uploads hoch und übergeben die zurückgegebenen url (Dateien).

FeldTypBeschreibung
form.languageStringErgebnissprache: eng, rus, ukr, deu, spa, aze, arb, fra, zho, tur
form.media.photosArray4 bis 20 Fotoadressen (Strings oder { "url": "..." }) - Pflicht
form.objectIdStringdas Paket für Ihr bestehendes Objekt erstellen
form.objectTypeStringproperty, rental oder complex
form.propertyCategoryStringImmobilientyp: apartment, house, penthouse, land, warehouse ...
form.dealTypeStringsale oder rent
form.titleStringTitel
form.descriptionStringIhre Beschreibung - dient als Faktenbasis
form.customDirectionStringWünsche zu Ton und Schwerpunkten, bis 500 Zeichen
form.totalAreaZahlm²
form.rooms, form.floor, form.buildingFloorsZahlZimmer, Etage, Geschosse
form.landPlotAreaZahlGrundstück, m² (Häuser)
form.priceZahlPreis
form.priceCurrencyStringPreiswährung
form.addressCountry, form.addressCity, form.street, form.streetNumberStringAdresse
form.voiceIdStringSprecherstimme aus GET /voices
form.enableSubtitlesja/neinUntertitel im Video, standardmäßig an
form.showPhoneja/neinTelefon zeigen; die Nummer in form.contactPhone
form.options.music.trackIdStringTitel aus GET /video/music; form.options.music.enabled: false - ohne Musik
form.options.endCard.styleStringSchlusskarte: photo, solid oder split

Ein Feld user ist nicht nötig: Das Paket wird im Namen des Kontos des Schlüssels erstellt.

curl -X POST https://developers.grem.capital/api/v1/content/generate \
  -H "Authorization: Bearer gsk_live_xxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 0c0e3a5b-7d1e-4b8a-9b2f-1e6d4c3a2b10" \
  -d '{
    "form": {
      "language": "deu",
      "propertyCategory": "apartment", "dealType": "sale",
      "title": "Helle 2-Zimmer-Wohnung am Park",
      "totalArea": 64, "rooms": 2, "price": 320000, "priceCurrency": "EUR",
      "addressCountry": "Germany", "addressCity": "Berlin",
      "media": { "photos": ["https://example.com/1.jpg", "https://example.com/2.jpg",
                             "https://example.com/3.jpg", "https://example.com/4.jpg"] }
    }
  }'

Antwort 202: jobId (Auftrags-ID) und propertyId (der Objektentwurf). Der fertige Auftrag (GET /content/generate/jobs/{id}) enthält:

FeldBeschreibung
artifactsIDs der erzeugten Dateien
artifactsSummaryein Eintrag pro Datei: Art, Format, Größe
bundleLandingpage und PDF des Pakets, wenn erstellt
progressFortschritt der Erstellung, solange der Auftrag läuft
masterProfileder Handlungsrahmen, auf dem Texte und Sprecherstimme aufbauen
errorbei einem fehlgeschlagenen Auftrag: der Grund als allgemeiner Text

Datei: GET /artifacts/v1/ai/assistant/announcement/jobs/{jobId}/artifacts/{artifactId}/download. Ereignisse - content.completed, content.partial (einige Dateien fehlgeschlagen), content.failed. Weniger als 4 Fotos - 400.

Inseratstexte

POST /text/generate - Bereich tools:text. Eine Beschreibung, eine Präsentation und ein Social-Media-Post. Nötig ist entweder objectId oder mindestens eines von description, city, totalArea - sonst 422 mit code: not_enough_input.

FeldTypBeschreibung
objectIdStringIhr Objekt (oder das Ihrer Agentur)
titleStringbis 120 Zeichen
descriptionStringIhre Beschreibung, bis 2000 Zeichen
cityStringStadt
totalAreaZahlm²
roomsZahlZimmer
priceZahlPreis
currencyStringPreiswährung
propertyCategoryStringImmobilientyp
languageStringen (Standard), ru, ua, de, es, az, ar, fr, zh, tr
customDirectionStringWünsche zu Ton und Schwerpunkten; längerer Text wird auf 500 Zeichen gekürzt
curl -X POST https://developers.grem.capital/api/v1/text/generate \
  -H "Authorization: Bearer gsk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"city":"Berlin","totalArea":64,"rooms":2,"propertyCategory":"apartment","language":"de","description":"Saniert, ruhiger Hof, 5 Minuten zur U-Bahn."}'

202 mit jobId. Die Texte liegen in den Dateien des Auftrags, wie beim Content-Paket; der Auftrag enthält auch progress, masterProfile und error. Ereignisse - text.completed / text.failed.

Video aus Fotos

POST /video/create - Bereich tools:video. Ein kurzes vertontes Video aus Ihren Fotos oder den Fotos eines Objekts.

Body - multipart/form-data, jede Option als eigenes Formularfeld (nicht JSON in einem Feld data):

FeldBeschreibung
photosFotodateien, 1 bis 8 - ein Teil pro Datei; mit objectId nicht nötig; JPEG, PNG, WebP oder HEIC bis je 20 MB; Fotos nach dem 8. werden nicht verwendet
objectIdFotos und Daten aus Ihrem Objekt nehmen
promptworum es im Clip geht, bis 500 Zeichen; ohne objectId Pflicht; ein längerer Text wird gekürzt
titleTitel, bis 120 Zeichen
lengthshort (Standard) oder long; ein anderer Wert gilt als short; long braucht mindestens 4 Fotos (code: long_needs_more_photos)
aspect9:16, 1:1 oder 16:9; ein anderer Wert - der Standard
languageSprache der Vertonung: en, ru, ua, de, es, az, ar, fr, zh, tr
narrationtrue (Standard) - mit Vertonung
voiceIdStimme aus GET /voices
enableSubtitlesUntertitel
musicEnabledmit Musik
musicTrackIdTitel aus GET /video/music
musicVolumeMusiklautstärke, 0 bis 100
musiceigene Musikdatei statt eines Titels
endCardEnabled, endCardStyleSchlusskarte: photo, solid oder split
ctaModeSchlusssatz: auto (Standard) - passend zum Objekt gewählt; manual - ctaIntent oder ctaText wird verwendet
ctaIntentein fertiger Schlusssatz: einer der intent-Werte aus GET /video/endings
ctaTexteigener Schlusssatz, bis 60 Zeichen
ctaMarketan wen sich das Video richtet: local, remote oder international; stimmt den auto-Satz ab
curl -X POST https://developers.grem.capital/api/v1/video/create \
  -H "Authorization: Bearer gsk_live_xxx" \
  -F "[email protected]" -F "[email protected]" -F "[email protected]" \
  -F "prompt=Sonnige 2-Zimmer-Wohnung in Berlin Mitte, ruhiger Hof" \
  -F "length=short" -F "aspect=9:16" -F "language=de"

202 mit jobId; das Video liegt in den Dateien des Auftrags. Der Auftrag enthält auch progress, masterProfile und error, wie beim Content-Paket. Der Preis hängt von length ab. Ereignisse - video.completed / video.failed.

Avatar-Video

POST /avatar/video - Bereich tools:avatar. Ein Moderator stellt Ihr Objekt vor.

FeldTypBeschreibung
avatarIdStringPflicht: ein Avatar mit Status ready aus GET /avatar/avatars
objectIdStringPflicht: Ihr Objekt
scriptTextStringPflicht: der Text des Moderators, mindestens 100 Zeichen; höchstens 1200
voiceIdStringStimme aus GET /voices
languageStringSprache
background.typeStringHintergrund: color, photo oder slideshow
background.colorStringHintergrundfarbe #RRGGBB
background.photoUrlStringHintergrundfoto
dimension.width, dimension.heightZahlBildgröße, 100 bis 4096 px; beide oder keinen angeben
enableSubtitlesja/neinUntertitel
curl -X POST https://developers.grem.capital/api/v1/avatar/video \
  -H "Authorization: Bearer gsk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"avatarId":"AVATAR_ID","objectId":"OBJECT_ID","voiceId":"VOICE_ID","scriptText":"..."}'

202 mit jobId. Video: GET /artifacts/v1/ai/assistant/avatar/jobs/{jobId}/artifacts/{artifactId}/download, artifactId aus artifacts des fertigen Jobs. Ereignisse - avatar.completed / avatar.failed. Fehlen avatarId oder objectId oder ist der Text zu kurz - 400 mit den Feldern in errors.

Verwandte Artikel

War dieser Artikel hilfreich?