Kredit dan pemakaian
Cara panggilan Direct API ditagih, diselesaikan, dan dikembalikan kreditnya, cara meminta penawaran harga sebuah pekerjaan terlebih dahulu, serta cara membaca pemakaian dan buku besar kunci Anda.
Direct API menagih kredit Morphic dari saldo organisasi Anda, kumpulan kredit yang sama yang dipakai Studio, dan setiap respons menyebutkan jumlahnya.
- Panggilan Direct API ditagih dengan tarif API organisasi Anda, yang bisa berbeda dari biaya pekerjaan yang sama di Studio. Setiap angka yang diberikan API sudah mencerminkan tarif itu: penawaran harga
plan_media,estimated_credits, blokbilling, pembacaan generasi, webhook, dan/usage. - Tarif ditetapkan per organisasi dan tidak dipublikasikan. Kontak akun Anda dapat membagikan lembar tarif API Anda.
- Perubahan tarif berlaku untuk generasi yang dimulai setelahnya; generasi yang sedang berjalan diselesaikan dengan tarif saat ia dimulai.
- Di Studio, di 'Pengaturan' > 'Kredit', pemakaian API muncul sebagai baris tersendiri, 'API', di samping anggota Anda, dan 'Rinci API per kunci' menguraikannya per kunci. Pemakaian ini diambil dari kredit organisasi tetapi tidak pernah dari alokasi anggota, dan batas kredit setiap kunci membatasinya.
Cara generasi ditagih
- Saat dimulai, generasi ditagih sebesar harga yang ditawarkan. Respons permulaan melaporkannya di
billing.credits_chargeddanresult.estimated_credits. - Beberapa keluaran dihargai berdasarkan apa yang benar-benar dihasilkan: ucapan dan musik berdasarkan durasi yang dihasilkan, render timeline berdasarkan waktu komputasi. Keluaran ini membawa
credits_settle_on_output_duration: true; tagihan awal adalah batas bawah, dan jumlah akhirnya diselesaikan saat generasi selesai. - Generasi yang berakhir
failedataucancelleddikembalikan kreditnya secara penuh, danbilling.credits_refundedmelaporkan kredit yang dikembalikan. Generasi yang berhasil juga bisa membawa pengembalian sebagian, misalnya ketika keluaran yang diselesaikan ternyata lebih pendek dari yang ditanggung tagihan awal. - Setelah generasi final,
billing.credits_chargedadalah total bersih di buku besar (tagihan awal, ditambah atau dikurangi penyelesaian, dikurangicredits_refunded) dancredits_are_finalbernilaitrue. Generasi yang gagal atau dibatalkan berakhir dengancredits_charged: 0dancredits_refundedsama dengan jumlah yang ditagihkan.
| Field | Arti |
|---|---|
estimated_credits | harga yang ditawarkan dan ditagihkan saat mulai |
credits_charged | kredit bersih yang tercatat untuk generasi ini sejauh ini, setelah penyelesaian dan pengembalian |
credits_refunded | setiap kredit yang dikembalikan untuk generasi ini: seluruh tagihan pada failed atau cancelled, pengembalian sebagian apa pun pada generasi yang berhasil; 0 jika tidak ada, tidak pernah negatif |
credits_are_final | false selama generasi berjalan atau penyelesaian atau pengembalian masih tertunda; true setelah tidak ada lagi yang akan mengubahnya |
credits_settle_on_output_duration | true ketika tagihan awal adalah batas bawah yang diselesaikan berdasarkan keluaran yang dihasilkan |
Selama generasi berjalan, credits_charged sama dengan tagihan awal. Baca lagi setelah generasi final untuk mendapatkan jumlah yang sudah diselesaikan; webhook hanya dikirim setelah itu.
Tagihan pada setiap respons
Blok billing pada respons panggilan melaporkan apa yang ditagihkan panggilan saat ia kembali; Memanggil alat mencantumkannya per jenis panggilan. Pengembalian kredit terjadi kemudian, sehingga muncul pada generasi (GET /generations/{id} dan /usage), tidak pernah pada respons awal.
- Alat berbayar yang menjawab di dalam panggilan dan pekerjaannya gagal, seperti
analyze_video, menjawab dengancredits_charged: 0dancredits_refundedberisi jumlah yang dikembalikan. - Header
Morphic-Credits-Charged: <integer>membawa angka yang sama denganbilling.credits_charged, kecuali pada pemutaran ulang idempoten, yang tidak menagih apa pun lagi dan mengirim0sementara body-nya mengulang tagihan asli.
Minta penawaran harga sebelum membelanjakan
POST /v1/direct/tools/plan_media memvalidasi rencana hingga 20 langkah dan menghitung harga langkah-langkah yang bisa dihitung, tanpa memulai atau menagih apa pun.
curl -s https://mcp.morphic.com/v1/direct/tools/plan_media \
-H "Authorization: Bearer $MORPHIC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": {
"steps": [
{ "id": "still", "tool_name": "generate_image", "arguments_json": "{\"prompt\":\"A red vintage bicycle\",\"aspect_ratio\":\"16:9\"}" },
{ "id": "clip", "tool_name": "generate_video", "arguments_json": "{\"prompt\":\"The bicycle rolls away\",\"duration_seconds\":8}", "depends_on": ["still"] }
]
}
}'- Kosongkan field aset yang keluarannya belum ada, dan sebutkan langkah asalnya di
depends_on. - Setiap langkah mendapatkan
validation,quote_status, danestimated_creditsmasing-masing. - Hasilnya juga memberikan
execution_order,known_estimated_credits,unquoted_step_ids, dancomplete_estimate. Jikacomplete_estimatebernilaifalse, jumlahnya adalah batas bawah, bukan anggaran.
Kunci dan saldo
GET /v1/direct/me mengembalikan kunci yang memanggil, batas dan pemakaiannya, serta saldo organisasi. Kunci apa pun dapat memanggilnya.
curl -s https://mcp.morphic.com/v1/direct/me \
-H "Authorization: Bearer $MORPHIC_API_KEY"{
"api_key": {
"id": "01928e00-…",
"name": "Order pipeline (prod)",
"scopes": ["assets:read", "assets:write", "generations:write", "projects:read"],
"expires_at": null,
"credit_limits": {
"total": { "limit": 500000, "used": 182340, "remaining": 317660 },
"monthly": { "limit": 100000, "used": 41200, "remaining": 58800, "resets_at": "2026-11-01T00:00:00.000Z" },
"daily": { "limit": null, "used": 2310, "remaining": null, "resets_at": "2026-10-26T00:00:00.000Z" }
}
},
"organization": {
"id": "01928d00-…",
"plan": "enterprise",
"remaining_credits": 1240000,
"unlimited": false
}
}Buku besar pemakaian
GET /v1/direct/usage (cakupan assets:read) mengembalikan setiap entri buku besar yang disebabkan oleh kunci, untuk direkonsiliasi dengan catatan Anda sendiri.
| Query | Arti |
|---|---|
from, to | batas ISO 8601 pada created_at; bawaannya 30 hari terakhir, paling lama 92 hari |
generation_id | hanya entri dari satu generasi |
limit | 1 hingga 200, bawaan 50 |
cursor | next_cursor dari halaman sebelumnya |
curl -s "https://mcp.morphic.com/v1/direct/usage?from=2026-10-01T00:00:00Z&limit=200" \
-H "Authorization: Bearer $MORPHIC_API_KEY"{
"usage": [
{ "id": "0192a7b3-…", "created_at": "2026-10-25T09:14:03.500Z", "kind": "charge", "credits": 120, "generation_id": "0192a7b3-a1c4-…", "tool": "generate_video", "model_id": "mdl_7rk2pq9vxa4m", "metadata": { "order_id": "4411" } },
{ "id": "0192a7b4-…", "created_at": "2026-10-25T09:15:41.950Z", "kind": "settlement", "credits": -24, "generation_id": "0192a7b3-a1c4-…", "tool": "generate_video", "model_id": "mdl_7rk2pq9vxa4m", "metadata": { "order_id": "4411" } }
],
"totals": { "charged": 120, "settled": -24, "refunded": 0, "net": 96 },
"next_cursor": null
}kindadalah salah satu daricharge,settlement, ataurefund;creditsyang negatif berarti kredit dikembalikan.totalsmencakup seluruh rentang yang difilter, bukan hanya halaman ini.- Alat yang menjawab di dalam panggilan (
analyze_video,analyze_audio,filmlab_edit) tidak memulai generasi, sehingga entrinya membawageneration_id: nulldan dibedakan berdasarkantool.
Jika Anda mengalami kendala atau memiliki pertanyaan, jangan ragu untuk menghubungi kami. Kami dengan senang hati akan membantu. Tulis kepada kami di support@morphic.com.