Sechs lesende Endpunkte rund um das Team, zu dem Ihr API-Schlüssel gehört. Damit lassen sich Mitgliederlisten, Berechtigungsmatrizen und Sitzplatzanzeigen aufbauen, ohne die Weboberfläche auszulesen. Verändert wird über diese API nichts: Mitglieder aufnehmen, Einladungen versenden oder widerrufen und Modulrechte setzen bleiben der Weboberfläche vorbehalten.
https://creativeskyline.de/api/team
https://creativeskyline.de/api/team/members
https://creativeskyline.de/api/team/modules
https://creativeskyline.de/api/team/invitations
https://creativeskyline.de/api/team/licenses
Melden Sie sich an, öffnen Sie Profil → API-Zugang und kopieren Sie Ihren persönlichen API-Key (pk_...).
Alle Anfragen benötigen diese HTTP-Header:
Authorization: Bearer pk_dein_api_key
Accept: application/json
Beginnen Sie mit GET /api/team. Die Antwort nennt Name und UUID des Teams, das wirksame Paket, den Zustand der Testphase und die Kurzkennungen der aktiven Module. GET /api/team/modules übersetzt diese Kurzkennungen in Anzeigenamen und nennt zu jedem Modul, ob das Paket es enthält, ob das Team es eingeschaltet hat und ob der eigene Schlüssel darauf zugreifen darf.
Ein Mitglied wird über die UUID der Person angesprochen, nicht über die der Mitgliedschaftszeile. Ein Modul wird über seine Kurzkennung angesprochen, also die Spalte in team_users (cm, tt, fa und so weiter) — dieselbe Kennung, die auch die Modul-Berechtigung der übrigen APIs trägt.
Erfolgreiche Anfragen antworten mit {"success": true, "data": ...}. Listen tragen zusätzlich meta mit current_page, per_page, total und last_page. Fehler antworten mit {"success": false, "error": "...", "message": "..."}.
/api/team
Liefert UUID und Name des Teams, die UUID der Inhaberin oder des Inhabers, das wirksame Paket, den Zustand der Testphase und die Kurzkennungen der aktiven Module. Während einer laufenden Testphase ist das genannte Paket das Leistungspaket der Testphase, nicht das gebuchte; der Block trial weist das aus.
/api/team/modules
Liefert jedes Modul mit Kurzkennung, langer Kennung und Anzeigenamen, dazu ob das Paket es enthält, ob das Team es eingeschaltet hat, ob es damit nutzbar ist, und ob der aufrufende Schlüssel selbst darauf zugreifen darf. own_sub_access nennt die eigenen Unterzugriffe des Moduls. Bei Modulen außerhalb der Pakete, etwa Hosting oder Teamverwaltung, ist package_granted null.
/api/team/members
Liefert die Mitglieder des eigenen Teams mit UUID, Name, E-Mail-Adresse, abgeleiteter Rolle, freier Bezeichnung, den Modulrechten als Wahrheitswerte je Kurzkennung, den gespeicherten Unterzugriffen je Modul und den Vollzugriffsbereichen. Die Modulrechte berücksichtigen, dass die Inhaberin oder der Inhaber jedes angebotene Modul hält, auch ohne gesetztes Kennzeichen.
per_page
integer
Einträge pro Seite, 1 bis 200, Standard 50.
page
integer
Seitenzahl, Standard 1.
/api/team/members/{userUuid}
Liefert ein einzelnes Mitglied in derselben Form wie die Liste. Angesprochen wird die UUID der Person. Eine UUID, die zu niemandem gehört, und eine aus einem fremden Team antworten beide mit HTTP 404.
/api/team/invitations
Liefert die Einladungen, die eine Adresse noch an dieses Team binden, mit UUID, Adresse, freier Bezeichnung, Zustand, Ablaufzeitpunkt und Anlagezeitpunkt. Abgelaufene und bereits angenommene Einladungen erscheinen nicht.
per_page
integer
Einträge pro Seite, 1 bis 200, Standard 50.
page
integer
Seitenzahl, Standard 1.
/api/team/licenses
Liefert die Sitzplatzlage des Teams: gebuchte Plätze, belegte Plätze, offene Einladungen, ob eine weitere Einladung möglich ist, und bei einem Enterprise-Vertrag dessen Mitgliedergrenze. state ist active_subscription, trialing oder no_subscription. Die Auskunft stammt aus derselben Prüfung, die auch in der Weboberfläche über eine weitere Einladung entscheidet.
/api/team
curl -X GET "https://creativeskyline.de/api/team" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/team');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/team', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/team',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "9d2f4c1a-7b3e-4f8a-9c5d-1e6a8b0c2d4f",
"name": "Musterfirma GmbH",
"owner_uuid": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"package": {
"key": "flow_suite_pro",
"name": "FlowSuite Pro"
},
"trial": {
"active": false,
"ends_at": "2026-08-01T00:00:00+02:00",
"days_remaining": 0,
"package_key": null
},
"active_modules": [
"ai",
"cc",
"tt",
"cm",
"td",
"fs",
"sa",
"fa",
"fe",
"fd",
"flowsupport"
],
"created_at": "2025-11-02T09:14:00+01:00"
}
}
/api/team/modules
curl -X GET "https://creativeskyline.de/api/team/modules" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/team/modules');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/team/modules', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/team/modules',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"field": "cm",
"key": "flowcrm",
"label": "FlowCRM",
"group": "flow_suite",
"availability": "package",
"package_granted": true,
"team_active": true,
"available": true,
"own_access": true,
"own_sub_access": [
"kunden",
"projekte"
]
},
{
"field": "tm",
"key": null,
"label": "Teamverwaltung",
"group": "additional",
"availability": "always",
"package_granted": null,
"team_active": true,
"available": true,
"own_access": false,
"own_sub_access": []
}
]
}
/api/team/members
curl -X GET "https://creativeskyline.de/api/team/members" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/team/members');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/team/members', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/team/members',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"uuid": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"name": "Anna Beispiel",
"email": "anna@example.com",
"role": "manager",
"role_label": "Buchhaltung",
"modules": {
"tt": true,
"cm": true,
"fa": false,
"tm": true
},
"sub_access": {
"flowcrm": [
"kunden",
"projekte"
]
},
"full_access_scopes": [],
"joined_at": "2025-11-02T09:14:00+01:00"
}
],
"meta": {
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1
}
}
/api/team/members/{userUuid}
curl -X GET "https://creativeskyline.de/api/team/members/{userUuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/team/members/{userUuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/team/members/{userUuid}', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/team/members/{userUuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"name": "Anna Beispiel",
"email": "anna@example.com",
"role": "member",
"role_label": null,
"modules": {
"tt": true,
"cm": true
},
"sub_access": {
"flowtime": [
"berichte"
]
},
"full_access_scopes": [],
"joined_at": "2025-11-02T09:14:00+01:00"
}
}
/api/team/invitations
curl -X GET "https://creativeskyline.de/api/team/invitations" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/team/invitations');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/team/invitations', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/team/invitations',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"uuid": "7f8e9d0c-1b2a-4c3d-8e5f-6a7b8c9d0e1f",
"email": "neu@example.com",
"role": null,
"status": "pending",
"expires_at": "2026-10-05T12:00:00+02:00",
"created_at": "2026-09-21T12:00:00+02:00"
}
],
"meta": {
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1
}
}
/api/team/licenses
curl -X GET "https://creativeskyline.de/api/team/licenses" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/team/licenses');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/team/licenses', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/team/licenses',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"state": "active_subscription",
"purchased": 5,
"active": 3,
"pending": 1,
"enterprise_max_members": null,
"can_invite": true,
"enterprise_capped": false,
"billing_cycle": "monthly",
"current_period_end": "2026-10-21T00:00:00+02:00",
"trial_ends_at": "2026-08-01T00:00:00+02:00",
"trial_days_remaining": 0
}
}
curl -X GET "https://creativeskyline.de/api/team" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/team');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/team', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/team',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "9d2f4c1a-7b3e-4f8a-9c5d-1e6a8b0c2d4f",
"name": "Musterfirma GmbH",
"owner_uuid": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"package": {
"key": "flow_suite_pro",
"name": "FlowSuite Pro"
},
"trial": {
"active": false,
"ends_at": "2026-08-01T00:00:00+02:00",
"days_remaining": 0,
"package_key": null
},
"active_modules": [
"ai",
"cc",
"tt",
"cm",
"td",
"fs",
"sa",
"fa",
"fe",
"fd",
"flowsupport"
],
"created_at": "2025-11-02T09:14:00+01:00"
}
}
curl -X GET "https://creativeskyline.de/api/team/modules" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/team/modules');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/team/modules', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/team/modules',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"field": "cm",
"key": "flowcrm",
"label": "FlowCRM",
"group": "flow_suite",
"availability": "package",
"package_granted": true,
"team_active": true,
"available": true,
"own_access": true,
"own_sub_access": [
"kunden",
"projekte"
]
},
{
"field": "tm",
"key": null,
"label": "Teamverwaltung",
"group": "additional",
"availability": "always",
"package_granted": null,
"team_active": true,
"available": true,
"own_access": false,
"own_sub_access": []
}
]
}
curl -X GET "https://creativeskyline.de/api/team/members" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/team/members');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/team/members', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/team/members',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"uuid": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"name": "Anna Beispiel",
"email": "anna@example.com",
"role": "manager",
"role_label": "Buchhaltung",
"modules": {
"tt": true,
"cm": true,
"fa": false,
"tm": true
},
"sub_access": {
"flowcrm": [
"kunden",
"projekte"
]
},
"full_access_scopes": [],
"joined_at": "2025-11-02T09:14:00+01:00"
}
],
"meta": {
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1
}
}
curl -X GET "https://creativeskyline.de/api/team/members/{userUuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/team/members/{userUuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/team/members/{userUuid}', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/team/members/{userUuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"name": "Anna Beispiel",
"email": "anna@example.com",
"role": "member",
"role_label": null,
"modules": {
"tt": true,
"cm": true
},
"sub_access": {
"flowtime": [
"berichte"
]
},
"full_access_scopes": [],
"joined_at": "2025-11-02T09:14:00+01:00"
}
}
curl -X GET "https://creativeskyline.de/api/team/invitations" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/team/invitations');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/team/invitations', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/team/invitations',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"uuid": "7f8e9d0c-1b2a-4c3d-8e5f-6a7b8c9d0e1f",
"email": "neu@example.com",
"role": null,
"status": "pending",
"expires_at": "2026-10-05T12:00:00+02:00",
"created_at": "2026-09-21T12:00:00+02:00"
}
],
"meta": {
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1
}
}
curl -X GET "https://creativeskyline.de/api/team/licenses" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/team/licenses');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/team/licenses', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/team/licenses',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"state": "active_subscription",
"purchased": 5,
"active": 3,
"pending": 1,
"enterprise_max_members": null,
"can_invite": true,
"enterprise_capped": false,
"billing_cycle": "monthly",
"current_period_end": "2026-10-21T00:00:00+02:00",
"trial_ends_at": "2026-08-01T00:00:00+02:00",
"trial_days_remaining": 0
}
}