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).
| Alan | Tür | Açıklama |
|---|---|---|
form.language | dize | sonuç dili: eng, rus, ukr, deu, spa, aze, arb, fra, zho, tur |
form.media.photos | dizi | 4 ile 20 arası fotoğraf adresi (dizeler veya { "url": "..." }): zorunlu |
form.objectId | dize | paketi mevcut ilanınız için oluşturma |
form.objectType | dize | property, rental veya complex |
form.propertyCategory | dize | mülk türü: apartment, house, penthouse, land, warehouse ... |
form.dealType | dize | sale veya rent |
form.title | dize | başlık |
form.description | dize | açıklamanız: bilgi kaynağı olarak kullanılır |
form.customDirection | dize | ton ve vurgu istekleri, 500 karaktere kadar |
form.totalArea | sayı | m² |
form.rooms, form.floor, form.buildingFloors | sayı | oda, kat, toplam kat |
form.landPlotArea | sayı | arsa, m² (evler) |
form.price | sayı | fiyat |
form.priceCurrency | dize | fiyat para birimi |
form.addressCountry, form.addressCity, form.street, form.streetNumber | dize | adres |
form.voiceId | dize | GET /voices listesinden seslendirme sesi |
form.enableSubtitles | evet/hayır | videoda altyazı, varsayılan olarak açık |
form.showPhone | evet/hayır | telefonu gösterme; numara form.contactPhone içinde |
form.options.music.trackId | dize | GET /video/music listesinden parça; form.options.music.enabled: false, müziksiz |
form.options.endCard.style | dize | kapanış 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:
| Alan | Açıklama |
|---|---|
artifacts | oluşturulan dosyaların kimlikleri |
artifactsSummary | her dosya için bir kayıt: tür, biçim, boyut |
bundle | oluşturulduysa paketin açılış sayfası ve PDF'i |
progress | iş sürerken üretimin ilerlemesi |
masterProfile | metinlerin ve seslendirmenin dayandığı hikâye taslağı |
error | baş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.
| Alan | Tür | Açıklama |
|---|---|---|
objectId | dize | ilanınız (veya ajansınızın ilanı) |
title | dize | 120 karaktere kadar |
description | dize | açıklamanız, 2000 karaktere kadar |
city | dize | şehir |
totalArea | sayı | m² |
rooms | sayı | oda |
price | sayı | fiyat |
currency | dize | fiyat para birimi |
propertyCategory | dize | mülk türü |
language | dize | en (varsayılan), ru, ua, de, es, az, ar, fr, zh, tr |
customDirection | dize | ton 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):
| Alan | Açıklama |
|---|---|
photos | fotoğ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 |
objectId | fotoğrafları ve bilgileri ilanınızdan alma |
prompt | klibin konusu, 500 karaktere kadar; objectId olmadan zorunlu; daha uzun metin kesilir |
title | başlık, 120 karaktere kadar |
length | short (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) |
aspect | 9:16, 1:1 veya 16:9; başka bir değer: varsayılan |
language | seslendirme dili: en, ru, ua, de, es, az, ar, fr, zh, tr |
narration | true (varsayılan): seslendirmeli |
voiceId | GET /voices listesinden ses |
enableSubtitles | altyazı |
musicEnabled | müzikli |
musicTrackId | GET /video/music listesinden parça |
musicVolume | müzik ses düzeyi, 0 ile 100 arası |
music | parça yerine kendi müzik dosyanız |
endCardEnabled, endCardStyle | kapanış kartı: photo, solid veya split |
ctaMode | kapanış cümlesi: auto (varsayılan), ilana göre seçilir; manual, ctaIntent veya ctaText kullanılır |
ctaIntent | hazır bir kapanış cümlesi: GET /video/endings içindeki intent değerlerinden biri |
ctaText | kendi kapanış cümleniz, en fazla 60 karakter |
ctaMarket | videonun 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.
| Alan | Tür | Açıklama |
|---|---|---|
avatarId | dize | zorunlu: GET /avatar/avatars listesinden ready durumunda bir avatar |
objectId | dize | zorunlu: ilanınız |
scriptText | dize | zorunlu: sunucunun metni, en az 100 karakter; en fazla 1200 |
voiceId | dize | GET /voices listesinden ses |
language | dize | dil |
background.type | dize | arka plan: color, photo veya slideshow |
background.color | dize | arka plan rengi #RRGGBB |
background.photoUrl | dize | arka plan fotoğrafı |
dimension.width, dimension.height | sayı | kare boyutu, 100 ile 4096 px arası; ikisini birlikte gönderin ya da hiçbirini |
enableSubtitles | evet/hayır | altyazı |
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
- Başvuru verileri: sesler, avatarlar, müzik, kapanış cümleleri.
- İşler ve sonuçlar: durumlar ve dosyalar.
- Dosyalar: fotoğraf yükleme.