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, blok billing, 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

  1. Saat dimulai, generasi ditagih sebesar harga yang ditawarkan. Respons permulaan melaporkannya di billing.credits_charged dan result.estimated_credits.
  2. 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.
  3. Generasi yang berakhir failed atau cancelled dikembalikan kreditnya secara penuh, dan billing.credits_refunded melaporkan kredit yang dikembalikan. Generasi yang berhasil juga bisa membawa pengembalian sebagian, misalnya ketika keluaran yang diselesaikan ternyata lebih pendek dari yang ditanggung tagihan awal.
  4. Setelah generasi final, billing.credits_charged adalah total bersih di buku besar (tagihan awal, ditambah atau dikurangi penyelesaian, dikurangi credits_refunded) dan credits_are_final bernilai true. Generasi yang gagal atau dibatalkan berakhir dengan credits_charged: 0 dan credits_refunded sama dengan jumlah yang ditagihkan.
FieldArti
estimated_creditsharga yang ditawarkan dan ditagihkan saat mulai
credits_chargedkredit bersih yang tercatat untuk generasi ini sejauh ini, setelah penyelesaian dan pengembalian
credits_refundedsetiap 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_finalfalse selama generasi berjalan atau penyelesaian atau pengembalian masih tertunda; true setelah tidak ada lagi yang akan mengubahnya
credits_settle_on_output_durationtrue 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 dengan credits_charged: 0 dan credits_refunded berisi jumlah yang dikembalikan.
  • Header Morphic-Credits-Charged: <integer> membawa angka yang sama dengan billing.credits_charged, kecuali pada pemutaran ulang idempoten, yang tidak menagih apa pun lagi dan mengirim 0 sementara 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, dan estimated_credits masing-masing.
  • Hasilnya juga memberikan execution_order, known_estimated_credits, unquoted_step_ids, dan complete_estimate. Jika complete_estimate bernilai false, 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.

QueryArti
from, tobatas ISO 8601 pada created_at; bawaannya 30 hari terakhir, paling lama 92 hari
generation_idhanya entri dari satu generasi
limit1 hingga 200, bawaan 50
cursornext_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
}
  • kind adalah salah satu dari charge, settlement, atau refund; credits yang negatif berarti kredit dikembalikan.
  • totals mencakup 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 membawa generation_id: null dan dibedakan berdasarkan tool.

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.

Di halaman ini