Zum Inhalt springen
Erste Schritte

Schnellstart

Als Markdown anzeigen Aktualisiert

Führe deine erste Generierung in wenigen Minuten aus. Alle 1.496 Modelle akzeptieren dieselbe Art von Anfrage und geben dasselbe Anfrageobjekt zurück – für Bild, Video und Audio: Lerne es hier einmal.

1. API-Schlüssel abrufen

Erstelle einen Schlüssel unter https://doitong.com/developers/dashboard#keys und speichere ihn in einer Umgebungsvariable: Er wird nur einmal angezeigt. Jeder Schlüssel kann ein eigenes Budget haben, sodass du ihn einem Agenten geben kannst, ohne das gesamte Konto zu gefährden. GET /account gibt dein API-Guthaben zurück.

export DOITONG_API_KEY="doitong_..."

curl "https://api.doitong.com/v1/account" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Ausführungen werden vom API-Guthaben deines Kontos in API-Credits bezahlt: 1.000 API-Credits = 1 $, und jedes Modell kostet genau den Preis seines Anbieters. Lade unter https://doitong.com/developers/dashboard#balance Guthaben auf.

2. Preis abfragen, dann ausführen

POST /quote/{model_id} nimmt das Eingabe-JSON entgegen und gibt den exakten Preis zurück. Dafür ist kein Schlüssel erforderlich und es entstehen keine Kosten. Die Ausführung derselben Eingabe kostet genau diesen Betrag: Das Angebot ist die Abbuchung. (Eine Ausnahme bilden Modelle, die nach Nutzung abgerechnet werden: Ihr Angebot ist der Höchstbetrag, den die Ausführung kosten kann; der nicht genutzte Teil wird nach der Ausführung erstattet.)

curl -X POST "https://api.doitong.com/v1/quote/kling-video/v3/pro/image-to-video" \
  -H "Content-Type: application/json" \
  -d '{"image": "https://example.com/fox.jpg", "duration": 5, "generate_audio": true}'
200 OK · Angebot
{
  "object": "quote",
  "model": "kling-video/v3/pro/image-to-video",
  "credits": 840,
  "usd": "0.84",
  "unit": "second",
  "quantity": 5,
  "unit_credits": 168,
  "mode": "exact",
  "breakdown": "5 s × 168 API credits"
}

Sende anschließend denselben Body an POST /run/{model_id}. Füge ?wait=20 hinzu, um die Verbindung bis zu 20 Sekunden zu halten: Ein schnelles Modell gibt das fertige Ergebnis in einer einzigen Hin- und Rückübertragung zurück. Sende einen Idempotency-Key-Header, damit ein erneuter Versuch niemals zweimal läuft (oder zweimal abgerechnet wird).

curl -X POST "https://api.doitong.com/v1/run/flux/schnell?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: lighthouse-001" \
  -d '{"prompt": "A lighthouse on a rocky coast at dusk, warm light in the window"}'

Die Antwort ist ein Anfrageobjekt:

200 OK · Anfrage
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "flux/schnell",
  "status": "succeeded",
  "cost": { "credits": 3, "usd": "0.003", "charged": 3, "refunded": 0 },
  "outputs": [
    { "type": "image", "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg", "width": 1024, "height": 768, "stored": true }
  ],
  "error": null
}

3. Status verfolgen

Wenn das Modell beim Ende der Wartezeit noch arbeitet, erhältst du 202 Accepted mit der id der Anfrage und ihrem aktuellen status. Jede Anfrage durchläuft denselben Lebenszyklus:

Lebenszyklus einer Anfrage
  1. queued Akzeptiert und abgerechnet, wartet auf einen Worker
  2. running Das Modell generiert
  3. Endstatus:
    • succeededDas Angebot wurde berechnet; outputs[] enthält URLs in unserem Speicher
    • failedAutomatisch erstattet; der Fehler erklärt den Grund
    • canceledVor einem Ergebnis gestoppt; erstattet

Lies die Anfrage erneut mit ihrer ID. Auch hier funktioniert ?wait=20, daher genügt eine einfache Schleife:

curl "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Wenn status succeeded lautet, enthält outputs[].url Links zu den Dateien in unserem Speicher. Wenn die Anfrage failed oder canceled lautet, werden ihre API-Credits automatisch erstattet, und error gibt den Grund an. Brich alles ab, was noch queued oder running ist:

Terminal
curl -X POST "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Bei langen Videoaufträgen kannst du das Polling überspringen und stattdessen eine webhook_url übergeben (siehe Webhooks).

4. Dateien

Übergebe eine beliebige öffentliche URL als Eingabe oder fordere mit POST /files eine Upload-URL an, führe dort PUT für die Datei aus und verwende die zurückgegebene file_url (siehe Dateien). Eine erfolgreiche Anfrage listet ihre Ergebnisse in outputs[] mit type, content type und, sofern bekannt, Abmessungen und Dauer auf.

Terminal
curl -X POST "https://api.doitong.com/v1/files" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename": "fox.jpg", "content_type": "image/jpeg", "size": 482113}'

Fehler

Jedes Modell schlägt auf dieselbe Weise fehl: ein Umschlag mit einem type, einem exakten code, dem verursachenden param und jedem Problem in details, sodass ein Agent die Anfrage korrigieren kann, ohne Fließtext zu lesen. Für eine ungültige Anfrage wird nichts abgerechnet.

422 Unprocessable Entity
{
  "error": {
    "type": "invalid_request",
    "code": "invalid_input",
    "message": "duration must be one of 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.",
    "param": "duration",
    "details": [ { "param": "duration", "message": "duration must be one of 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15." } ],
    "request_id": null,
    "doc_url": "https://doitong.com/developers/docs/errors#invalid_input"
  }
}

Jeder Typ und jeder Code ist unter Fehler aufgeführt.

Preise

Die Preise werden in USD und API-Credits angegeben und auf jeder Modellseite angezeigt, bevor du eine Ausführung startest. Jede Anfrage enthält cost mit credits, usd, charged und refunded. Eine Ausführung wird abgerechnet, sobald sie angenommen wurde; failed- und canceled-Anfragen werden automatisch erstattet. Einige Modelle werden exakt anhand der Eingabe bepreist, einige anhand der Länge oder Größe der von dir gesendeten Dateien, bei anderen gilt ein geschätzter Preis pro Ausführung: In jedem Fall ist das Angebot der zu zahlende Betrag. Einige Modelle (Sprach- und Vision-Modelle, Sprach- und Verarbeitungszeit-Tools) werden nach Nutzung abgerechnet: Das Angebot ist der Höchstbetrag, den die Ausführung kosten kann, der nicht genutzte Teil wird automatisch erstattet. Siehe Preise.

MCP und AI-Agenten

Verbinde jeden MCP-Client mit https://api.doitong.com/v1/mcp und demselben Bearer-Schlüssel. Dein Agent kann den Katalog durchsuchen, Modelle abfragen und ausführen sowie jede Dokumentationsseite als Markdown lesen.

Claude Code
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Nächste Schritte