Kreatif Stüdyo API

Kreatif Stüdyo modülünün tüm işlemleri (26) ve veri modelleri (5): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Anlat, gör, kullan — yapay zekâyla ürün fotoğrafları, gönderiler, hikâye videoları, seslendirme ve müzik.

Modül kodu creative · 26 işlem · 5 veri modeli · 8 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: creative (hepsi), creative:read (yalnız okuma) ya da creative:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
creative_adscreative_ad/api/v1/creative_ads
creative_brand_kitscreative_brand_kit/api/v1/creative_brand_kits
creative_generationscreative_generation/api/v1/creative_generations
creative_postscreative_post/api/v1/creative_posts
creative_voicescreative_voice/api/v1/creative_voices

Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.

İşlemler

İşlemGereken izinNe yapar
creative.cancelcreative:writeÜretimi iptal et
creative.cancel_postcreative:writePlanlı gönderiyi iptal et
creative.clone_voicecreative:writeSes klonla
creative.complete_generationcreative:handleÜretimi bitir
creative.composecreative:writeResme yazı koy ya da fotoğraf videosu yap
creative.edit_againcreative:writeVideoyu yeniden düzenle
creative.fail_generationcreative:handleÜretimi başarısız işaretle
creative.finish_voicecreative:handleSes klonlamayı bitir
creative.generatecreative:writeGörsel, video, seslendirme ya da müzik üret
creative.generate_batchcreative:writeToplu hazırla
creative.generate_setcreative:writeÜrün fotoğraf stüdyosu: set hazırla
creative.mark_postcreative:handleGönderinin durumunu kaydet
creative.note_provider_jobcreative:handleSağlayıcı işini kaydet
creative.park_generationcreative:handleSahibinin bilgisayarını bekle
creative.record_usecreative:writeNerede kullanıldığını kaydet
creative.removecreative:deleteGeçmişten kaldır
creative.remove_adcreative:deleteReklam kütüphanesinden kaldır
creative.remove_voicecreative:deleteSesi kaldır
creative.resume_providercreative:writeSağlayıcı sonucunu yeniden kontrol et
creative.save_adcreative:writeReklamı kütüphaneye kaydet
creative.save_brand_kitcreative:writeMarka kitini kaydet
creative.save_captioncreative:writeGönderi metnini kaydet
creative.schedule_postcreative:writeSosyal medyada paylaş
creative.set_favouritecreative:writeFavori
creative.start_generationcreative:handleÜretimi başlat
creative.varycreative:writeBuna benzer

creative.cancel

Üretimi iptal et — Başlamamış bir üretimi durdurur.

Gereken izin creative:write · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/cancel
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.cancel

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Üretim · kimliği: creative_generation

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_queuedYalnızca başlamamış bir üretim iptal edilebilir.

Neye yazar: creative_generation (update) — queued → cancelled

curl -X POST https://app.getera.io/api/v1/creative_generations/CREATIVE_GENERATION_ID/actions/cancel \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": []
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeGenerations.cancel("CREATIVE_GENERATION_ID")
era creative_generations cancel CREATIVE_GENERATION_ID
tools/call
{
  "name": "era__creative__cancel",
  "arguments": {
    "id": "CREATIVE_GENERATION_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_queued · 429 çok sık istek

creative.cancel_post

Planlı gönderiyi iptal et — Henüz çıkmamış bir gönderiyi durdurur.

Gereken izin creative:write · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/creative_posts/{id}/actions/cancel_post
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.cancel_post

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Yazı · kimliği: creative_post

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_scheduledYalnızca zamanlanmış bir gönderi iptal edilebilir.

Neye yazar: creative_post (update) — scheduled → cancelled

curl -X POST https://app.getera.io/api/v1/creative_posts/CREATIVE_POST_ID/actions/cancel_post \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": []
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativePosts.cancelPost("CREATIVE_POST_ID")
era creative_posts cancel_post CREATIVE_POST_ID
tools/call
{
  "name": "era__creative__cancel_post",
  "arguments": {
    "id": "CREATIVE_POST_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_scheduled · 429 çok sık istek

creative.clone_voice

Ses klonla — Kendi kayıtlarından seslendirme ve dudak senkronu için bir ses yapar. Yalnızca konuşanın izniyle.

Gereken izin creative:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/creative_voices/actions/clone_voice
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.clone_voice

Girdi

AlanTürZorunluAçıklama
namestringevetSes adı · en çok 80
sampleFileIdsobject / arrayevetKayıtlar · Sesin kayıtlarının dosya kimlikleri.
consentbooleanevetKonuşan kişinin onayı bende var

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
empty_nameSesin bir adı olmalı.
consent_requiredSes ancak konuşan kişinin izin verdiği onaylandıktan sonra kopyalanabilir.
needs_samplesSesin en az bir kaydı gerekir.

Yayımladığı olaylar: creative.voice_requested

Neye yazar: creative_voice (insert) — A pending voice, made by the studio right after

curl -X POST https://app.getera.io/api/v1/creative_voices/actions/clone_voice \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Voice name","sampleFileIds":{},"consent":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "creative.voice_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeVoices.cloneVoice({
  name: "Voice name",
  sampleFileIds: {},
  consent: true
})
era creative_voices clone_voice --data '{"name":"Voice name","sampleFileIds":{},"consent":true}'
tools/call
{
  "name": "era__creative__clone_voice",
  "arguments": {
    "name": "Voice name",
    "sampleFileIds": {},
    "consent": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 empty_name, consent_required, needs_samples · 429 çok sık istek

creative.complete_generation

Üretimi bitir — Sonuçları (dosyalar) ve gerçek maliyeti kaydeder. Yalnızca makine.

Gereken izin creative:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/complete_generation
API anahtarı ya da OAuth token · creative:handle
  • Asıl adres: POST /api/v1/actions/creative.complete_generation

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Üretim · kimliği: creative_generation
outputsobject / arrayevetSonuçlar
usedModelstringModel · en çok 160
providerstringSağlayıcı · en çok 40
sourceKindstringÖdeyen · en çok 20
costUsdnumberMaliyet (USD) · en az 0
connectionobject / arrayBağlantı kimin
checkobject / arrayÖz denetim

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_runningYalnızca süren bir üretim bitebilir.
no_outputsTamamlanan bir üretimin en az bir sonucu olmalı.

Yayımladığı olaylar: creative.generated

Neye yazar: creative_generation (update) — running → succeeded, with results and cost

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_running, no_outputs · 429 çok sık istek

creative.compose

Resme yazı koy ya da fotoğraf videosu yap — Era kendisi hazırlar — yapay zekâ modeli yok, ücret yok. Bir düzen, gerçek ve doğru yazılmış metni markanın renkleri, yazı tipi ve logosuyla resmin üstüne yerleştirir (kampanya, yeni ürün, fiyat etiketi, duyuru, hikâye çağrısı, menü kartı, pazaryeri bandı, alıntı). Fotoğraf videosu 2–10 fotoğrafı yumuşak hareket, açılış cümlesi, müzik ve kapanış kartıyla dikey bir videoya çevirir.

Gereken izin creative:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/compose
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.compose

Girdi

AlanTürZorunluAçıklama
kindstring (enum)evetNe · İzin verilen değerler: layout, photo_reel, image_grade
gradeobject / arrayRenk ayarları · { exposure:-5..5, contrast:-100..100, saturation:-100..100, hue:-180..180, temperature:-100..100, splitTone:0..1, soften:0..20, vignette:0..1, grain:0..1 }. Local, no model.
fileIdsobject / arrayevetGörseller · Dosya kimlikleri: düzen için bir tane, reel için 2–10 tane.
layoutobject / arrayDüzen · { code, headline, subline, badge, price, oldPrice, cta, logo }
channelstringKanal · en çok 40
reelobject / arrayReel · { hook, cta, music: upbeat|calm|cafe|none, voiceGenerationId, perPhotoSec, endCard, captions[] }
productIduuidÜrün
sourceGenerationIduuidDoldurulduğu yer: adresteki {id} · Kaynağı · kimliği: creative_generation

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
unknown_layoutDüzen, Kreatif Stüdyo’nun sunduğu düzenlerden biri olmalı.
needs_imageBir düzen tam olarak bir görselin üstüne konur.
empty_textBir düzende başlık, fiyat ya da rozet bulunur.
needs_photosFotoğraf videosu için en az iki fotoğraf gerekir.
unknown_trackMüzik Era’nın fon müziklerinden biri olmalı ya da hiç olmamalı.
not_foundVideo için seçilen seslendirme burada bulunmalı.

Yayımladığı olaylar: creative.requested

Neye yazar: creative_generation (insert) — Queues the layout or reel; Era makes it without a model

curl -X POST https://app.getera.io/api/v1/creative_generations/CREATIVE_GENERATION_ID/actions/compose \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"kind":"layout","fileIds":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "creative.requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeGenerations.compose("CREATIVE_GENERATION_ID", {
  kind: "layout",
  fileIds: {}
})
era creative_generations compose CREATIVE_GENERATION_ID --data '{"kind":"layout","fileIds":{}}'
tools/call
{
  "name": "era__creative__compose",
  "arguments": {
    "sourceGenerationId": "CREATIVE_GENERATION_ID",
    "kind": "layout",
    "fileIds": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 unknown_layout, needs_image, empty_text, needs_photos, unknown_track, not_found · 429 çok sık istek

creative.edit_again

Videoyu yeniden düzenle — Bitmiş bir yapay zekâ video kurgusunun bir notla (“girişi kısalt, müzik olmasın”) yeni sürümünü yapar; önceki sürümler kalır.

Gereken izin creative:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/edit_again
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.edit_again

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Video düzenleme · kimliği: creative_generation
notestringevetNe değişmeli · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
empty_noteNotta neyin değişeceği yazmalı.
not_editableYalnızca tamamlanmış (klipleriyle birlikte) bir yapay zekâ video düzenlemesi yeniden düzenlenebilir.

Yayımladığı olaylar: creative.requested

Neye yazar: creative_generation (insert) — A queued video edit: the next version, pointing at the one it changes

curl -X POST https://app.getera.io/api/v1/creative_generations/CREATIVE_GENERATION_ID/actions/edit_again \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"note":"What should change"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "creative.requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeGenerations.editAgain("CREATIVE_GENERATION_ID", {
  note: "What should change"
})
era creative_generations edit_again CREATIVE_GENERATION_ID \
  --note "What should change"
tools/call
{
  "name": "era__creative__edit_again",
  "arguments": {
    "id": "CREATIVE_GENERATION_ID",
    "note": "What should change"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 empty_note, not_editable · 429 çok sık istek

creative.fail_generation

Üretimi başarısız işaretle — Neden başarısız olduğunu kaydeder. Yalnızca makine.

Gereken izin creative:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/fail_generation
API anahtarı ya da OAuth token · creative:handle
  • Asıl adres: POST /api/v1/actions/creative.fail_generation

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Üretim · kimliği: creative_generation
errorstringNeden · en çok 600

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_openYalnızca sırada bekleyen ya da süren bir üretim başarısız olabilir.

Yayımladığı olaylar: creative.failed

Neye yazar: creative_generation (update) — → failed

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_open · 429 çok sık istek

creative.finish_voice

Ses klonlamayı bitir — Sağlayıcının sesini ya da neden başarısız olduğunu kaydeder. Yalnızca makine.

Gereken izin creative:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/creative_voices/{id}/actions/finish_voice
API anahtarı ya da OAuth token · creative:handle
  • Asıl adres: POST /api/v1/actions/creative.finish_voice

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Ses · kimliği: creative_voice
externalVoiceIdstringSağlayıcı ses kimliği · en çok 120
sourceKindstring (enum)Hesap · İzin verilen değerler: byok
connectionIduuidBağlantı
errorstringNeden başarısız oldu · en çok 600

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_pendingYalnızca klonlanmakta olan bir ses bitebilir.

Neye yazar: creative_voice (update) — pending → ready / failed

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_pending · 429 çok sık istek

creative.generate

Görsel, video, seslendirme ya da müzik üret — Anlat (ya da beyaz zeminde ürün, Instagram gönderisi, hikâye videosu, menü fotoğrafı gibi bir hazır seçenek seç); arka planda üretilir, Kreatif Stüdyo’ya ve Dosyalar’a düşer. Maliyet önce gösterilir; kendi aboneliğin ya da anahtarınla çalışır.

Gereken izin creative:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/generate
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.generate

Girdi

AlanTürZorunluAçıklama
higgsfieldobject / arrayStüdyo aracı girdileri · Open-Higgsfield: {id, values, files}. id bir araç kataloğu kimliği, values model seçenekleri; files, türlü medya alanı adlarını Dosyalar kimlikleriyle eşler. MuAPI anahtarın gerekir. Araçları media_make işleminin catalogue seçeneğiyle bulabilirsin.
promptstringNe yapılsın · en çok 4000
studiostring (enum)Stüdyo · Yapıldığı Kreatif Stüdyo bölümü (image, video, cinema, character, lipsync, motion, recast, clip, layers, audio, marketing, product); geçmişi orada görünür. · İzin verilen değerler: image, video, cinema, character, lipsync, motion, recast, clip, layers, audio, marketing, product
kindstring (enum)Tür · İzin verilen değerler: image, video, tts, audio
presetstringHazır ayar · Bir kişi için: dance_trend, portrait_avatar, photo_edit, reel, cartoon_me, celebration_card, song_bed. Bir işletme için: product_white, product_lifestyle, instagram_post, story_video, product_video, menu_photo, poster, website_banner, voiceover, jingle. Fotoğraftan başlayan şablonlar inputFileIds ister. · en çok 60
modelstringModel · auto (bunu yapabilen en ucuzu) ya da bir katalog model kimliği · en çok 160
aspectstring (enum)Biçim · İzin verilen değerler: 1:1, 4:5, 9:16, 16:9, 3:2, 2:3
durationSecnumberSüre (saniye) · en az 1 · en çok 30
countnumberKaç tane · en az 1 · en çok 4
voicestringSes · en çok 80
inputFileIdsobject / arrayBaşlangıç fotoğrafları · Başlanacak fotoğrafların dosya kimlikleri (canlandırma veya düzenleme için).
inputVideoIdsobject / arraySenin klibin · Hareket aktarımı için kendi 4–30 sn’lik klibinin dosya kimliği.
resolutionstring (enum)Çözünürlük · İzin verilen değerler: 480p, 720p, 1080p
inputUrlsobject / arrayWebdeki başlangıç fotoğrafları · Başlanacak fotoğrafların https adresleri, ör. bir ürün sayfası görseli.
inputAudioIdsobject / arraySes · Dudak senkronu veya konuşan fotoğraf için ses dosyasının kimliği.
useBrandbooleanMarka kitini kullan · Marka adını, renkleri ve üslubu ekler (varsayılan: marka kitinin kendi ayarı).
harnessstringDüzenleyen ajan · Yapay zekâ video düzenleyici: bilgisayarındaki kodlama ajanı (claude, codex). · en çok 40
upscalenumberBüyüt · 2× veya 4×. · en az 2 · en çok 4
voiceIduuidKlonlanmış ses · kimliği: creative_voice
editLastbooleanSon resmi düzenle · Yeni bir resim çizmek yerine en son resmi (sohbette gönderilen ya da burada yapılan) değiştir: "buna X ekle", "bu şişeyi Fanta yap". Başlangıç fotoğrafları verildiğinde dikkate alınmaz.
channelstringKanal · Nerede kullanılacağı — instagram_post, instagram_story, reels, whatsapp_status, google_business, facebook_ad, trendyol, hepsiburada, amazon, website_hero … — biçimi belirler. · en çok 40
productIduuidÜrün · Bunun yapıldığı mağaza ürünü.
sourceGenerationIduuidDoldurulduğu yer: adresteki {id} · Kaynağı · Bunun çeşitlediği ya da düzenlediği sonuç. · kimliği: creative_generation

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
empty_promptBir açıklama yazmanız ya da hazır bir ayar seçmeniz gerekir.
unknown_presetHazır ayar Creative Studio’nun sunduklarından biri olmalı.
needs_imageBir fotoğrafı canlandıran hazır seçenek fotoğrafı ister; son görseli düzenlemek için de bir görsel gerekir.
no_sourceKendi aboneliğiniz ya da anahtarınız bu türü üretebilmeli.
budget_exceededÇalışma alanının yapay zekâ bütçesi doldu.
voice_not_readyKopyalanan ses henüz hazır değil.

Yayımladığı olaylar: creative.requested

Neye yazar: creative_generation (insert) — Queues the generation with its estimate

curl -X POST https://app.getera.io/api/v1/creative_generations/CREATIVE_GENERATION_ID/actions/generate \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"higgsfield":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "creative.requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeGenerations.generate("CREATIVE_GENERATION_ID", {
  higgsfield: {}
})
era creative_generations generate CREATIVE_GENERATION_ID --data '{"higgsfield":{}}'
tools/call
{
  "name": "era__creative__generate",
  "arguments": {
    "sourceGenerationId": "CREATIVE_GENERATION_ID",
    "higgsfield": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 empty_prompt, unknown_preset, needs_image, no_source, budget_exceeded, voice_not_ready · 429 çok sık istek

creative.generate_batch

Toplu hazırla — Tek şablonla birçok ürün, fotoğraf ya da satırı birden hazırlar (en fazla 20): "bu 12 ürünü beyaz zeminde", "menüdeki her yemek için bir hikâye". Her biri tek bir topluluk içinde ayrı bir üretimdir.

Gereken izin creative:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/creative_generations/actions/generate_batch
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.generate_batch

Girdi

AlanTürZorunluAçıklama
presetstringŞablon · en çok 60
promptstringHepsi için · en çok 2000
itemsobject / arrayevetKalemler · { prompt?, inputFileIds?, productId?, label? } listesi — her biri bir resim.
channelstringKanal · en çok 40
modelstringModel · en çok 160
aspectstring (enum)Biçim · İzin verilen değerler: 1:1, 4:5, 9:16, 16:9, 3:2, 2:3
useBrandbooleanMarka kitini kullan
labelstringAd · en çok 120

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
empty_batchBir toplu iş en az bir satır içerir.
batch_too_bigBir toplu iş en fazla 20 satır içerir.
unknown_presetŞablon, Kreatif Stüdyo’nun sunduğu şablonlardan biri olmalı.
empty_promptHer satırda bir metin ya da şablon olmalı.
needs_imageFotoğrafla başlayan bir şablon her satırda fotoğrafı ister.
no_sourceKendi aboneliğiniz ya da anahtarınız bunu üretebilmeli.
budget_exceededÇalışma alanının yapay zekâ bütçesi doldu.

Yayımladığı olaylar: creative.requested

Neye yazar: creative_generation (insert) — Queues one generation per line, sharing a batch

curl -X POST https://app.getera.io/api/v1/creative_generations/actions/generate_batch \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"items":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "creative.requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeGenerations.generateBatch({
  items: {}
})
era creative_generations generate_batch --data '{"items":{}}'
tools/call
{
  "name": "era__creative__generate_batch",
  "arguments": {
    "items": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 empty_batch, batch_too_big, unknown_preset, empty_prompt, needs_image, no_source, budget_exceeded · 429 çok sık istek

creative.generate_set

Ürün fotoğraf stüdyosu: set hazırla — Bir ürün fotoğrafından, ürün aynı kalacak şekilde ayrı ayrı çekimlerden oluşan bir set çıkar: sade (beyaz zemin), açılar (ön · üç çeyrek · yan · arka), yaşam tarzı (sektörüne uygun üç sahne) ya da ilan (beyaz zeminde ana · açı · detay · kullanımda, Trendyol veya Hepsiburada ölçüsünde).

Gereken izin creative:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/creative_generations/actions/generate_set
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.generate_set

Girdi

AlanTürZorunluAçıklama
setstringevetAyarla · clean (beyaz zeminde) · angles (önden, üç çeyrek, yandan, arkadan) · lifestyle (üç sahne) · listing (ana, açı, detay, kullanımda). · en çok 20
inputFileIdsobject / arrayÜrün fotoğrafı · Ürün fotoğrafının dosya kimlik(ler)i (1–2).
inputUrlsobject / arrayWebdeki ürün fotoğrafı · Bir ürün fotoğrafının https adresi.
productIduuidÜrün · Setin hazırlandığı mağaza ürünü.
productstringÜrün adı · en çok 200
notestringBaşka bir şey · en çok 600
channelstringKanal · trendyol, hepsiburada, amazon, n11, instagram_post … (ilan seti varsayılan olarak trendyol). · en çok 40
sectorstringSektör · food, cafe, bakery, beauty, barber, fashion, jewellery, cosmetics, home, health, realestate, ecommerce — uyduğu sahneler. · en çok 40
modelstringModel · en çok 160

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
unknown_setSet, ürün stüdyosunun sunduğu setlerden biri olmalı.
needs_imageÜrün stüdyosu ürünün bir fotoğrafıyla başlar.
no_sourceKendi aboneliğiniz ya da anahtarınız bunu üretebilmeli.
budget_exceededÇalışma alanının yapay zekâ bütçesi doldu.

Yayımladığı olaylar: creative.requested

Neye yazar: creative_generation (insert) — Queues one generation per shot, sharing a batch

curl -X POST https://app.getera.io/api/v1/creative_generations/actions/generate_set \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"set":"Set"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "creative.requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeGenerations.generateSet({
  set: "Set"
})
era creative_generations generate_set \
  --set "Set"
tools/call
{
  "name": "era__creative__generate_set",
  "arguments": {
    "set": "Set"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 unknown_set, needs_image, no_source, budget_exceeded · 429 çok sık istek

creative.mark_post

Gönderinin durumunu kaydet — planlandı → paylaşılıyor → paylaşıldı / başarısız. Yalnızca makine.

Gereken izin creative:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/creative_posts/{id}/actions/mark_post
API anahtarı ya da OAuth token · creative:handle
  • Asıl adres: POST /api/v1/actions/creative.mark_post

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Yazı · kimliği: creative_post
statusstring (enum)evetDurum · İzin verilen değerler: posting, posted, failed
externalIdstringPlatform kimliği · en çok 200
externalUrlstringBağlantı · en çok 600
errorstringNeden başarısız oldu · en çok 600

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_openGönderi yalnızca ileri gidebilir: zamanlandı → paylaşılıyor → paylaşıldı ya da başarısız.

Yayımladığı olaylar: creative.posted, creative.post_failed

Neye yazar: creative_post (update) — Moves the post forward; creative_generation (update) — Adds "used on <channel>"

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_open · 429 çok sık istek

creative.note_provider_job

Sağlayıcı işini kaydet — Bir MuAPI isteğini sonucu sorulmadan önce kaydeder; böylece kurtarma sırasında iki kez gönderilmez. Yalnızca makine.

Gereken izin creative:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/note_provider_job
API anahtarı ya da OAuth token · creative:handle
  • Asıl adres: POST /api/v1/actions/creative.note_provider_job

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Üretim · kimliği: creative_generation
requestIdstringevetSağlayıcı isteği · en çok 200

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_runningSağlayıcı işini yalnızca çalışan bir stüdyo aracı kaydedebilir.

Neye yazar: creative_generation (update) — Saves the provider request id

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_running · 429 çok sık istek

creative.park_generation

Sahibinin bilgisayarını bekle — Bir kişinin kendi planıyla çalışan bir üretimi, bilgisayarı yeniden açılana kadar bekletir. Yalnızca sistem kullanır.

Gereken izin creative:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/park_generation
API anahtarı ya da OAuth token · creative:handle
  • Asıl adres: POST /api/v1/actions/creative.park_generation

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Üretim · kimliği: creative_generation
waitingobject / arrayevetÇalıştırıcı işi

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_runningYalnızca devam eden bir üretim bekletilebilir.
bad_waitingBeklenen işin belirtilmesi gerekir.

Neye yazar: creative_generation (update) — running → waiting

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_running, bad_waiting · 429 çok sık istek

creative.record_use

Nerede kullanıldığını kaydet — Bir sonucun bir ürüne, yazıya, e-postaya ya da web sitesine konduğunu hatırlar.

Gereken izin creative:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/record_use
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.record_use

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Üretim · kimliği: creative_generation
targetstringevetKullanıldığı yer · product, blog_post, campaign, website, files, download, social, export, marketplace · en çok 20
targetIdstringKayıt · en çok 64
labelstringAd · en çok 200

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundYalnızca biten bir üretim kullanılabilir.
bad_targetKullanım yeri Creative Studio’nun tanıdığı yerlerden biri olmalı.

Yayımladığı olaylar: creative.used

Neye yazar: creative_generation (update) — Appends the use

curl -X POST https://app.getera.io/api/v1/creative_generations/CREATIVE_GENERATION_ID/actions/record_use \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"target":"Used on"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "creative.used"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeGenerations.recordUse("CREATIVE_GENERATION_ID", {
  target: "Used on"
})
era creative_generations record_use CREATIVE_GENERATION_ID \
  --target "Used on"
tools/call
{
  "name": "era__creative__record_use",
  "arguments": {
    "id": "CREATIVE_GENERATION_ID",
    "target": "Used on"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, bad_target · 429 çok sık istek

creative.remove

Geçmişten kaldır — Biten bir üretimi geçmişten kaldırır. Dosyaları Dosyalar’da kalır.

Gereken izin creative:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/remove
API anahtarı ya da OAuth token · creative:delete
  • Asıl adres: POST /api/v1/actions/creative.remove

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Üretim · kimliği: creative_generation

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundÜretim bulunamadı ya da henüz tamamlanmadı.

Neye yazar: creative_generation (delete) — Deletes the history row

curl -X POST https://app.getera.io/api/v1/creative_generations/CREATIVE_GENERATION_ID/actions/remove \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": []
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeGenerations.remove("CREATIVE_GENERATION_ID")
era creative_generations remove CREATIVE_GENERATION_ID
tools/call
{
  "name": "era__creative__remove",
  "arguments": {
    "id": "CREATIVE_GENERATION_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

creative.remove_ad

Reklam kütüphanesinden kaldır — Bir reklamı kütüphaneden çıkarır.

Gereken izin creative:delete · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/creative_ads/{id}/actions/remove_ad
API anahtarı ya da OAuth token · creative:delete
  • Asıl adres: POST /api/v1/actions/creative.remove_ad

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Reklam · kimliği: creative_ad

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu reklam bu çalışma alanının kütüphanesinde bulunamadı.

Neye yazar: creative_ad (delete) — Deletes the ad

curl -X POST https://app.getera.io/api/v1/creative_ads/CREATIVE_AD_ID/actions/remove_ad \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": []
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeAds.removeAd("CREATIVE_AD_ID")
era creative_ads remove_ad CREATIVE_AD_ID
tools/call
{
  "name": "era__creative__remove_ad",
  "arguments": {
    "id": "CREATIVE_AD_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

creative.remove_voice

Sesi kaldır — Klonlanmış bir sesi siler (sağlayıcıda da).

Gereken izin creative:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/creative_voices/{id}/actions/remove_voice
API anahtarı ya da OAuth token · creative:delete
  • Asıl adres: POST /api/v1/actions/creative.remove_voice

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Ses · kimliği: creative_voice

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu ses bu çalışma alanında bulunamadı.

Neye yazar: creative_voice (delete) — Deletes the voice

curl -X POST https://app.getera.io/api/v1/creative_voices/CREATIVE_VOICE_ID/actions/remove_voice \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": []
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeVoices.removeVoice("CREATIVE_VOICE_ID")
era creative_voices remove_voice CREATIVE_VOICE_ID
tools/call
{
  "name": "era__creative__remove_voice",
  "arguments": {
    "id": "CREATIVE_VOICE_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

creative.resume_provider

Sağlayıcı sonucunu yeniden kontrol et — Kaydedilmiş MuAPI işini, yeni bir üretim satın almadan yeniden sorar.

Gereken izin creative:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/resume_provider
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.resume_provider

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Üretim · kimliği: creative_generation

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBaşarısız bir stüdyo aracının devam edebilmesi için kaydedilmiş bir sağlayıcı isteği olmalı.

Yayımladığı olaylar: creative.requested

Neye yazar: creative_generation (update) — Requeues polling of the saved provider job

curl -X POST https://app.getera.io/api/v1/creative_generations/CREATIVE_GENERATION_ID/actions/resume_provider \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "creative.requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeGenerations.resumeProvider("CREATIVE_GENERATION_ID")
era creative_generations resume_provider CREATIVE_GENERATION_ID
tools/call
{
  "name": "era__creative__resume_provider",
  "arguments": {
    "id": "CREATIVE_GENERATION_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

creative.save_ad

Reklamı kütüphaneye kaydet — Beğendiğin bir reklamı (Meta Reklam Kütüphanesi’nden, bir bağlantıdan ya da ekran görüntüsünden) saklar; Kreatif Stüdyo ürünün için benzerini yapabilir.

Gereken izin creative:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/creative_ads/actions/save_ad
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.save_ad

Girdi

AlanTürZorunluAçıklama
sourcestringevetNereden · meta_ad_library, url, upload veya own · en çok 20
titlestringevetAd · en çok 200
externalIdstringKütüphane kimliği · en çok 120
advertiserstringReklamveren · en çok 200
bodystringReklam metni · en çok 4000
linkUrlstringBağlantı · en çok 2000
snapshotUrlstringReklam önizleme bağlantısı · en çok 2000
mediaFileIdsobject / arrayEkran görüntüleri
mediaUrlsobject / arrayMedya bağlantıları
platformsobject / arrayPlatformlar
startedOnstringYayında olduğu tarih · en çok 10
tagsobject / arrayEtiketler
notesstringNeden beğendik · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
bad_sourceKaynak, kütüphanenin tanıdığı kaynaklardan biri olmalı.
empty_titleReklamın bir adı olmalı.

Neye yazar: creative_ad (upsert) — Adds (or refreshes) the ad in the library

curl -X POST https://app.getera.io/api/v1/creative_ads/actions/save_ad \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"source":"From","title":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": []
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeAds.saveAd({
  source: "From",
  title: "Name"
})
era creative_ads save_ad \
  --source "From" \
  --title "Name"
tools/call
{
  "name": "era__creative__save_ad",
  "arguments": {
    "source": "From",
    "title": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 bad_source, empty_title · 429 çok sık istek

creative.save_brand_kit

Marka kitini kaydet — Ad, renkler, yazı tipleri, logo ve ses tonu — Kreatif Stüdyo, tek bir üretim için kapatmazsan bunları her üretime ekler.

Gereken izin creative:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/creative_brand_kits/actions/save_brand_kit
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.save_brand_kit

Girdi

AlanTürZorunluAçıklama
namestringevetMarka adı · en çok 120
taglinestringSlogan · en çok 200
voicestringSes tonu · en çok 600
audiencestringKimin için · en çok 300
coloursobject / arrayRenkler · En fazla 8 hex renk, ör. ["#1F2937", "#7C83FD"].
fontsobject / arrayYazı tipleri · En fazla 4 yazı tipi adı.
logoFileIduuidLogo · kimliği: file
referenceFileIdsobject / arrayReferans görseller · Görünümü gösteren fotoğrafların dosya kimlikleri.
wordsUsestringKullandığımız kelimeler · en çok 600
wordsAvoidstringKaçındığımız kelimeler ve görünümler · en çok 600
applyByDefaultbooleanHer üretimde kullan
sectorstringSektör · food, cafe, bakery, beauty, barber, fashion, jewellery, cosmetics, home, health, realestate, ecommerce. · en çok 40
syncedFromobject / arrayÇalışma alanından alındı

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
empty_nameMarka kitinin bir adı olmalı.
bad_colourRenkler #1A2B3C gibi onaltılık değerler olmalı.
unknown_sectorSektör, Kreatif Stüdyo’nun tanıdığı bir sektör olmalı.

Neye yazar: creative_brand_kit (upsert) — Writes the one brand kit of the workspace

curl -X POST https://app.getera.io/api/v1/creative_brand_kits/actions/save_brand_kit \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Brand name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": []
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeBrandKits.saveBrandKit({
  name: "Brand name"
})
era creative_brand_kits save_brand_kit \
  --name "Brand name"
tools/call
{
  "name": "era__creative__save_brand_kit",
  "arguments": {
    "name": "Brand name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 empty_name, bad_colour, unknown_sector · 429 çok sık istek

creative.save_caption

Gönderi metnini kaydet — Bir sonuçla birlikte paylaşılacak açıklamayı ve etiketleri saklar.

Gereken izin creative:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/save_caption
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.save_caption

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sonuç · kimliği: creative_generation
textstringevetMetin · en çok 2200
hashtagsobject / arrayHashtag’ler · En fazla 30, # ile ya da # olmadan.
channelstringKanal · en çok 40

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
empty_captionBir açıklama metin içerir.
not_foundSonuç bu çalışma alanında bulunmalı.

Neye yazar: creative_generation (update) — Sets the caption

curl -X POST https://app.getera.io/api/v1/creative_generations/CREATIVE_GENERATION_ID/actions/save_caption \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"text":"Text"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": []
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeGenerations.saveCaption("CREATIVE_GENERATION_ID", {
  text: "Text"
})
era creative_generations save_caption CREATIVE_GENERATION_ID \
  --text "Text"
tools/call
{
  "name": "era__creative__save_caption",
  "arguments": {
    "id": "CREATIVE_GENERATION_ID",
    "text": "Text"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 empty_caption, not_found · 429 çok sık istek

creative.schedule_post

Sosyal medyada paylaş — Bir Kreatif Stüdyo sonucunu (ya da dosyaları) bir Instagram, Facebook, TikTok ya da YouTube hesabında şimdi ya da belirli bir saatte paylaşır. Paylaşmadan önce her zaman sorar.

Gereken izin creative:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/creative_posts/actions/schedule_post
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.schedule_post

Girdi

AlanTürZorunluAçıklama
generationIduuidSonuç · kimliği: creative_generation
fileIdsobject / arrayDosyalar · Bütün bir sonuç değilse paylaşılacak dosya kimlikleri.
channelstringevetKoşul · instagram, facebook, tiktok veya youtube · en çok 20
connectionIduuidevetHesap · Bağlı hesap (Ayarlar → Uygulamalar).
captionstringAçıklama · en çok 2200
titlestringBaşlık (YouTube) · en çok 100
scheduledAtstringNe zaman · ISO tarih-saat; boş = şimdi. · en çok 40

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
bad_channelKanal Instagram, Facebook, TikTok ya da YouTube olmalı.
not_readyYalnızca biten bir sonuç paylaşılabilir.
nothing_to_postPaylaşılacak bir görsel ya da video olmalı.
wrong_mediaTikTok ve YouTube için video gerekir; YouTube için ayrıca başlık gerekir.
no_connectionHesap bağlı olmalı ve paylaşımı yapan kişi tarafından kullanılabilmeli.
bad_timeZaman, en fazla altı ay sonrası için geçerli bir tarih olmalı.

Yayımladığı olaylar: creative.post_scheduled

Neye yazar: creative_post (insert) — A scheduled post; the studio posts it when it is due

curl -X POST https://app.getera.io/api/v1/creative_posts/actions/schedule_post \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"channel":"Where","connectionId":"CONNECTION_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "creative.post_scheduled"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativePosts.schedulePost({
  channel: "Where",
  connectionId: "CONNECTION_ID"
})
era creative_posts schedule_post \
  --channel "Where" \
  --connection-id "CONNECTION_ID"
tools/call
{
  "name": "era__creative__schedule_post",
  "arguments": {
    "channel": "Where",
    "connectionId": "CONNECTION_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 bad_channel, not_ready, nothing_to_post, wrong_media, no_connection, bad_time · 429 çok sık istek

creative.set_favourite

Favori — Kolayca bulunması için bir üretimi yıldızlar.

Gereken izin creative:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/set_favourite
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.set_favourite

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Üretim · kimliği: creative_generation
favouritebooleanevetFavori

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundBu üretim bu çalışma alanında bulunamadı.

Neye yazar: creative_generation (update) — Sets the star

curl -X POST https://app.getera.io/api/v1/creative_generations/CREATIVE_GENERATION_ID/actions/set_favourite \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"favourite":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": []
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeGenerations.setFavourite("CREATIVE_GENERATION_ID", {
  favourite: true
})
era creative_generations set_favourite CREATIVE_GENERATION_ID \
  --favourite true
tools/call
{
  "name": "era__creative__set_favourite",
  "arguments": {
    "id": "CREATIVE_GENERATION_ID",
    "favourite": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found · 429 çok sık istek

creative.start_generation

Üretimi başlat — Sıradaki bir üretimi onu yapacak çalışana ayırır. Yalnızca makine.

Gereken izin creative:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/start_generation
API anahtarı ya da OAuth token · creative:handle
  • Asıl adres: POST /api/v1/actions/creative.start_generation

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Üretim · kimliği: creative_generation

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_queuedYalnızca sırada bekleyen bir üretim başlatılabilir ve yalnızca bir kez.

Neye yazar: creative_generation (update) — queued → running

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_queued · 429 çok sık istek

creative.vary

Buna benzer — Biten bir görselin yeni çekimleri: aynı konu ve ürün; yeni kompozisyon, açı ve ışık. Bir seferde 1–4 tane.

Gereken izin creative:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/creative_generations/{id}/actions/vary
API anahtarı ya da OAuth token · creative:write
  • Asıl adres: POST /api/v1/actions/creative.vary

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Resim · kimliği: creative_generation
countnumberKaç tane · en az 1 · en çok 4
notestringNeyi değiştirelim · en çok 600

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundYalnızca bitmiş bir görselin benzeri üretilebilir.
no_sourceKendi aboneliğiniz ya da anahtarınız bunu üretebilmeli.
budget_exceededÇalışma alanının yapay zekâ bütçesi doldu.

Yayımladığı olaylar: creative.requested

Neye yazar: creative_generation (insert) — Queues the variations

curl -X POST https://app.getera.io/api/v1/creative_generations/CREATIVE_GENERATION_ID/actions/vary \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"count":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "creative.requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.creativeGenerations.vary("CREATIVE_GENERATION_ID", {
  count: 1
})
era creative_generations vary CREATIVE_GENERATION_ID \
  --count 1
tools/call
{
  "name": "era__creative__vary",
  "arguments": {
    "id": "CREATIVE_GENERATION_ID",
    "count": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde creative:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, no_source, budget_exceeded · 429 çok sık istek

Veri modelleri

CreativeAd

Tablo creative_ad · Kaynak creative_ads

  • GET /api/v1/creative_ads
  • GET /api/v1/creative_ads/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
created_bystring (uuid) · uuidevetapp_user
sourcestring · textmeta_ad_library, url, upload, own
external_idstring · textevet
titlestring · text
advertiserstring · textevet
bodystring · textevet
link_urlstring · textevet
snapshot_urlstring · textevet
media_file_idsstring[] · uuid[]
media_urlsstring[] · text[]
platformsstring[] · text[]
started_onstring (date) · dateevet
tagsstring[] · text[]
notesstring · textevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

CreativeBrandKit

Tablo creative_brand_kit · Kaynak creative_brand_kits

  • GET /api/v1/creative_brand_kits
  • GET /api/v1/creative_brand_kits/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · text
taglinestring · textevet
voicestring · textevet
audiencestring · textevet
coloursstring[] · text[]
fontsstring[] · text[]
logo_file_idstring (uuid) · uuidevet
reference_file_idsstring[] · uuid[]
words_usestring · textevet
words_avoidstring · textevet
apply_by_defaultboolean · bool
updated_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
sectorstring · textevet
synced_fromobject · jsonbevet
synced_atstring (date-time) · timestamptzevet

Birincil anahtar: id

Denetimler:

  • CHECK (((array_length(colours, 1) IS NULL) OR (array_length(colours, 1) <= 8)))

CreativeGeneration

Tablo creative_generation · Kaynak creative_generations

  • GET /api/v1/creative_generations
  • GET /api/v1/creative_generations/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
created_bystring (uuid) · uuidevetapp_user
kindstring · textimage, video, tts, audio
promptstring · text
presetstring · textevet
modelstring · text
used_modelstring · textevet
providerstring · textevet
source_kindstring · textevet
aspectstring · textevet
duration_secstring (decimal) · numericevet
countinteger · int4
voicestring · textevet
input_file_idsstring[] · uuid[]
statusstring · textqueued, running, waiting, succeeded, failed, cancelled
cost_usdstring (decimal) · numeric
refundedboolean · bool
outputsobject · jsonb
errorstring · textevet
favouriteboolean · bool
usesobject · jsonb
surfacestring · text
started_atstring (date-time) · timestamptzevet
finished_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
connectionobject · jsonbevet
input_urlsstring[] · text[]
waitingobject · jsonbevet
input_video_idsstring[] · uuid[]
resolutionstring · textevet
toolstring · textevet
input_audio_idsstring[] · uuid[]
brandobject · jsonbevet
harnessstring · textevet
upscaleinteger · int2evet
voice_idstring (uuid) · uuidevet
parent_idstring (uuid) · uuidevetcreative_generation
root_idstring (uuid) · uuidevetcreative_generation
versioninteger · int2
edit_notestring · textevet
edit_checkobject · jsonbevet
batch_idstring (uuid) · uuidevet
batch_kindstring · textevet
batch_labelstring · textevet
shotstring · textevet
channelstring · textevet
product_idstring (uuid) · uuidevet
source_generation_idstring (uuid) · uuidevetcreative_generation
captionobject · jsonbevet
layoutobject · jsonbevet
higgsfieldobject · jsonbevet
studiostring · textevet

Birincil anahtar: id

Denetimler:

  • CHECK (((batch_kind IS NULL) OR (batch_kind = ANY (ARRAY['set'::text, 'batch'::text, 'variations'::text]))))
  • CHECK (((batch_label IS NULL) OR (length(batch_label) <= 120)))
  • CHECK (((count >= 1) AND (count <= 4)))
  • CHECK (((edit_note IS NULL) OR (length(edit_note) <= 2000)))
  • CHECK (((resolution IS NULL) OR (resolution = ANY (ARRAY['480p'::text, '720p'::text, '1080p'::text]))))
  • CHECK (((source_kind IS NULL) OR (source_kind = ANY (ARRAY['native'::text, 'byos'::text, 'byok'::text])))) NOT VALID
  • CHECK (((studio IS NULL) OR (studio = ANY (ARRAY['image'::text, 'video'::text, 'cinema'::text, 'character'::text, 'lipsync'::text, 'motion'::text, 'recast'::text, 'clip'::text, 'layers'::text, 'audio'::text, 'marketing'::text, 'product'::text]))))
  • CHECK (((tool IS NULL) OR (tool = ANY (ARRAY['lip_sync'::text, 'talking_photo'::text, 'face_swap'::text, 'upscale'::text, 'video_edit'::text, 'layout'::text, 'photo_reel'::text, 'higgsfield'::text, 'image_grade'::text]))))
  • CHECK (((upscale IS NULL) OR (upscale = ANY (ARRAY[2, 4]))))
  • CHECK (((version >= 1) AND (version <= 999)))

CreativePost

Tablo creative_post · Kaynak creative_posts

  • GET /api/v1/creative_posts
  • GET /api/v1/creative_posts/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
created_bystring (uuid) · uuidevetapp_user
generation_idstring (uuid) · uuidevetcreative_generation
file_idsstring[] · uuid[]
channelstring · textinstagram, facebook, tiktok, youtube
connection_idstring (uuid) · uuid
connection_labelstring · textevet
captionstring · text
titlestring · textevet
scheduled_atstring (date-time) · timestamptz
statusstring · textscheduled, posting, posted, failed, cancelled
external_idstring · textevet
external_urlstring · textevet
errorstring · textevet
attemptsinteger · int4
posted_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

CreativeVoice

Tablo creative_voice · Kaynak creative_voices

  • GET /api/v1/creative_voices
  • GET /api/v1/creative_voices/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
created_bystring (uuid) · uuidevetapp_user
namestring · text
providerstring · text
external_voice_idstring · textevet
sample_file_idsstring[] · uuid[]
consent_bystring (uuid) · uuidevetapp_user
consent_atstring (date-time) · timestamptz
source_kindstring · textevet
connection_idstring (uuid) · uuidevet
statusstring · textpending, ready, failed
errorstring · textevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((provider = 'elevenlabs'::text))
  • CHECK (((source_kind IS NULL) OR (source_kind = 'byok'::text)))

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
creative.failedBir üretim başarısız oldu; ücret alınmadı.id, error, recipientUserId
creative.generatedBir üretim bitti; sonuçları Dosyalar’da.id, kind, count, recipientUserId
creative.post_failedBir sosyal medya gönderisi yayımlanamadı.id, channel, error, recipientUserId
creative.post_scheduledBir sonuç sosyal medyada paylaşılmak üzere planlandı.id, channel, generationId, scheduledAt
creative.postedBir gönderi Instagram, Facebook, TikTok ya da YouTube’da yayına çıktı.id, channel, url, recipientUserId
creative.requestedBiri (ya da Era veya bir iş akışı) görsel, video, seslendirme ya da müzik istedi.id, kind, preset
creative.usedBir sonuç bir ürüne, yazıya, e-postaya ya da web sitesine kondu.id, target, targetId
creative.voice_requestedBiri (konuşanın izniyle) bir ses klonlamak istedi.id, name
Bu sayfa yardımcı oldu mu?