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).
| Feld | Typ | Beschreibung |
|---|---|---|
form.language | String | Ergebnissprache: eng, rus, ukr, deu, spa, aze, arb, fra, zho, tur |
form.media.photos | Array | 4 bis 20 Fotoadressen (Strings oder { "url": "..." }) - Pflicht |
form.objectId | String | das Paket für Ihr bestehendes Objekt erstellen |
form.objectType | String | property, rental oder complex |
form.propertyCategory | String | Immobilientyp: apartment, house, penthouse, land, warehouse ... |
form.dealType | String | sale oder rent |
form.title | String | Titel |
form.description | String | Ihre Beschreibung - dient als Faktenbasis |
form.customDirection | String | Wünsche zu Ton und Schwerpunkten, bis 500 Zeichen |
form.totalArea | Zahl | m² |
form.rooms, form.floor, form.buildingFloors | Zahl | Zimmer, Etage, Geschosse |
form.landPlotArea | Zahl | Grundstück, m² (Häuser) |
form.price | Zahl | Preis |
form.priceCurrency | String | Preiswährung |
form.addressCountry, form.addressCity, form.street, form.streetNumber | String | Adresse |
form.voiceId | String | Sprecherstimme aus GET /voices |
form.enableSubtitles | ja/nein | Untertitel im Video, standardmäßig an |
form.showPhone | ja/nein | Telefon zeigen; die Nummer in form.contactPhone |
form.options.music.trackId | String | Titel aus GET /video/music; form.options.music.enabled: false - ohne Musik |
form.options.endCard.style | String | Schlusskarte: 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:
| Feld | Beschreibung |
|---|---|
artifacts | IDs der erzeugten Dateien |
artifactsSummary | ein Eintrag pro Datei: Art, Format, Größe |
bundle | Landingpage und PDF des Pakets, wenn erstellt |
progress | Fortschritt der Erstellung, solange der Auftrag läuft |
masterProfile | der Handlungsrahmen, auf dem Texte und Sprecherstimme aufbauen |
error | bei 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.
| Feld | Typ | Beschreibung |
|---|---|---|
objectId | String | Ihr Objekt (oder das Ihrer Agentur) |
title | String | bis 120 Zeichen |
description | String | Ihre Beschreibung, bis 2000 Zeichen |
city | String | Stadt |
totalArea | Zahl | m² |
rooms | Zahl | Zimmer |
price | Zahl | Preis |
currency | String | Preiswährung |
propertyCategory | String | Immobilientyp |
language | String | en (Standard), ru, ua, de, es, az, ar, fr, zh, tr |
customDirection | String | Wü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):
| Feld | Beschreibung |
|---|---|
photos | Fotodateien, 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 |
objectId | Fotos und Daten aus Ihrem Objekt nehmen |
prompt | worum es im Clip geht, bis 500 Zeichen; ohne objectId Pflicht; ein längerer Text wird gekürzt |
title | Titel, bis 120 Zeichen |
length | short (Standard) oder long; ein anderer Wert gilt als short; long braucht mindestens 4 Fotos (code: long_needs_more_photos) |
aspect | 9:16, 1:1 oder 16:9; ein anderer Wert - der Standard |
language | Sprache der Vertonung: en, ru, ua, de, es, az, ar, fr, zh, tr |
narration | true (Standard) - mit Vertonung |
voiceId | Stimme aus GET /voices |
enableSubtitles | Untertitel |
musicEnabled | mit Musik |
musicTrackId | Titel aus GET /video/music |
musicVolume | Musiklautstärke, 0 bis 100 |
music | eigene Musikdatei statt eines Titels |
endCardEnabled, endCardStyle | Schlusskarte: photo, solid oder split |
ctaMode | Schlusssatz: auto (Standard) - passend zum Objekt gewählt; manual - ctaIntent oder ctaText wird verwendet |
ctaIntent | ein fertiger Schlusssatz: einer der intent-Werte aus GET /video/endings |
ctaText | eigener Schlusssatz, bis 60 Zeichen |
ctaMarket | an 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.
| Feld | Typ | Beschreibung |
|---|---|---|
avatarId | String | Pflicht: ein Avatar mit Status ready aus GET /avatar/avatars |
objectId | String | Pflicht: Ihr Objekt |
scriptText | String | Pflicht: der Text des Moderators, mindestens 100 Zeichen; höchstens 1200 |
voiceId | String | Stimme aus GET /voices |
language | String | Sprache |
background.type | String | Hintergrund: color, photo oder slideshow |
background.color | String | Hintergrundfarbe #RRGGBB |
background.photoUrl | String | Hintergrundfoto |
dimension.width, dimension.height | Zahl | Bildgröße, 100 bis 4096 px; beide oder keinen angeben |
enableSubtitles | ja/nein | Untertitel |
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
- Referenzdaten - Stimmen, Avatare, Musik, Schlusssätze.
- Aufträge und Ergebnisse - Zustände und Dateien.
- Dateien - Fotos hochladen.