{
  "aboutHtml": "<p>Kling VIDEO 3.0 Pro ialah profil profesional model VIDEO 3.0 Kuaishou. Mod Pro yang didokumentasikan menghasilkan video 1080p daripada taklimat teks atau adegan berpandukan imej, dengan klip daripada tiga hingga lima belas saat. Edisi 3.0 menggabungkan audio natif, kawalan konsistensi subjek dan pengarahan berbilang syot, memberikan produksi pendek cara jelas untuk menetapkan rupa, tindakan, liputan kamera dan bunyi.</p><p>Mulakan dengan tindakan utama adegan. Dalam syot berpandukan teks, terangkan subjek, persekitaran, cahaya dan sudut pandangan yang menjadikan tindakan mudah dibaca. Dalam syot berpandukan imej, biarkan imej pembukaan menetapkan rupa dan komposisi, kemudian gunakan teks untuk perubahan mengikut masa. Untuk konsep produk asal, imej yang disediakan boleh menunjukkan objek di atas permukaan studio manakala prompt menerangkan pendedahan perlahan bahan dan bentuknya.</p><p>Pengarahan berbilang syot menawarkan liputan automatik atau urutan tersuai. Penjanaan berbilang syot automatik merancang perubahan pembingkaian dan sudut kamera daripada taklimat; adegan yang sesuai dengan satu pandangan berterusan masih boleh kekal satu syot. Papan cerita tersuai membolehkan anda menentukan kandungan dan tempoh setiap syot. Profil syot tersuai pengeluar membenarkan satu hingga enam syot, maksimum 512 aksara setiap syot dan minimum satu saat bagi setiap satu; jumlah tempohnya mesti sama dengan tempoh keseluruhan klip.</p><p>Untuk naratif pendek, terangkan pandangan pengenalan, tindakan utama dan butiran penutup sebagai syot berasingan. Nyatakan olahan kamera dan apa yang patut diperhatikan khalayak dalam setiap satu. Kekalkan konsistensi rupa subjek berulang dalam taklimat, sambil mengubah tindakan dan liputan dengan sengaja. Medan prompt tunggal dalam rujukan pembuat menerima sehingga 2,500 aksara; urutan tersuai menggunakan penerangan setiap syot yang berasingan.</p><p>Rujukan subjek boleh menyokong adegan berpandukan imej apabila watak, produk atau latar patut kekal dapat dikenali. Pilih pandangan jelas yang menyampaikan ciri yang perlu dikekalkan, dan namakan setiap subjek rujukan secara konsisten. Profil berpandukan imej yang didokumentasikan membenarkan sehingga tiga unsur yang disediakan. Fokuskan peranan rujukan, bukannya menggabungkan beberapa aset yang memberi arahan bercanggah tentang rupa subjek.</p><p>Bingkai mula dan akhir menyediakan sempadan visual bagi peralihan bersyarat imej. Sediakan bingkai yang sepadan tentang subjek dan adegan yang dimaksudkan, kemudian terangkan cara gerakan menghubungkannya. Input bingkai yang disokong pembuat menggunakan imej JPG, JPEG atau PNG, dengan fail tidak melebihi 10 MB, dimensi sekurang-kurangnya 300 piksel dan nisbah aspek imej permulaan antara 1:2.5 dengan 2.5:1. Tugas terkawal bingkai dan papan cerita tersuai mempunyai pengendalian input sendiri, jadi susun bahan untuk aliran kerja terpilih sebelum menulis taklimat penuh.</p><p>Audio natif boleh menggabungkan dialog, suasana dan persembahan visual. Audio dimatikan secara lalai dalam rujukan pembuat dan didayakan untuk adegan audiovisual. Profil bahasa 3.0 merangkumi bahasa Cina, Inggeris, Jepun, Korea dan Sepanyol, bersama pertukaran kod serta olahan dialek atau loghat yang disokong. Panduan pembuat menyatakan dialog yang dimasukkan dalam bahasa lain diterjemahkan ke bahasa Inggeris. Tetapkan setiap baris kepada subjek yang dimaksudkan dan bezakan dialog daripada bunyi latar supaya taklimat audio menjelaskan siapa bercakap dan apa yang mengelilingi tindakan.</p><p>Taklimat asal dua watak boleh mengenal pasti Speaker A dan Speaker B, memberi setiap satu baris ringkas dan menerangkan respons yang kelihatan antara mereka. Pastikan dialog sepadan dengan panjang klip dan kenal pasti penutur apabila pandangan berubah. Arahan suara dan rujukan watak mempunyai tujuan berbeza; taklimat patut menyatakan persembahan yang dimaksudkan, bukannya menganggap imej rujukan mengandungi perkataan yang akan dituturkan.</p><p>VIDEO 3.0 turut memperbaik pengendalian tulisan yang kelihatan dalam adegan berpandukan imej. Jika papan tanda, label atau kapsyen penting, kenal pastinya dalam taklimat dan kekalkan rupa rujukannya. Semak klip lengkap untuk ejaan, kebolehbacaan dan pergerakan tulisan itu, khususnya apabila membawa mesej produk atau kempen. Ciri tulisan model membimbing penjanaan dan bukannya menggantikan pemeriksaan visual akhir.</p><p>Profil Pro ialah 1080p; profil Standard ialah 720p. Mod 4K yang dipilih secara berasingan oleh pengeluar ialah profil output lain, jadi Pro tidak patut dianggap sinonim bagi setiap tetapan resolusi lebih tinggi. Untuk penjanaan berpandukan teks, pilihan pembingkaian yang didokumentasikan merangkumi 16:9, 9:16 dan 1:1. Pilih bingkai untuk penempatan yang dimaksudkan dan pastikan komposisi mudah dibaca di dalamnya.</p><p>Penjanaan berjalan sebagai tugas yang hasil berjayanya mendedahkan artifak video lengkap dan tempoh sebenar. Dokumentasi hasil pembuat menyatakan video janaan dipadam selepas 30 hari, jadi simpan klip lengkap dengan segera. Simpan video bersama taklimat dan aset rujukan, kemudian semak kesinambungan subjek, susunan syot yang diminta, gerak kamera, dialog dan tulisan. Gunakan klip terpilih sebagai konsep sinematik, adegan produk atau naratif pendek, dan buat semakan tertumpu pada bahagian yang tidak mencapai hasil yang dimaksudkan.</p>",
  "aboutText": "Kling VIDEO 3.0 Pro ialah profil profesional model VIDEO 3.0 Kuaishou. Mod Pro yang didokumentasikan menghasilkan video 1080p daripada taklimat teks atau adegan berpandukan imej, dengan klip daripada tiga hingga lima belas saat. Edisi 3.0 menggabungkan audio natif, kawalan konsistensi subjek dan pengarahan berbilang syot, memberikan produksi pendek cara jelas untuk menetapkan rupa, tindakan, liputan kamera dan bunyi.\n\nMulakan dengan tindakan utama adegan. Dalam syot berpandukan teks, terangkan subjek, persekitaran, cahaya dan sudut pandangan yang menjadikan tindakan mudah dibaca. Dalam syot berpandukan imej, biarkan imej pembukaan menetapkan rupa dan komposisi, kemudian gunakan teks untuk perubahan mengikut masa. Untuk konsep produk asal, imej yang disediakan boleh menunjukkan objek di atas permukaan studio manakala prompt menerangkan pendedahan perlahan bahan dan bentuknya.\n\nPengarahan berbilang syot menawarkan liputan automatik atau urutan tersuai. Penjanaan berbilang syot automatik merancang perubahan pembingkaian dan sudut kamera daripada taklimat; adegan yang sesuai dengan satu pandangan berterusan masih boleh kekal satu syot. Papan cerita tersuai membolehkan anda menentukan kandungan dan tempoh setiap syot. Profil syot tersuai pengeluar membenarkan satu hingga enam syot, maksimum 512 aksara setiap syot dan minimum satu saat bagi setiap satu; jumlah tempohnya mesti sama dengan tempoh keseluruhan klip.\n\nUntuk naratif pendek, terangkan pandangan pengenalan, tindakan utama dan butiran penutup sebagai syot berasingan. Nyatakan olahan kamera dan apa yang patut diperhatikan khalayak dalam setiap satu. Kekalkan konsistensi rupa subjek berulang dalam taklimat, sambil mengubah tindakan dan liputan dengan sengaja. Medan prompt tunggal dalam rujukan pembuat menerima sehingga 2,500 aksara; urutan tersuai menggunakan penerangan setiap syot yang berasingan.\n\nRujukan subjek boleh menyokong adegan berpandukan imej apabila watak, produk atau latar patut kekal dapat dikenali. Pilih pandangan jelas yang menyampaikan ciri yang perlu dikekalkan, dan namakan setiap subjek rujukan secara konsisten. Profil berpandukan imej yang didokumentasikan membenarkan sehingga tiga unsur yang disediakan. Fokuskan peranan rujukan, bukannya menggabungkan beberapa aset yang memberi arahan bercanggah tentang rupa subjek.\n\nBingkai mula dan akhir menyediakan sempadan visual bagi peralihan bersyarat imej. Sediakan bingkai yang sepadan tentang subjek dan adegan yang dimaksudkan, kemudian terangkan cara gerakan menghubungkannya. Input bingkai yang disokong pembuat menggunakan imej JPG, JPEG atau PNG, dengan fail tidak melebihi 10 MB, dimensi sekurang-kurangnya 300 piksel dan nisbah aspek imej permulaan antara 1:2.5 dengan 2.5:1. Tugas terkawal bingkai dan papan cerita tersuai mempunyai pengendalian input sendiri, jadi susun bahan untuk aliran kerja terpilih sebelum menulis taklimat penuh.\n\nAudio natif boleh menggabungkan dialog, suasana dan persembahan visual. Audio dimatikan secara lalai dalam rujukan pembuat dan didayakan untuk adegan audiovisual. Profil bahasa 3.0 merangkumi bahasa Cina, Inggeris, Jepun, Korea dan Sepanyol, bersama pertukaran kod serta olahan dialek atau loghat yang disokong. Panduan pembuat menyatakan dialog yang dimasukkan dalam bahasa lain diterjemahkan ke bahasa Inggeris. Tetapkan setiap baris kepada subjek yang dimaksudkan dan bezakan dialog daripada bunyi latar supaya taklimat audio menjelaskan siapa bercakap dan apa yang mengelilingi tindakan.\n\nTaklimat asal dua watak boleh mengenal pasti Speaker A dan Speaker B, memberi setiap satu baris ringkas dan menerangkan respons yang kelihatan antara mereka. Pastikan dialog sepadan dengan panjang klip dan kenal pasti penutur apabila pandangan berubah. Arahan suara dan rujukan watak mempunyai tujuan berbeza; taklimat patut menyatakan persembahan yang dimaksudkan, bukannya menganggap imej rujukan mengandungi perkataan yang akan dituturkan.\n\nVIDEO 3.0 turut memperbaik pengendalian tulisan yang kelihatan dalam adegan berpandukan imej. Jika papan tanda, label atau kapsyen penting, kenal pastinya dalam taklimat dan kekalkan rupa rujukannya. Semak klip lengkap untuk ejaan, kebolehbacaan dan pergerakan tulisan itu, khususnya apabila membawa mesej produk atau kempen. Ciri tulisan model membimbing penjanaan dan bukannya menggantikan pemeriksaan visual akhir.\n\nProfil Pro ialah 1080p; profil Standard ialah 720p. Mod 4K yang dipilih secara berasingan oleh pengeluar ialah profil output lain, jadi Pro tidak patut dianggap sinonim bagi setiap tetapan resolusi lebih tinggi. Untuk penjanaan berpandukan teks, pilihan pembingkaian yang didokumentasikan merangkumi 16:9, 9:16 dan 1:1. Pilih bingkai untuk penempatan yang dimaksudkan dan pastikan komposisi mudah dibaca di dalamnya.\n\nPenjanaan berjalan sebagai tugas yang hasil berjayanya mendedahkan artifak video lengkap dan tempoh sebenar. Dokumentasi hasil pembuat menyatakan video janaan dipadam selepas 30 hari, jadi simpan klip lengkap dengan segera. Simpan video bersama taklimat dan aset rujukan, kemudian semak kesinambungan subjek, susunan syot yang diminta, gerak kamera, dialog dan tulisan. Gunakan klip terpilih sebagai konsep sinematik, adegan produk atau naratif pendek, dan buat semakan tertumpu pada bahagian yang tidak mencapai hasil yang dimaksudkan.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "8ee0a3382eec7fcf1dd13149cf25604454f68c4e8e06da2c27c270b67ac12e03",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ms",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Kling: Video v3.0 Pro</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Tutup\">×</button></div><div class=\"idline\"><span>Kuaishou /</span><code>kwaivgi/kling-v3.0-pro</code><button type=\"button\" id=\"copy-id\">Salin ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Bahagian kad model\"><button type=\"button\" data-card-jump=\"overview\">Pengenalan</button><button type=\"button\" data-card-jump=\"methods\">Input &amp; kaedah</button><button type=\"button\" data-card-jump=\"pricing\">Pelan harga</button><button type=\"button\" data-card-jump=\"examples\">Contoh</button><button type=\"button\" data-card-jump=\"results\">Hasil</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Kaedah API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|kwaivgi%2Fkling-v3.0-pro\">Video</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Pengenalan</h3><p class=\"mdesc-full\">Kling VIDEO 3.0 Pro ialah profil video profesional 1080p Kuaishou untuk adegan berpandukan teks dan imej. Ia menggabungkan klip tiga hingga lima belas saat, audio natif, bingkai sempadan berpandukan rujukan serta pengarahan satu atau berbilang syot untuk konsep sinematik dan produksi pendek.</p><dl class=\"card-io\" data-card-io><div><dt>Input yang diterima</dt><dd>Teks · Imej</dd></div><div><dt>Hasil</dt><dd>Video</dd></div></dl><details class=\"card-about\"><summary>Tentang model</summary><p class=\"note-s\" data-model-method-boundary>Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.</p><div class=\"mabout\" id=\"m-about\"><p>Kling VIDEO 3.0 Pro ialah profil profesional model VIDEO 3.0 Kuaishou. Mod Pro yang didokumentasikan menghasilkan video 1080p daripada taklimat teks atau adegan berpandukan imej, dengan klip daripada tiga hingga lima belas saat. Edisi 3.0 menggabungkan audio natif, kawalan konsistensi subjek dan pengarahan berbilang syot, memberikan produksi pendek cara jelas untuk menetapkan rupa, tindakan, liputan kamera dan bunyi.</p><p>Mulakan dengan tindakan utama adegan. Dalam syot berpandukan teks, terangkan subjek, persekitaran, cahaya dan sudut pandangan yang menjadikan tindakan mudah dibaca. Dalam syot berpandukan imej, biarkan imej pembukaan menetapkan rupa dan komposisi, kemudian gunakan teks untuk perubahan mengikut masa. Untuk konsep produk asal, imej yang disediakan boleh menunjukkan objek di atas permukaan studio manakala prompt menerangkan pendedahan perlahan bahan dan bentuknya.</p><p>Pengarahan berbilang syot menawarkan liputan automatik atau urutan tersuai. Penjanaan berbilang syot automatik merancang perubahan pembingkaian dan sudut kamera daripada taklimat; adegan yang sesuai dengan satu pandangan berterusan masih boleh kekal satu syot. Papan cerita tersuai membolehkan anda menentukan kandungan dan tempoh setiap syot. Profil syot tersuai pengeluar membenarkan satu hingga enam syot, maksimum 512 aksara setiap syot dan minimum satu saat bagi setiap satu; jumlah tempohnya mesti sama dengan tempoh keseluruhan klip.</p><p>Untuk naratif pendek, terangkan pandangan pengenalan, tindakan utama dan butiran penutup sebagai syot berasingan. Nyatakan olahan kamera dan apa yang patut diperhatikan khalayak dalam setiap satu. Kekalkan konsistensi rupa subjek berulang dalam taklimat, sambil mengubah tindakan dan liputan dengan sengaja. Medan prompt tunggal dalam rujukan pembuat menerima sehingga 2,500 aksara; urutan tersuai menggunakan penerangan setiap syot yang berasingan.</p><p>Rujukan subjek boleh menyokong adegan berpandukan imej apabila watak, produk atau latar patut kekal dapat dikenali. Pilih pandangan jelas yang menyampaikan ciri yang perlu dikekalkan, dan namakan setiap subjek rujukan secara konsisten. Profil berpandukan imej yang didokumentasikan membenarkan sehingga tiga unsur yang disediakan. Fokuskan peranan rujukan, bukannya menggabungkan beberapa aset yang memberi arahan bercanggah tentang rupa subjek.</p><p>Bingkai mula dan akhir menyediakan sempadan visual bagi peralihan bersyarat imej. Sediakan bingkai yang sepadan tentang subjek dan adegan yang dimaksudkan, kemudian terangkan cara gerakan menghubungkannya. Input bingkai yang disokong pembuat menggunakan imej JPG, JPEG atau PNG, dengan fail tidak melebihi 10 MB, dimensi sekurang-kurangnya 300 piksel dan nisbah aspek imej permulaan antara 1:2.5 dengan 2.5:1. Tugas terkawal bingkai dan papan cerita tersuai mempunyai pengendalian input sendiri, jadi susun bahan untuk aliran kerja terpilih sebelum menulis taklimat penuh.</p><p>Audio natif boleh menggabungkan dialog, suasana dan persembahan visual. Audio dimatikan secara lalai dalam rujukan pembuat dan didayakan untuk adegan audiovisual. Profil bahasa 3.0 merangkumi bahasa Cina, Inggeris, Jepun, Korea dan Sepanyol, bersama pertukaran kod serta olahan dialek atau loghat yang disokong. Panduan pembuat menyatakan dialog yang dimasukkan dalam bahasa lain diterjemahkan ke bahasa Inggeris. Tetapkan setiap baris kepada subjek yang dimaksudkan dan bezakan dialog daripada bunyi latar supaya taklimat audio menjelaskan siapa bercakap dan apa yang mengelilingi tindakan.</p><p>Taklimat asal dua watak boleh mengenal pasti Speaker A dan Speaker B, memberi setiap satu baris ringkas dan menerangkan respons yang kelihatan antara mereka. Pastikan dialog sepadan dengan panjang klip dan kenal pasti penutur apabila pandangan berubah. Arahan suara dan rujukan watak mempunyai tujuan berbeza; taklimat patut menyatakan persembahan yang dimaksudkan, bukannya menganggap imej rujukan mengandungi perkataan yang akan dituturkan.</p><p>VIDEO 3.0 turut memperbaik pengendalian tulisan yang kelihatan dalam adegan berpandukan imej. Jika papan tanda, label atau kapsyen penting, kenal pastinya dalam taklimat dan kekalkan rupa rujukannya. Semak klip lengkap untuk ejaan, kebolehbacaan dan pergerakan tulisan itu, khususnya apabila membawa mesej produk atau kempen. Ciri tulisan model membimbing penjanaan dan bukannya menggantikan pemeriksaan visual akhir.</p><p>Profil Pro ialah 1080p; profil Standard ialah 720p. Mod 4K yang dipilih secara berasingan oleh pengeluar ialah profil output lain, jadi Pro tidak patut dianggap sinonim bagi setiap tetapan resolusi lebih tinggi. Untuk penjanaan berpandukan teks, pilihan pembingkaian yang didokumentasikan merangkumi 16:9, 9:16 dan 1:1. Pilih bingkai untuk penempatan yang dimaksudkan dan pastikan komposisi mudah dibaca di dalamnya.</p><p>Penjanaan berjalan sebagai tugas yang hasil berjayanya mendedahkan artifak video lengkap dan tempoh sebenar. Dokumentasi hasil pembuat menyatakan video janaan dipadam selepas 30 hari, jadi simpan klip lengkap dengan segera. Simpan video bersama taklimat dan aset rujukan, kemudian semak kesinambungan subjek, susunan syot yang diminta, gerak kamera, dialog dan tulisan. Gunakan klip terpilih sebagai konsep sinematik, adegan produk atau naratif pendek, dan buat semakan tertumpu pada bahagian yang tidak mencapai hasil yang dimaksudkan.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tersedia di Ailoot · input &amp; kaedah</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Video</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Input</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Output</dt><dd><code>video</code></dd></div><div><dt>Format output</dt><dd>bait MP4 asal; tanpa penormalan atau pengekodan semula</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Medan</th><th>Jenis</th><th>Keperluan</th><th>Nilai &amp; had</th><th>Lalai</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>kwaivgi/kling-v3.0-pro</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>integer</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</div><div>Minimum: 1</div><div>Maksimum: 600</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>720p</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>16:9, 9:16, 1:1</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>boolean</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>false, true</div><div>Syarat: Menggugurkan pilihan ini memilih harga dengan audio. Tetapkan kepada false untuk memilih harga tanpa audio. Semak has_audio dalam hasil untuk mengetahui sama ada trek audio dikembalikan.</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">frame_images</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>array</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Item minimum: 1</div><div>Item maksimum: 2</div><div>Kandungan input: Tatasusunan objek bingkai. Setiap objek mempunyai type=image_url, image_url yang mengandungi url dan frame_type. Gunakan URL imej HTTPS dan tetapkan frame_type kepada first_frame atau last_frame. Setiap peranan bingkai boleh muncul paling banyak sekali.</div><div>Kunci tepat: type, image_url, frame_type</div><div>Syarat: Kunci ini menerangkan setiap objek bingkai; image_url hanya mengandungi url. Gugurkan frame_images untuk permintaan teks sahaja.</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>array</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">size</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>1280x720, 720x1280, 720x720</div><div>Corak: ^[1-9][0-9]*x[1-9][0-9]*$</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">callback_url</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Corak: ^https://</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>object</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Gabungan bahan input</summary><p class=\"note-s\"><b>Teks kepada video</b> · Prompt bertulis. · Diperlukan: model, prompt, duration</p><p class=\"note-s\"><code>Berikan prompt sebagai teks dan tempoh dalam saat bulat. Pilih resolusi yang disokong; tambah nisbah bidang atau gunakan saiz yang disenaraikan.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Jenis: string · kwaivgi/kling-v3.0-pro</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Jenis: string · Bait UTF-8 maksimum: 10,000 · Aksara selain ruang kosong diperlukan: Ya</p><p class=\"note-s\"><b>Imej kepada video</b> · Prompt bertulis dan imej bingkai pertama. · Diperlukan: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>frame_images ialah tatasusunan. Setiap objek bingkai mempunyai type, image_url dan frame_type; image_url mengandungi url. Tetapkan type kepada image_url. Gunakan first_frame dengan last_frame pilihan. Setiap peranan bingkai boleh muncul paling banyak sekali. Berikan URL imej HTTPS awam bagi setiap bingkai. Pilih resolusi yang disokong; tambah nisbah bidang atau gunakan saiz yang disenaraikan.</code></p><p class=\"note-s\">Kunci tepat: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Jenis: string · kwaivgi/kling-v3.0-pro</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Jenis: string · Bait UTF-8 maksimum: 10,000 · Aksara selain ruang kosong diperlukan: Ya</p></details><details class=\"note-s\" data-method-contract><summary>Parameter kaedah dan kitar hayat</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Kontrak</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>model, prompt, duration</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>text, image</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>additional_properties</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>resolution, aspect_ratio, generate_audio, frame_images, input_references, size, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>Kitar hayat: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Pelan harga</h3><div class=\"card-result-process\" data-billing-basis><h5>Cara caj akhir dikira</h5><p class=\"note-s\">Kadar yang dipaparkan menganggarkan kos sebelum penjanaan. Caj akhir dikira berdasarkan kos yang direkodkan untuk penjanaan asal. Tempoh output yang diukur dan kuantiti ramalan bukan kuantiti akhir yang boleh dibilkan.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.</p><dl data-price-conditions><dt>Mod pantas</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila mod pantas dipilih</span></dd><dt>Mod flex</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila mod flex dipilih</span></dd><dt>Usaha penaakulan maksimum</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila usaha penaakulan maksimum menggunakan pelarasan default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Anggaran kadar untuk perbandingan</h4><h4>Harga mengikut konfigurasi</h4><p class=\"note-s\">Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasi</th><th>Jadual kadar</th><th>Kuantiti ramalan</th><th>Komponen caj</th><th>Resolusi rujukan</th><th>Mod rujukan</th><th>Audio rujukan</th><th>Unit pengebilan</th><th>Syarat pengebilan</th><th>Caj</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Kadar asas token</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>Kadar asas</td><td data-cell-label=\"Kuantiti ramalan\"><span class=\"card-cell-label\">Kuantiti ramalan</span>—</td><td data-cell-label=\"Komponen caj\"><span class=\"card-cell-label\">Komponen caj</span>—</td><td data-cell-label=\"Resolusi rujukan\"><span class=\"card-cell-label\">Resolusi rujukan</span>—</td><td data-cell-label=\"Mod rujukan\"><span class=\"card-cell-label\">Mod rujukan</span>—</td><td data-cell-label=\"Audio rujukan\"><span class=\"card-cell-label\">Audio rujukan</span>—</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>—</td><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>—</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Input · Token input · Anggaran untuk perbandingan sahaja</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Output · Token output · Anggaran untuk perbandingan sahaja</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Bacaan cache · Anggaran untuk perbandingan sahaja</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Penulisan cache · Anggaran untuk perbandingan sahaja</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Penulisan cache, 1 jam · Anggaran untuk perbandingan sahaja</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Output video · kadar rujukan</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>—</td><td data-cell-label=\"Kuantiti ramalan\"><span class=\"card-cell-label\">Kuantiti ramalan</span>—</td><td data-cell-label=\"Komponen caj\"><span class=\"card-cell-label\">Komponen caj</span><code>reference_output_rate</code></td><td data-cell-label=\"Resolusi rujukan\"><span class=\"card-cell-label\">Resolusi rujukan</span>—</td><td data-cell-label=\"Mod rujukan\"><span class=\"card-cell-label\">Mod rujukan</span>—</td><td data-cell-label=\"Audio rujukan\"><span class=\"card-cell-label\">Audio rujukan</span>—</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>bagi setiap saat keluaran</td><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>—</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Kadar rujukan sesaat video keluaran · Anggaran untuk perbandingan sahaja</span> <b>$0.224</b> <span class=\"price-unit\">bagi setiap saat keluaran</span></div></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Harga video</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>—</td><td data-cell-label=\"Kuantiti ramalan\"><span class=\"card-cell-label\">Kuantiti ramalan</span>—</td><td data-cell-label=\"Komponen caj\"><span class=\"card-cell-label\">Komponen caj</span>—</td><td data-cell-label=\"Resolusi rujukan\"><span class=\"card-cell-label\">Resolusi rujukan</span>—</td><td data-cell-label=\"Mod rujukan\"><span class=\"card-cell-label\">Mod rujukan</span>—</td><td data-cell-label=\"Audio rujukan\"><span class=\"card-cell-label\">Audio rujukan</span>—</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>bagi setiap saat video</td><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>tetapan audio: with_audio</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Harga video · Anggaran untuk perbandingan sahaja</span> <b>$0.336</b> <span class=\"price-unit\">bagi setiap saat video</span></div></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Imej kepada video (imej bingkai) · 1080p · kadar rujukan</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>—</td><td data-cell-label=\"Kuantiti ramalan\"><span class=\"card-cell-label\">Kuantiti ramalan</span>—</td><td data-cell-label=\"Komponen caj\"><span class=\"card-cell-label\">Komponen caj</span><code>reference_output_rate</code></td><td data-cell-label=\"Resolusi rujukan\"><span class=\"card-cell-label\">Resolusi rujukan</span>1080p</td><td data-cell-label=\"Mod rujukan\"><span class=\"card-cell-label\">Mod rujukan</span>Imej kepada video (imej bingkai)</td><td data-cell-label=\"Audio rujukan\"><span class=\"card-cell-label\">Audio rujukan</span>Tanpa audio</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>bagi setiap saat keluaran</td><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>—</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Kadar rujukan sesaat video keluaran · Anggaran untuk perbandingan sahaja</span> <b>$0.224</b> <span class=\"price-unit\">bagi setiap saat keluaran</span></div></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Harga video</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>—</td><td data-cell-label=\"Kuantiti ramalan\"><span class=\"card-cell-label\">Kuantiti ramalan</span>—</td><td data-cell-label=\"Komponen caj\"><span class=\"card-cell-label\">Komponen caj</span>—</td><td data-cell-label=\"Resolusi rujukan\"><span class=\"card-cell-label\">Resolusi rujukan</span>—</td><td data-cell-label=\"Mod rujukan\"><span class=\"card-cell-label\">Mod rujukan</span>—</td><td data-cell-label=\"Audio rujukan\"><span class=\"card-cell-label\">Audio rujukan</span>—</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>bagi setiap saat video</td><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>mod penjanaan: image_to_video; resolusi: 720p</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Harga video · Anggaran untuk perbandingan sahaja</span> <b>$0.224</b> <span class=\"price-unit\">bagi setiap saat video</span></div></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Teks kepada video · 1080p · kadar rujukan</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>—</td><td data-cell-label=\"Kuantiti ramalan\"><span class=\"card-cell-label\">Kuantiti ramalan</span>—</td><td data-cell-label=\"Komponen caj\"><span class=\"card-cell-label\">Komponen caj</span><code>reference_output_rate</code></td><td data-cell-label=\"Resolusi rujukan\"><span class=\"card-cell-label\">Resolusi rujukan</span>1080p</td><td data-cell-label=\"Mod rujukan\"><span class=\"card-cell-label\">Mod rujukan</span>Teks kepada video</td><td data-cell-label=\"Audio rujukan\"><span class=\"card-cell-label\">Audio rujukan</span>Tanpa audio</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>bagi setiap saat keluaran</td><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>—</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Kadar rujukan sesaat video keluaran · Anggaran untuk perbandingan sahaja</span> <b>$0.224</b> <span class=\"price-unit\">bagi setiap saat keluaran</span></div></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Teks kepada video · 480p · kadar rujukan</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>—</td><td data-cell-label=\"Kuantiti ramalan\"><span class=\"card-cell-label\">Kuantiti ramalan</span>—</td><td data-cell-label=\"Komponen caj\"><span class=\"card-cell-label\">Komponen caj</span><code>reference_output_rate</code></td><td data-cell-label=\"Resolusi rujukan\"><span class=\"card-cell-label\">Resolusi rujukan</span>480p</td><td data-cell-label=\"Mod rujukan\"><span class=\"card-cell-label\">Mod rujukan</span>Teks kepada video</td><td data-cell-label=\"Audio rujukan\"><span class=\"card-cell-label\">Audio rujukan</span>Tanpa audio</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>bagi setiap saat keluaran</td><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>—</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Kadar rujukan sesaat video keluaran · Anggaran untuk perbandingan sahaja</span> <b>$0.224</b> <span class=\"price-unit\">bagi setiap saat keluaran</span></div></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Harga video</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>—</td><td data-cell-label=\"Kuantiti ramalan\"><span class=\"card-cell-label\">Kuantiti ramalan</span>—</td><td data-cell-label=\"Komponen caj\"><span class=\"card-cell-label\">Komponen caj</span>—</td><td data-cell-label=\"Resolusi rujukan\"><span class=\"card-cell-label\">Resolusi rujukan</span>—</td><td data-cell-label=\"Mod rujukan\"><span class=\"card-cell-label\">Mod rujukan</span>—</td><td data-cell-label=\"Audio rujukan\"><span class=\"card-cell-label\">Audio rujukan</span>—</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>bagi setiap saat video</td><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>mod penjanaan: text_to_video; resolusi: 720p</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Harga video · Anggaran untuk perbandingan sahaja</span> <b>$0.224</b> <span class=\"price-unit\">bagi setiap saat video</span></div></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Anggaran kos penjanaan</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>—</td><td data-cell-label=\"Kuantiti ramalan\"><span class=\"card-cell-label\">Kuantiti ramalan</span>anggaran untuk satu penjanaan</td><td data-cell-label=\"Komponen caj\"><span class=\"card-cell-label\">Komponen caj</span>—</td><td data-cell-label=\"Resolusi rujukan\"><span class=\"card-cell-label\">Resolusi rujukan</span>—</td><td data-cell-label=\"Mod rujukan\"><span class=\"card-cell-label\">Mod rujukan</span>—</td><td data-cell-label=\"Audio rujukan\"><span class=\"card-cell-label\">Audio rujukan</span>—</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>—</td><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>—</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Anggaran kos penjanaan · Anggaran untuk perbandingan sahaja</span> <b>$0.672</b> <span class=\"price-unit\">anggaran sebelum penjanaan</span></div><p class=\"note-s\">Anggaran ini bukan caj tambahan atau kadar tetap bagi penjanaan yang telah selesai.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. <a href=\"/docs/ms/billing/reserve/\">Cara rizab dan penyelesaian caj berfungsi →</a></p><div data-declared-reference-pricing><h4>Butiran tarif rujukan</h4><p class=\"note-s\">Jadual rujukan peringkat model tidak mengubah pemilihan kaedah, sebut harga atau caj. Caj aktif menggunakan kadar kaedah Ailoot yang dipilih.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Rujukan harga konfigurasi video</summary><h4>Harga mengikut konfigurasi</h4><p class=\"note-s\">Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasi</th><th>Syarat pengebilan</th><th>Caj</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Harga video</th><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>Tiada syarat tambahan dinyatakan dalam kunci harga ini.</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Harga video</span> <b>$0.224</b> <span class=\"price-unit\">bagi setiap saat video</span></div><p class=\"note-s\">Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.</p></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Harga video</th><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>tetapan audio: with_audio</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Harga video</span> <b>$0.336</b> <span class=\"price-unit\">bagi setiap saat video</span></div><p class=\"note-s\">Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.</p></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Harga video</th><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>mod penjanaan: text_to_video; resolusi: 480p</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Harga video</span> <b>$0.224</b> <span class=\"price-unit\">bagi setiap saat video</span></div><p class=\"note-s\">Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.</p></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Harga video</th><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>mod penjanaan: text_to_video; resolusi: 720p</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Harga video</span> <b>$0.224</b> <span class=\"price-unit\">bagi setiap saat video</span></div><p class=\"note-s\">Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.</p></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Harga video</th><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>mod penjanaan: image_to_video; resolusi: 720p</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Harga video</span> <b>$0.224</b> <span class=\"price-unit\">bagi setiap saat video</span></div><p class=\"note-s\">Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.</p></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Harga video</th><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>mod penjanaan: text_to_video; resolusi: 1080p</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Harga video</span> <b>$0.224</b> <span class=\"price-unit\">bagi setiap saat video</span></div><p class=\"note-s\">Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.</p></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Harga video</th><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>mod penjanaan: image_to_video; resolusi: 1080p</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Harga video</span> <b>$0.224</b> <span class=\"price-unit\">bagi setiap saat video</span></div><p class=\"note-s\">Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Contoh permintaan</h3><h4>Ailoot Ultra · Video</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Pilihan kod\"><button class=\"cg-tab\" id=\"model-code-1779-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1779-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · cipta video</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Salin kod\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1779-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1779-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nfrom pathlib import Path\nPath(&#39;request.json&#39;).write_text(&#39;{&quot;aspect_ratio&quot;:&quot;16:9&quot;,&quot;duration&quot;:8,&quot;model&quot;:&quot;kwaivgi/kling-v3.0-pro&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;resolution&quot;:&quot;720p&quot;}&#39;, encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Terima dan simpan hasil</h3><h4>Ailoot Ultra · Video</h4><p class=\"note-s\">pautan kandungan bertandatangan milik anda</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{public_id}</code></li><li><code>GET /v1/videos/{public_id}/content</code></li></ul><h5>Semak status tugas</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Pilihan kod\"><button class=\"cg-tab\" id=\"model-code-1780-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1780-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET status operasi asal</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Salin kod\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1780-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1780-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div><details class=\"card-about\"><summary>Pembacaan kandungan lain</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Pilihan kod\"><button class=\"cg-tab\" id=\"model-code-1781-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1781-panel-0\" aria-selected=\"true\" tabindex=\"0\">Simpan setiap output selesai yang menjadi milik anda</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Salin kod\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1781-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1781-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Simpan semua hasil yang selesai</h5><p class=\"note-s\">Simpan setiap video yang selesai atau fail yang dikembalikan; dapatkan setiap URL aset yang benar-benar dikembalikan.</p><p class=\"note-s\">Simpan setiap output sebenar milik anda berserta metadata ukuran yang dikembalikan.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jika respons asal perlu disemak</h5><p class=\"note-s\">503 result_pending_check + id asal + X-Should-Retry:false; jangan sekali-kali ulang operasi asal</p></div><details class=\"card-about\" data-output-fields><summary>Medan respons</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Medan</th><th>Jenis</th><th>Maksud</th></tr></thead><tbody><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">index</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>integer</td><td data-cell-label=\"Maksud\"><span class=\"card-cell-label\">Maksud</span>Kedudukan video ini dalam senarai output dengan indeks bermula dari sifar.</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">content_url</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string</td><td data-cell-label=\"Maksud\"><span class=\"card-cell-label\">Maksud</span>URL muat turun HTTPS bertandatangan untuk video siap ini.</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string | null</td><td data-cell-label=\"Maksud\"><span class=\"card-cell-label\">Maksud</span>Ringkasan SHA-256 bagi bait video asal; null jika tidak tersedia.</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>integer | null</td><td data-cell-label=\"Maksud\"><span class=\"card-cell-label\">Maksud</span>Saiz fail video asal dalam bait; null jika tidak tersedia.</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>integer | null</td><td data-cell-label=\"Maksud\"><span class=\"card-cell-label\">Maksud</span>Tempoh video yang diukur dalam milisaat; null jika tidak tersedia.</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>integer | null</td><td data-cell-label=\"Maksud\"><span class=\"card-cell-label\">Maksud</span>Lebar video dalam piksel; null jika tidak tersedia.</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>integer | null</td><td data-cell-label=\"Maksud\"><span class=\"card-cell-label\">Maksud</span>Ketinggian video dalam piksel; null jika tidak tersedia.</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string | null</td><td data-cell-label=\"Maksud\"><span class=\"card-cell-label\">Maksud</span>Pengecam codec video; null jika tidak direkodkan.</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>boolean | null</td><td data-cell-label=\"Maksud\"><span class=\"card-cell-label\">Maksud</span>Sama ada video mengandungi trek audio; null jika tidak diukur.</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string | null</td><td data-cell-label=\"Maksud\"><span class=\"card-cell-label\">Maksud</span>Pengecam codec audio; null apabila tiada pengecam direkodkan.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Ralat dan langkah seterusnya</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Respons</th><th>Syarat</th><th>Langkah seterusnya</th></tr></thead><tbody><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Akses video tidak tersedia, atau ID video ini tidak ditemui.</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Semak akses video. Untuk video sedia ada, gunakan ID awam asalnya dan kunci API yang sama.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Kunci API tidak sepadan dengan akaun yang disahkan.</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Semak kunci API dan akses akaun anda sebelum menghantar.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Permintaan tidak dapat dibaca, atau indeks muat turun tidak sah.</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Betulkan badan permintaan. Untuk muat turun, pilih indeks output yang dikembalikan oleh tugas asal.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Harga konfigurasi video yang dipilih tidak dapat ditentukan.</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Pilih konfigurasi video yang disokong dan lengkapkan pilihan wajibnya sebelum menghantar permintaan yang dibetulkan.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Input video atau tugas sambungan asal tidak sah.</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Gunakan input HTTPS yang sah. Untuk sambungan, gunakan ID video awam asal anda yang telah siap dengan kunci API yang sama.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>402 · <code>billing_error</code></th><td data-cell-label=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Baki atau had yang tersedia tidak membenarkan penahanan dana.</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Semak baki dan had yang tersedia sebelum menghantar permintaan baharu.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>503 · <code>server_error</code></th><td data-cell-label=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Pengesahan video, storan atau akses perkhidmatan tidak tersedia buat sementara waktu.</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Tunggu sehingga perkhidmatan tersedia. Jika anda sudah mempunyai ID video, semak tugas asal tersebut dan jangan cipta penjanaan lain.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Hasil video asal dan caj perlu disemak.</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Simpan ID video yang dikembalikan dan semak tugas tersebut. Jangan hantar permintaan penjanaan gantian semasa semakan sedang berjalan.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>503 · <code>owned_result_unavailable</code></th><td data-cell-label=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Muat turun video sedia ada tidak tersedia buat sementara waktu.</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Semak tugas video yang sama kemudian dan muat turun output sedia ada. Penjanaan baharu mencipta operasi berasingan.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Kandungan video belum diterbitkan.</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Semak status tugas asal. Muat turun selepas statusnya melaporkan completed; jika statusnya melaporkan failed, ikuti notis semakan cajnya.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias model</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=kwaivgi%2Fkling-v3.0-pro&amp;route=Ultra&amp;caller=kwaivgi%2Fkling-v3.0-pro&amp;fmt=videos\"><code>kwaivgi/kling-v3.0-pro</code></a></span></p><h4>Alias laluan kaedah</h4><p class=\"note-s\">Gunakan laluan kaedah yang dipaparkan di atas.</p><h4>ID pemanggil berkaitan</h4><p class=\"note-s\"><a href=\"#m=kwaivgi%2Fkling-v3.0-pro&amp;route=Ultra&amp;caller=kwaivgi%2Fkling-v3.0-pro&amp;fmt=videos\"><code>kwaivgi/kling-v3.0-pro</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "kwaivgi/kling-v3.0-pro",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "kwaivgi/kling-v3.0-pro",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|kwaivgi%2Fkling-v3.0-pro",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Kadar yang dipaparkan menganggarkan kos sebelum penjanaan. Caj akhir dikira berdasarkan kos yang direkodkan untuk penjanaan asal. Tempoh output yang diukur dan kuantiti ramalan bukan kuantiti akhir yang boleh dibilkan.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Simpan setiap output sebenar milik anda berserta metadata ukuran yang dikembalikan.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Akses video tidak tersedia, atau ID video ini tidak ditemui.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Semak akses video. Untuk video sedia ada, gunakan ID awam asalnya dan kunci API yang sama.",
                "type": "not_found_error"
              },
              {
                "condition": "Kunci API tidak sepadan dengan akaun yang disahkan.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Semak kunci API dan akses akaun anda sebelum menghantar.",
                "type": "authentication_error"
              },
              {
                "condition": "Permintaan tidak dapat dibaca, atau indeks muat turun tidak sah.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Betulkan badan permintaan. Untuk muat turun, pilih indeks output yang dikembalikan oleh tugas asal.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Harga konfigurasi video yang dipilih tidak dapat ditentukan.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Pilih konfigurasi video yang disokong dan lengkapkan pilihan wajibnya sebelum menghantar permintaan yang dibetulkan.",
                "type": "price_unavailable"
              },
              {
                "condition": "Input video atau tugas sambungan asal tidak sah.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Gunakan input HTTPS yang sah. Untuk sambungan, gunakan ID video awam asal anda yang telah siap dengan kunci API yang sama.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Baki atau had yang tersedia tidak membenarkan penahanan dana.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Semak baki dan had yang tersedia sebelum menghantar permintaan baharu.",
                "type": "billing_error"
              },
              {
                "condition": "Pengesahan video, storan atau akses perkhidmatan tidak tersedia buat sementara waktu.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Tunggu sehingga perkhidmatan tersedia. Jika anda sudah mempunyai ID video, semak tugas asal tersebut dan jangan cipta penjanaan lain.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Hasil video asal dan caj perlu disemak.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Simpan ID video yang dikembalikan dan semak tugas tersebut. Jangan hantar permintaan penjanaan gantian semasa semakan sedang berjalan.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Muat turun video sedia ada tidak tersedia buat sementara waktu.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Semak tugas video yang sama kemudian dan muat turun output sedia ada. Penjanaan baharu mencipta operasi berasingan.",
                "type": "server_error"
              },
              {
                "condition": "Kandungan video belum diterbitkan.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Semak status tugas asal. Muat turun selepas statusnya melaporkan completed; jika statusnya melaporkan failed, ikuti notis semakan cajnya.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + id asal + X-Should-Retry:false; jangan sekali-kali ulang operasi asal"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-v3.0-pro"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Berikan prompt sebagai teks dan tempoh dalam saat bulat. Pilih resolusi yang disokong; tambah nisbah bidang atau gunakan saiz yang disenaraikan.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Prompt bertulis."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-v3.0-pro"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images ialah tatasusunan. Setiap objek bingkai mempunyai type, image_url dan frame_type; image_url mengandungi url. Tetapkan type kepada image_url. Gunakan first_frame dengan last_frame pilihan. Setiap peranan bingkai boleh muncul paling banyak sekali. Berikan URL imej HTTPS awam bagi setiap bingkai. Pilih resolusi yang disokong; tambah nisbah bidang atau gunakan saiz yang disenaraikan.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Prompt bertulis dan imej bingkai pertama."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Kedudukan video ini dalam senarai output dengan indeks bermula dari sifar.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "URL muat turun HTTPS bertandatangan untuk video siap ini.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Ringkasan SHA-256 bagi bait video asal; null jika tidak tersedia.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Saiz fail video asal dalam bait; null jika tidak tersedia.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Tempoh video yang diukur dalam milisaat; null jika tidak tersedia.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Lebar video dalam piksel; null jika tidak tersedia.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Ketinggian video dalam piksel; null jika tidak tersedia.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Pengecam codec video; null jika tidak direkodkan.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Sama ada video mengandungi trek audio; null jika tidak diukur.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Pengecam codec audio; null apabila tiada pengecam direkodkan.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "pautan kandungan bertandatangan milik anda",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "kwaivgi/kling-v3.0-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "kwaivgi/kling-v3.0-pro"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Menggugurkan pilihan ini memilih harga dengan audio. Tetapkan kepada false untuk memilih harga tanpa audio. Semak has_audio dalam hasil untuk mengetahui sama ada trek audio dikembalikan.",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Kunci ini menerangkan setiap objek bingkai; image_url hanya mengandungi url. Gugurkan frame_images untuk permintaan teks sahaja.",
                "content": "Tatasusunan objek bingkai. Setiap objek mempunyai type=image_url, image_url yang mengandungi url dan frame_type. Gunakan URL imej HTTPS dan tetapkan frame_type kepada first_frame atau last_frame. Setiap peranan bingkai boleh muncul paling banyak sekali.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 0,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1280x720",
                  "720x1280",
                  "720x720"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "model": {
                  "const": "kwaivgi/kling-v3.0-pro"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "720p"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Source resolution enum is720p.480p/1080p price keys are inventory entries, not additional admitted resolution controls."
              ]
            },
            "unsupported": [
              "seed",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": true,
              "quoted_unit": "per output second",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Output video · kadar rujukan",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.336",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.336",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "image_to_video_frame_images"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Imej kepada video (imej bingkai) · 1080p · kadar rujukan",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "mod penjanaan: image_to_video; resolusi: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Harga video",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Teks kepada video · 1080p · kadar rujukan",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "480p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Teks kepada video · 480p · kadar rujukan",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_480p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: text_to_video; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Anggaran ini bukan caj tambahan atau kadar tetap bagi penjanaan yang telah selesai.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Anggaran kos penjanaan",
            "units": [
              {
                "amount": "0.672",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.672",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"kwaivgi/kling-v3.0-pro\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": true,
              "quoted_unit": "per output second",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Video output · reference rate",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.336",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.336",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "image_to_video_frame_images"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Image to video (frame images) · 1080p · reference rate",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: image_to_video; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Text to video · 1080p · reference rate",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "480p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Text to video · 480p · reference rate",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_480p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: text_to_video; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.672",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.672",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "kwaivgi/kling-v3.0-pro",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.336",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_with_audio",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.336",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_to_video_duration_seconds_1080p",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_to_video_duration_seconds_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "text_to_video_duration_seconds_1080p",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "text_to_video_duration_seconds_480p",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "text_to_video_duration_seconds_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.672",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.672",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "kwaivgi/kling-v3.0-pro",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "6f6fbb048600b46ee54f99c6446b9b7087e28ebdf5d070f6be8b80772043264e",
    "input_html_sha256": "2c798054d7a2bf206a036a2a58532ec42b960082c814419bfbc8c3d2b26f9459",
    "private_audit_sha256": "e9a05e80101935834a1703b798494bed81516fda57cd89ac023f293a332c6105",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ms/kwaivgi-kling-v3-0-pro/",
    "description": "Kling VIDEO 3.0 Pro ialah profil video profesional 1080p Kuaishou untuk adegan berpandukan teks dan imej. Ia menggabungkan klip tiga hingga lima belas saat, audio natif, bingkai sempadan berpandukan rujukan serta pengarahan satu atau berbilang syot untuk konsep sinematik dan produksi pendek.",
    "locale": "ms",
    "md_url": "https://ailoot.ai/models/ms/kwaivgi-kling-v3-0-pro/index.md",
    "title": "Kling: Video v3.0 Pro — Ailoot",
    "url": "https://ailoot.ai/models/ms/kwaivgi-kling-v3-0-pro/"
  },
  "rawModel": {
    "about": "Kling VIDEO 3.0 Pro ialah profil profesional model VIDEO 3.0 Kuaishou. Mod Pro yang didokumentasikan menghasilkan video 1080p daripada taklimat teks atau adegan berpandukan imej, dengan klip daripada tiga hingga lima belas saat. Edisi 3.0 menggabungkan audio natif, kawalan konsistensi subjek dan pengarahan berbilang syot, memberikan produksi pendek cara jelas untuk menetapkan rupa, tindakan, liputan kamera dan bunyi.\n\nMulakan dengan tindakan utama adegan. Dalam syot berpandukan teks, terangkan subjek, persekitaran, cahaya dan sudut pandangan yang menjadikan tindakan mudah dibaca. Dalam syot berpandukan imej, biarkan imej pembukaan menetapkan rupa dan komposisi, kemudian gunakan teks untuk perubahan mengikut masa. Untuk konsep produk asal, imej yang disediakan boleh menunjukkan objek di atas permukaan studio manakala prompt menerangkan pendedahan perlahan bahan dan bentuknya.\n\nPengarahan berbilang syot menawarkan liputan automatik atau urutan tersuai. Penjanaan berbilang syot automatik merancang perubahan pembingkaian dan sudut kamera daripada taklimat; adegan yang sesuai dengan satu pandangan berterusan masih boleh kekal satu syot. Papan cerita tersuai membolehkan anda menentukan kandungan dan tempoh setiap syot. Profil syot tersuai pengeluar membenarkan satu hingga enam syot, maksimum 512 aksara setiap syot dan minimum satu saat bagi setiap satu; jumlah tempohnya mesti sama dengan tempoh keseluruhan klip.\n\nUntuk naratif pendek, terangkan pandangan pengenalan, tindakan utama dan butiran penutup sebagai syot berasingan. Nyatakan olahan kamera dan apa yang patut diperhatikan khalayak dalam setiap satu. Kekalkan konsistensi rupa subjek berulang dalam taklimat, sambil mengubah tindakan dan liputan dengan sengaja. Medan prompt tunggal dalam rujukan pembuat menerima sehingga 2,500 aksara; urutan tersuai menggunakan penerangan setiap syot yang berasingan.\n\nRujukan subjek boleh menyokong adegan berpandukan imej apabila watak, produk atau latar patut kekal dapat dikenali. Pilih pandangan jelas yang menyampaikan ciri yang perlu dikekalkan, dan namakan setiap subjek rujukan secara konsisten. Profil berpandukan imej yang didokumentasikan membenarkan sehingga tiga unsur yang disediakan. Fokuskan peranan rujukan, bukannya menggabungkan beberapa aset yang memberi arahan bercanggah tentang rupa subjek.\n\nBingkai mula dan akhir menyediakan sempadan visual bagi peralihan bersyarat imej. Sediakan bingkai yang sepadan tentang subjek dan adegan yang dimaksudkan, kemudian terangkan cara gerakan menghubungkannya. Input bingkai yang disokong pembuat menggunakan imej JPG, JPEG atau PNG, dengan fail tidak melebihi 10 MB, dimensi sekurang-kurangnya 300 piksel dan nisbah aspek imej permulaan antara 1:2.5 dengan 2.5:1. Tugas terkawal bingkai dan papan cerita tersuai mempunyai pengendalian input sendiri, jadi susun bahan untuk aliran kerja terpilih sebelum menulis taklimat penuh.\n\nAudio natif boleh menggabungkan dialog, suasana dan persembahan visual. Audio dimatikan secara lalai dalam rujukan pembuat dan didayakan untuk adegan audiovisual. Profil bahasa 3.0 merangkumi bahasa Cina, Inggeris, Jepun, Korea dan Sepanyol, bersama pertukaran kod serta olahan dialek atau loghat yang disokong. Panduan pembuat menyatakan dialog yang dimasukkan dalam bahasa lain diterjemahkan ke bahasa Inggeris. Tetapkan setiap baris kepada subjek yang dimaksudkan dan bezakan dialog daripada bunyi latar supaya taklimat audio menjelaskan siapa bercakap dan apa yang mengelilingi tindakan.\n\nTaklimat asal dua watak boleh mengenal pasti Speaker A dan Speaker B, memberi setiap satu baris ringkas dan menerangkan respons yang kelihatan antara mereka. Pastikan dialog sepadan dengan panjang klip dan kenal pasti penutur apabila pandangan berubah. Arahan suara dan rujukan watak mempunyai tujuan berbeza; taklimat patut menyatakan persembahan yang dimaksudkan, bukannya menganggap imej rujukan mengandungi perkataan yang akan dituturkan.\n\nVIDEO 3.0 turut memperbaik pengendalian tulisan yang kelihatan dalam adegan berpandukan imej. Jika papan tanda, label atau kapsyen penting, kenal pastinya dalam taklimat dan kekalkan rupa rujukannya. Semak klip lengkap untuk ejaan, kebolehbacaan dan pergerakan tulisan itu, khususnya apabila membawa mesej produk atau kempen. Ciri tulisan model membimbing penjanaan dan bukannya menggantikan pemeriksaan visual akhir.\n\nProfil Pro ialah 1080p; profil Standard ialah 720p. Mod 4K yang dipilih secara berasingan oleh pengeluar ialah profil output lain, jadi Pro tidak patut dianggap sinonim bagi setiap tetapan resolusi lebih tinggi. Untuk penjanaan berpandukan teks, pilihan pembingkaian yang didokumentasikan merangkumi 16:9, 9:16 dan 1:1. Pilih bingkai untuk penempatan yang dimaksudkan dan pastikan komposisi mudah dibaca di dalamnya.\n\nPenjanaan berjalan sebagai tugas yang hasil berjayanya mendedahkan artifak video lengkap dan tempoh sebenar. Dokumentasi hasil pembuat menyatakan video janaan dipadam selepas 30 hari, jadi simpan klip lengkap dengan segera. Simpan video bersama taklimat dan aset rujukan, kemudian semak kesinambungan subjek, susunan syot yang diminta, gerak kamera, dialog dan tulisan. Gunakan klip terpilih sebagai konsep sinematik, adegan produk atau naratif pendek, dan buat semakan tertumpu pada bahagian yang tidak mencapai hasil yang dimaksudkan.",
    "alias_of": null,
    "aliases": [],
    "author": "Kuaishou",
    "available": null,
    "canonical_model": "kwaivgi/kling-v3.0-pro",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.672",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.672",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Maklumat lengkap tentang harga konfigurasi terdapat dalam butiran."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "20f7ffd379215c0acecbd890",
        "label": "Rujukan harga konfigurasi video",
        "profiles": [
          {
            "basis": "Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.",
            "dimensions": {
              "conditions": "Tiada syarat tambahan dinyatakan dalam kunci harga ini."
            },
            "label": "Harga video",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.",
            "dimensions": {
              "conditions": "tetapan audio: with_audio"
            },
            "label": "Harga video",
            "units": [
              {
                "amount": "0.336",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.",
            "dimensions": {
              "conditions": "mod penjanaan: text_to_video; resolusi: 480p"
            },
            "label": "Harga video",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.",
            "dimensions": {
              "conditions": "mod penjanaan: text_to_video; resolusi: 720p"
            },
            "label": "Harga video",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.",
            "dimensions": {
              "conditions": "mod penjanaan: image_to_video; resolusi: 720p"
            },
            "label": "Harga video",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.",
            "dimensions": {
              "conditions": "mod penjanaan: text_to_video; resolusi: 1080p"
            },
            "label": "Harga video",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Rujukan harga yang diterbitkan bagi konfigurasi yang ditunjukkan. Caj akhir mengikut konfigurasi sebenar yang dibilkan.",
            "dimensions": {
              "conditions": "mod penjanaan: image_to_video; resolusi: 1080p"
            },
            "label": "Harga video",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "kwaivgi/kling-v3.0-pro",
    "input": [
      "text",
      "image"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Kadar yang dipaparkan menganggarkan kos sebelum penjanaan. Caj akhir dikira berdasarkan kos yang direkodkan untuk penjanaan asal. Tempoh output yang diukur dan kuantiti ramalan bukan kuantiti akhir yang boleh dibilkan.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Simpan setiap output sebenar milik anda berserta metadata ukuran yang dikembalikan.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Akses video tidak tersedia, atau ID video ini tidak ditemui.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Semak akses video. Untuk video sedia ada, gunakan ID awam asalnya dan kunci API yang sama.",
                "type": "not_found_error"
              },
              {
                "condition": "Kunci API tidak sepadan dengan akaun yang disahkan.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Semak kunci API dan akses akaun anda sebelum menghantar.",
                "type": "authentication_error"
              },
              {
                "condition": "Permintaan tidak dapat dibaca, atau indeks muat turun tidak sah.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Betulkan badan permintaan. Untuk muat turun, pilih indeks output yang dikembalikan oleh tugas asal.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Harga konfigurasi video yang dipilih tidak dapat ditentukan.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Pilih konfigurasi video yang disokong dan lengkapkan pilihan wajibnya sebelum menghantar permintaan yang dibetulkan.",
                "type": "price_unavailable"
              },
              {
                "condition": "Input video atau tugas sambungan asal tidak sah.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Gunakan input HTTPS yang sah. Untuk sambungan, gunakan ID video awam asal anda yang telah siap dengan kunci API yang sama.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Baki atau had yang tersedia tidak membenarkan penahanan dana.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Semak baki dan had yang tersedia sebelum menghantar permintaan baharu.",
                "type": "billing_error"
              },
              {
                "condition": "Pengesahan video, storan atau akses perkhidmatan tidak tersedia buat sementara waktu.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Tunggu sehingga perkhidmatan tersedia. Jika anda sudah mempunyai ID video, semak tugas asal tersebut dan jangan cipta penjanaan lain.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Hasil video asal dan caj perlu disemak.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Simpan ID video yang dikembalikan dan semak tugas tersebut. Jangan hantar permintaan penjanaan gantian semasa semakan sedang berjalan.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Muat turun video sedia ada tidak tersedia buat sementara waktu.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Semak tugas video yang sama kemudian dan muat turun output sedia ada. Penjanaan baharu mencipta operasi berasingan.",
                "type": "server_error"
              },
              {
                "condition": "Kandungan video belum diterbitkan.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Semak status tugas asal. Muat turun selepas statusnya melaporkan completed; jika statusnya melaporkan failed, ikuti notis semakan cajnya.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + id asal + X-Should-Retry:false; jangan sekali-kali ulang operasi asal"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-v3.0-pro"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Berikan prompt sebagai teks dan tempoh dalam saat bulat. Pilih resolusi yang disokong; tambah nisbah bidang atau gunakan saiz yang disenaraikan.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Prompt bertulis."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-v3.0-pro"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images ialah tatasusunan. Setiap objek bingkai mempunyai type, image_url dan frame_type; image_url mengandungi url. Tetapkan type kepada image_url. Gunakan first_frame dengan last_frame pilihan. Setiap peranan bingkai boleh muncul paling banyak sekali. Berikan URL imej HTTPS awam bagi setiap bingkai. Pilih resolusi yang disokong; tambah nisbah bidang atau gunakan saiz yang disenaraikan.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Prompt bertulis dan imej bingkai pertama."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Kedudukan video ini dalam senarai output dengan indeks bermula dari sifar.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "URL muat turun HTTPS bertandatangan untuk video siap ini.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Ringkasan SHA-256 bagi bait video asal; null jika tidak tersedia.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Saiz fail video asal dalam bait; null jika tidak tersedia.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Tempoh video yang diukur dalam milisaat; null jika tidak tersedia.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Lebar video dalam piksel; null jika tidak tersedia.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Ketinggian video dalam piksel; null jika tidak tersedia.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Pengecam codec video; null jika tidak direkodkan.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Sama ada video mengandungi trek audio; null jika tidak diukur.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Pengecam codec audio; null apabila tiada pengecam direkodkan.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "pautan kandungan bertandatangan milik anda",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "kwaivgi/kling-v3.0-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "kwaivgi/kling-v3.0-pro"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Menggugurkan pilihan ini memilih harga dengan audio. Tetapkan kepada false untuk memilih harga tanpa audio. Semak has_audio dalam hasil untuk mengetahui sama ada trek audio dikembalikan.",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Kunci ini menerangkan setiap objek bingkai; image_url hanya mengandungi url. Gugurkan frame_images untuk permintaan teks sahaja.",
                "content": "Tatasusunan objek bingkai. Setiap objek mempunyai type=image_url, image_url yang mengandungi url dan frame_type. Gunakan URL imej HTTPS dan tetapkan frame_type kepada first_frame atau last_frame. Setiap peranan bingkai boleh muncul paling banyak sekali.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 0,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1280x720",
                  "720x1280",
                  "720x720"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "model": {
                  "const": "kwaivgi/kling-v3.0-pro"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "720p"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Source resolution enum is720p.480p/1080p price keys are inventory entries, not additional admitted resolution controls."
              ]
            },
            "unsupported": [
              "seed",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": true,
              "quoted_unit": "per output second",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Output video · kadar rujukan",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.336",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.336",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "image_to_video_frame_images"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Imej kepada video (imej bingkai) · 1080p · kadar rujukan",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "mod penjanaan: image_to_video; resolusi: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Harga video",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Teks kepada video · 1080p · kadar rujukan",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "480p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Teks kepada video · 480p · kadar rujukan",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_480p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: text_to_video; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Anggaran ini bukan caj tambahan atau kadar tetap bagi penjanaan yang telah selesai.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Anggaran kos penjanaan",
            "units": [
              {
                "amount": "0.672",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.672",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"kwaivgi/kling-v3.0-pro\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": true,
              "quoted_unit": "per output second",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Video output · reference rate",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.336",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.336",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "image_to_video_frame_images"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Image to video (frame images) · 1080p · reference rate",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: image_to_video; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Text to video · 1080p · reference rate",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "480p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Text to video · 480p · reference rate",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_480p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: text_to_video; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.672",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.672",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "kwaivgi/kling-v3.0-pro",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.336",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_with_audio",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.336",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_to_video_duration_seconds_1080p",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_to_video_duration_seconds_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "text_to_video_duration_seconds_1080p",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "text_to_video_duration_seconds_480p",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "text_to_video_duration_seconds_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.672",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.672",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "kwaivgi/kling-v3.0-pro",
        "request_model_id": "kwaivgi/kling-v3.0-pro",
        "route_label": "Ultra"
      }
    ],
    "name": "Kling: Video v3.0 Pro",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.672,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.672,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [],
          "variant": "duration_seconds"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.224",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [],
              "variant": "duration_seconds"
            },
            "key": "duration_seconds",
            "label": "duration seconds",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "with_audio"
          ],
          "variant": "duration_seconds_with_audio"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.336",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "with_audio"
              ],
              "variant": "duration_seconds_with_audio"
            },
            "key": "duration_seconds_with_audio",
            "label": "duration seconds with audio",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "text_to_video",
            "480p"
          ],
          "variant": "text_to_video_duration_seconds_480p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.224",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "text_to_video",
                "480p"
              ],
              "variant": "text_to_video_duration_seconds_480p"
            },
            "key": "text_to_video_duration_seconds_480p",
            "label": "text to video duration seconds 480p",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "text_to_video",
            "720p"
          ],
          "variant": "text_to_video_duration_seconds_720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.224",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "text_to_video",
                "720p"
              ],
              "variant": "text_to_video_duration_seconds_720p"
            },
            "key": "text_to_video_duration_seconds_720p",
            "label": "text to video duration seconds 720p",
            "profile_index": 3,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "image_to_video",
            "720p"
          ],
          "variant": "image_to_video_duration_seconds_720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.224",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "image_to_video",
                "720p"
              ],
              "variant": "image_to_video_duration_seconds_720p"
            },
            "key": "image_to_video_duration_seconds_720p",
            "label": "image to video duration seconds 720p",
            "profile_index": 4,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "text_to_video",
            "1080p"
          ],
          "variant": "text_to_video_duration_seconds_1080p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.224",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "text_to_video",
                "1080p"
              ],
              "variant": "text_to_video_duration_seconds_1080p"
            },
            "key": "text_to_video_duration_seconds_1080p",
            "label": "text to video duration seconds 1080p",
            "profile_index": 5,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "image_to_video",
            "1080p"
          ],
          "variant": "image_to_video_duration_seconds_1080p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.224",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "image_to_video",
                "1080p"
              ],
              "variant": "image_to_video_duration_seconds_1080p"
            },
            "key": "image_to_video_duration_seconds_1080p",
            "label": "image to video duration seconds 1080p",
            "profile_index": 6,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "output second Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.224",
            "key": "duration_seconds",
            "label": "output second",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.336",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "audio=true",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.336",
            "key": "duration_seconds_with_audio",
            "label": "output second",
            "native_amount_usd_per_unit": "0.336",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=480p · text_to_video Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.224",
            "key": "text_to_video_duration_seconds_480p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=720p · text_to_video",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.224",
            "key": "text_to_video_duration_seconds_720p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=720p · image_to_video",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.224",
            "key": "image_to_video_duration_seconds_720p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=1080p · text_to_video Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.224",
            "key": "text_to_video_duration_seconds_1080p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=1080p · image_to_video Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.224",
            "key": "image_to_video_duration_seconds_1080p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          }
        ]
      }
    ],
    "public_id": "kwaivgi/kling-v3.0-pro",
    "short": "Kling VIDEO 3.0 Pro ialah profil video profesional 1080p Kuaishou untuk adegan berpandukan teks dan imej. Ia menggabungkan klip tiga hingga lima belas saat, audio natif, bingkai sempadan berpandukan rujukan serta pengarahan satu atau berbilang syot untuk konsep sinematik dan produksi pendek."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Kling VIDEO 3.0 Pro ialah profil video profesional 1080p Kuaishou untuk adegan berpandukan teks dan imej. Ia menggabungkan klip tiga hingga lima belas saat, audio natif, bingkai sempadan berpandukan rujukan serta pengarahan satu atau berbilang syot untuk konsep sinematik dan produksi pendek.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "e02360e6cae4b4f6b853e684d98dce2f2561514e3e981fbe0b2cf81c90801735",
    "renderer_sha256": "1dab5ba62521e9568c8b7c82005622cabbf330a075df7cce1f83274a04009460"
  },
  "sourceRevision": "c240444210d1ab81dd421e883b9bf7cff915df2803bbd6d3fce3c46f7fc27333"
}
