> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scanova.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Ein API-Token erstellen

> POST /console/token/

Erstellt einen neuen Management-API-Schlüssel. Dieser Endpunkt befindet sich auf dem **regulären** Scanova-API-Host (`qcg-api.scanova.io`) und wird auf dieselbe Weise authentifiziert wie jede andere eingeloggte Dashboard-Anfrage — ein OAuth-Access-Token, **nicht** ein Management-API-Schlüssel.

<Note>
  Dies ist der einzige Management-API-bezogene Aufruf, den Sie aus einem vertrauenswürdigen Kontext heraus mit Ihrem eigenen Login tätigen, nicht aus der Integration, die den entstehenden Schlüssel später verwenden wird. Die vollständige Zwei-Host-Architektur finden Sie in der [Übersicht](/de/api-reference/management-api/overview).
</Note>

## Anfrage

```
POST https://qcg-api.scanova.io/console/token/
Authorization: Bearer <your_oauth_access_token>
Content-Type: application/json
```

### Body-Parameter

<ParamField body="name" type="string" required>
  Eine für Menschen lesbare Bezeichnung für den Schlüssel, z. B. `"Zapier — production"`. Wird in der Schlüsselliste des Dashboards angezeigt, damit Sie Schlüssel auseinanderhalten können.
</ParamField>

<ParamField body="environment" type="string" default="sandbox">
  Einer von `sandbox`, `live`, `zapier`, `mcp`. Für die Lebensdauer des Schlüssels dauerhaft festgelegt — bestimmt, welche Plan-Quota bei jeder Anfrage des Schlüssels an den Daten-Host geprüft wird, und bei `zapier`-/`mcp`-Schlüsseln, welchen `User-Agent`-Header der aufrufende Client senden muss. Die vollständige Zuordnung finden Sie unter [Plan-Quota](/de/api-reference/management-api/overview#plan-quota).
</ParamField>

<ParamField body="expiry" type="integer" default="-1">
  Einer von `-1` (Nie), `30`, `90` oder `365` — Tage nach der Erstellung, nach denen der Schlüssel nicht mehr funktioniert. Es gibt keine Möglichkeit, die Ablaufzeit eines bestehenden Schlüssels zu verlängern; erstellen Sie stattdessen einen neuen.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://qcg-api.scanova.io/console/token/" \
    -H "Authorization: Bearer <your_oauth_access_token>" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "Zapier — production",
      "environment": "zapier",
      "expiry": 365
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 201 Created theme={null}
  {
    "name": "Zapier — production",
    "key": "401f7ac837da42b97f613d789819ff93537bee6a",
    "environment": "zapier",
    "expiry": 365,
    "created_by": {
      "id": 1042,
      "full_name": "Jordan Lee",
      "email": "jordan@example.com"
    },
    "created": "2026-08-16T09:12:33.512000Z",
    "expiry_date": "2027-08-16T09:12:33.512000Z",
    "expired": false,
    "usage_count": 0
  }
  ```
</ResponseExample>

### Antwortfelder

<ResponseField name="key" type="string">
  Der rohe Management-API-Schlüssel. **Dies ist die einzige Antwort, die jemals den vollständigen Schlüsselwert zurückgibt** — es gibt keinen Anzeige-/Abruf-Endpunkt im Nachhinein, speichern Sie ihn also sofort.
</ResponseField>

<ResponseField name="expiry_date" type="string | null">
  Der absolute Ablaufzeitpunkt, berechnet aus `created` + `expiry` Tagen, oder `null`, wenn `expiry` gleich `-1` (Nie) ist.
</ResponseField>

<ResponseField name="expired" type="boolean">
  Ob der Schlüssel sein `expiry_date` bereits überschritten hat. Abgelaufene Schlüssel scheitern bei der Authentifizierung am Daten-Host, werden aber nicht automatisch gelöscht — entfernen Sie sie explizit über [`DELETE /console/token/{key}/`](/de/api-reference/management-api/tokens/remove), wenn Sie sie aus der Liste entfernen möchten.
</ResponseField>

<ResponseField name="usage_count" type="integer">
  Lebenszeit-Zähler der mit diesem konkreten Schlüssel gestellten Anfragen, über seine gesamte Historie. Dies unterscheidet sich von den aggregierten, environment-weiten Werten, die von den [Nutzungs-Endpunkten](/de/api-reference/management-api/tokens/usage-stats) unten zurückgegeben werden, welche über alle Schlüssel summieren, die dieses Environment teilen.
</ResponseField>

## Bestehende Token auflisten

Derselbe Pfad `console/token/` akzeptiert außerdem `GET` (ohne Body), um alle Schlüssel des Kontos aufzulisten, wobei für jeden dieselbe Struktur wie bei der Erstellungsantwort zurückgegeben wird. Sie können nach Environment filtern: `GET /console/token/?environment=live`.

<Note>
  Sowohl Erstellen als auch Auflisten von Token prüfen die Plan-Quota erneut anhand des `environment` der Anfrage — das Body-Feld beim Erstellen, der Query-Parameter beim Auflisten, standardmäßig `sandbox`, falls weggelassen. Wenn sich die Sandbox- und Live-Quoten Ihres Plans unterscheiden, geben Sie beim Auflisten von Live-Environment-Schlüsseln explizit `?environment=live` an, da sonst standardmäßig die Sandbox-Quota geprüft wird.
</Note>

## Verwandte Themen

* [Management-API-Übersicht](/de/api-reference/management-api/overview) — die Zwei-Host-Architektur und die Quota-Zuordnung pro `environment`, in die das `environment`-Feld dieses Endpunkts einfließt.
* [Ein API-Token entfernen](/de/api-reference/management-api/tokens/remove) — widerrufen Sie einen hier erstellten Schlüssel.
* [Nutzungsstatistiken](/de/api-reference/management-api/tokens/usage-stats) — aggregierte Anfragenzahlen für Schlüssel, die sich ein Environment teilen.
* [QR-Codes auflisten / erstellen](/de/api-reference/management-api/qr/list) — der erste Daten-Endpunkt, den die meisten Integrationen mit einem hier erstellten Schlüssel aufrufen.


## OpenAPI

````yaml api-reference/openapi/management-api.json POST /console/token/
openapi: 3.1.0
info:
  title: Scanova Management API (v2)
  description: >-
    The complete Scanova Management API — every endpoint available at
    management.scanova.io (QR codes, folders, tags, leads, forms, analytics,
    plans, shared users & roles), plus the token-creation and usage-stats
    endpoints used to authenticate against it. Every path and request/response
    shape below was verified live against a real API key and the actual running
    backend (Phase 7, 2026-08-16) — not guessed from reading urls.py alone.
  version: 2.0.0
servers:
  - url: https://management.scanova.io
    description: Management API — QR/folder/tag/lead/form/analytics/plans endpoints
security:
  - apiKeyAuth: []
paths:
  /console/token/:
    post:
      summary: Create an API token
      operationId: createApiToken
      responses:
        '201':
          description: Token created
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Send your Management API key as the raw value of the Authorization
        header — no "Bearer " or "Token " prefix, and no other characters.
        Example: `Authorization: 401f7ac837da42b97f613d789819ff93537bee6a`. A
        header containing more than one space-separated part is rejected
        outright. Requests also require the request's Host header to be the
        management API host (e.g. management.scanova.io) — the same key sent to
        the regular API host will not authenticate.

````