İçeriğe geç

Geliştiriciler

API referansı

Tüm modellere tek bir HTTPS ucundan, API anahtarınla ulaş.

Temel URL
https://vellria.com/v1
Kimlik doğrulama
Authorization: Bearer vll_...

Hızlı başlangıç

#

API anahtarından bitmiş dosyaya dört çağrı. Her üretim bakiyenizden, katalogdaki fiyat üzerinden kredi harcar; expectedCost gönderirseniz fiyatı değişmiş bir istek ücretlendirilmek yerine reddedilir (Fiyatlar ve beklenen maliyet).

  1. API anahtarı oluşturun

    Giriş yapın ve API anahtarları sayfasında bir anahtar oluşturun. Anahtarlar vll_ ile başlar; her çağrıda Bearer belirteci olarak gönderin.

  2. Bir model seçin

    GET /v1/models her model kimliğini boyutları, parametreleri ve kredi fiyatıyla listeler. Model listesini koda gömmek yerine buradan okuyun.

  3. Üretimi başlatın

    POST /v1/generate/image çağrısına bir model kimliği ve istem gönderin. Yanıt 202'dir; üretim kimliğini ve düşülen krediyi taşır. Başarısız üretimin kredisi iade edilir.

  4. Durumu sorun, sonra indirin

    status completed olana ya da error_code ile failed olana dek birkaç saniyede bir GET /v1/generations/{id} çağırın. Ardından output_url adresini aynı anahtarla indirin.

2. Bir model seçin
curl
curl https://vellria.com/v1/models \
  -H "Authorization: Bearer vll_..."
Yanıt · 200
{
  "image": [
    {
      "id": "vellria-seedream-5-pro",
      "label": "Seedream 5 Pro",
      "kind": "image"
    }
  ],
  "video": [
    {
      "id": "vellria-seedance-2-5",
      "label": "Seedance 2.5",
      "kind": "video"
    }
  ]
}
3. Üretimi başlatın
curl
curl https://vellria.com/v1/generate/image \
  -H "Authorization: Bearer vll_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "vellria-seedream-5-pro",
    "prompt": "Şafakta bir deniz feneri, yumuşak ışık",
    "size": "1536*1536"
  }'
Yanıt · 202
{
  "id": "gen_3f9a1c7e5b2d4086",
  "status": "processing",
  "model": "vellria-seedream-5-pro",
  "size": "1536*1536",
  "cost_cents": 10
}
4. Durumu sorun, sonra indirin
curl
curl https://vellria.com/v1/generations/{id} \
  -H "Authorization: Bearer vll_..."
Yanıt · 200
{
  "id": "gen_3f9a1c7e5b2d4086",
  "status": "completed",
  "output_url": "https://vellria.com/v1/generations/gen_3f9a1c7e5b2d4086/file",
  "error_code": null,
  "expires_at": 1791936000000
}
curl
curl -o result.png https://vellria.com/v1/generations/{id}/file \
  -H "Authorization: Bearer vll_..."

Kimlik doğrulama

#

API anahtarını her istekte Authorization başlığında Bearer token olarak gönder. Anahtarlar vll_ önekiyle başlar ve API anahtarları sayfasında oluşturulur.

http
Authorization: Bearer vll_...

Hatalar

#

Her hata aynı JSON gövdesiyle gelir. error.code üzerinden dallan: sabittir, error.message ise insanlar için yazılır ve değişebilir. Varsa error.param hatalı alanı söyler, bazı kodlar error.reason da ekler (image_unreadable: animated, transparent, too_small ya da too_large). Hata dönen bir istek için kredi hiçbir zaman tutulmaz: istek hataları ücret düşülmeden önce verilir, başlatılamayan üretim iade edilir.

HTTP durum kodları

HTTPAnlamı
400İstek geçersiz; error.code hangi alanın ya da kuralın sorunlu olduğunu söyler.
401API anahtarı eksik ya da geçersiz.
402Yeterli kredi yok.
403Bu hesap ya da anahtar bu ucu kullanamaz.
404Kaynak yok ya da başka bir hesaba ait.
409İstek mevcut durumla çakışıyor; örneğin fiyat değişmiş ya da üretim hâlâ sürüyor.
410Dosyanın saklama süresi dolmuş ve silinmiş.
413Dosya ya da gövde çok büyük.
415Content-Type kabul edilen bir görsel türü değil.
416İstenen bayt aralığı sunulamıyor.
429Çok fazla istek; Retry-After başlığındaki süre kadar bekle ve yeniden dene.
500Bizim tarafımızda beklenmeyen hata.
502Model ya da ödeme sağlayıcısı isteği reddetti ya da başarısız oldu.
503Servis geçici olarak kullanılamıyor; hiçbir şey düşülmez.

Hata kodları

Kimlik doğrulama ve hesap8authentication_requiredaccount_deletedaccount_suspendedaccount_mergedforbiddenpending_paymentmerge_in_progressaccount_delete_failed
KodHTTPAnlamı
authentication_required401API anahtarı gönderilmedi ya da geçersiz veya iptal edilmiş.
account_deleted403Hesap kapatılmış.
account_suspended403Hesap askıya alınmış.
account_merged403Hesap başka bir hesapla birleştirildi; o hesabın anahtarını kullan.
forbidden403Uç yalnız konsol oturumuyla çalışır, API anahtarıyla çalışmaz.
pending_payment409Bir ödeme henüz kesinleşmedi; kesinleşince yeniden dene.
merge_in_progress409Hesap başka bir hesaba bağlanıyor; biraz sonra yeniden dene.
account_delete_failed500Hesap kapatılamadı; biraz sonra yeniden dene.
İstek doğrulama22invalid_bodyinvalid_promptprompt_too_longinvalid_expected_costinvalid_modelinvalid_sizeinvalid_durationinvalid_resolutioninvalid_ratioinvalid_reference_modeinvalid_reference_tokentext_to_video_not_supportedinvalid_<parameter>invalid_typeinvalid_statusinvalid_queryinvalid_idsinvalid_untilinvalid_generation_typethumbnail_unsupportedthumbnail_size_unsupportedinvalid_range
KodHTTPAnlamı
invalid_body400Gövde geçerli JSON değil ya da zorunlu bir alan eksik.
invalid_prompt400prompt eksik ya da boş.
prompt_too_long400prompt, modelin max_prompt_length değerinden uzun.
invalid_expected_cost400expectedCost negatif olmayan bir tam sayı değil.
invalid_model400Model kimliği GET /v1/models içinde yok.
invalid_size400size modelin boyutlarından biri değil.
invalid_duration400duration kipin aralığının dışında.
invalid_resolution400resolution kipin çözünürlüklerinden biri değil.
invalid_ratio400ratio kipin oranlarından biri değil.
invalid_reference_mode400reference_mode ne frame ne subject ya da modelin subject kipi yok.
invalid_reference_token400İstem karşılığı olmayan bir @image anıyor; örneğin iki görselle @image3.
text_to_video_not_supported400Model bir referans görsel ister, yalnız istemle çalışamaz.
invalid_<parameter>400Modele özgü bir parametre, modelin ilan etmediği bir değer taşıyor.
invalid_type400type ne image ne video.
invalid_status400status queued, processing ya da completed değil.
invalid_query400Arama metni çok uzun.
invalid_ids400ids, 1-50 üretim kimliğinden oluşan bir liste değil.
invalid_until400until geçerli bir zaman damgası değil.
invalid_generation_type400Yalnız görsel üretimleri referans olabilir.
thumbnail_unsupported400Küçük resim yalnız görseller için var.
thumbnail_size_unsupported400thumb desteklenen bir küçük resim boyutu değil.
invalid_range416Range başlığı karşılanamıyor.
İstemler, referanslar ve yüklemeler11content_blockedinvalid_image_urlsreference_not_publicimage_unreadablereference_not_allowedempty_uploadinvalid_imagefile_too_largepayload_too_largeunsupported_media_typeupload_in_use
KodHTTPAnlamı
content_blocked400İstem, kredi harcanmadan önce güvenlik filtresi tarafından reddedildi.
invalid_image_urls400image_urls hatalı biçimde, model için çok az ya da çok fazla görsel içeriyor ya da kipin istediği yerde eksik.
reference_not_public400Bir referans kimlik doğrulama isteyen dosya adresine işaret ediyor; onun yerine POST /v1/uploads ile yükle.
image_unreadable400Bir referans görsel kullanılamıyor; nedenini error.reason söyler (animated, transparent, too_small ya da too_large).
reference_not_allowed403Referans görseller bu serviste kullanılamıyor.
empty_upload400Yükleme gövdesi boş.
invalid_image400Yükleme, bildirilen türde okunabilir bir görsel değil.
file_too_large413Dosya izin verilen boyuttan büyük.
payload_too_large413İstek gövdesi izin verilen boyuttan büyük.
unsupported_media_type415Content-Type kabul edilen görsel türlerinden biri değil.
upload_in_use409Yükleme bir üretimde kullanıldı; süresi dolana kadar saklanır.
Üretimler ve dosyalar8not_foundcontent_expiredgeneration_in_progressgeneration_not_completedupstream_errorreference_rejectedgeneration_unavailablereference_unavailable
KodHTTPAnlamı
not_found404Bu hesapta böyle bir kaynak yok.
content_expired410Dosyanın saklama süresi dolmuş ve silinmiş.
generation_in_progress409Üretim hâlâ kuyrukta ya da işleniyor.
generation_not_completed409Üretim henüz tamamlanmadı.
upstream_error502Üretim başlatılamadı; krediler iade edilir.
reference_rejected502Model bir referans görseli reddetti; krediler iade edilir.
generation_unavailable503Üretim geçici olarak kullanılamıyor; hiçbir şey düşülmez.
reference_unavailable503Bir referans görsel hazırlanamadı; hiçbir şey düşülmez.
Krediler ve ödemeler18insufficient_balanceprice_changedinvalid_packageinvalid_amountinvalid_providerpackage_unavailable_for_providerinvalid_plancheckout_lockedpayment_create_failednot_configuredalready_paidalready_subscribeddowngrade_requires_cancelcheckout_in_progresssubscription_changedsubscription_under_reviewsubscription_not_foundsubscription_cancel_failed
KodHTTPAnlamı
insufficient_balance402Hesapta yeterli kredi yok.
price_changed409Fiyat expectedCost değerinden farklı; güncel fiyat price.cost içinde ve hiçbir şey düşülmez.
invalid_package400package_id GET /v1/billing/packages içinde yok.
invalid_amount400price_amount min_usd ile max_usd aralığının dışında.
invalid_provider400Sağlayıcı bilinmiyor, kapalı ya da bu ödeme için kabul edilmiyor.
package_unavailable_for_provider400Seçilen sağlayıcı bu paketi satamıyor (paketin excluded_providers listesinde, örneğin büyük paketlerde telegram_stars); ödeme açılmaz.
invalid_plan400plan_id planlardan biri değil.
checkout_locked429Çok fazla başarısız kart denemesinden sonra kartla ödeme (provider whop) bir süre kilitli; kripto ve Telegram Stars açık kalır. Retry-After başlığına bak.
payment_create_failed502Ödeme sağlayıcısı ödeme sayfasını açamadı; yeniden dene.
not_configured503Ödemeler şu anda kullanılamıyor.
already_paid409Ödeme zaten tamamlandı.
already_subscribed409Bu plana zaten sahipsin.
downgrade_requires_cancel409Daha küçük plana geçmek için önce iptal gerekir.
checkout_in_progress409Bir abonelik ödeme sayfası hâlâ açılıyor.
subscription_changed409Ödeme sayfası açılırken abonelik değişti; sayfayı yenileyip yeniden dene.
subscription_under_review409Bir aboneliğin ilk ödemesi inceleniyor; karar verilene kadar yeni ödeme sayfası açılmaz.
subscription_not_found404Etkin abonelik yok.
subscription_cancel_failed502İptal doğrulanamadı; yeniden dene.
Hız sınırları2rate_limit_exceededreference_rate_limited
KodHTTPAnlamı
rate_limit_exceeded429Pencere içinde çok fazla istek; Retry-After süresi kadar bekle.
reference_rate_limited429Referans görselli isteklerin saatlik sınırı aşıldı.
Sohbet9insufficient_creditsinvalid_jsoninvalid_requestcontext_too_longunsupported_contentdata_url_not_supportedinvalid_image_urltoo_many_imagesempty_response
KodHTTPAnlamı
insufficient_credits402Bakiye olası en uzun yanıtı (max_tokens) karşılamıyor; ücret alınmaz.
invalid_json400Gövde geçerli bir JSON değil.
invalid_request400Bir alan eksik ya da hatalı (messages, role, stream, max_tokens, temperature ya da top_p); error.param hangisi olduğunu söyler.
context_too_long400Mesaj ya da karakter sayısı modelin sınırını aşıyor.
unsupported_content400Bir içerik parçası text ya da image_url değil, ya da görsel user mesajının dışında.
data_url_not_supported400Görsel data URL olarak gönderildi; POST /v1/uploads ile yükleyip dönen adresi verin.
invalid_image_url400image_url.url bir http(s) adresi değil.
too_many_images400Modelin mesaj ya da istek başına kabul ettiğinden fazla görsel var.
empty_response502Model boş yanıt döndürdü; ücret alınmaz.
Sunucu1internal_error
KodHTTPAnlamı
internal_error500Bizim tarafımızda beklenmeyen hata.

Başarısız üretimler

Başladıktan sonra başarısız olan üretim bir HTTP hatası değildir: GET /v1/generations/{id} onu failed durumuyla ve aşağıdaki error_code değerlerinden biriyle döner, kredisi kendiliğinden iade edilir.

10 kodu göster10content_blockedprovider_errorprovider_timeoutprovider_cancelledprovider_unavailableabandonedunknown_providerimage_blockedmoderation_failedreference_rejected
KodAnlamı
content_blockedİstem, üretim kuyruğa alındıktan sonra bir güvenlik denetimi tarafından reddedildi.
provider_errorModel sonuç üretemedi.
provider_timeoutModel zamanında bitiremedi.
provider_cancelledModel işi iptal etti.
provider_unavailableModel kullanılamıyordu.
abandonedİş çok uzun süre yanıt almadı ve bırakıldı.
unknown_providerİş bir model çalıştırmasına bağlanamadı.
image_blockedYalnız eski satırlar: bir referans görsel, artık kullanılmayan bir tarama tarafından reddedildi.
moderation_failedYalnız eski satırlar: tarama kendisi başarısız oldu.
reference_rejectedModel bir referans görseli reddetti.
Yanıt · 400
{
  "error": {
    "message": "vellria-seedance-2-5 does not support reference_mode \"subject\"",
    "type": "invalid_request_error",
    "param": "reference_mode",
    "code": "invalid_reference_mode"
  }
}
Yanıt · 400
{
  "error": {
    "message": "image_urls[0] is animated: use a still, opaque JPEG, PNG, GIF or WebP image of at most 20 MB, 36 megapixels",
    "type": "invalid_request_error",
    "param": "image_urls",
    "code": "image_unreadable",
    "reason": "animated"
  }
}
Yanıt · 409
{
  "error": {
    "message": "Price changed: this request now costs 10 credits",
    "type": "invalid_request_error",
    "param": "expectedCost",
    "code": "price_changed"
  },
  "price": {
    "cost": 10
  }
}

Hız sınırları

#

Dakikada 20 görsel ve 10 video. Referans görselli üretimler ayrıca, reddedilenler dahil saatte 120 denemelik ortak bir sınırı paylaşır; ötesinde üretim uçları reference_rate_limited kodunu döner. Sınırı aşan istek HTTP 429 döner; Retry-After başlığındaki süre kadar bekle ve yeniden dene.

Model kataloğu

#

Geçerli modeller, kredi bedelleriyle birlikte { image: [...], video: [...] } olarak döner. Kendi tarafında sabit bir fiyat listesi tutmak yerine bu ucu oku.

Ayrıntılar

Her kayıt id (model olarak gönderdiğin değer), label, kind (image ya da video), family ve developer taşır — modeli geliştiren şirket (Vellria adıyla sunulan modelde null) — ayrıca iki kip taşır, text ve reference: yalnız prompt gönderirsen model text kipinde çalışır — text-to-image ya da text-to-video çağrısı; aynı id'ye bir ya da daha fazla referans görsel eklersen model bunun yerine reference kipinde çalışır — image-to-image ya da image-to-video — ikisi arasında seçecek ayrı bir id yoktur. Her kip kendi sizes'ını (görsel) ya da resolutions'ını (video), bir default'ı, max_prompt_length'i (bu kipin prompt için, ve kendi sınırını ilan etmeyen her serbest metin parametresi için uyguladığı karakter sınırı) ve parameters'ı taşır. Her boyut ya da çözünürlük, etiketinin yanında ratio ve tier taşır, yani en-boy oranını ya da çözünürlük kademesini öğrenmek için etiketi ayrıştırman gerekmez (ratio adaptive ise çıktı oranını girdi görselinden alır). reference_images text kipinde null'dır; reference kipinde o kipin kabul ettiği referans görsel min ve max sayısını, ilkinden sonraki her referans için alınan extra_credits'i ve bir referans görselin uyması gereken dosya sınırlarını taşır. Referans yuvalarının rolü sabit olan bir model bu rolleri sırayla reference_images.roles altında listeler (bugün her modelde null): image_urls içindeki ilk adres ilk rolü alırdı, sonraki her adres bir sonrakini alırdı, son rol kalanlar için tekrarlanırdı.

Görsel modelleri

#
  • Model
    Seedream 5 Pro Sansürsüzvellria-seedream-5-pro
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    2K · 5 boyut
    Fiyat
    10 kredi
    Parametreler

    Metinden görsel · her boyut için 10 kredi + ilkinden sonraki her referans görsel için 1 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]0–10 https adresi (zorunlu)—
    sizeTür: string1536*15361776*13281328*17762048*11521152*20481536*1536
    reasoningTür: stringenableddisabledenabled

    Görselden görsel · her boyut için 10 kredi + ilkinden sonraki her referans görsel için 1 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–10 https adresi (zorunlu)—
    Model sayfası — Seedream 5 Pro Sansürsüz
  • Model
    Qwen 3 Sansürsüzvellria-qwen-3
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    1K, 1.5K, 2K · 8 boyut
    Fiyat
    8 kredi
    Parametreler

    Metinden görsel · her boyut için 8 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string1024*10241536*10241024*15362048*15361536*20482048*11521152*20482048*20481024*1024
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner
    negative_promptTür: stringmetin, en çok 8000 karakter—

    Görselden görsel · her boyut için 8 kredi + ilkinden sonraki her referans görsel için 1 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–3 https adresi (zorunlu)—
    sizeTür: string1024*10241280*960960*12801280*720720*12801440*14401024*1024
    Model sayfası — Qwen 3 Sansürsüz
  • Model
    Qwen 3 Pro Sansürsüzvellria-qwen-3-pro
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    1K, 1.5K · 3 boyut
    Fiyat
    10 kredi
    Parametreler

    Metinden görsel · her boyut için 10 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string1024*10241536*10241024*15361024*1024
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner
    negative_promptTür: stringmetin, en çok 8000 karakter—

    Görselden görsel · her boyut için 10 kredi + ilkinden sonraki her referans görsel için 1 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–3 https adresi (zorunlu)—
    sizeTür: string1024*10241280*960960*12801280*720720*12801440*14401024*1024
    Model sayfası — Qwen 3 Pro Sansürsüz
  • Model
    Qwen Image Edit 2511 Sansürsüzvellria-qwen-image-edit-2511
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    1K, 1.3K · 5 boyut
    Fiyat
    6 kredi
    Parametreler

    Metinden görsel · her boyut için 6 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string1024*10241280*960960*12801280*720720*12801024*1024
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner

    Görselden görsel · her boyut için 6 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–3 https adresi (zorunlu)—
    sizeTür: string1K1K
    Model sayfası — Qwen Image Edit 2511 Sansürsüz
  • Model
    Qwen Image 2.1 Sansürsüzvellria-qwen-image-2-1
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    1K, 1.2K, 1.3K · 7 boyut
    Fiyat
    7 krediden
    Parametreler

    Metinden görsel · her boyut için 7 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string1024*10241248*832832*12481184*896896*11841376*768768*13761024*1024
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner

    Görselden görsel · her boyut için 8 kredi + ilkinden sonraki her referans görsel için 1 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–10 https adresi (zorunlu)—
    sizeTür: string1K1024*10241248*832832*12481184*896896*11841376*768768*13761K
    Model sayfası — Qwen Image 2.1 Sansürsüz
  • Model
    Seedream 5 Lite Sansürsüzvellria-seedream-5-lite
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    3K, 4K · 8 boyut
    Fiyat
    8 kredi
    Parametreler

    Metinden görsel · her boyut için 8 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string3072*30723456*25922592*34563744*24962496*37444096*23042304*40964704*20163072*3072

    Görselden görsel · her boyut için 8 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–10 https adresi (zorunlu)—
    Model sayfası — Seedream 5 Lite Sansürsüz
  • Model
    Seedream 4.5 Sansürsüzvellria-seedream-4-5
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    2K · 8 boyut
    Fiyat
    9 kredi
    Parametreler

    Metinden görsel · her boyut için 9 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string2048*20482304*17281728*23042496*16641664*24962848*16001600*28483136*13442048*2048

    Görselden görsel · her boyut için 9 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–10 https adresi (zorunlu)—
    Model sayfası — Seedream 4.5 Sansürsüz
  • Model
    Seedream 4 Sansürsüzvellria-seedream-4
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    2K · 5 boyut
    Fiyat
    7 kredi
    Parametreler

    Metinden görsel · her boyut için 7 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string2048*20482368*17761776*23682816*15841584*28162048*2048

    Görselden görsel · her boyut için 7 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–10 https adresi (zorunlu)—
    sizeTür: string2K2048*20482368*17761776*23682816*15841584*28162K
    Model sayfası — Seedream 4 Sansürsüz
  • Model
    Wan 2.7 Sansürsüzvellria-wan-2-7
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    2K · 1 boyut
    Fiyat
    8 kredi
    Parametreler

    Metinden görsel · her boyut için 8 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string2K2K
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner

    Görselden görsel · her boyut için 8 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–9 https adresi (zorunlu)—
    Model sayfası — Wan 2.7 Sansürsüz
  • Model
    Bria FIBO 2.0 Sansürsüzvellria-bria-fibo-2-0
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    2K, 1K · 30 boyut
    Fiyat
    10 kredi
    Parametreler

    Metinden görsel · her boyut için 10 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string2048*20482304*15361536*23042048*15361536*20481920*15361536*19202048*11521152*20481024*10241248*832832*12481152*864864*11521120*896896*11201408*792792*14081280*800800*12801440*720720*14401568*672672*15681776*592592*17762048*512512*20482320*464464*23202048*2048
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner

    Görselden görsel · her boyut için 10 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–4 https adresi (zorunlu)—
    sizeTür: string1K1K
    Model sayfası — Bria FIBO 2.0 Sansürsüz
  • Model
    Bria FIBO 1.5 Sansürsüzvellria-bria-fibo-1-5
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    2K, 2.3K · 7 boyut
    Fiyat
    10 kredi
    Parametreler

    Metinden görsel · her boyut için 10 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string2048*20482304*15361536*23042048*15361536*20482048*11521152*20482048*2048
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner

    Görselden görsel · her boyut için 10 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–4 https adresi (zorunlu)—
    sizeTür: string1K1K
    Model sayfası — Bria FIBO 1.5 Sansürsüz
  • Model
    MiniMax H3 Image Sansürsüzvellria-minimax-h3-image
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    1K, 1.2K, 1.3K · 7 boyut
    Fiyat
    8 kredi
    Parametreler

    Metinden görsel · her boyut için 8 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string1024*10241248*832832*12481184*896896*11841376*768768*13761024*1024
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner

    Görselden görsel · her boyut için 8 kredi + ilkinden sonraki her referans görsel için 1 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–9 https adresi (zorunlu)—
    sizeTür: string1K1024*10241248*832832*12481184*896896*11841376*768768*13761K
    Model sayfası — MiniMax H3 Image Sansürsüz
  • Model
    Seedream 5 Flash Sansürsüzvellria-seedream-5-flash
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    2K · 5 boyut
    Fiyat
    8 kredi
    Parametreler

    Metinden görsel · her boyut için 8 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string2048*20482368*17761776*23682816*15841584*28162048*2048

    Görselden görsel · her boyut için 8 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–10 https adresi (zorunlu)—
    sizeTür: string2K2048*20482368*17761776*23682816*15841584*28162K
    Model sayfası — Seedream 5 Flash Sansürsüz
  • Model
    Z-Image Turbo Sansürsüzvellria-z-image-turbo
    Kipler
    Metinden görsel
    Boyutlar
    1K, 1.5K, 2K · 6 boyut
    Fiyat
    2 kredi
    Parametreler

    Metinden görsel · her boyut için 2 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string1024*10241536*10241024*15362048*11521152*20482048*20481024*1024
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner
    Model sayfası — Z-Image Turbo Sansürsüz
  • Model
    Anima Sansürsüzvellria-anima
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    1K, 1.2K, 1.1K, 1.3K · 7 boyut
    Fiyat
    5 kredi
    Parametreler

    Metinden görsel · her boyut için 5 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string1024*10241248*832832*12481168*880880*11681360*768768*13601024*1024
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner

    Görselden görsel · her boyut için 5 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–1 https adresi (zorunlu)—
    sizeTür: string1K1K
    Model sayfası — Anima Sansürsüz
  • Model
    Vellria Anime Pro Spicy Sansürsüzvellria-anime-pro-spicy
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    2K · 5 boyut
    Fiyat
    10 kredi
    Parametreler

    Metinden görsel · her boyut için 10 kredi + ilkinden sonraki her referans görsel için 1 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]0–10 https adresi (zorunlu)—
    sizeTür: string1536*15361776*13281328*17762048*11521152*20481536*1536

    Görselden görsel · her boyut için 10 kredi + ilkinden sonraki her referans görsel için 1 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–10 https adresi (zorunlu)—
    Model sayfası — Vellria Anime Pro Spicy Sansürsüz
  • Model
    Pruna P-Image Sansürsüzvellria-p-image
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    1K, 1.2K, 1.1K, 1.3K · 7 boyut
    Fiyat
    4 kredi
    Parametreler

    Metinden görsel · her boyut için 4 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string1024*10241216*832832*12161152*896896*11521344*768768*13441024*1024
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner

    Görselden görsel · her boyut için 4 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–5 https adresi (zorunlu)—
    sizeTür: string1K1024*10241216*832832*12161152*896896*11521344*768768*13441K
    Model sayfası — Pruna P-Image Sansürsüz
  • Model
    Flux 2 Klein 9B Sansürsüzvellria-flux-2-klein-9b
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    1K, 1.2K, 1.1K, 1.3K · 7 boyut
    Fiyat
    5 kredi
    Parametreler

    Metinden görsel · her boyut için 5 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string1024*10241248*832832*12481152*864864*11521360*768768*13601024*1024
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner

    Görselden görsel · her boyut için 5 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–3 https adresi (zorunlu)—
    sizeTür: string1K1024*10241248*832832*12481152*864864*11521360*768768*13601K
    Model sayfası — Flux 2 Klein 9B Sansürsüz
  • Model
    Moss Image Sansürsüzvellria-moss-image
    Kipler
    Metinden görsel
    Boyutlar
    1K, 1.2K, 1.1K, 1.3K, 1.4K, 1.5K, 1.7K · 15 boyut
    Fiyat
    5 kredi
    Parametreler

    Metinden görsel · her boyut için 5 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string1024*10241248*832832*12481168*880880*11681136*912912*11361360*768768*13601440*720720*14401552*656656*15521760*576576*17601024*1024
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner
    Model sayfası — Moss Image Sansürsüz
  • Model
    Jib Mix Qwen Image Sansürsüzvellria-jib-mix-qwen-image
    Kipler
    Metinden görsel
    Boyutlar
    1K, 1.2K, 1.1K, 1.3K · 7 boyut
    Fiyat
    5 kredi
    Parametreler

    Metinden görsel · her boyut için 5 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string1024*10241248*832832*12481152*864864*11521360*768768*13601024*1024
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner
    Model sayfası — Jib Mix Qwen Image Sansürsüz
  • Model
    Z-Image Spicy Sansürsüzvellria-z-image-spicy
    Kipler
    Metinden görsel
    Boyutlar
    1K, 1.5K · 7 boyut
    Fiyat
    4 kredi
    Parametreler

    Metinden görsel · her boyut için 4 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string1024*10241024*15361536*10241152*15361536*1152864*15361536*8641024*1536
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner
    Model sayfası — Z-Image Spicy Sansürsüz
  • Model
    Z-Image Spicy Pro Sansürsüzvellria-z-image-spicy-pro
    Kipler
    Metinden görsel
    Boyutlar
    1K, 2K, 2.5K · 8 boyut
    Fiyat
    5 kredi
    Parametreler

    Metinden görsel · her boyut için 5 kredi

    Parametreİzinli değerlerVarsayılan
    sizeTür: string1024*10242048*20481536*20482048*15361680*25202520*16801440*25602560*14401024*1024
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner
    Model sayfası — Z-Image Spicy Pro Sansürsüz
  • Model
    Qwen Image Edit Spicy Sansürsüzvellria-qwen-image-edit-spicy
    Kipler
    Metinden görselGörselden görsel
    Boyutlar
    1K · 1 boyut
    Fiyat
    10 kredi
    Parametreler

    Metinden görsel · her boyut için 10 kredi

    Parametreİzinli değerlerVarsayılan
    image_urlsTür: string[]1–3 https adresi (zorunlu)—
    sizeTür: string1K1K
    seedTür: integer0–2147483647gönderilmezse rastgele, yanıtta döner

    Görselden görsel · her boyut için 10 kredi

    Model sayfası — Qwen Image Edit Spicy Sansürsüz

GET/v1/models

Tüm modelleri kipleri, boyutları ya da çözünürlükleri, parametreleri ve kredi fiyatlarıyla listeler. Herkese açık: anahtar gerekmez.
curl
curl https://vellria.com/v1/models \
  -H "Authorization: Bearer vll_..."
#

Görsel üretimi

#

İstemden görsel üret ya da aynı model kimliğiyle düzenlemek veya yeniden biçimlemek için image_urls içinde referans görseller ekle. Çağrı hemen HTTP 202 ve üretim kimliğiyle yanıtlar; görsel arka planda üretilir, bu yüzden durum completed olana dek GET /v1/generations/{id} ucunu sorgula ve output_url adresinden indir.

Ayrıntılar

Seçilen boyutun kredisi üretim başlarken düşülür, başarısız olursa kendiliğinden iade edilir. Her modelin boyutları, referans sınırları, parametreleri ve fiyatları GET /v1/models ucundan gelir.

POST/v1/generate/image

Görsel üretimi başlatır. Üretim kimliğiyle 202 döner; sonuç için bu kimliği sorgula.

Parametreler

ParametreAçıklama
modelstring · gövdeİsteğe bağlıGET /v1/models içindeki model kimliği.
promptstring · gövdeZorunluÜretilecek şey. En çok modelin max_prompt_length karakteri kadar.
sizestring · gövdeİsteğe bağlıModelin sizes listesinden bir boyut kimliği; gönderilmezse modelin varsayılan boyutu.
image_urlsstring[] · gövdeİsteğe bağlıReferans görsel adresleri: POST /v1/uploads yükleme adresi ya da herhangi bir herkese açık https adresi. Bir modelin kaç tane kabul ettiği ve dosya sınırları reference_images altındadır.
image_urlstring · gövdeİsteğe bağlıTek referans görsel için kısayol.
expectedCostinteger · gövdeİsteğe bağlıİsteğe bağlı fiyat kontrolü: bu isteğin kaç krediye mal olmasını beklediğin. Farklı bir fiyat 409 price_changed döner ve hiçbir şey düşülmez.

Her model ayrıca kendi GET /v1/models girdisinde parameters altında listelenen parametreleri kabul eder (örneğin seed); modelin ilan ettiği aralığın dışındaki değer invalid_<parameter> döner.

curl
curl https://vellria.com/v1/generate/image \
  -H "Authorization: Bearer vll_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "vellria-qwen-3",
    "prompt": "A cat asleep in space, cinematic light",
    "size": "1024*1024",
    "seed": 42
  }'
#

Her modelin boyutları, parametreleri ve fiyatları: Görsel modelleri.

Fiyatlar ve beklenen maliyet

#

İki üretim ucu da isteğe bağlı expectedCost alanını kabul eder: bu isteğin tam olarak kaç krediye mal olmasını beklediğin, GET /v1/models fiyatlarından (model, boyut ya da çözünürlük, süre ve ek referans görseller). İsteğin gerçek ücretinden farklıysa çağrı HTTP 409 ve price_changed koduyla döner, güncel fiyat price.cost alanındadır; kredi düşmez ve üretim başlamaz. Denetimi atlamak için alanı gönderme.

Video üretimi

#

Referans görselleri image_urls ile ekle, modelin onları nasıl kullanacağını reference_mode ile seç. Varsayılan frame (alanı göndermediğinde de bu geçerli) videoyu o görselden başlatır. subject her görseli videoda yer alacak bir kişi, nesne ya da mekân için referans sayar; istem onları image_urls sırasıyla @image1, @image2 diye anar (büyük-küçük harf fark etmez). subject kipi yalnız GET /v1/models girdisinde subject bloğu olan modellerde vardır (diğerlerinde null); bu blok kendi çözünürlüklerini, sürelerini, oranlarını ve parametrelerini, referans sınırını subject.reference_images.max altında, jeton kalıbını subject.reference_token altında verir.

Ayrıntılar

Fiyatı aynı modelin görselden videoya fiyatıdır, referans başına ek ücret yoktur. Hatalar, hepsi HTTP 400 ve kredi düşmeden önce: değer frame ya da subject değilse veya modelin subject kipi yoksa invalid_reference_mode; subject kipinde referans yoksa ya da modelin kabul ettiğinden fazlaysa invalid_image_urls; istem karşılığı olmayan bir @image anıyorsa (örneğin iki görselle @image3) invalid_reference_token. frame kipinde @image1 düz metindir.

POST/v1/generate/video

İstemden, istersen referans görsellerle video üretimi başlatır. Üretim kimliğiyle 202 döner.

Parametreler

ParametreAçıklama
modelstring · gövdeİsteğe bağlıGET /v1/models içindeki model kimliği.
promptstring · gövdeZorunluÜretilecek şey. En çok modelin max_prompt_length karakteri kadar.
durationinteger · gövdeİsteğe bağlıSaniye cinsinden süre, kipin süre aralığı içinde; dışındaki değer 400 döner.
resolutionstring · gövdeİsteğe bağlıKipin resolutions listesinden bir çözünürlük kimliği.
ratiostring · gövdeİsteğe bağlıKipin ratios listesinden bir en-boy oranı kimliği.
reference_modeframe | subject · gövdeİsteğe bağlıframe (varsayılan) videoyu ilk görselden başlatır; subject her görseli, istemin @image1, @image2 diye andığı bir referans sayar.
image_urlsstring[] · gövdeİsteğe bağlıReferans görsel adresleri: POST /v1/uploads yükleme adresi ya da herhangi bir herkese açık https adresi. Bir modelin kaç tane kabul ettiği ve dosya sınırları reference_images altındadır.
image_urlstring · gövdeİsteğe bağlıTek referans görsel için kısayol.
expectedCostinteger · gövdeİsteğe bağlıİsteğe bağlı fiyat kontrolü: bu isteğin kaç krediye mal olmasını beklediğin. Farklı bir fiyat 409 price_changed döner ve hiçbir şey düşülmez.

Her model ayrıca kendi GET /v1/models girdisinde parameters altında listelenen parametreleri kabul eder (örneğin seed); modelin ilan ettiği aralığın dışındaki değer invalid_<parameter> döner.

curl
curl https://vellria.com/v1/generate/video \
  -H "Authorization: Bearer vll_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "vellria-wan-3",
    "prompt": "Ocean waves at sunset, slow dolly forward",
    "duration": 5,
    "resolution": "1080p"
  }'
subject kipi: image_urls istemin andığı kişi ve nesneler
curl
curl https://vellria.com/v1/generate/video \
  -H "Authorization: Bearer vll_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "vellria-wan-3",
    "reference_mode": "subject",
    "image_urls": [
      "https://vellria.com/v1/uploads/{id1}",
      "https://vellria.com/v1/uploads/{id2}"
    ],
    "prompt": "@image1 walks along the beach at sunset holding @image2",
    "duration": 5,
    "resolution": "1080p"
  }'
#

Her modelin boyutları, parametreleri ve fiyatları: Video modelleri.

Sohbet

#

Sansürsüz sohbet ve roleplay: karakter canlandırın, birlikte hikâye yazın ya da sadece sohbet edin; görsel paylaşın, o da anlasın. 1M token başına: giriş 50 kredi ($0,50), çıkış 200 kredi ($2,00). OpenAI uyumludur: herhangi bir OpenAI SDK'sını vll_ anahtarınızla Vellria taban adresine yönlendirin. Her yanıt token başına kredinizden ücretlendirilir.

Ayrıntılar

1M token başına: giriş 50 kredi ($0,50) · önbellekten giriş 5 kredi ($0,05) · çıkış 200 kredi ($2,00).

  • Yanıtlar filtresizdir: Vellria bu uca içerik denetimi eklemez; kendi son kullanıcılarınızı denetlemek sizin sorumluluğunuzdadır. Mesajlarınızın önüne tek satırlık bir kimlik talimatı eklenir; token'ları ücretlendirilmez ve usage'a sayılmaz.
  • Görseller: user mesajına image_url parçaları ekleyin; mesaj başına en çok 4, istek başına en çok 8. Görseli önce POST /v1/uploads ile yükleyin ve dönen adresi verin; data URL data_url_not_supported ile reddedilir.
  • max_tokens varsayılan olarak 1024, en çok 4096. Akıl yürütme (reasoning, thinking) alanları yok sayılır ve yanıtlar hiçbir zaman akıl yürütme içermez.
  • stream: true ile yanıt OpenAI parça biçiminde sunucu olayları (data: satırları) olarak gelir ve data: [DONE] ile biter. Ondan önceki parçanın choices alanı boştur; usage ve ücreti taşır. Akış başladıktan sonraki hata data: {"error": …} olayı olarak gelir; metin gönderilmişse o metin ücretlenir (usage parçası hatadan hemen önce gelir), yoksa ücret alınmaz.
  • Her yanıt OpenAI usage alanının yanında credits_charged (kesirli kredi), cost_usd ve credits_debited (bakiyeden şimdi düşen tam kredi; kesirler hesabınızda birikir) taşır. Reddedilen, başarısız ya da boş yanıt ücretlendirilmez; iptal ettiğiniz akış o ana kadar üretilen token kadar ücretlendirilir.
  • İstek başlamadan bakiye olası en uzun yanıtı karşılamalıdır (yoksa 402 insufficient_credits). Dakikadaki istek sayısı ve aynı anda süren istekler hesap başına sınırlıdır (429 rate_limit_exceeded).
javascript
import OpenAI from "openai"

const client = new OpenAI({
  apiKey: "vll_...",
  baseURL: "https://vellria.com/v1",
})

const stream = await client.chat.completions.create({
  model: "vellria-uncensored-chat",
  messages: [{ role: "user", content: "Bir hikâyeye başlayalım." }],
  stream: true,
})
for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "")
}

POST/v1/chat/completions

Bir sohbet gönderin, modelin yanıtını tek parça ya da akışla alın. OpenAI uyumludur; token başına ücretlendirilir.

Parametreler

ParametreAçıklama
modelstring · gövdeZorunluGET /v1/models yanıtının text grubundaki sohbet modeli kimliği.
messagesobject[] · gövdeZorunluSohbet: role (system, user ya da assistant) ve content taşıyan nesneler. content bir metindir; user mesajında text ve image_url parçalarından oluşan bir liste de olabilir; görsel adresleri POST /v1/uploads'tan gelir.
streamboolean · gövdeİsteğe bağlıtrue yanıtı sunucu olayları (SSE) olarak akıtır; false (varsayılan) tek parça döndürür.
max_tokensinteger · gövdeİsteğe bağlıYanıttaki en çok token: verilmezse modelin default_max_tokens değeri, en çok max_output_tokens.
temperaturenumber · gövdeİsteğe bağlıÖrnekleme sıcaklığı, 0 ile 2 arası.
top_pnumber · gövdeİsteğe bağlıÇekirdek örnekleme, 0'dan büyük ve en çok 1.
curl
curl https://vellria.com/v1/chat/completions \
  -H "Authorization: Bearer vll_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "vellria-uncensored-chat",
    "messages": [
      {"role": "system", "content": "Sen Mira'\''sın, alaycı bir uzay korsanı. Karakterden çıkma."},
      {"role": "user", "content": "Mira, bu gece nereye gidiyoruz?"}
    ],
    "max_tokens": 512
  }'
curl
curl -N https://vellria.com/v1/chat/completions \
  -H "Authorization: Bearer vll_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "vellria-uncensored-chat",
    "stream": true,
    "messages": [
      {"role": "user", "content": [
        {"type": "text", "text": "Bu karakteri anlat ve ona bir açılış cümlesi yaz."},
        {"type": "image_url", "image_url": {"url": "<upload_url>"}}
      ]}
    ]
  }'
#

Görsel yükleme

#

Referans görselleri kendin barındırmak zorunda değilsin: dosyayı bu uca ham gövde olarak gönder, herkese açık bir adres al ve o adresi image_urls içinde kullan. Content-Type başlığı zorunludur ve gövdeyle eşleşmelidir; kabul edilen türler image/jpeg, image/png, image/webp, image/bmp ve image/gif, dosya başına 20 MB sınırıyla.

Ayrıntılar

Referans olarak kullanılan görsel en fazla 20 MB'lık durağan bir JPEG, PNG, GIF ya da WebP olmalı, saydam alan taşımamalı ve seçilen modelin ilan ettiği dosya sınırları içinde olmalıdır: `GET /v1/models` bunları model başına `reference_images.limits` altında döner (bayt, piksel cinsinden kenar ve megapiksel). Sınırların dışındaki bir referans, hiç kredi harcanmadan HTTP 400 ve `image_unreadable` ile reddedilir; sebep `too_small` ya da `too_large` olur. EXIF gibi üst veri dosya saklanırken silinir. Adres tahmin edilemez bir kimlik taşır ve hiçbir üretimde kullanılmazsa yüklemeden 24 saat sonra silinir (yanıttaki expires_at alanı); bir üretimde referans olarak kullanıldıysa yüklemeden sonra 48 saat saklanır, üretilen dosyalardan çok daha kısa; süresi dolduğunda uç HTTP 410 ve content_expired döner. Bir üretimin kendi dosya adresi (/v1/generations/{id}/file) kimlik doğrulaması ister ve referans olarak kullanılamaz: üretim uçları onu kredi düşmeden HTTP 400 ve reference_not_public koduyla reddeder. Bunun yerine dosyayı bu uca yükle ya da bir görsel üretimini POST /v1/generations/{id}/reference ile herkese açık bir referans adresine çevir. Referans görseller içerik taramasından geçmez: hiçbir görsel, gösterdiği kişi ya da içerik yüzünden reddedilmez; bu yolda image_blocked reti yoktur. Biz referansı yalnız dosyanın kendisi okunamadığında reddederiz: okunamayan görsel HTTP 400 ve image_unreadable döner; sebep buysa reason animated, transparent too_small ya da too_large taşır. Modelin kendisi işleyemediği bir referans görseli yine de reddedebilir; o üretim error_code reference_rejected ile başarısız olur ve kredisi otomatik iade edilir. Referans hazırlanmazsa istek HTTP 503 ve reference_unavailable döner, kredi düşülmez. API anahtarıyla gönderilen prompt modele gönderildiği gibi gider; yalnız reşit olmayanların cinsel istismarını içeren istekler HTTP 400 ve content_blocked koduyla reddedilir. Her referans önce bir yükleme olarak saklanır (dış adresle verilen görsel üst verisi silinerek kopyalanır) ve sağlayıcı aynı sabitlenmiş adresi çeker; yani sağlayıcıya tam olarak saklanan dosya gider.

POST/v1/uploads

Referans görseli ham gövde olarak yükler ve image_urls içinde kullanacağın herkese açık adresi döner.

Parametreler

ParametreAçıklama
Content-Typeimage/* · başlıkZorunluGövdenin görsel türü: image/jpeg, image/png, image/webp, image/bmp ya da image/gif.
bodybinary · gövdeZorunluHam görsel dosyası, en çok 20 MB.
curl
curl https://vellria.com/v1/uploads \
  -H "Authorization: Bearer vll_..." \
  -H "Content-Type: image/png" \
  --data-binary @reference.png
#

GET/v1/uploads/{id}

Yüklenmiş görseli getirir. Herkese açık: anahtar gerekmez, tahmin edilemez kimlik erişimin kendisidir.

Parametreler

ParametreAçıklama
idstring · yolZorunluYükleme kimliği.
curl
curl -o reference.png https://vellria.com/v1/uploads/{id}
#

DELETE/v1/uploads/{id}

Hiçbir üretimde kullanılmamış yüklemeyi siler. Yalnız sahibi; 204 döner. Kullanılmış yükleme 409 upload_in_use alır ve süresi dolunca kendiliğinden silinir.

Parametreler

ParametreAçıklama
idstring · yolZorunluYükleme kimliği.
curl
curl -X DELETE https://vellria.com/v1/uploads/{id} \
  -H "Authorization: Bearer vll_..."
#

POST/v1/generations/{id}/reference

Tamamlanmış bir görsel üretimini, image_urls içinde verebileceğin herkese açık bir referans yüklemesine çevirir.

Parametreler

ParametreAçıklama
idstring · yolZorunluÜretim kimliği.
curl
curl -X POST https://vellria.com/v1/generations/{id}/reference \
  -H "Authorization: Bearer vll_..."
#

Üretim durumunu sorgula

#

Üretimler eşzamansız çalışır; durum queued → processing → completed (kuyrukta → işleniyor → tamamlandı) sırasını izler. Üretim başarısız olduğunda kredi kendiliğinden iade edilir.

Ayrıntılar

GET /v1/generations listesi yalnız tamamlanmış ve süren üretimleri gösterir: başarısız üretim listede ve total sayısında yer almaz, GET /v1/generations/{id} ise onu 30 gün error_code ile döndürmeye devam eder; sonra başarısız kayıt silinir ve GET /v1/generations/{id} ile dosya ucu HTTP 404 ve not_found kodu döner. Listeyi ?status=failed ile süzmek 400 döner; başarısız üretim GET /v1/billing/history yanıtının üretim yarısında (generations_total dahil) da yer almaz. Henüz bildirilmemiş başarısızlıkları GET /v1/generations/failures listeler: count, refunded_cents (gerçekten iade edilen kredi, iade yapılmadıysa 0), until ve data'da en yeni en çok 5 kayıt. POST /v1/generations/failures/seen ile görüldü işaretlenir: ya ids (1-50 üretim kimliği) ya da until (o ana kadarki bütün başarısızlıklar) gönderilir; başka hesabın kimlikleri yok sayılır ve bir başarısızlık hangi cihazda olursa olsun yalnız bir kez bildirilir.

GET/v1/generations/{id}

Tek bir üretimi okur: durumu, tamamlandığında output_url, başarısız olduğunda error_code.

Parametreler

ParametreAçıklama
idstring · yolZorunluÜretim kimliği.
curl
curl https://vellria.com/v1/generations/{id} \
  -H "Authorization: Bearer vll_..."
#

GET/v1/generations

Üretimlerini sayfalı ve süzülebilir olarak listeler. Başarısız üretimler listede yer almaz.

Parametreler

ParametreAçıklama
limitinteger · sorguİsteğe bağlıSayfa boyutu, 1-50 (varsayılan 20).
offsetinteger · sorguİsteğe bağlıAtlanacak satır sayısı.
typeimage | video · sorguİsteğe bağlıimage ya da video.
statusstring · sorguİsteğe bağlıqueued, processing ya da completed; failed 400 döner.
modelstring · sorguİsteğe bağlıYalnız bu model kimliğiyle yapılmış üretimler.
favoritesstring · sorguİsteğe bağlı1 ya da true: yalnız favoriler.
availablestring · sorguİsteğe bağlı1 ya da true: yalnız dosyası hâlâ saklanan üretimler; süresi dolmuş ya da silinmiş dosyalar data ve total dışında kalır.
qstring · sorguİsteğe bağlıİstemde ve modelde ara.
curl
curl "https://vellria.com/v1/generations?type=image" \
  -H "Authorization: Bearer vll_..."
#

GET/v1/generations/{id}/file

Üretilen dosyayı indirir. Anahtarını ister, bu yüzden referans adresi olarak kullanılamaz.

Parametreler

ParametreAçıklama
idstring · yolZorunluÜretim kimliği.
downloadstring · sorguİsteğe bağlıHerhangi bir değer: dosya ek olarak sunulur.
thumbstring · sorguİsteğe bağlıKüçük resim boyutu, yalnız görseller.
curl
curl -o result.png https://vellria.com/v1/generations/{id}/file \
  -H "Authorization: Bearer vll_..."
#

GET/v1/generations/failures

Henüz bildirilmemiş başarısız üretimler ve bunlar için iade edilen krediler.
curl
curl https://vellria.com/v1/generations/failures \
  -H "Authorization: Bearer vll_..."
#

POST/v1/generations/failures/seen

Başarısızlıkları kimlikle ya da bir zaman damgasına kadar hepsini görüldü işaretler.

Parametreler

ParametreAçıklama
idsstring[] · gövdeİsteğe bağlıGörüldü işaretlenecek 1-50 üretim kimliği.
untilinteger · gövdeİsteğe bağlıUnix milisaniye zaman damgası, GET /v1/generations/failures yanıtındaki until değeri: ona kadarki her başarısızlık işaretlenir.
curl
curl -X POST https://vellria.com/v1/generations/failures/seen \
  -H "Authorization: Bearer vll_..." \
  -H "Content-Type: application/json" \
  -d '{"ids": ["gen_..."]}'
#

Kredi yükleme

#

Krediler barındırılan bir ödeme sayfasından alınır. GET /v1/billing/packages tek bir paket listesi döner; her paketin bir id'si, usd fiyatı ve kredisi vardır, yanında serbest tutar için min_usd ve max_usd gelir.

Ayrıntılar

Bu değerleri kendi tarafına sabit yazma, uçtan oku. POST /v1/billing/create-checkout ya bu listeden bir package_id ya da 30 ile 10000 USD arasında, sente yuvarlanan serbest bir price_amount alır; serbest tutar paketlerle aynı düz oranla krediye çevrilir. İkisi birlikte gelirse package_id kazanır ve fiyatla kredi katalogdan okunur. Tanınmayan package_id HTTP 400 ile invalid_package, aralık dışındaki tutar invalid_amount kodunu döner. Aynı anda en çok beş açık ödeme olabilir; fazlası, biri ödenene, iptal edilene ya da süresi dolana kadar HTTP 429 döner. Yanıt checkout_url taşıyan ödeme kaydıdır: ödeyeni oraya gönder, ödemeyi ödeme ortağımızın güvenli sayfasında USD olarak kartla (Visa ya da Mastercard) yapsın. Ödeme onaylandığında kredi kendiliğinden yazılır; durumu GET /v1/billing/payments/{id} ile yoklayabilirsin. POST /v1/billing/payments/{id}/cancel açık bir ödemeyi iptal edildi olarak işaretler; ödeme yine de tamamlanırsa kredi yazılır. İsteğe bağlı provider alanı ödemeyi alacak sağlayıcıyı seçer; kabul edilen değerler whop (kart), nowpayments (kripto) ve telegram_stars (Telegram Yıldızı). GET /v1/billing/packages checkout'a açık sağlayıcıları providers içinde listeler ve alan gönderilmezse listenin ilki kullanılır. Tanınmayan ya da kapalı sağlayıcı HTTP 400 ve invalid_provider kodu döner; boş providers listesi ödemenin şu anda kapalı olduğu anlamına gelir. Her paket ayrıca onu alamayan sağlayıcıları excluded_providers içinde listeler; örneğin paket Telegram Yıldızı fatura sınırının üstündeyse telegram_stars. O paket için dışlanmış bir sağlayıcıyla açılan checkout HTTP 400 ve package_unavailable_for_provider kodu döner, ödeme açılmaz. GET /v1/billing/balance harcanabilir toplamı credits alanında döner ve onu kovalara ayırır: süresi dolmayan permanent_credits, subscription_expires_at anında (milisaniye cinsinden zaman damgası; etkin abonelik kredisi yoksa null) yanan subscription_credits ve gift_expires_at anında (etkin hediye yoksa null) yanan, kayıtta bir kez verilen hediye kredisi gift_credits; harcama önce hediye kredisinden, sonra abonelik kredisinden, en son kalıcı krediden yapılır. Aylık abonelik planları GET /v1/billing/packages yanıtında ayrı bir plans listesinde gelir; her planın bir id'si, bir adı, aylık usd fiyatı ve her dönem yazdığı kredisi vardır. POST /v1/billing/subscribe bu listeden bir plan_id alır ve bekleyen aboneliği, ödeyeni göndereceğiniz checkout_url ile birlikte döner. Abonelik yalnız kartla ödenir: whop dışındaki bir provider HTTP 400 ve invalid_provider kodu döner, bilinmeyen plan_id ise invalid_plan döner. Ödenen her dönem kalan abonelik kredisini planın tam miktarıyla değiştirir; kullanılmayan abonelik kredisi sonraki aya devretmez, kalıcı krediye dokunulmaz. Zaten sahip olduğunuz plana yeniden abone olmak HTTP 409 ve already_subscribed döner. Daha büyük plana geçiş hemen başlar ve mevcut planın kalan kredisi yeni döneme eklenir; daha küçük plana geçiş HTTP 409 ve downgrade_requires_cancel döner. GET /v1/billing/subscription etkin aboneliği subscription alanında (plan_id, status, current_period_end ve cancel_at_period_end), açık bir ödeme sayfasını pending alanında döner; olmayan alan null'dır. Aynı anda tek bir ödeme sayfası açık olabilir: aynı plana yeniden abone olmak açık sayfayı döner, başka bir plan seçmek önce açık olanı kapatır, hâlâ açılmakta olan bir sayfa varken HTTP 409 ve checkout_in_progress döner. POST /v1/billing/subscription/cancel yenilemeyi mevcut dönemin sonunda durdurur: abonelik kredisi current_period_end'e kadar kullanılabilir kalır ve iade yapılmaz. Yanıt cancel_at_period_end değeri true olan aboneliktir (yeniden çağırmak aynısını döner); etkin abonelik yoksa HTTP 404 ve subscription_not_found, iptal doğrulanamadıysa HTTP 502 ve subscription_cancel_failed döner; bu durumda yeniden deneyin. plans içindeki her plan ayrıca bir rank taşır: rank'ı büyük olan plan küçük olana göre yükseltmedir; yönü fiyattan değil rank'tan okuyun. GET /v1/billing/history abonelik ödemelerini ayrıca subscription_payments içinde listeler (type subscription, payment_id, subscription_id, plan_id, amount_usd, status paid, refunded ya da mismatch, period_end ve created_at); bu liste subscription_payments_offset ile kendi başına sayfalanır, toplamı subscription_payments_total'dadır.

GET/v1/billing/balance

Harcanabilir kredin; kalıcı, abonelik ve hediye kredisi olarak ayrılır.
curl
curl https://vellria.com/v1/billing/balance \
  -H "Authorization: Bearer vll_..."
#

GET/v1/billing/packages

Kredi paketleri, serbest tutar aralığı, şu an açık ödeme sağlayıcıları ve abonelik planları. Herkese açık.
curl
curl https://vellria.com/v1/billing/packages
#

POST/v1/billing/create-checkout

Bir paket ya da serbest tutar için barındırılan ödeme sayfası açar; ödeyeni checkout_url adresine gönder.

Parametreler

ParametreAçıklama
package_idstring · gövdeİsteğe bağlıGET /v1/billing/packages içindeki bir paket kimliği; price_amount da gönderilirse paket kazanır.
price_amountnumber · gövdeİsteğe bağlımin_usd ile max_usd arasında, sente yuvarlanan serbest USD tutarı.
providerstring · gövdeİsteğe bağlıGET /v1/billing/packages içindeki providers değerlerinden biri; gönderilmezse ilki.
curl
curl https://vellria.com/v1/billing/create-checkout \
  -H "Authorization: Bearer vll_..." \
  -H "Content-Type: application/json" \
  -d '{ "package_id": "pack_30", "provider": "whop" }'
curl
curl https://vellria.com/v1/billing/create-checkout \
  -H "Authorization: Bearer vll_..." \
  -H "Content-Type: application/json" \
  -d '{ "price_amount": 25 }'
#

GET/v1/billing/payments/{id}

Bir ödemeyi ve durumunu okur; ödeme onaylanınca krediler eklenir.

Parametreler

ParametreAçıklama
idstring · yolZorunluÖdeme kimliği.
curl
curl https://vellria.com/v1/billing/payments/{id} \
  -H "Authorization: Bearer vll_..."
#

POST/v1/billing/payments/{id}/cancel

Açık bir ödemeyi iptal edildi olarak işaretler. Yine de ödenirse krediler yine eklenir.

Parametreler

ParametreAçıklama
idstring · yolZorunluÖdeme kimliği.
curl
curl -X POST https://vellria.com/v1/billing/payments/{id}/cancel \
  -H "Authorization: Bearer vll_..."
#

GET/v1/billing/history

Ödemelerin, ücretlendirilen üretimlerin ve abonelik ödemelerin; her liste kendi başına sayfalanır.

Parametreler

ParametreAçıklama
limitinteger · sorguİsteğe bağlıSayfa boyutu, 1-50 (varsayılan 20).
payments_offsetinteger · sorguİsteğe bağlıYalnız ödemeler listesinin offset değeri.
generations_offsetinteger · sorguİsteğe bağlıYalnız üretimler listesinin offset değeri.
subscription_payments_offsetinteger · sorguİsteğe bağlıYalnız abonelik ödemeleri listesinin offset değeri.
curl
curl "https://vellria.com/v1/billing/history?limit=20" \
  -H "Authorization: Bearer vll_..."
#

GET/v1/chat/usage

Sohbet isteklerin, en yeniden: kaynak, token, kesirli kredi ücreti ve dolar karşılığı; ayrıca bakiyenden henüz düşülmemiş birikmiş ücret.

Parametreler

ParametreAçıklama
limitinteger · sorguİsteğe bağlıSayfa boyutu, 1-50 (varsayılan 20).
offsetinteger · sorguİsteğe bağlıAtlanacak satır sayısı.
curl
curl "https://vellria.com/v1/chat/usage?limit=20" \
  -H "Authorization: Bearer vll_..."
#

POST/v1/billing/subscribe

Aylık plan için ödeme sayfası açar. Yalnız kart.

Parametreler

ParametreAçıklama
plan_idstring · gövdeZorunluGET /v1/billing/packages içindeki plans listesinden bir plan kimliği.
providerstring · gövdeİsteğe bağlıYalnız kart (whop); başka her değer invalid_provider döner.
curl
curl https://vellria.com/v1/billing/subscribe \
  -H "Authorization: Bearer vll_..." \
  -H "Content-Type: application/json" \
  -d '{ "plan_id": "starter" }'
#

GET/v1/billing/subscription

Etkin abonelik ve açık abonelik ödeme sayfası, varsa.
curl
curl https://vellria.com/v1/billing/subscription \
  -H "Authorization: Bearer vll_..."
#

POST/v1/billing/subscription/cancel

Yenilemeyi mevcut dönemin sonunda durdurur; iade yapılmaz.
curl
curl -X POST https://vellria.com/v1/billing/subscription/cancel \
  -H "Authorization: Bearer vll_..."
#

Saklama süresi

#

Üretilen dosyalar 7 gün saklanır, sonra sunucudan silinir. Kayıt ödeme geçmişinde kalır ama dosyaya ulaşılamaz olur.

Ayrıntılar

GET /v1/generations yanıtı retention_days alanını, her üretim de expires_at alanını taşır; süresi dolmuş bir dosya istendiğinde HTTP 410 ve content_expired kodu döner. Daha uzun tutman gereken her şeyi indir. Bir üretimi kendin de silebilirsin: DELETE /v1/generations/{id} saklanan dosyayı hemen kaldırır ve purged_at döner. Silinen üretim API'den çıkar: GET /v1/generations listesinde görünmez; GET /v1/generations/{id}, dosya ucu ve ikinci bir DELETE, hiç var olmamış bir kimlikte olduğu gibi HTTP 404 ve not_found kodu döner. Harcanan kredi iade edilmez ve GET /v1/billing/history içinde kalır. Başarısız üretimin kaydı 30 gün sonra silinir; ondan sonra GET /v1/generations/{id} ve dosya ucu HTTP 404 döner. Hâlâ queued ya da processing durumundaki bir üretim henüz silinemez ve HTTP 409 ile generation_in_progress kodunu döner.

DELETE/v1/generations/{id}

Üretimi hemen siler: dosyası kaldırılır, kayıt API'den çıkar (404); harcanan kredi ödeme geçmişinde kalır.

Parametreler

ParametreAçıklama
idstring · yolZorunluÜretim kimliği.
curl
curl -X DELETE https://vellria.com/v1/generations/{id} \
  -H "Authorization: Bearer vll_..."
#

Hesabı kapatma

#

Hesabını kapatmak üretimlerini ve saklanan dosyalarını, yüklediklerini, API anahtarlarını ve destek mesajlarını siler, oturumunu da kapatır. Hesapta kalan kredi kaybolur, iade edilmez.

Ayrıntılar

Ödeme kayıtları fatura kaydı olarak saklanır, yani kapatılmış bir hesap tutmakla yükümlü olduğumuz ödeme geçmişinde görünmeye devam eder. Uç yalnız oturumla kimlik doğrular: konsoldaki Hesap sayfasından çağrılır ve API anahtarı taşıyan istek HTTP 403 ile reddedilir. Ödemesi henüz kesinleşmemiş bir hesap kapatılamaz, HTTP 409 ile pending_payment kodunu döner, çünkü o ödemenin kredisi hâlâ yazılabilir; hesap başka bir hesaba bağlanırken de aynı 409 merge_in_progress ile döner. İki durumda da biraz bekleyip yeniden dene.

DELETE/v1/account

Hesabını kapatır. Yalnız oturumla: konsoldan çağrılır, API anahtarıyla reddedilir.
#

İçerik politikası

#

API anahtarıyla yapılan istekler modele gönderildiği gibi gider: prompt ve negative_prompt sağlayıcıya bayt bayt ulaşır, bir model prompt genişleticisini ayar olarak sunuyorsa o ayar kapalı gönderilir (birkaç video modeli kendi dahili düşünme adımını korur). Uygulamandaki moderasyon senin sorumluluğundadır.

Ayrıntılar
  • API'de tek denetim kalır: reşit olmayanların cinsel istismarını içeren istekler kredi düşülmeden önce HTTP 400 ve content_blocked ile reddedilir (denetim kısa süre erişilemezse Retry-After ile HTTP 503). Başka hiçbir şey taranmaz, referans görseller dahil. Koşullar hayvanlarla cinsel içeriği, kan bağı olan akrabalar arasında ensesti, rızasız cinsel içeriği, aşırı şiddet ve goreyi, gizli kamera içeriğini ve gerçek bir kişiyi rızası olmadan tasvir etmeyi yasaklamaya devam eder; reşit olmayan kuralı ile rızasız içerik kuralı sıfır toleranslıdır ve ihlal hesabı önceden haber verilmeksizin kapatır. Vellria konsolundan gönderilen promptlar ayrıca otomatik taranır.
  • Modeli çalıştıran sağlayıcı kendi güvenlik filtresini uygular ve isteği başladıktan sonra da reddedebilir; üretim başarısız işaretlenir ve başlangıçta düşülen kredi kendiliğinden iade edilir.