Docs

İçerik ve video

Son güncelleme: 2026-10-037 dk okuma

Dört aracın tamamı iş olarak çalışır: 202 yanıtı, sonuç sorgulama veya webhook ile (İşler ve sonuçlar). Ses, müzik, kapanış cümlesi ve avatar başvuru listelerinden seçilir (Başvuru verileri).

İçerik paketi

POST /content/generate: tools:contentgen kapsamı. GREM, mülk bilgilerinden ve fotoğraflardan açıklamalar, sosyal medya gönderileri, seslendirmeli bir video, bir açılış sayfası ve bir PDF üretir; hepsi tek bir işte. Paket için bir ilan taslağı oluşturulur.

En az 4 fotoğraf gerekir: form.media.photos içinde herkese açık adresler olarak. Kendi dosyalarınızı önce POST /uploads ile yükleyin ve dönen url değerlerini verin (Dosyalar).

AlanTürAçıklama
form.languagedizesonuç dili: eng, rus, ukr, deu, spa, aze, arb, fra, zho, tur
form.media.photosdizi4 ile 20 arası fotoğraf adresi (dizeler veya { "url": "..." }): zorunlu
form.objectIddizepaketi mevcut ilanınız için oluşturma
form.objectTypedizeproperty, rental veya complex
form.propertyCategorydizemülk türü: apartment, house, penthouse, land, warehouse ...
form.dealTypedizesale veya rent
form.titledizebaşlık
form.descriptiondizeaçıklamanız: bilgi kaynağı olarak kullanılır
form.customDirectiondizeton ve vurgu istekleri, 500 karaktere kadar
form.totalAreasayım²
form.rooms, form.floor, form.buildingFloorssayıoda, kat, toplam kat
form.landPlotAreasayıarsa, m² (evler)
form.pricesayıfiyat
form.priceCurrencydizefiyat para birimi
form.addressCountry, form.addressCity, form.street, form.streetNumberdizeadres
form.voiceIddizeGET /voices listesinden seslendirme sesi
form.enableSubtitlesevet/hayırvideoda altyazı, varsayılan olarak açık
form.showPhoneevet/hayırtelefonu gösterme; numara form.contactPhone içinde
form.options.music.trackIddizeGET /video/music listesinden parça; form.options.music.enabled: false, müziksiz
form.options.endCard.styledizekapanış kartı: photo, solid veya split

user alanı gerekmez: paket, anahtarın hesabı adına oluşturulur.

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": "tur",
      "propertyCategory": "apartment", "dealType": "sale",
      "title": "Park yanında aydınlık 2 odalı daire",
      "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"] }
    }
  }'

202 yanıtı: jobId (iş kimliği) ve propertyId (ilan taslağı). Biten iş (GET /content/generate/jobs/{id}) şunları içerir:

AlanAçıklama
artifactsoluşturulan dosyaların kimlikleri
artifactsSummaryher dosya için bir kayıt: tür, biçim, boyut
bundleoluşturulduysa paketin açılış sayfası ve PDF'i
progressiş sürerken üretimin ilerlemesi
masterProfilemetinlerin ve seslendirmenin dayandığı hikâye taslağı
errorbaşarısız bir işte: neden, genel bir metin olarak

Dosya: GET /artifacts/v1/ai/assistant/announcement/jobs/{jobId}/artifacts/{artifactId}/download. Olaylar: content.completed, content.partial (bazı dosyalar başarısız), content.failed. 4'ten az fotoğraf: 400.

İlan metinleri

POST /text/generate: tools:text kapsamı. Bir açıklama, bir sunum ve bir sosyal medya gönderisi. objectId ya da description, city, totalArea alanlarından en az biri gerekir; aksi hâlde code: not_enough_input ile 422.

AlanTürAçıklama
objectIddizeilanınız (veya ajansınızın ilanı)
titledize120 karaktere kadar
descriptiondizeaçıklamanız, 2000 karaktere kadar
citydizeşehir
totalAreasayım²
roomssayıoda
pricesayıfiyat
currencydizefiyat para birimi
propertyCategorydizemülk türü
languagedizeen (varsayılan), ru, ua, de, es, az, ar, fr, zh, tr
customDirectiondizeton ve vurgu istekleri; daha uzun metin 500 karaktere kısaltılır
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":"tr","description":"Yenilenmiş, sakin avlu, metroya 5 dakika."}'

jobId ile 202. Metinler, içerik paketinde olduğu gibi işin dosyalarındadır; iş ayrıca progress, masterProfile ve error içerir. Olaylar: text.completed / text.failed.

Fotoğraflardan video

POST /video/create: tools:video kapsamı. Fotoğraflarınızdan veya bir ilanın fotoğraflarından seslendirmeli kısa bir video.

Gövde: multipart/form-data, her seçenek kendi form alanı olarak (bir data alanında JSON olarak değil):

AlanAçıklama
photosfotoğraf dosyaları, 1 ile 8 arası, dosya başına bir parça; objectId ile gerekmez; her biri en fazla 20 MB JPEG, PNG, WebP veya HEIC; 8. fotoğraftan sonrakiler kullanılmaz
objectIdfotoğrafları ve bilgileri ilanınızdan alma
promptklibin konusu, 500 karaktere kadar; objectId olmadan zorunlu; daha uzun metin kesilir
titlebaşlık, 120 karaktere kadar
lengthshort (varsayılan) veya long; başka bir değer short sayılır; long en az 4 fotoğraf ister (code: long_needs_more_photos)
aspect9:16, 1:1 veya 16:9; başka bir değer: varsayılan
languageseslendirme dili: en, ru, ua, de, es, az, ar, fr, zh, tr
narrationtrue (varsayılan): seslendirmeli
voiceIdGET /voices listesinden ses
enableSubtitlesaltyazı
musicEnabledmüzikli
musicTrackIdGET /video/music listesinden parça
musicVolumemüzik ses düzeyi, 0 ile 100 arası
musicparça yerine kendi müzik dosyanız
endCardEnabled, endCardStylekapanış kartı: photo, solid veya split
ctaModekapanış cümlesi: auto (varsayılan), ilana göre seçilir; manual, ctaIntent veya ctaText kullanılır
ctaIntenthazır bir kapanış cümlesi: GET /video/endings içindeki intent değerlerinden biri
ctaTextkendi kapanış cümleniz, en fazla 60 karakter
ctaMarketvideonun kime hitap ettiği: local, remote veya international; auto cümlesini ayarlar
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=Berlin Mitte'de güneşli 2 odalı daire, sakin avlu" \
  -F "length=short" -F "aspect=9:16" -F "language=tr"

jobId ile 202; video işin dosyalarındadır. İş, içerik paketinde olduğu gibi progress, masterProfile ve error de içerir. Fiyat length değerine bağlıdır. Olaylar: video.completed / video.failed.

Avatar videosu

POST /avatar/video: tools:avatar kapsamı. Bir sunucu ilanınızı anlatır.

AlanTürAçıklama
avatarIddizezorunlu: GET /avatar/avatars listesinden ready durumunda bir avatar
objectIddizezorunlu: ilanınız
scriptTextdizezorunlu: sunucunun metni, en az 100 karakter; en fazla 1200
voiceIddizeGET /voices listesinden ses
languagedizedil
background.typedizearka plan: color, photo veya slideshow
background.colordizearka plan rengi #RRGGBB
background.photoUrldizearka plan fotoğrafı
dimension.width, dimension.heightsayıkare boyutu, 100 ile 4096 px arası; ikisini birlikte gönderin ya da hiçbirini
enableSubtitlesevet/hayıraltyazı
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":"..."}'

jobId ile 202. Video: GET /artifacts/v1/ai/assistant/avatar/jobs/{jobId}/artifacts/{artifactId}/download; artifactId, tamamlanan işin artifacts alanından alınır. Olaylar: avatar.completed / avatar.failed. avatarId veya objectId eksikse ya da metin kısaysa, alanlar errors içinde olacak şekilde 400.

İlgili makaleler

Bu makale yardımcı oldu mu?