# Flowg8 · API-Key erstellen

Erstelle einen eingeschränkten Server-Zugang mit Ablaufdatum oder ausdrücklicher Servicekonto-Ausnahme. Speichere das Secret aus der ersten Antwort sicher.

Ablauf: 1–365 Tage, Standard 30. expiresInDays darf nur mit einer aktiven serviceAccountId null sein. Solche Schlüssel laufen nicht automatisch ab; Rechte einschränken und Schlüssel regelmäßig ersetzen. Maximal 200 Datensätze pro Workspace einschließlich widerrufener Schlüssel. Secrets werden nicht erneut ausgegeben. Widerrufe und ersetze verlorene Schlüssel.

Setze serviceAccountId für organisationsgebundene Schlüssel. Alle Scopes müssen in die Berechtigungsobergrenze des aktiven Kontos passen; users:invite erfordert immer ein Servicekonto. Secrets sind einmal sichtbar. Erstelle zur Rotation einen zweiten Schlüssel und widerrufe den ersten.

## POST /v1/api-keys

Authentication: FLOWG8_ACCESS_TOKEN from Flowg8 sign-in
Required tenant header: X-Organization-Id.
Required user permissions: Administrator oder Sandbox-Entwickler erforderlich. The API checks current membership, roles, key scopes and resource permissions on every request. Documentation visibility grants no access.

## Input parameters
- name (string, required): min length 1 · max length 80
- scopes (array, required): min items 1 · max items 7
- serviceAccountId (string, optional): uuid
- expiresInDays (integer, optional): min 1 · max 365 · default 30

## Request example (replace example IDs)

```sh
curl -X POST "https://api.flowg8.io/v1/api-keys" \
  -H "authorization: Bearer $FLOWG8_ACCESS_TOKEN" \
  -H "x-organization-id: 10000000-0000-4000-8000-000000000001" \
  -H "idempotency-key: example-create-key-001" \
  -H "content-type: application/json" \
  --data-raw '{
  "name": "Deployment integration",
  "scopes": [
    "runs:start",
    "runs:read",
    "flows:read"
  ],
  "expiresInDays": 30,
  "serviceAccountId": "10000000-0000-4000-8000-000000000010"
}'
```

## Response excerpt

```json
{
  "key": {
    "id": "10000000-0000-4000-8000-000000000008",
    "name": "Deployment integration"
  },
  "secret": "<shown only on first creation>",
  "replayed": false
}
```

Source: /docs/create-key
Full schemas: /docs/openapi.json
