Credits und Nutzung
Wie Aufrufe der Direct API berechnet, abgerechnet und erstattet werden, wie Sie einen Auftrag vorab kalkulieren und wie Sie die Ausgaben und das Buchungsprotokoll Ihres Schlüssels lesen.
Die Direct API berechnet Morphic-Credits aus dem Guthaben Ihrer Organisation, demselben Kontingent, das auch Studio nutzt, und jede Antwort nennt die Anzahl.
- Aufrufe der Direct API werden zu den API-Tarifen Ihrer Organisation berechnet, die von den Kosten derselben Arbeit in Studio abweichen können. Jede Zahl, die Ihnen die API liefert, berücksichtigt sie bereits: Kalkulationen von
plan_media,estimated_credits, derbilling-Block, gelesene Generierungen, Webhooks und/usage. - Tarife werden pro Organisation festgelegt und nicht veröffentlicht. Ihre Ansprechperson bei Morphic kann Ihnen Ihre API-Preisliste zukommen lassen.
- Eine Tarifänderung gilt für Generierungen, die danach gestartet werden; eine laufende Generierung wird zu dem Tarif abgerechnet, mit dem sie gestartet wurde.
- In Studio erscheinen die API-Ausgaben unter Einstellungen > Credits als eigene Zeile, API, neben Ihren Mitgliedern, und API nach Schlüssel aufteilen schlüsselt sie pro Schlüssel auf. Sie werden aus den Credits der Organisation bezahlt, aber nie aus dem Kontingent eines Mitglieds, und die Credit-Limits jedes Schlüssels begrenzen sie.
Wie eine Generierung berechnet wird
- Beim Start wird der kalkulierte Preis der Generierung belastet. Die Startantwort meldet ihn in
billing.credits_chargedundresult.estimated_credits. - Manche Ausgaben werden nach dem tatsächlich Erzeugten berechnet: Sprache und Musik nach erzeugter Länge, Timeline-Renders nach Rechenzeit. Sie tragen
credits_settle_on_output_duration: true; die Startbelastung ist ein Mindestbetrag, und der endgültige Betrag wird abgerechnet, wenn die Generierung abgeschlossen ist. - Eine Generierung, die mit
failedodercancelledendet, wird vollständig erstattet, undbilling.credits_refundedmeldet die zurückgegebenen Credits. Auch eine erfolgreiche Generierung kann eine Teilerstattung enthalten, etwa wenn eine abgerechnete Ausgabe kürzer ausfiel, als die Startbelastung abdeckte. - Sobald eine Generierung endgültig ist, ist
billing.credits_chargeddie Nettosumme im Buchungsprotokoll (Startbelastung, plus oder minus Abrechnung, minuscredits_refunded), undcredits_are_finalisttrue. Eine fehlgeschlagene oder abgebrochene Generierung endet mitcredits_charged: 0undcredits_refundedin Höhe der Belastung.
| Feld | Bedeutung |
|---|---|
estimated_credits | der beim Start kalkulierte und belastete Preis |
credits_charged | die bisher für diese Generierung verbuchten Netto-Credits, nach Abrechnung und Erstattungen |
credits_refunded | alle für diese Generierung zurückgegebenen Credits: die gesamte Belastung bei failed oder cancelled, eine etwaige Teilerstattung bei einer erfolgreichen; 0, wenn keine, nie negativ |
credits_are_final | false, solange die Generierung läuft oder eine Abrechnung oder Erstattung noch aussteht; true, sobald sich nichts mehr daran ändert |
credits_settle_on_output_duration | true, wenn die Startbelastung ein Mindestbetrag ist, der anhand der erzeugten Ausgabe abgerechnet wird |
Solange eine Generierung läuft, entspricht credits_charged der Startbelastung. Lesen Sie sie erneut, sobald die Generierung endgültig ist, um den abgerechneten Betrag zu erhalten; ein Webhook wird erst dann gesendet.
Abrechnung in jeder Antwort
Der billing-Block in der Antwort eines Aufrufs meldet, was der Aufruf zum Zeitpunkt seiner Antwort berechnet hat; Ein Tool aufrufen listet ihn nach Art des Aufrufs auf. Erstattungen erfolgen später und erscheinen daher an der Generierung (GET /generations/{id} und /usage), nie in der ursprünglichen Antwort.
- Ein kostenpflichtiges Tool, das innerhalb des Aufrufs antwortet und dessen Arbeit fehlschlägt, etwa
analyze_video, antwortet mitcredits_charged: 0undcredits_refundedin Höhe der Erstattung. - Der Header
Morphic-Credits-Charged: <integer>enthält dieselbe Zahl wiebilling.credits_charged, außer bei einer idempotenten Wiederholung, die nichts weiter berechnet und0sendet, während ihr Body die ursprüngliche Belastung wiederholt.
Vor dem Ausgeben kalkulieren
POST /v1/direct/tools/plan_media prüft einen Plan mit bis zu 20 Schritten und kalkuliert die Schritte, die sich kalkulieren lassen, ohne etwas zu starten oder zu berechnen.
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"] }
]
}
}'- Lassen Sie Asset-Felder weg, deren Ausgaben noch nicht existieren, und nennen Sie in
depends_onden Schritt, aus dem sie stammen. - Jeder Schritt erhält seine
validation, seinenquote_statusund seineestimated_credits. - Das Ergebnis enthält außerdem
execution_order,known_estimated_credits,unquoted_step_idsundcomplete_estimate. Istcomplete_estimategleichfalse, ist die Summe eine Untergrenze und kein Budget.
Schlüssel und Guthaben
GET /v1/direct/me liefert den aufrufenden Schlüssel, seine Limits und Ausgaben sowie das Guthaben der Organisation. Jeder Schlüssel kann es aufrufen.
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
}
}Buchungsprotokoll der Nutzung
GET /v1/direct/usage (Berechtigung assets:read) liefert jeden Buchungseintrag, den der Schlüssel verursacht hat, zum Abgleich mit Ihren eigenen Aufzeichnungen.
| Query-Parameter | Bedeutung |
|---|---|
from, to | ISO-8601-Grenzen für created_at; standardmäßig die letzten 30 Tage, höchstens 92 Tage |
generation_id | nur die Einträge einer Generierung |
limit | 1 bis 200, standardmäßig 50 |
cursor | der next_cursor der vorherigen Seite |
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
}kindistcharge,settlementoderrefund; ein negativer Wert increditsgibt Credits zurück.totalsumfasst den gesamten gefilterten Zeitraum, nicht nur die Seite.- Ein Tool, das innerhalb des Aufrufs antwortet (
analyze_video,analyze_audio,filmlab_edit), startet keine Generierung. Seine Einträge tragen dahergeneration_id: nullund lassen sich übertoolunterscheiden.
Wenn Sie Probleme haben oder Fragen haben, können Sie sich gerne an uns wenden. Wir helfen Ihnen gerne. Schreiben Sie uns an support@morphic.com.
Webhooks
Erhalten Sie eine signierte Benachrichtigung, wenn eine Generierung der Direct API abgeschlossen ist, prüfen Sie sie und lesen Sie die Generierung für die Details.
Eigene Medien übergeben
Übergeben Sie Morphic eigene Bilder, Videos, Audiodateien und Dokumente per URL, in jedem Feld, das Medien entgegennimmt.