# Erste Schritte

### Einleitung

Die 3Q Plattform bietet eine REST-basierte Schnittstelle zur Automatisierung von Video-Workflows. Sie erlaubt unter anderem das Erstellen von Projekten, Hochladen von Assets, Konfigurieren von Livestreams und das verwalten von Playlists.

Die vollständige API Dokumentation finden Sie unter: <https://api.3qsdn.com/v3/doc>.

**Basis-URL:**

```txt
https://api.3qsdn.com/v3/
```

### Authentifizierung

Die API verwendet JWT (JSON Web Tokens) im Bearer-Format, die im Header jeder Anfrage mitgesendet werden müssen. Jeder Token ist einem Benutzer zugeordnet und übernimmt dessen Rechte.

**Beispiel-Header:**

```http
Authorization: Bearer <API_KEY>
Content-Type: application/json
```

### Allgemeines zur API

* **Format:** JSON
* **Fehlermeldungen:** HTTP-Statuscodes + Fehlerobjekt im Body
* **HTTP-Methoden:**
  * `GET`: Daten abrufen
  * `POST`: Ressourcen erstellen
  * `PUT`: Ressourcen aktualisieren
  * `DELETE`: Ressourcen löschen

### Ressourcen & Endpunkte (Auszug)

Je nachdem ob Sie Live- oder On-Demand Streaming betreiben wollen finden Sie im folgenden die wichtigsten API Endpunkte. Eine vollständige Liste finden Sie hier: <https://api.3qsdn.com/v3/doc>.

#### Projekte

* `GET /projects` – Alle Projekte anzeigen
* `POST /projects` – Projekt erstellen
* `GET /projects/{projectId}` – Projektdetails abrufen
* `PUT /projects/{projectId}` – Projekt bearbeiten
* `DELETE /projects/{projectId}` – Projekt löschen

#### Files (Video- oder Audiodateien)

* `POST /projects/{projectId}/files` – File uploaden
* `GET /projects/{projectId}/files` – Videoliste abrufen
* `DELETE /projects/{projectId}/files/{fileId}` – File löschen

#### Livestreams

* `(GET|PUT) /projects/{projectId}/live/ingest` – Ingest bearbeiten
* `(GET) /`projects/{projectId}/live/output – Playout URLs erhalten

#### Playlists

* `GET /modules/playlists` – Playlists abrufen
* `POST /modules/playlists` – Neue Playlist erstellen
* `GET /modules/playlists/{playlistId}` – Playlist abrufen
* `PUT /modules/playlists/{playlistId}`  – Playlist updaten
* `DELETE /modules/playlists/{playlistId}` – Playlist löschen

### Fehlerbehandlung

**Standard-HTTP-Statuscodes:**

* `200 OK`
* `201 Created`
* `400 Bad Request`
* `401 Unauthorized`
* `404 Not Found`
* `500 Internal Server Error`

**Beispiel Fehlerantwort:**

```json
{
  "error": {
    "code": 401,
    "message": "Missing JWT Refresh Token"
  }
}
```

### Pagination & Filter

Viele Endpunkte unterstützen Pagination und Filter:

```http
GET /projects?limit=10&offset=20
```

### Versionierung

* Aktuelle Version: `v3`
* Die Version ist in der URL integriert (`/v3/...`)

***

Letzte Aktualisierung: 28. Juli 2025
