---
title: Szybki start | RunAPI
description: Tworzenie asynchronicznego zadania oraz obsługa odpytywania, ukończenia,
  niepowodzenia i wywołań zwrotnych.
url: https://runapi.ai/pl/docs/guides/task-api/quickstart.md
canonical: https://runapi.ai/pl/docs/guides/task-api/quickstart
locale: pl
---

> Wersja HTML: https://runapi.ai/pl/docs/guides/task-api/quickstart
> Indeks witryny dla agentów: https://runapi.ai/llms.txt

# Szybki start

RunAPI używa zadań (Tasks) do asynchronicznego generowania obrazów, wideo, dźwięku i muzyki. Żądanie tworzenia zwraca wynik szybko; Twoja aplikacja następnie sonduje zadanie lub odbiera zdarzenia wywołania zwrotnego wymienione w dokumentacji interfejsu API danego punktu końcowego.

## Tworzenie zadania

Wybierz model i endpoint w Katalogu, a następnie wyślij wymagane dane wejściowe tego endpointu. Ten przykład uruchamia zadanie generowania obrazu z tekstu Flux 2:

```shell
curl -X POST "https://runapi.ai/api/v1/flux_2/text_to_image" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Idempotency-Key: 8c8ba3c9-0ce0-4bbd-a9a7-bf59ab639286" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flux-2-pro-text-to-image",
    "prompt": "A product photograph on a clean studio background"
  }'
```

Zaakceptowane żądanie asynchroniczne zwraca `202 Accepted` z identyfikatorem
zadania (Task):

```json
{
  "id": "task_id",
  "status": "processing"
}
```

Przechowaj `id` razem z rekordem aplikacji. Jest to stabilny identyfikator używany do sondowania, obsługi technicznej i uzgadniania wywołań zwrotnych.

## Zapobieganie duplikowaniu tworzonych zadań

Punkty końcowe tworzenia zadań przyjmują opcjonalny nagłówek `Idempotency-Key` z nieprzezroczystą wartością do 512 znaków. Wygeneruj jedną wartość dla każdego zadania logicznego i przechowuj ją wraz z żądaniem, dopóki nie wiesz, czy zostało przyjęte.

Jeśli przekroczenie limitu czasu lub awaria połączenia pozostawia wynik nieznany, ponów
dokładnie to samo żądanie utworzenia zadania z tym samym kluczem. RunAPI zwraca
oryginalne zadanie zamiast tworzyć i naliczać opłatę za drugie. Użycie
klucza z innym żądaniem utworzenia zadania zwraca `409 Conflict`.
Wygeneruj nowy klucz dla celowo nowego zadania i nie używaj
`X-Client-Request-Id` jako tego klucza.

## Odtwórz przerwane żądanie synchroniczne

Powolne synchroniczne punkty końcowe zazwyczaj utrzymują połączenie otwarte i zwracają tę samą terminalową odpowiedź co dotychczas. Żadne zmiany sondowania nie są wymagane w istniejących integracjach.

Aby celowo skrócić budżet czasu połączenia, wyślij nagłówek `Prefer: wait=N`.
Jeśli zadanie (Task) nadal działa po upływie tego jawnego budżetu, RunAPI zwraca
`202 Accepted` z tym samym `id` zadania, nieprzejrzystym adresem URL `Location` do
odzyskania oraz `Retry-After` sugerującym opóźnienie kolejnego zapytania. Podążaj
dokładnie za `Location` zamiast samodzielnie konstruować adres URL wyniku. Ukończony
wynik zadania (Task Result) zachowuje terminalny status HTTP, dozwolone nagłówki, typ
treści i treść; dekoduj `response.body` zgodnie z `response.content_type`, który nie
zawsze jest JSON.

## Odpytaj zadanie

Dołącz identyfikator zadania (Task) do tej samej ścieżki punktu końcowego:

```shell
curl "https://runapi.ai/api/v1/flux_2/text_to_image/task_id" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
```

Kontynuuj, dopóki `status` ma wartość `processing`. Używaj ograniczonego wycofywania między
żądaniami zamiast ciągłego odpytywania. Zadanie staje się końcowe, gdy
jego status wynosi `completed` lub `failed`.

## Obsługa ukończenia

Odpowiedź `completed` zawiera `id` zadania (Task), terminalny `status` oraz
pola wynikowe specyficzne dla danego punktu końcowego. Zachowaj potrzebny wynik
i zatrzymaj odpytywanie. Zapoznaj się z dokumentacją interfejsu API danego punktu
końcowego, aby poznać dokładny kształt wyniku — nie zakładaj, że każdy punkt
końcowy dla mediów zwraca te same pola.

## Obsługa błędów

Odpowiedź `failed` zawiera `id` zadania (Task), terminalny `status` oraz
autorski komunikat `error` RunAPI, jeśli jest dostępny. Zatrzymaj odpytywanie,
zapisz identyfikator i błąd, a ponowną próbę podejmuj tylko wtedy, gdy aplikacja
zakwalifikowała błąd jako przejściowy. Ponowna próba powoduje utworzenie nowego
identyfikatora zadania (Task).

## Odbierz wywołanie zwrotne

Dodaj publiczny adres HTTPS `callback_url` do żądania tworzenia, jeśli chcesz,
aby RunAPI wysyłał zdarzenia wywołania zwrotnego opisane dla danego punktu
końcowego:

```json
{
  "model": "flux-2-pro-text-to-image",
  "prompt": "A product photograph on a clean studio background",
  "callback_url": "https://your-domain.com/webhooks/runapi"
}
```

Każde wywołanie zwrotne odpowiada jednemu zdarzeniu cyklu życia w dokumentacji API danego endpointu i pomija szczegóły rozliczeniowe dostępne wyłącznie przez odpytywanie. Terminalne wywołania zwrotne zawierają te same pola wynikowe co terminalne odpowiedzi odpytywania; niektóre endpointy wysyłają również udokumentowane wywołania zwrotne `processing`. Szybko zwróć pomyślną odpowiedź HTTP i utrzymuj dostępność odpytywania na potrzeby uzgadniania w przypadku opóźnionego dostarczenia lub niedostępności obsługi wywołań zwrotnych.

Przeczytaj artykuł [Wywołania zwrotne](https://runapi.ai/pl/docs/guides/task-api/callbacks.md), aby dowiedzieć się, jak utworzyć sekret wywołania zwrotnego, weryfikować podpisy i bezpiecznie obsługiwać ponowne próby.

---

## Więcej od RunAPI

- [Strona główna](https://runapi.ai/pl/.md)
- [Katalog modeli](https://runapi.ai/pl/models.md)
- [Cennik](https://runapi.ai/pl/pricing.md)
- [Dostawcy](https://runapi.ai/pl/models)
- [Dokumentacja](https://runapi.ai/pl/docs/guides)
- [SDK](https://runapi.ai/pl/sdk.md)
- [CLI](https://runapi.ai/pl/cli.md)
- [Serwer MCP](https://runapi.ai/pl/mcp.md)
- [Claude Code vs Cursor](https://runapi.ai/pl/claude-code-vs-cursor.md)
- [Konfiguracja Cursor API](https://runapi.ai/pl/cursor-api-setup.md)
- [RunAPI vs OpenRouter](https://runapi.ai/pl/openrouter-alternative.md)
- [Enterprise](https://runapi.ai/pl/contact.md)
- [Kontakt](https://runapi.ai/pl/contact.md)
- [Regulamin](https://runapi.ai/pl/terms.md)
- [Prywatność](https://runapi.ai/pl/privacy.md)
- [Indeks witryny dla agentów](https://runapi.ai/llms.txt)

Kontakt: contact@runapi.ai

## Dane strukturalne

```json
[
  {
    "@context": "https://schema.org",
    "inLanguage": "pl",
    "@type": "WebSite",
    "name": "RunAPI",
    "url": "https://runapi.ai/pl",
    "potentialAction": {
      "@type": "SearchAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "https://runapi.ai/pl/models?q={search_term_string}"
      },
      "query-input": "required name=search_term_string"
    }
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "pl",
    "@type": "Organization",
    "name": "RunAPI",
    "url": "https://runapi.ai/pl",
    "logo": {
      "@type": "ImageObject",
      "url": "https://runapi.ai/plicon.svg"
    },
    "sameAs": [
      "https://github.com/runapi-ai"
    ]
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "pl",
    "@type": "TechArticle",
    "headline": "Szybki start",
    "description": "Tworzenie asynchronicznego zadania oraz obsługa odpytywania, ukończenia, niepowodzenia i wywołań zwrotnych.",
    "url": "https://runapi.ai/pl/docs/guides/task-api/quickstart",
    "mainEntityOfPage": "https://runapi.ai/pl/docs/guides/task-api/quickstart"
  }
]
```
