Przejdź do treści
Pierwsze kroki

Szybki start

Wyświetl jako Markdown Zaktualizowano

Uruchom pierwsze generowanie w kilka minut. Wszystkie 1496 modeli przyjmują ten sam rodzaj żądania i zwracają ten sam obiekt żądania dla obrazów, wideo i audio: naucz się tego raz tutaj.

1. Uzyskaj klucz API

Utwórz klucz na stronie https://doitong.com/developers/dashboard#keys i przechowuj go w zmiennej środowiskowej: jest wyświetlany tylko raz. Każdy klucz może mieć własny budżet, więc możesz przekazać go agentowi bez ryzyka dla całego konta. GET /account zwraca saldo API.

export DOITONG_API_KEY="doitong_..."

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

Uruchomienia są opłacane z salda API konta w kredytach API: 1000 kredytów API = 1 $, a każdy model kosztuje dokładnie tyle, ile ustalił jego twórca. Doładuj konto na stronie https://doitong.com/developers/dashboard#balance.

2. Uzyskaj wycenę, a następnie uruchom

POST /quote/{model_id} przyjmuje wejściowy JSON i zwraca dokładną cenę. Nie wymaga klucza i nic nie kosztuje. Uruchomienie z tymi samymi danymi wejściowymi kosztuje dokładnie tyle: wycena jest opłatą. (Wyjątkiem jest model rozliczany na podstawie wykorzystania: jego wycena to maksymalny koszt uruchomienia, a niewykorzystana część jest zwracana po zakończeniu uruchomienia).

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 · wycena
{
  "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"
}

Następnie wyślij to samo ciało do POST /run/{model_id}. Dodaj ?wait=20, aby utrzymać połączenie przez maksymalnie 20 sekund: szybki model zwróci gotowy wynik w ramach jednego żądania i jednej odpowiedzi. Wyślij nagłówek Idempotency-Key, aby ponowienie nigdy nie uruchomiło zadania ani nie naliczyło opłaty dwa razy.

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"}'

Odpowiedzią jest obiekt żądania:

200 OK · żądanie
{
  "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. Śledź status

Jeśli model nadal pracuje po upływie czasu oczekiwania, otrzymasz 202 Accepted z id żądania i jego bieżącym status. Każde żądanie przechodzi przez ten sam cykl życia:

Cykl życia żądania
  1. queued Zaakceptowano i pobrano opłatę, oczekiwanie na workera
  2. running Model generuje wynik
  3. Końcowe statusy:
    • succeededPobrano opłatę zgodnie z wyceną; outputs[] zawiera adresy URL w naszym magazynie
    • failedAutomatycznie zwrócono środki; błąd wyjaśnia przyczynę
    • canceledZatrzymano przed uzyskaniem wyniku; zwrócono środki

Odczytaj żądanie ponownie, używając jego identyfikatora. ?wait=20 działa również tutaj, więc wystarczy prosta pętla:

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

Gdy status ma wartość succeeded, outputs[].url zawiera linki do plików w naszej przestrzeni dyskowej. Jeśli żądanie ma status failed lub canceled, jego kredyty API są automatycznie zwracane, a error informuje o przyczynie. Anuluj wszystko, co nadal ma status queued lub running:

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

W przypadku długich zadań wideo możesz pominąć odpytywanie i zamiast tego przekazać webhook_url (zobacz Webhooki).

4. Pliki

Przekaż dowolny publiczny URL jako dane wejściowe albo poproś POST /files o URL przesyłania, wykonaj PUT pliku pod tym adresem i użyj zwróconego file_url (zobacz Pliki). Zakończone powodzeniem żądanie zawiera wyniki w outputs[] wraz z typem, typem zawartości oraz, jeśli są znane, wymiarami i czasem trwania.

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}'

Błędy

Każdy model zgłasza błędy w ten sam sposób: jedno opakowanie zawierające type, dokładny code, problematyczny param oraz każdy problem w details, dzięki czemu agent może naprawić żądanie bez czytania opisu. Za nieprawidłowe żądanie nie jest naliczana opłata.

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"
  }
}

Wszystkie typy i kody wymieniono w sekcji Błędy.

Cennik

Ceny są podawane w USD i kredytach API oraz wyświetlane na stronie każdego modelu przed uruchomieniem. Każde żądanie zawiera cost z polami credits, usd, charged i refunded. Opłata za uruchomienie jest naliczana po jego zaakceptowaniu; żądania ze statusem failed i canceled są automatycznie zwracane. Niektóre modele mają cenę wyliczaną dokładnie na podstawie danych wejściowych, inne na podstawie długości lub rozmiaru wysyłanych plików, a pozostałe mają szacowaną cenę za uruchomienie: w każdym przypadku płacisz cenę z wyceny. Niektóre modele (modele językowe i wizyjne, narzędzia głosowe oraz narzędzia zależne od czasu przetwarzania) są rozliczane na podstawie wykorzystania: wycena to maksymalny koszt uruchomienia, a niewykorzystana część jest automatycznie zwracana. Zobacz Cennik.

MCP i agenci AI

Połącz dowolnego klienta MCP z https://api.doitong.com/v1/mcp, używając tego samego klucza Bearer. Agent może przeszukiwać katalog, uzyskiwać wyceny i uruchamiać modele oraz odczytywać każdą stronę dokumentacji w formacie Markdown.

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

Następne kroki