# Przegląd API

> Automatyzuj PentAGI przez REST i GraphQL — utwórz token Bearer, uruchamiaj flows z CI/CD, pobieraj wyniki do własnych narzędzi i generuj klienta.

Większość tego, co możesz zrobić w interfejsie webowym, jest dostępna przez API — uruchamiaj [flows](https://pentagi.com/pl/docs/glossary/#flow) z CI/CD, pobieraj wyniki do własnych narzędzi lub buduj integracje.

| API     | Endpoint          | Dokumentacja interaktywna    |
| ------- | ----------------- | ---------------------------- |
| GraphQL | `/api/v1/graphql` | `/api/v1/graphql/playground` |
| REST    | `/api/v1/...`     | `/api/v1/swagger/index.html` |

## [Utwórz token](https://pentagi.com/pl/docs/api/overview/#create-a-token)

1. Otwórz **Settings → API Tokens** w interfejsie webowym.
2. Kliknij **Create Token**, opcjonalnie nadaj mu nazwę i ustaw czas ważności od 1 minuty do 3 lat.
3. Skopiuj token natychmiast — jest wyświetlany tylko raz.

Token należy do Twojego konta i dziedziczy uprawnienia Twojej roli. Użytkownicy, role i tokeny API, szablony flow, ulubione oraz Twoje ustawienia są zarządzane wyłącznie z poziomu sesji przeglądarki po zalogowaniu: token otrzymuje błąd 403 na trasach REST `/users`, `/roles` i `/tokens` oraz błąd z tych operacji GraphQL.

## [Wywołaj API](https://pentagi.com/pl/docs/api/overview/#call-the-api)

```bash
curl -X POST https://your-pentagi-host:8443/api/v1/graphql \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query": "{ flows { id title status } }"}'

curl https://your-pentagi-host:8443/api/v1/flows/ \
  -H "Authorization: Bearer YOUR_API_TOKEN"
```

Uruchom flow za pomocą mutacji GraphQL:

```graphql
mutation CreateFlow {
  createFlow(modelProvider: "openai", input: "Test the security of https://example.com") {
    id
    title
    status
    createdAt
  }
}
```

## [Wygeneruj klienta](https://pentagi.com/pl/docs/api/overview/#generate-a-client)

* **GraphQL** — schemat znajduje się w `backend/pkg/graph/schema.graphqls` w repozytorium; użyj GraphQL Code Generator, genqlient lub Apollo.
* **REST** — specyfikacja OpenAPI jest dostępna pod `/api/v1/swagger/doc.json`:

```bash
openapi-generator-cli generate \
  -i https://your-pentagi-host:8443/api/v1/swagger/doc.json \
  -g python \
  -o ./pentagi-client
```