# API-Zugriffstoken

Ein API-Zugriffstoken ist eine eindeutige Kennung, die einem bestimmten Projekt oder mehreren Projekten in Ihrem Konto zugewiesen ist. Es authentifiziert Ihr Konto für die Verwaltung Ihrer Projekte über die API, einschließlich Kontoänderungen, Senden von Nachrichten, Bearbeiten von Projekten usw.

## Arten von API-Zugriffstoken

Pushwoosh bietet zwei verschiedene Arten von API-Zugriffstoken: **Server** und **Device**.

Jeder Tokentyp ist nur für seinen spezifischen API-Geltungsbereich gültig. Ein Authentifizierungsfehler tritt auf, wenn das falsche Token verwendet wird.

#### Server-API-Token

Das Server-API-Token wird mit allen API-Methoden verwendet, außer denen der Device-API. Es sollte im Anfragetext im Feld `auth` enthalten sein.

#### Device-API-Token

Das Device-API-Token wird ausschließlich mit Methoden der Device-API verwendet. Es sollte in den HTTP-Anfrageheadern unter Verwendung des `Authorization`-Headers eingefügt werden.
Unten sehen Sie ein Beispiel für das korrekte Header-Format:

```
Authorization: Token <device_api_token>
```
Ersetzen Sie `<device_api_token>` durch den tatsächlichen Wert Ihres Device-API-Tokens.

<Aside type="caution" title="Methoden, die ein Device-API-Token erfordern">

Die folgenden API-Methoden **erfordern ein Device-API-Token** zur Autorisierung:
- [`registerDevice`](/de/developer/api-reference/device-api/#registerdevice)
- [`unregisterDevice`](/de/developer/api-reference/device-api/#unregisterdevice)
- [`deleteDevice`](/de/developer/api-reference/device-api/#deletedevice)
- [`setTags`](/de/developer/api-reference/device-api/#settags)
- [`getTags`](/de/developer/api-reference/device-api/#gettags)
- [`setBadge`](/de/developer/api-reference/device-api/#setbadge)
- [`applicationOpen`](/de/developer/api-reference/device-api/#applicationopen)
- [`pushStat`](/de/developer/api-reference/device-api/#pushstat)
- [`messageDeliveryEvent`](/de/developer/api-reference/device-api/#messagedeliveryevent)
- [`registerUser`](/de/developer/api-reference/user-centric-api/#registeruser)
- [`deleteUser`](/de/developer/api-reference/user-centric-api/#deleteuser)
- [`postEvent`](/de/developer/api-reference/user-centric-api/#postevent)
- [`registerEmail`](/de/developer/api-reference/email-api/#registeremail)
- [`deleteEmail`](/de/developer/api-reference/email-api/#deleteemail)
- [`setEmailTags`](/de/developer/api-reference/email-api/#setemailtags)
- [`registerEmailUser`](/de/developer/api-reference/email-api/#registeremailuser)
- [`getInboxMessages`](/de/developer/api-reference/message-inbox/#getinboxmessages)
- [`inboxStatus`](/de/developer/api-reference/message-inbox/#inboxstatus)
</Aside>

## API-Zugriffstoken erstellen und verwalten

Sie können Ihre API-Zugriffstoken im Bereich **API Access** des Pushwoosh Control Panels anzeigen, erstellen und verwalten. Um darauf zuzugreifen, gehen Sie zu **Settings → API Access**.
![Pushwoosh Demo App Token](/api-reference-api-access-token-1.webp)

Standardmäßig enthält jedes Konto ein Token namens **Pushwoosh Demo App**, das als Server-Token eingerichtet ist.

### Ein neues API-Zugriffstoken erstellen

So erstellen Sie ein neues API-Zugriffstoken:

1. Gehen Sie zum Bereich **API Access** im Control Panel.

2. Klicken Sie auf **Generate New Token**.

3. Wählen Sie im erscheinenden Fenster den Tokentyp aus:

   * [**Server**](#server-api-token) wird für die meisten API-Methoden verwendet (außer Device-API-Methoden).

   * [**Device**](#device-api-token) wird nur für Device-API-Methoden verwendet.

4. Geben Sie einen Namen für das Token ein.

5. Klicken Sie auf **Generate**, um das Token zu erstellen.

![Ein neues Token generieren](/api-reference-api-access-token-4.webp)

> **Wichtig:** Stellen Sie sicher, dass Sie dem Token Zugriff auf die richtige App in Ihrem Pushwoosh Control Panel gewähren. [Erfahren Sie mehr](#edit-token)

Das neue Token wird in der API-Zugriffsliste angezeigt. Von dort aus können Sie seinen Wert für die Verwendung in API-Anfragen kopieren oder seine Zugriffsberechtigungen nach Bedarf verwalten.

### Ein Token verwalten

Um ein bestehendes API-Token zu verwalten, klicken Sie auf das **Drei-Punkte-Menü (⋮)** neben dem Tokeneintrag im Bereich **API Access**.

![Ein Token verwalten](/api-reference-api-access-token-2.webp)

Die folgenden Optionen sind verfügbar:

#### Zugriff auf alle Projekte gewähren

Gewährt dem Token Zugriff auf alle Projekte in Ihrem Konto. Dies ermöglicht die vollständige Nutzung der API über alle Projekte hinweg.

<Aside type="tip">
Geben Sie nur den Tokens vollen Zugriff, die ihn benötigen. Dies hilft, Ihre Daten sicher zu halten und den Zugriff zu kontrollieren.
</Aside>

#### Zugriff von allen Projekten entziehen

Entfernt den Zugriff des Tokens auf alle Projekte in Ihrem Konto. Das Token kann die API nicht mehr verwenden, bis der Zugriff erneut gewährt wird.

#### Token bearbeiten

Öffnet den Bildschirm **Edit API Token Permissions**, wo Sie:

* Den Tokennamen ändern können

* Den Tokenwert kopieren können

* Auswählen können, auf welche Projekte das Token zugreifen darf, indem Sie sie in der Liste auswählen oder abwählen

![Ein Token verwalten](/api-reference-api-access-token-3.webp)

Nachdem Sie Ihre Änderungen vorgenommen haben, klicken Sie auf **Save**, um sie zu übernehmen.

<Aside type="tip">
Geben Sie Tokens nur Zugriff auf die Projekte, die sie benötigen. Dies hilft, Ihr Konto zu schützen und zu kontrollieren, was jedes Token tun kann.
</Aside>

#### Token löschen

Entfernt das Token dauerhaft aus Ihrem Konto.

<Aside type="caution">

Diese Aktion kann nicht rückgängig gemacht werden. Einmal gelöscht, kann das Token nicht wiederhergestellt werden. Stellen Sie sicher, dass das Token nicht mehr verwendet wird, bevor Sie es löschen.

</Aside>

## API-Anfragen autorisieren

Um API-Anfragen zu autorisieren, verwenden Sie den korrekten Typ des API-Zugriffstokens basierend auf der Art der API-Methode, die Sie aufrufen:

#### Für Server-API-Methoden

Fügen Sie das Token in das Feld "auth" des Anfragetextes ein:

Beispiel:

```json
{
  "request": {
    "application": "XXXXX-XXXXX",
    "auth": "yxoPUlwqm…………pIyEX4H", // Fügen Sie hier Ihr Server-Token ein
    "notifications": [{
      "send_date": "now",
      "content": "Hello world"
    }]
  }
}
```

#### Für Device-API-Methoden

Verwenden Sie das **Device-Token**. Fügen Sie es im HTTP-Anfrageheader im folgenden Format ein:

```
Authorization: Token <device_api_token>
```

Ersetzen Sie `<device_api_token>` durch Ihren tatsächlichen Tokenwert.
<Aside type="caution">
Stellen Sie sicher, dass der Tokentyp mit der von Ihnen verwendeten API-Methode übereinstimmt. Wenn das Token nicht dem erforderlichen Typ entspricht, gibt die Anfrage einen Authentifizierungsfehler zurück.
</Aside>