---
title: "OAuth2-Zugriffstoken abrufen"
description: "Tauschen Sie CloudPrint-API-Zugangsdaten per Client Credentials gegen ein kurzlebiges OAuth2-Bearer-Token."
---
<nav class="docs-breadcrumb" aria-label="Breadcrumb"><a href="/de/docs/">CloudPrint-Dokumentation</a><span aria-hidden="true">/</span><span>API-Referenz</span></nav>

# OAuth2-Zugriffstoken abrufen

<p class="docs-lead">Tauschen Sie CloudPrint-API-Zugangsdaten per Client Credentials gegen ein kurzlebiges OAuth2-Bearer-Token.</p>

<div class="api-endpoint-summary"><span class="api-method api-method-post">POST</span><code>/oauth/token</code><span><strong>API-Version:</strong> v1</span><span><strong>operationId:</strong> <code>issueOAuthToken</code></span><a href="/de/docs/api/v1/authentication/token/index.md">Als Markdown anzeigen</a></div>

## Funktion dieser Methode

Tauschen Sie CloudPrint-API-Zugangsdaten per Client Credentials gegen ein kurzlebiges OAuth2-Bearer-Token.

## Authentifizierung

Diese Methode benötigt kein Bearer-Token.

## Anfrage

**Produktions-URL:** `https://public-api.cloudprint.me/oauth/token`

### Parameter

| Name | Position | Typ | Erforderlich | Beschreibung | Einschränkungen |
| --- | --- | --- | --- | --- | --- |
| `X-Request-Id` | header | `string` | nein | Optionale Kennung zur Anfrageverfolgung; CloudPrint gibt einen sicheren Wert im Antwort-Header zurück. | maxLength: 128; example: `"order-100045-attempt-1"` |

### Anfrageinhalt

**Inhaltstyp:** `application/x-www-form-urlencoded`

| Name | Typ | Erforderlich | Beschreibung | Einschränkungen |
| --- | --- | --- | --- | --- |
| `grant_type` | `string` | ja | OAuth2-Grant-Type für die Token-Anfrage. | enum: `client_credentials`; example: `"client_credentials"` |
| `client_id` | `string` | ja | Öffentliche Kennung aus den API-Zugangsdaten des Kontos. | — |
| `client_secret` | `string` | ja | Secret aus den API-Zugangsdaten; bewahren Sie es nur im Secret Store des Backends auf. | — |
| `scope` | `string` | nein | Durch Leerzeichen getrennte Scopes für das angeforderte Zugriffstoken. | example: `"agents:read printers:read documents:write print_jobs:write print_jobs:read"` |

### Anfragebeispiele

#### cURL

```bash
curl -sS https://public-api.cloudprint.me/oauth/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode 'client_id=33333333-3333-4333-8333-333333333333' \
  --data-urlencode 'client_secret=cpsec_...' \
  --data-urlencode 'scope=agents:read printers:read documents:write print_jobs:write print_jobs:read'
```

#### PHP

```php
<?php

$response = file_get_contents('https://public-api.cloudprint.me/oauth/token', false, stream_context_create([
    'http' => [
        'method' => 'POST',
        'header' => "Content-Type: application/x-www-form-urlencoded\r\n",
        'content' => http_build_query([
            'grant_type' => 'client_credentials',
            'client_id' => getenv('CLOUDPRINT_CLIENT_ID'),
            'client_secret' => getenv('CLOUDPRINT_CLIENT_SECRET'),
            'scope' => 'agents:read printers:read documents:write print_jobs:write print_jobs:read',
        ]),
    ],
]));

$token = json_decode((string) $response, true, flags: JSON_THROW_ON_ERROR)['access_token'];
```

## Antwort

**HTTP-Status:** `200` — Anfrage erfolgreich.

### Antwortfelder

| Name | Typ | Erforderlich | Beschreibung | Einschränkungen |
| --- | --- | --- | --- | --- |
| `token_type` | `string` | ja | OAuth2-Token-Typ; die Public API verwendet `Bearer`. | example: `"Bearer"` |
| `expires_in` | `integer` | ja | Gültigkeitsdauer des Zugriffstokens in Sekunden ab Ausstellung. | example: `900` |
| `access_token` | `string` | ja | Kurzlebiges OAuth2-Bearer-Token für Anfragen an die Public API. | example: `"eyJ..."` |
| `scope` | `string` | ja | Durch Leerzeichen getrennte Scopes für das angeforderte Zugriffstoken. | example: `"printers:read print_jobs:write"` |

### Beispielantwort

```json
{
  "token_type": "Bearer",
  "expires_in": 900,
  "access_token": "eyJ...",
  "scope": "printers:read print_jobs:write"
}
```

## Fehler

| HTTP-Status | Beschreibung |
| --- | --- |
| `400` | Prüfen Sie Format und Parameter. |
| `401` | Authentifizierung fehlt oder ist ungültig. |
| `429` | Anfragelimit überschritten; beachten Sie Retry-After. |
| `500` | Interner CloudPrint-Fehler. |

## Hinweise zur Integration

- Bewahren Sie `client_secret` nur im Secret Store des Backends auf; senden Sie es nie an den Browser und binden Sie es nicht in ausgelieferte Desktop-Anwendungen ein.
- Speichern Sie das Token bis kurz vor `expires_in`, statt es für jeden Druckauftrag neu anzufordern.
- Fordern Sie nur die benötigten Scopes an.

## Verwandte Dokumentation

<div class="docs-card-grid"><a class="docs-card" href="/de/docs/api/v1/authentication/client-context/"><strong>Aktuellen API-Client-Kontext abrufen</strong><span>Prüfen Sie, welches CloudPrint-Konto, welche Client-Anwendung und welche Scopes das aktuelle Zugriffstoken repräsentiert.</span></a>
<a class="docs-card" href="/de/docs/api/authentication/"><strong>Backend authentifizieren</strong><span>Tauschen Sie API-Zugangsdaten per Client Credentials gegen ein kurzlebiges OAuth2-Token ein.</span></a>
<a class="docs-card" href="/de/docs/api/v1/errors/"><strong>Fehler und Wiederholungen der CloudPrint API</strong><span>Behandeln Sie HTTP-Statuscodes, maschinenlesbare Fehler, Anfragelimits, Anfrageverfolgung und sichere Wiederholungslogik.</span></a></div>

<nav class="docs-resource-links" aria-label="Nächste Schritte"><a href="https://cloudprint.me/status/">Dienststatus</a><a href="/de/docs/api/v1/explorer/">OpenAPI</a><a href="https://developer.cloudprint.me">Developer Portal</a><a href="https://my.cloudprint.me">Konto öffnen</a><a href="/docs/legal/privacy/">Datenschutzerklärung</a><a href="/docs/legal/terms/">Nutzungsbedingungen</a><a href="/docs/legal/payments-and-refunds/">Zahlungen und Erstattungen</a><a href="/docs/legal/data-processing/">DPA</a><a href="/docs/legal/service-level-agreement/">Service Level Agreement</a></nav>