2Slides Logo
2Slides API ile 100 Kelime Deck'i Toplu Olarak Nasıl Oluşturulur (2026 İçerik Fabrikası Kılavuzu)
2Slides Team
13 min read

2Slides API ile 100 Kelime Deck'i Toplu Olarak Nasıl Oluşturulur (2026 İçerik Fabrikası Kılavuzu)

Manuel iş akışını doğruladıktan sonra — bir kelime deck'i oluşturup, seslendirip, varlıkları dışa aktardıktan sonra — sonraki darboğaz hacimdir. 12 seviyesi ve 30 haftalık teması olan bir dil okulu yılda 360 deck'e ihtiyaç duyar. Günlük gönderi yapan faceless bir TikTok kanalı 365 deck'e artı en boy oranı varyantlarına ihtiyaç duyar. Bir EdTech şirketindeki içerik ekibi L1/L2 çiftlerine göre segmentlere ayrılmış yüzlerce deck'e ihtiyaç duyar.

360 deck'i elle inşa etmezsiniz. Bir içerik fabrikası inşa edersiniz.

Bu rehber, kelime deck'lerini (ve diğer slayt içeriklerini) 2Slides API ile toplu üretmek için pratik 2026 kılavuzudur. En önemli mimari karar — ve en sık yanlış yapılan — doğru oluşturma endpoint'ini seçmektir.

Önce doğru endpoint'i seçin (çoğu fabrika burada bozulur)

2Slides, API üzerinden iki farklı oluşturma akışı sunar. Sadece biri sonradan seslendirilebilen deck'ler üretir.

EndpointNe ürettiğiSeslendirme mümkün mü?Kredi
POST /api/v1/slides/generate
Fast PPT — şablon güdümlü PPTX. Şablon kütüphanesinden bir
themeId
gerektirir.
❌ Hayır. Seslendirme endpoint'i burada oluşturulan işleri açıkça reddeder.10 / sayfa
POST /api/v1/slides/create-pdf-slides
Nano Banana — metin prompt'undan görsel üretilen slaytlar. Workspace ile aynı motor.✅ Evet10 (planlama) + 100 / slayt (1K/2K) veya 200 / slayt (4K)
POST /api/v1/slides/create-like-this
Nano Banana — referans bir görseli eşleştiren görsel üretilen slaytlar.✅ EvetYukarıdakiyle aynı

Seslendirme ve dışa aktarılabilir sesi olan bir kelime kartı içerik fabrikası için,

create-pdf-slides
(veya referans bir layout'unuz varsa
create-like-this
) kullanın.
/api/v1/slides/generate
kullanmayın — bu Fast PPT endpoint'idir ve buna seslendirme ekleyemezsiniz.

Fabrikanız sadece sessiz PPTX'e ihtiyaç duyuyorsa (ses yok, video yok),

/api/v1/slides/generate
aracılığıyla Fast PPT en ucuz yoldur. Bu kılavuzun geri kalanı seslendirilmiş iş akışını varsayar.

Tek diyagramda mimari

[Source data] [Orchestrator] [2Slides API] [Outputs] │ │ │ │ vocabulary ──prompt──▶ Job queue ──POST──▶ /api/v1/slides/create-pdf-slides ──▶ jobId (UUID) spreadsheet (Cron/script) │ │ │ │ │ │ Poll ──GET──▶ /api/v1/jobs/{jobId} ◀─────────────────────────────┘ every 20-30s status: success │ │ ▼ │ [pages slides PNG · downloadUrl PDF] ▶ POST /api/v1/slides/generate-narration │ (jobId, voice, mode, etc.) — async only Poll ──GET──▶ /api/v1/jobs/{jobId} message: "Voice narration generation in progress" → success ▶ POST /api/v1/slides/download-slides-pages-voices │ (free; returns ZIP) pages/*.png + voices/*.{wav,mp3} + transcript.txt (Optional) compose MP4 client-side with FFmpeg, or use the Workspace UI [LMS / TikTok / newsletter / S3]

Kaynak veri → orkestratör → API → pages + voices ZIP → dağıtım. MP4 kompozisyonu isteğe bağlıdır ve 2026 itibariyle bir public API endpoint'i değildir — bu, tarayıcıda FFmpeg.wasm kullanan bir Workspace UI özelliğidir. API eşdeğeri pages-and-voices ZIP'idir; fabrikada MP4'e ihtiyacınız varsa sunucu tarafında

ffmpeg
ile birleştirebilirsiniz.

Adım 1 — Önce kaynak şemasını tasarlayın

En yüksek kaldıraçlı hareket, herhangi bir API çağrısından önce kaynak veri şemasını tanımlamaktır. Temiz bir şemadan inşa edilen deck'ler tekrarlanabilirdir; ad-hoc prompt'lardan inşa edilenler değildir.

Ölçeklenen bir kelime deck'i kaynak satırı:

deck_id: vocab-b1-travel-2026-w14 source_l1: en # learner's native language target_l2: es # language being learned cefr_level: B1 theme: travel words: - { word: "boarding pass", ipa: "/ˈbɔːrdɪŋ pæs/", pos: noun, l1: "tarjeta de embarque" } - { word: "layover", ipa: "/ˈleɪoʊvər/", pos: noun, l1: "escala" } - { word: "to delay", ipa: "/dɪˈleɪ/", pos: verb, l1: "retrasar" } # ... 27 more generation: endpoint: create-pdf-slides aspect_ratio: "9:16" # vertical for short-form review resolution: "2K" page_count: 30 content_detail: "concise" narration: enabled: true voice: "Puck" # see /tts_sample_voices for the catalog mode: "single" distribution: social: [tiktok, reels, shorts] newsletter: monday-2026-w14

Bu nesne iş birimidir. Aşağı akıştaki her şey onu tüketir.

Kaynak şemasını zaten sahip olduğunuz şeyde inşa edin: teknik olmayan ekipler için Google Sheet, mühendislik ekipleri için bir Postgres tablosu, içerik ekipleri için yapısal alanlara sahip bir CMS. Düz Markdown dosyalarında inşa etmekten kaçının — Markdown insan yazımı için iyidir ancak toplu otomasyon için kötüdür.

Adım 2 — Kimlik doğrulama

API yönetim sayfasından bir API key alın. Format:

sk-2slides-{64-character-hex-string}

Tüm istekler bearer auth kullanır:

Authorization: Bearer sk-2slides-...

Endpoint başına rate limit'ler 2slides.com/api.md adresinde belgelenmiştir. Toplu üretim için:

  • create-pdf-slides
    ve
    create-like-this
    : kuyruğunuzu 429 üzerinde exponential backoff ile concurrency limit'leri etrafında tasarlayın
  • jobs/{id}
    (poll): aşağıdaki polling cadence'ine saygı gösterin — agresif değil, 20-30s
  • download-slides-pages-voices
    : ücretsiz ve daha hızlı, ancak yine de rate limit'li

Adım 3 — Bir Nano Banana oluşturma işi gönderin

Kelime kartları en iyi async modda çalışır (slayt başına görsel üretimi 30 kartlık bir deck için 1-3 dakika sürer).

curl -X POST "https://2slides.com/api/v1/slides/create-pdf-slides" \ -H "Authorization: Bearer sk-2slides-..." \ -H "Content-Type: application/json" \ -d '{ "userInput": "<your deck-shaped prompt — see Step 4>", "responseLanguage": "en", "aspectRatio": "9:16", "resolution": "2K", "page": 30, "contentDetail": "concise", "mode": "async" }'

Yanıt

jobId
(bir UUID) içerir. Tamamlanma için poll yapın:

curl -X GET "https://2slides.com/api/v1/jobs/{jobId}" \ -H "Authorization: Bearer sk-2slides-..."

Polling cadence: her 20-30 saniyede. Daha hızlı poll yapmayın — API belgeleri bunu açıkça belirtir ve agresif polling 429'ların en yaygın nedenidir. Çoğu deck 1-3 dakikada tamamlanır.

status: "success"
olduğunda, iş R2'de saklanan slayt görsellerine ve PDF derlemesi için bir
downloadUrl
'e sahiptir. Slayt görsellerinin kendisi daha sonra sesle birleştireceğiniz şeydir.

Adım 4 — Ölçekte tutunan prompt şablonları oluşturun

Sallantılı bir fabrika ile güvenilir bir fabrika arasındaki en büyük fark prompt şablonlarıdır. Deck başına çalışma zamanında prompt yazmayın. Deck türü başına bir şablon tanımlayın ve değerleri yerine koyun.

Kelime deck'i şablonu (

userInput
):

Generate a {{cefr_level}}-level vocabulary deck for {{source_l1}}-speaking learners of {{target_l2}}. Theme: {{theme}}. Number of cards: {{word_count}}. For each card, output exactly: - Target word (in {{target_l2}}) - Part of speech - IPA transcription - Translation in {{source_l1}} - Two example sentences in natural {{theme}} context, B1 syntax, 8–14 words each Words to include: {{word_list_yaml}} End with a 3-card recap of the most useful 3 words from the deck.

Görsel stil

designStyle
parametresi (özel prompt) ile kontrol edilir veya varsayılana bırakılır ("clean infographic, no photographs, balanced typography"). Prompt'ları git'te sürümlendirilmiş tutun. Bir prompt değiştiğinde, üretilen her deck'le sürümü logla; böylece kalite gerilemelerini prompt değişiklikleriyle ilişkilendirebilirsiniz.

Adım 5 — Seslendirme ekleyin

Oluşturma işi

status: "success"
olduğunda, seslendirmeyi başlatın. Seslendirme yalnızca async olup aynı
jobId
üzerinde çalışır:

curl -X POST "https://2slides.com/api/v1/slides/generate-narration" \ -H "Authorization: Bearer sk-2slides-..." \ -H "Content-Type: application/json" \ -d '{ "jobId": "550e8400-e29b-41d4-a716-446655440000", "mode": "single", "voice": "Puck", "speakerName": "Vocabulary Coach", "contentMode": "concise", "includeIntro": true }'

Sonra mesaj "Voice narration generation in progress" durumundan başarı durumuna geçene kadar aynı

/api/v1/jobs/{jobId}
'i poll yapın.

Kelime kartları için iyi çalışan iki ses pattern'i:

  • Tek bir sesle
    mode: "single"
    — basit kelime + IPA + cümle okuma
  • İki sesle
    mode: "multi"
    — örnek cümleler konuşmacılar arasında bölünür, fiiller ve deyimler için idealdir

Ses kataloğu

/tts_sample_voices/
adresinde yayınlanmıştır. Yaygın seçimler arasında
Puck
,
Aoede
,
Charon
,
Kore
bulunur. Üretimde belirli bir sese sabitlemeden önce desteği en son API belgeleriyle doğrulayın.

Önemli: bu tek endpoint hem ses metnini hem de ses sesini üretir. Ayrı "voice text" ve "voice audio" endpoint'leri çağırmayın — bu adımlar için bağımsız bir public API yoktur. Seslendirme isteğini bir kez yapılandırın ve API her ikisini de yapar.

Adım 6 — Pages ve voices'ı dışa aktarın (ücretsiz)

Seslendirme tamamlandıktan sonra, tüm varlıkları tek bir ZIP'te alın:

curl -X POST "https://2slides.com/api/v1/slides/download-slides-pages-voices" \ -H "Authorization: Bearer sk-2slides-..." \ -H "Content-Type: application/json" \ -d '{ "jobId": "550e8400-e29b-41d4-a716-446655440000" }'

Yanıt, içeren bir ZIP için bir

downloadUrl
(1 saat geçerli) içerir:

pages/ page_01.png page_02.png ... voices/ page_01.wav page_02.wav ... transcript.txt

Bu dışa aktarma ücretsizdir — kredi tüketilmez. ZIP'i indirin ve varlıkları kendi nesne deponuzda saklayın. Önceden imzalanmış URL 1 saat sonra sona erer.

Adım 7 — (İsteğe bağlı) MP4'ü sunucu tarafında birleştirin

2Slides API şu anda bir MP4 kompozisyon endpoint'i sunmaz — MP4 üretimi tarayıcıda FFmpeg.wasm aracılığıyla Workspace UI'da yaşar. Bir içerik fabrikası için, MP4'ü sunucu tarafında

ffmpeg
ile birleştirin:

# For each page, build a clip of (image still) + (voice audio). ffmpeg -loop 1 -i pages/page_01.png -i voices/page_01.wav \ -c:v libx264 -tune stillimage -c:a aac -b:a 192k \ -pix_fmt yuv420p -shortest clips/page_01.mp4 # Concatenate all per-page clips into the final MP4. ffmpeg -f concat -safe 0 -i clip_list.txt -c copy final.mp4

Sayfa başına ses cadence'i seslendirme jeneratörünün ürettiği şeydir — kelime kartları için tipik olarak slayt başına 5-12 saniye. Sonuç, kullanıcının Workspace UI'dan indirdiği aynı MP4'tür, ancak fabrika hattınızda başsız üretilir.

Aynı deck'in dikey (9:16) ve yatay (16:9) varyantlarını istiyorsanız, en temiz yol slayt oluşturma aşamasında farklı en boy oranlarında deck'i iki kez oluşturmaktır (

aspectRatio: "9:16"
vs
"16:9"
). Sonradan FFmpeg kırpması genellikle çirkin sonuçlar verir çünkü slaytlar belirli bir en boy oranı için yerleştirilmiştir.

Adım 8 — Orkestratörü inşa edin

Minimal bir orkestratör beş döngüyü işler:

# Pseudocode while there_is_work(): deck = pull_one_pending_deck_from_source() if not deck: sleep(60); continue # 1. Generate slides via Nano Banana endpoint job = post("/api/v1/slides/create-pdf-slides", body=build_payload(deck)) deck_artifact = poll_until_complete(job.data.jobId) # 2. Narrate (async only) if deck.narration.enabled: post("/api/v1/slides/generate-narration", body={ "jobId": deck_artifact.id, "voice": deck.narration.voice, "mode": deck.narration.mode, }) poll_until_narration_complete(deck_artifact.id) # 3. Export pages + voices ZIP (free) zip_url = post("/api/v1/slides/download-slides-pages-voices", body={"jobId": deck_artifact.id}) # 4. Download and store assets in your object store download_to_s3(zip_url, deck.id) # 5. (Optional) compose MP4 with ffmpeg, then distribute if deck.distribution.social: compose_mp4(deck.id) distribute(deck)

Bunu kuyruğu olan bir worker kutusunda çalıştırın. Günde 100 deck için bir worker yeterlidir. 1.000+ için, küçük bir worker havuzuna yayın — ancak havuzun sadece worker sayısına değil, her API endpoint'inin rate limit'lerine de saygı gösterdiğinden emin olun.

Adım 9 — Dağıtım pattern'leri

Dağıtım katmanı, varlıkları iş değerine dönüştürür:

  • LMS: birleştirilmiş MP4'ü kendi API'leri aracılığıyla Canvas / Moodle / Blackboard / Google Classroom'a yükleyin
  • TikTok / Reels / Shorts: 9:16 MP4'ü bir gönderi aracına (Buffer, Later, yerel zamanlayıcı) sıraya alın, günde bir tane
  • Newsletter: PDF derlemesini (orijinal oluşturma işinin
    downloadUrl
    'inden) haftalık sayıda indirme bağlantısı olarak gömün
  • Satış / lead magnet: PDF'i bir Stan Store / Gumroad sayfasına yükleyin; carousel teaser trafiği yönlendirir

Dağıtımı icat etmeye çalışmayın. Platform-yerel API'leri kullanın ve orkestratörünüzün zamanlayıcınızda bir satır bırakmasına izin verin.

Maliyet matematiği (önce planlanması gereken kısım)

Seslendirilmiş Nano Banana deck'leri için, bazı okuyucuların önceden gördüğü Fast PPT fiyatlandırmasından daha hızlı krediler birikir. 30 kartlık bir deck başına matematik (1K/2K çözünürlük, seslendirmeyle):

  • Planlama: 10 kredi
  • Slayt oluşturma: 30 × 100 = 3,000 kredi
  • Seslendirme (metin + ses): 30 × 210 = 6,300 kredi
  • Pages + voices dışa aktarma: 0 kredi (ücretsiz)
  • Toplam: 30 kartlık seslendirilmiş deck başına ~9,310 kredi

Seslendirme olmadan, aynı deck ~3.010 kredidir. 4K çözünürlükte, slayt oluşturma kısmını ikiye katlayın: 30 × 200 = 6,000 → seslendirmeyle ~12,310 kredi.

100 deck/aylık fabrika için: 100 × 9,310 = ~931,000 kredi/ay. Bir kademe seçmek için fiyatlandırma sayfasıyla karşılaştırın — ve 4K için yalnızca çıktının ondan yararlanan bir bağlama (büyük ekranlar, premium video) gideceği zaman bütçe ayırın. TikTok / Reels inceleme videoları için, 1K veya 2K yeterlidir.

Yangınları önleyen operasyonel pattern'ler

Idempotency

Her deck gönderimi

deck_id
üzerinde idempotent olmalıdır. Worker'ınız batch ortasında çökerse, kuyruğu yeniden başlatmak yinelenen deck'ler üretmemelidir. En temiz pattern: bir veritabanı satırında
(deck_id, status)
saklayın; durumları geçirin (
pending → generating → narrating → exporting → composed → distributed
).

Kalite kapıları

Otomatik dağıtmayın. TikTok veya Canvas'a göndermeden önce, varlık üzerinde makine tarafından okunabilir bir kalite kontrolü çalıştırın:

  • Sayfa sayısı istenen sayıyla eşleşir
  • ZIP, beklenen sayıda
    pages/page_NN.png
    ve
    voices/page_NN.wav
    dosyası içerir
  • Sayfa başına ses süresi 3 ile 15 saniye arasındadır (30 saniyelik bir kart neredeyse her zaman halüsinasyonlu uzun bir script anlamına gelir)
  • transcript.txt
    boş değildir ve hedef kelimeleri içerir

İlk 50 batch için, 10 deck'ten 1'inin manuel spot kontrolünü de yapın. İlk 50 batch, sistemik prompt sorunlarının ortaya çıktığı yerdir.

Versioning

Her varlık şunları saklar: prompt şablonu sürümü, görsel modeli sürümü (

gemini-3-pro-image-preview
vs
gemini-3.1-flash-image-preview
), seslendirme sesi, oluşturma zaman damgası. Model iyileştiğinde veya bir prompt değiştiğinde, yalnızca etkilenen deck'leri yeniden çalıştırabilirsiniz.

Maliyet telemetrisi

Her deck'in bilinen bir kredi maliyeti vardır (yukarıdaki matematiğe bakın). Deck başına tüketilen kredileri izleyin. Deck başına kredi kullanımı beklenmedik şekilde ikiye katlandığında, bir şey değişmiştir (sayfa sayısı kayması, retry'lar, 4K'ya geçiş). Kredi faturası sizi gafil avlamadan önce bulun.

Hata yönetimi

Başarısız bir iş normaldir — ağ kesintisi, model yükü, nadir 5xx. Bir backoff'tan sonra bir kez yeniden deneyin. İki başarısızlıktan sonra, deck'i bir

needs_human
kuyruğuna gönderin. Sonsuz döngü yapmayın.

Build vs buy: API'yi ne zaman kullanmalı

API doğru cevaptır:

  • Haftada >10 deck üretirsiniz
  • Yapısal kaynak verileriniz vardır
  • Sunucu tarafında birleştirip dağıtacağınız seslendirilmiş MP4'lere ihtiyacınız vardır
  • Bir LMS, zamanlayıcı veya CMS ile entegre olursunuz
  • Prompt versioning altında tekrarlanabilirlik istersiniz

API aşırıdır:

  • Haftada 1 deck üretirsiniz ve her seferinde görsel olarak ayarlarsınız
  • Kişisel çalışma için deck inşa eden bir öğrencisiniz (UI daha hızlıdır — ve Workspace UI sizin için MP4 kompozisyonunu da yapar)
  • Ders başına bir deck inşa eden bir öğretmensiniz (Create Slides from File veya Create Slides Like This kullanın ve orkestrasyonu atlayın)

Sıkça Sorulan Sorular

API key'i nereden alırım?

2slides.com/api. Key'ler API yönetim sekmesinde yaşar.

Neden bir
/api/v1/slides/generate
işine seslendirme ekleyemiyorum?

generate
endpoint'i Fast PPT'dir — şablon güdümlü PPTX. Çıktısı tamamlanmış bir .pptx dosyasıdır, seslendirme jeneratörünün okuyabileceği bir slayt-görseli-artı-metin işi değil. Seslendirme jeneratörü açıkça yalnızca yapısal sayfa başına içerikle nano banana slayt işleri üreten
create-pdf-slides
veya
create-like-this
işlerini kabul eder.

MP4'ü doğrudan API'den dışa aktarabilir miyim?

Hayır, 2026 itibariyle değil. MP4 dışa aktarma, FFmpeg.wasm ile istemci tarafında uygulanan bir Workspace UI özelliğidir. API eşdeğeri, slayt görselleri, ses dosyaları ve bir transkriptin ZIP'ini döndüren

download-slides-pages-voices
'dır — bir içerik fabrikası hattında ihtiyaç duyarsanız MP4'ü kendiniz
ffmpeg
ile birleştirirsiniz. Adım 7'ye bakın.

API üretim için hangi dilleri destekliyor?

İspanyolca, Fransızca, Almanca, Arapça, Japonca, Korece, Hintçe, Vietnamca, Rusça, Lehçe, İtalyanca, Portekizce, Endonezce, Tayca, Türkçe ve Çince (Basitleştirilmiş/Geleneksel) dahil olmak üzere 22+ dil.

responseLanguage
aracılığıyla geçirin.

Kredi maliyeti nedir?

Nano Banana deck'leri için: Slayt oluşturma için 10 (planlama) + 1K/2K'da slayt başına 100 (veya 4K'da slayt başına 200), artı seslendirme için sayfa başına 210 (10 metin + 200 ses). Pages + voices dışa aktarma ücretsizdir. 2K'da 30 kartlık seslendirilmiş bir deck ~9,310 kredidir. Fiyatlandırma sayfasına ve yukarıdaki maliyet matematiği bölümüne bakın.

429 rate limit'lerini nasıl yönetirim?

Exponential backoff. 1s'de başlayın, 60s'ye kadar ikiye katlayın. Üç ardışık 429'dan sonra, eşzamanlı worker sayınızı yarıya indirin.

/api/v1/jobs/{id}
'i her 20 saniyeden daha hızlı poll yapmayın — bu 429'ların en yaygın nedenidir.

Zapier / Make / n8n ile entegre edebilir miyim?

Evet — kimlik doğrulamalı HTTP istekleri yapabilen herhangi bir araç 2Slides API'yi yönetebilir. n8n özellikle içerik fabrikaları için popülerdir çünkü polling ve kuyruk pattern'lerini yerel olarak işler.

Üretilen deck'lerin public olarak indekslenmesini nasıl önlerim?

API aracılığıyla üretilen deck'ler varsayılan olarak hesabınıza özeldir. Public paylaşım ayrı bir açık eylemdir.

Aynı deck'in dikey (9:16) ve yatay (16:9) sürümlerini nasıl oluştururum?

Deck'i iki kez oluşturun — bir kez

aspectRatio: "9:16"
ile, bir kez
aspectRatio: "16:9"
ile. Slaytlar oluşturma zamanında en boy oranı başına yerleştirilir, bu nedenle sonradan kırpma nadiren iyi görünür. Evet, bu kredi maliyetini ikiye katlamak anlamına gelir; bu temiz görseller için kasıtlı bir tradeoff'tur.

Sonuç

Bir içerik fabrikası yapısal kaynak verileri + kararlı bir orkestratör + doğru API endpoint'leridir. 2Slides API üçüncü parçadır; ilk ikisinden siz sorumlusunuz. En yaygın fabrika başarısızlığı

/api/v1/slides/generate
(Fast PPT) kullanmak ve sonra onu seslendirmeye çalışmaktır — bu yol kapalıdır. Bunun yerine
create-pdf-slides
veya
create-like-this
kullanın,
generate-narration
ile seslendirin,
download-slides-pages-voices
ile dışa aktarın ve MP4'ü sunucu tarafında
ffmpeg
ile birleştirin.

Aynı iş akışının manuel tarafı için, kelime kartları rehberini ve yapımcı iş akışı rehberini inceleyin. Oradaki UI pattern'leri API ile otomatikleştirdiğiniz pattern'lerin aynısıdır; manuel akışı önce anlamak API entegrasyonunu çok daha hızlı hale getirir.

About 2Slides

Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.

Try For Free