🚀 Jetzt neu: FlowAI! Ein revolutionärer Chat mit personalisierten AI-Agenten. 🌟

API Authentifizierung
sicher und einfach

Erfahren Sie alles über die Authentifizierung bei unseren APIs. Von der Token-Erstellung bis zur sicheren Implementierung in Ihrer Anwendung.

🚀 Schnellstart

Überblick

Unsere APIs verwenden zwei Authentifizierungsmethoden, abhängig vom API-Typ:

FlowSuite APIs

Team Management, FlowTime, FlowTasks, FlowCRM, FlowContacts

→ Header-Authentifizierung (X-Team-UUID, X-User-UUID)

Allgemeine APIs

IP Geolocation, Email Verifier, Maps, YouTube Analytics

→ Bearer-Token-Authentifizierung

Voraussetzungen

Bevor Sie die APIs nutzen können, benötigen Sie:

  1. 1 Ein registriertes Benutzerkonto bei Flow Suite
  2. 2 Für FlowSuite APIs: Ein aktives Abonnement des jeweiligen Moduls
  3. 3 Zugang zu Ihren API-Zugangsdaten unter Profil → API-Zugang

🔐 Authentifizierungsmethoden

📋 Header-Authentifizierung (FlowSuite APIs)

FlowSuite APIs verwenden eine Header-basierte Authentifizierung mit Team- und Benutzer-UUIDs. Diese Methode ermöglicht eine granulare Zugriffskontrolle auf Team-Ebene.

Erforderliche Header:

X-Team-UUID: ihre-team-uuid-hier
X-User-UUID: ihre-benutzer-uuid-hier
Content-Type: application/json
Accept: application/json

So finden Sie Ihre UUIDs:

  1. Melden Sie sich in Ihrem Account an
  2. Navigieren Sie zu Profil → API-Zugang
  3. Kopieren Sie Ihre Team-UUID und Benutzer-UUID

Verwendete APIs:

Team Management FlowTime FlowTasks FlowCRM FlowContacts

🎫 Bearer-Token-Authentifizierung (Allgemeine APIs)

Allgemeine APIs verwenden die Standard Bearer-Token-Authentifizierung. Sie erstellen einen API-Token in Ihrem Profil und senden diesen im Authorization-Header mit.

Erforderliche Header:

Authorization: Bearer ihr-api-token-hier
Accept: application/json

So erstellen Sie einen API-Token:

  1. Melden Sie sich in Ihrem Account an
  2. Navigieren Sie zu Profil → API-Zugang
  3. Klicken Sie auf "Neuen Token erstellen"
  4. Geben Sie einen Namen für den Token ein (z.B. "Meine App")
  5. Optional: Setzen Sie ein Ablaufdatum für den Token
  6. Wichtig: Kopieren und speichern Sie den Token sofort - er wird nur einmal angezeigt!

Verwendete APIs:

IP Geolocation Email Verifier Maps Geocoding YouTube Analytics Benutzer Info

🔑 Token-Verwaltung

Token-Lebenszyklus

Erstellung

Tokens können mit oder ohne Ablaufdatum erstellt werden. Tokens ohne Ablaufdatum bleiben bis zur manuellen Löschung gültig.

Regenerierung

Sie können einen Token jederzeit regenerieren. Der alte Token wird dabei ungültig und ein neuer wird generiert.

Löschung

Gelöschte Tokens werden sofort ungültig. Alle API-Anfragen mit diesem Token werden mit einem 401-Fehler abgelehnt.

Token-Statistiken

In Ihrem Profil können Sie die Nutzung Ihrer Tokens verfolgen:

Gesamt

Gesamtzahl der API-Aufrufe

Heute

API-Aufrufe heute

Monat

API-Aufrufe diesen Monat

🛡️ Sicherheitsrichtlinien

Best Practices

🚫 Niemals tun

  • • API-Tokens oder UUIDs in öffentlichen Repositories speichern
  • • Zugangsdaten im Frontend-Code oder in JavaScript hardcoden
  • • Tokens per E-Mail oder Chat teilen
  • • Einen Token für mehrere unabhängige Anwendungen verwenden

✅ Empfohlen

  • • Umgebungsvariablen für Zugangsdaten verwenden
  • • Separate Tokens für Entwicklung und Produktion erstellen
  • • Tokens regelmäßig rotieren (alle 90 Tage empfohlen)
  • • API-Aufrufe über einen Backend-Server durchführen
  • • HTTPS für alle API-Anfragen verwenden

Umgebungsvariablen

Speichern Sie Ihre Zugangsdaten sicher in Umgebungsvariablen:

# .env Datei (niemals committen!)
FLOWSUITE_TEAM_UUID=ihre-team-uuid-hier
FLOWSUITE_USER_UUID=ihre-benutzer-uuid-hier
FLOWSUITE_API_TOKEN=ihr-api-token-hier

Rate Limiting

Um Missbrauch zu verhindern und eine faire Nutzung zu gewährleisten, gelten folgende Limits:

API-Typ Limit Zeitraum
FlowSuite APIs 1000 Anfragen pro Minute
Allgemeine APIs 100 Anfragen pro Minute

Bei Überschreitung des Limits erhalten Sie einen HTTP 429 (Too Many Requests) Fehler.

💻 Code-Beispiele

cURL - Header-Authentifizierung

curl -X GET "https://creativeskyline.de/api/team/info" \
  -H "X-Team-UUID: ihre-team-uuid" \
  -H "X-User-UUID: ihre-user-uuid" \
  -H "Accept: application/json"

cURL - Bearer-Token

curl -X GET "https://creativeskyline.de/api/ip-geolocation?ip=8.8.8.8" \
  -H "Authorization: Bearer ihr-api-token" \
  -H "Accept: application/json"

PHP - Header-Authentifizierung

$teamUuid = getenv('FLOWSUITE_TEAM_UUID');
$userUuid = getenv('FLOWSUITE_USER_UUID');

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => 'https://creativeskyline.de/api/team/info',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'X-Team-UUID: ' . $teamUuid,
        'X-User-UUID: ' . $userUuid,
        'Accept: application/json',
    ],
]);

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

JavaScript (Fetch) - Header-Authentifizierung

const teamUuid = process.env.FLOWSUITE_TEAM_UUID;
const userUuid = process.env.FLOWSUITE_USER_UUID;

const response = await fetch('https://creativeskyline.de/api/team/info', {
    method: 'GET',
    headers: {
        'X-Team-UUID': teamUuid,
        'X-User-UUID': userUuid,
        'Accept': 'application/json',
    },
});

const data = await response.json();
console.log(data);

Python - Header-Authentifizierung

import os
import requests

team_uuid = os.environ.get('FLOWSUITE_TEAM_UUID')
user_uuid = os.environ.get('FLOWSUITE_USER_UUID')

headers = {
    'X-Team-UUID': team_uuid,
    'X-User-UUID': user_uuid,
    'Accept': 'application/json',
}

response = requests.get('https://creativeskyline.de/api/team/info', headers=headers)
data = response.json()
print(data)

⚠️ Fehlerbehandlung

Authentifizierungsfehler

401 Unauthorized

Fehlende oder ungültige Authentifizierung. Überprüfen Sie Ihre UUIDs oder den API-Token.

{
  "success": false,
  "error": "Ungültige Authentifizierung"
}
403 Forbidden

Sie haben keine Berechtigung für diese Aktion. Überprüfen Sie Ihre Modul-Berechtigungen oder das Abonnement.

{
  "success": false,
  "error": "Keine Berechtigung für dieses Modul"
}
429 Too Many Requests

Rate-Limit überschritten. Warten Sie einen Moment und versuchen Sie es erneut.

{
  "success": false,
  "error": "Rate limit exceeded",
  "retry_after": 60
}

Fehlerbehandlung implementieren

Hier ein Beispiel für robuste Fehlerbehandlung in JavaScript:

async function apiRequest(endpoint, options = {}) {
    const headers = {
        'X-Team-UUID': process.env.FLOWSUITE_TEAM_UUID,
        'X-User-UUID': process.env.FLOWSUITE_USER_UUID,
        'Accept': 'application/json',
        ...options.headers,
    };

    try {
        const response = await fetch(endpoint, { ...options, headers });

        if (response.status === 401) {
            throw new Error('Ungültige Authentifizierung');
        }

        if (response.status === 403) {
            throw new Error('Keine Berechtigung');
        }

        if (response.status === 429) {
            const retryAfter = response.headers.get('Retry-After') || 60;
            throw new Error(`Rate-Limit erreicht. Warte ${retryAfter}s`);
        }

        return await response.json();
    } catch (error) {
        console.error('API-Fehler:', error.message);
        throw error;
    }
}