# API-overzicht

> Automatiseer PentAGI via REST en GraphQL — maak een Bearer-token aan, start flows vanuit CI/CD, haal resultaten op in je eigen tools en genereer een client.

Het grootste deel van wat je in de web-UI kunt doen, is beschikbaar via de API: start [flows](https://pentagi.com/nl/docs/glossary/#flow) vanuit CI/CD, haal resultaten op in je eigen tools of bouw integraties.

| API     | Eindpunt          | Interactieve documentatie    |
| ------- | ----------------- | ---------------------------- |
| GraphQL | `/api/v1/graphql` | `/api/v1/graphql/playground` |
| REST    | `/api/v1/...`     | `/api/v1/swagger/index.html` |

## [Een token aanmaken](https://pentagi.com/nl/docs/api/overview/#create-a-token)

1. Open **Settings → API Tokens** in de web-UI.
2. Klik op **Create Token**, geef het optioneel een naam en stel een vervaltijd in tussen 1 minuut en 3 jaar.
3. Kopieer het token direct — het wordt slechts één keer getoond.

Een token is gekoppeld aan je account en erft de machtigingen van je rol. Gebruikers, rollen en API-tokens, flow-sjablonen, favorieten en je instellingen worden alleen beheerd vanuit een ingelogde browsersessie: een token krijgt 403 op de REST `/users`, `/roles` en `/tokens` routes en een fout van die GraphQL-operaties.

## [De API aanroepen](https://pentagi.com/nl/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"
```

Start een flow met een GraphQL-mutatie:

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

## [Een client genereren](https://pentagi.com/nl/docs/api/overview/#generate-a-client)

* **GraphQL** — het schema is `backend/pkg/graph/schema.graphqls` in de repository; gebruik GraphQL Code Generator, genqlient of Apollo.
* **REST** — de OpenAPI-specificatie is beschikbaar op `/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
```