Ein Endpunkt, eine Unterhaltung: Sie senden eine Nachricht, erhalten die Antwort und die Kennung der Unterhaltung, und chatten mit dieser Kennung weiter. Verlauf, Werkzeuge und Erinnerungen sind dieselben wie im Web-Chat. Dazu kommen Anhänge und Webhook-Ziele. Anbietermodelle, Endnutzer mit eigenem Brain-Kontext und die Abrechnung nach Verbrauch gehören zum eigenständigen Routing-Produkt.
https://creativeskyline.de/api/flowai/v1
Diese Seite beschreibt Ihr eigenes FlowAI über die Schnittstelle: dieselben Unterhaltungen, dieselben Werkzeuge und dieselben Erinnerungen wie im Web-Chat. Die Fläche ist deshalb klein: der Modellkatalog, ein Chat-Endpunkt, der Dateispeicher für Anhänge und die Webhook-Ziele, an die ein fertiger Lauf sein Ergebnis ausliefern kann.
Alles Weitere, also konkrete Anbietermodelle, Endnutzer mit eigenem Brain-Kontext, Erinnerungen, Embeddings und die Abrechnung nach Verbrauch, gehört zum eigenständigen Produkt FlowAI Routing und benötigt einen Routing-Schlüssel. Ein abonnementgebundener Schlüssel wird dort mit 403 insufficient_key_scope abgewiesen, und umgekehrt ebenso. Das Produkt eines Schlüssels ist unveränderlich.
at_-Präfix haben. Entscheidend ist die Schlüsselart, nicht das PräfixBeide Endpunkte hängen am gemeinsamen Versions-Prefix:
BASE_URL/api/flowai/v1
Breaking Changes erscheinen unter v2, sodass bestehende Integrationen nicht brechen.
Die FlowAI-API akzeptiert nur den Standard-Header Authorization: Bearer …. Token in Query-Parametern, im Body oder in alternativen Headern werden mit HTTP 401 und Code invalid_token_source abgelehnt.
Authorization: Bearer pk_dein_api_key Accept: application/json Content-Type: application/json
POST BASE_URL/api/flowai/v1/chat
{
"message": "Hallo"
}Die Antwort enthält conversation. Senden Sie diesen Wert beim nächsten Mal mit, und Sie setzen dieselbe Unterhaltung fort.
Endpoint: GET /api/flowai/v1/models
Die Antwort enthält die stabilen Modell-Aliase für das FlowSuite-Pro-Abonnement. Sie enthält ausschließlich freigegebene Modelle mit gepflegten Eingabe- und Ausgabepreisen.
{
"object": "list",
"data": [
{"id":"flowai","object":"model","created":1735000000,"owned_by":"creativeskyline"}
],
"flowai_request_id": "01HXYZ…ULID"
}flowai - Allrounder: kombiniert die besten Modelle für jede Aufgabechatgpt - Kreativ: Brainstorming, Texte, E-Mails, Copywritingclaude - Analytisch: lange Dokumente, präzise Anweisungen, Nuancengemini - Technisch: Datenanalyse, Kalkulationen, multimodalgrok - Schnell: prägnante Antworten, Faktencheck, Quick-Lookupsperplexity - Recherche: aktuelle Web-Quellen, fundierte Recherche-Antwortenflowai-web - Web-Recherche über den API-exklusiven FlowAI-Webmoduscontext_length ist das Kontextfenster des Anbieters, flowai_limits.input_tokens dagegen die Grenze, die FlowAI tatsächlich zulässt; maßgeblich für Ihre Anfrage ist der kleinere Wert. capabilities und supported_parameters nennen die Felder, die dieses Modell wirklich auswertet. Ein Feld, das dort fehlt, wird mit 400 unsupported_for_model abgelehnt statt stillschweigend verworfen. Ein Wert null bedeutet, dass keine Quelle eine Angabe macht, und niemals unbegrenzt.
deprecated_at ist der angekündigte Abschalttermin dieses Modells, sonst null. Bis zu diesem Zeitpunkt bleibt das Modell in der Liste und voll aufrufbar; jede Antwort auf Chat-Completions, Responses und Embeddings trägt dann zusätzlich die Kopfzeilen Deprecation: true und Sunset mit genau diesem Termin nach RFC 8594. Ab dem Termin antwortet die API mit 410 model_deprecated, bevor Guthaben reserviert oder ein Anbieter aufgerufen wird. Ein Abschalttermin wird mindestens 30 Tage im Voraus gesetzt; ein Modell, das der Anbieter selbst aus seinem Katalog nimmt, verschwindet dagegen sofort aus der Liste.
/api/flowai/v1/models
Listet die verfügbaren Modell-Aliase des abonnementgebundenen Schlüssels auf. Der Cursor ist jeweils der öffentliche Modell-Alias.
limit
integer
Anzahl der Einträge von 1 bis 100, Standard 100
after
string
Alias aus last_id der vorherigen Seite
/api/flowai/v1/models/{model_id}
Liefert einen einzelnen Eintrag der Modellliste mit Preisen, Fähigkeiten, den tatsächlich geltenden FlowAI-Grenzen und dem Abschalttermin. Die Kennung ist der Modell-Alias; mit einem Routing-Schlüssel die vollständige Anbieterkennung einschließlich enthaltener Schrägstriche.
Senden Sie message und lassen Sie conversation weg. Die Antwort enthält unter conversation die Kennung der neu angelegten Unterhaltung. Bewahren Sie diesen Wert auf.
{
"message": "Fasse unsere Lieferbedingungen zusammen."
}Senden Sie beim nächsten Zug dieselbe conversation und nur die neue Nachricht. Der Verlauf wird serverseitig ergänzt; senden Sie ihn nicht noch einmal mit. Es läuft immer nur ein Zug je Unterhaltung: ein zweiter Aufruf, während der erste noch arbeitet, erhält 409 conversation_in_progress.
Ohne stream wartet der Aufruf auf die Antwort und liefert sie im selben Zug. Mit stream: true erhalten Sie Server-Sent Events: das erste Ereignis trägt type: chat.created mit der Kennung der Unterhaltung, danach folgen die Arbeitsschritte und zuletzt response.completed mit dem vollständigen Text.
Dauert die Verarbeitung länger als die serverseitige Wartegrenze, antwortet der Aufruf mit HTTP 202 und status: in_progress. Die Antwort ist nicht verloren: GET /api/flowai/v1/chat/{conversation_uuid} liefert den fertigen Zug, sobald er vorliegt.
Die Felder messages, input, store, background, external_identifier, tools und flowai_tools gehören zu anderen Endpunkten und werden mit 400 unsupported_field abgelehnt, statt stillschweigend verworfen zu werden.
/api/flowai/v1/chat
Sendet eine Nachricht an Ihr FlowAI und liefert die Antwort samt Kennung der Unterhaltung.
message
string
*
Die neue Nachricht, 1 bis 32.000 Zeichen
conversation
uuid
Kennung aus einer vorherigen Antwort; ohne Angabe beginnt eine neue Unterhaltung
model
string
Modell-Alias aus GET /models; ohne Angabe gilt flowai
stream
boolean
true liefert die Antwort als Server-Sent Events; Standard false
/api/flowai/v1/chat/{conversation_uuid}
Liefert den neuesten Zug einer Unterhaltung, ohne einen neuen zu starten.
Senden Sie Uploads als multipart/form-data. Zulässige Zwecke sind user_data und vision. Eine automatische Aufbewahrungsfrist wird nicht angeboten; nicht mehr benötigte Dateien müssen ausdrücklich gelöscht werden.
Der Einzelabruf liefert nur Metadaten. Die gespeicherten Bytes stehen ausschließlich über den gesonderten Inhaltsendpunkt bereit.
/api/flowai/v1/files
Speichert eine Datei für spätere FlowAI-Anfragen. Verwenden Sie multipart/form-data.
file
file
*
Hochzuladende Datei
purpose
string
*
user_data oder vision
/api/flowai/v1/files
Listet die Dateien des Workspace mit stabilem Cursor auf.
purpose
string
Filter: user_data oder vision
order
string
Sortierung: asc oder desc
limit
integer
Anzahl von 1 bis 100
after
string
Öffentliche Datei-ID aus last_id
/api/flowai/v1/files/{file_uuid}
Liefert Metadaten, aber nicht den Dateiinhalt.
/api/flowai/v1/files/{file_uuid}/content
BINARY
Liefert die gespeicherten Bytes als Download mit dem ursprünglichen Medientyp.
/api/flowai/v1/files/{file_uuid}
Löscht die gespeicherten Bytes und ihre Metadaten.
Webhook-Ziele müssen öffentlich erreichbare HTTPS-Adressen sein. Die API prüft Adressen beim Speichern und erneut vor jeder Zustellung. Registrieren Sie mindestens einen unterstützten Ereignistyp.
Der Zustellungsverlauf zeigt Status, Versuche und Fehlerart. Zulässige Statusfilter sind pending, delivered, failed und exhausted.
Neben den vier Abschlussereignissen eines Hintergrundauftrags (response.completed, response.failed, response.cancelled, response.incomplete) können Sie vier weitere Typen abonnieren: credit.threshold beim Erreichen einer Ihrer Warnschwellen in Euro (data.metric ist balance_floor, wenn der verfügbare Betrag unter die Schwelle gefallen ist, oder spend_month, wenn der Monatsverbrauch sie erreicht hat; data.threshold_eur nennt den Schwellenbetrag als Dezimalzeichenkette, zum Beispiel "50.00"), credit.topup_failed bei einer fehlgeschlagenen Aufladung, webhook_endpoint.deactivated wenn ein Ziel nach wiederholten Fehlversuchen abgeschaltet wurde, und webhook.test für die selbst ausgelöste Testzustellung. Jede Zustellung hat denselben Aufbau: id, type, created_at und data. webhook_endpoint.deactivated geht bewusst an alle übrigen aktiven Ziele des Workspace, niemals an das gerade abgeschaltete: dieses hat soeben bewiesen, dass es nichts empfangen kann.
Beim Wechsel bleibt das bisherige Secret bis zum Zeitpunkt aus secondary_secret_expires_at gültig. In diesem Zeitfenster enthält der Kopfzeilenwert webhook-signature zwei durch ein Leerzeichen getrennte Werte der Form v1,<Signatur>, je einen pro Secret. Prüfen Sie alle Werte und akzeptieren Sie die Zustellung beim ersten Treffer. Nach Ablauf des Fensters wird nur noch mit dem neuen Secret signiert. Das Wechseln des Secrets benötigt einen Verwaltungsschlüssel; ein Inferenzschlüssel erhält 403 insufficient_key_scope.
/api/flowai/v1/webhook_endpoints
Registriert ein HTTPS-Ziel und gibt das Signatur-Secret einmalig zurück.
url
string
*
Öffentlich erreichbare HTTPS-Adresse, maximal 2.048 Zeichen
events
array
*
Mindestens ein unterstützter Ereignistyp
description
string
Optionale Beschreibung, maximal 255 Zeichen
/api/flowai/v1/webhook_endpoints
Listet die Webhook-Ziele des Workspace ohne Secrets auf.
limit
integer
Anzahl von 1 bis 100
after
uuid
UUID aus last_id
/api/flowai/v1/webhook_endpoints/{webhook_uuid}
Liefert ein Webhook-Ziel ohne Signatur-Secret.
/api/flowai/v1/webhook_endpoints/{webhook_uuid}
Ändert Ziel, Ereignisse, Beschreibung oder Aktivierungsstatus.
url
string
Neue öffentlich erreichbare HTTPS-Adresse
events
array
Neue Liste unterstützter Ereignistypen
description
string
Neue Beschreibung oder null
is_active
boolean
Deaktiviert oder reaktiviert das Ziel
/api/flowai/v1/webhook_endpoints/{webhook_uuid}
Löscht das Ziel und seinen Zustellungsverlauf.
/api/flowai/v1/webhook_endpoints/{webhook_uuid}/deliveries
Listet Zustellungsversuche mit Status und Fehlerdetails auf.
status
string
pending, delivered, failed oder exhausted
limit
integer
Anzahl von 1 bis 100
after
uuid
UUID aus last_id
/api/flowai/v1/webhook_endpoints/{webhook_uuid}/test
Stellt eine synthetische Zustellung vom Typ webhook.test in die Warteschlange. Das Ergebnis erscheint im Zustellungsverlauf wie jede andere Zustellung.
/api/flowai/v1/webhook_endpoints/{webhook_uuid}/rotate_secret
Erzeugt ein neues Signatur-Secret und gibt es einmalig zurück. Das bisherige Secret bleibt bis zum genannten Zeitpunkt gültig. Benötigt einen Verwaltungsschlüssel.
Übergrößen werden mit HTTP 413 und Code payload_too_large abgelehnt.
Antworten enthalten OpenAI-kompatible Header: x-ratelimit-limit-requests, x-ratelimit-remaining-requests, x-ratelimit-reset-requests. Der Reset-Wert ist eine Dauer, kein Zeitpunkt, zum Beispiel 1s oder 6m0s.
Die Eingabegrenze zählt geschätzte Tokens in den Nachrichten. Sie ist von der Body-Grenze unabhängig, die Bytes im gesamten Anfragekörper zählt, daher können beide Grenzen unabhängig greifen. Die Ausgabengrenze gilt je Kalendermonat und berücksichtigt bereits verbrauchte sowie für laufende Anfragen reservierte Beträge.
Chat-Completions speichern keinen serverseitigen Fortsetzungszustand. Senden Sie den benötigten Nachrichtenverlauf bei jedem Aufruf erneut. Hintergrundaufträge sind davon getrennt und können bis zum Ablauf ihrer Aufbewahrungsfrist abgerufen werden.
Beim Abruf eines Hintergrundauftrags wird der Abfrageparameter starting_after nicht unterstützt und mit HTTP 400 abgelehnt. Ein abgebrochener Ablauf lässt sich nicht an einer Ereignismarke fortsetzen, sondern muss neu gestartet werden und verursacht erneut Kosten.
Alle Fehlerantworten haben dieselbe OpenAI-kompatible Struktur. Das Top-Level-Feld flowai_request_id ist immer enthalten.
{
"error": {
"message": "Authorization: Bearer header is required on the FlowAI API.",
"type": "authentication_error",
"code": "invalid_token_source",
"param": null
},
"flowai_request_id": "01HXYZ…ULID"
}Diese Liste ist die gemeinsame Fehlerreferenz beider FlowAI-Produkte; die Routing-Anleitung verweist darauf. Codes rund um Endnutzer, Erinnerungen und Unterhaltungen treten deshalb ausschließlich auf den Routing-Endpunkten auf.
400 invalid_field_value - Validierung fehlgeschlagen (Typ, Bereich, Pflichtfeld). Dazu zählt die zu hohe Ausgabegrenze: liegt max_tokens beziehungsweise max_output_tokens über dem Maximum des Modells, nennt die Meldung dieses Maximum. Ohne Angabe gilt das Modellmaximum, gekürzt wird nichts stillschweigend. Ebenso abgelehnt werden flowai_tools und tools in derselben Anfrage400 invalid_cursor - Der Cursor fehlt, ist leer oder gehört nicht zur aufgerufenen Liste400 unsupported_field - Feld wird nicht unterstützt, zum Beispiel starting_after400 unsupported_for_model - Das Feld ist gültig, aber das gewählte Modell nimmt es nicht an, zum Beispiel temperature bei einem Modell mit festem Sampling oder reasoning_effort bei einem Modell ohne Reasoning. param nennt das Feld; die Meldung nennt das Modell und bei Stufenfeldern die zulässigen Werte. Die Modellliste unter /v1/models nennt je Modell die unterstützten Felder400 input_tokens_exceeded - Die geschätzte Eingabe überschreitet die Tokengrenze; senden Sie weniger Inhalt in den Nachrichten400 context_length_exceeded - Der gesendete Verlauf passt nicht in das Eingabefenster des Modells; kürzen Sie ihn oder schalten Sie die Verlaufsverdichtung ausdrücklich ein400 tool_round_limit_exceeded - Die Anfrage hat die zulässige Zahl an Arbeitsschritten erreicht; teilen Sie sie in mehrere Anfragen auf400 request_cost_limit_exceeded - Die Anfrage hat den zulässigen Rechenaufwand erreicht; kürzen oder teilen Sie die Anfrage401 invalid_token_source - Token nicht via Authorization: Bearer übergeben401 invalid_api_key - Token unbekannt, abgelaufen oder widerrufen401 no_active_subscription - Workspace hat keinen aktiven Pro-Tarif403 insufficient_key_scope - Der API-Schlüssel ist für diesen Endpunkttyp nicht freigeschaltet403 account_suspended - Der Routing-Zugang dieses Kontos ist gesperrt; wenden Sie sich an den Support. Schlüssel des Abo-Produkts sind davon nicht betroffen404 model_not_found - Unbekannter Alias, gültige Aliase siehe /v1/models404 response_not_found - Antwort unbekannt oder für den Workspace nicht sichtbar404 conversation_not_found - Unterhaltung unbekannt oder für diesen Endnutzer nicht sichtbar404 file_not_found - Datei unbekannt oder für den Workspace nicht sichtbar404 memory_not_found - Erinnerung oder zugehöriger Endnutzer nicht gefunden404 end_user_not_found - Endnutzer unbekannt oder für den Workspace nicht sichtbar404 webhook_endpoint_not_found - Webhook unbekannt oder für den Workspace nicht sichtbar409 conversation_in_progress - In dieser Unterhaltung läuft bereits eine Anfrage409 idempotency_key_in_progress - Der gleiche Idempotenzschlüssel läuft noch oder sein Ergebnis ist nach einem Fehler unklar409 memory_revision_conflict - Die Erinnerung wurde zwischenzeitlich geändert410 model_deprecated - Das Modell ist abgekündigt und seit dem genannten Zeitpunkt nicht mehr aufrufbar; wählen Sie ein Modell aus /v1/models413 payload_too_large - Request-Body über 128 KB413 file_too_large - Datei überschreitet die konfigurierte Uploadgrenze422 idempotency_key_reuse - Derselbe Idempotenzschlüssel wurde mit geänderten Anfragedaten oder einem anderen Dateinamen verwendet429 rate_limit_exceeded - 60 Requests/Minute je Workspace, 5 Requests/Sekunde Burst je Workspace oder 30 Requests/Minute je Modell überschritten429 insufficient_quota - Das verfügbare Guthaben reicht für diese Anfrage nicht aus429 credit_balance_exhausted - Das Guthaben reicht für diese Anfrage nicht aus; eine Aufladung ist erforderlich429 spend_limit_exceeded - Die vereinbarte Ausgabengrenze ist erreicht; eine Anhebung ist erforderlich429 period_spend_limit_exceeded - Die Ausgabengrenze des Kalendermonats wäre überschritten; warten Sie bis zum nächsten Monat oder lassen Sie die Grenze anheben, eine Guthabenaufladung allein ändert diese Grenze nicht502 provider_unavailable - Der gewählte Anbieter ist nicht erreichbar503 routing_unavailable - Das Routing-Produkt ist vorübergehend abgeschaltet; der Header Retry-After nennt die Wartezeit in Sekunden. Es wird kein Guthaben reserviert und kein Anbieter aufgerufen503 provider_overloaded - Der gewählte Anbieter hat gerade keine Kapazität; der Header Retry-After nennt die Wartezeit in Sekunden503 pricing_unavailable - Für das gewählte Modell ist kein belastbarer Preis verfügbar/api/flowai/v1/models
curl -X GET "https://creativeskyline.de/api/flowai/v1/models" \
-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/flowai/v1/models');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/models', {
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/flowai/v1/models',
headers=headers,
)
data = response.json()
{
"object": "list",
"data": [
{
"id": "flowai",
"object": "model",
"created": 1735000000,
"owned_by": "creativeskyline",
"pricing": {
"prompt": "0.000001",
"completion": "0.000002"
}
}
],
"has_more": false,
"first_id": "flowai",
"last_id": "flowai",
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/models/{model_id}
curl -X GET "https://creativeskyline.de/api/flowai/v1/models/{model_id}" \
-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/flowai/v1/models/{model_id}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/models/{model_id}', {
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/flowai/v1/models/{model_id}',
headers=headers,
)
data = response.json()
{
"id": "claude",
"object": "model",
"created": 1735000000,
"owned_by": "creativeskyline",
"pricing": {
"prompt": "0.000003",
"completion": "0.000015"
},
"context_length": 200000,
"max_output_tokens": 64000,
"capabilities": {
"reasoning": true,
"reasoning_levels": [
"low",
"medium",
"high"
],
"web_search": false,
"web_search_forced": false,
"tools": true,
"tool_choice": true,
"parallel_tool_calls": true,
"vision": true,
"json_object": false,
"json_schema": false,
"sampling": true,
"streaming": true
},
"supported_parameters": [
"temperature",
"top_p",
"max_tokens",
"tools",
"tool_choice",
"stream"
],
"flowai_limits": {
"input_tokens": 200000,
"max_output_tokens": 64000,
"max_messages": 50,
"max_payload_bytes": 131072,
"max_chars_per_message": 32000
},
"deprecated_at": null,
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/chat
curl -X POST "https://creativeskyline.de/api/flowai/v1/chat" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"message": "Fasse unsere Lieferbedingungen zusammen.", "model": "claude"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/flowai/v1/chat', [
'message' => 'Fasse unsere Lieferbedingungen zusammen.',
'model' => 'claude',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/chat', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
message: "Fasse unsere Lieferbedingungen zusammen.",
model: "claude",
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'message': "Fasse unsere Lieferbedingungen zusammen.",
'model': "claude",
}
response = requests.post(
'https://creativeskyline.de/api/flowai/v1/chat',
headers=headers,
json=payload,
)
data = response.json()
{
"object": "chat",
"conversation": "018f1234-5678-7abc-9def-0123456789ab",
"id": "018f9999-1111-7abc-9def-0123456789ab",
"model": "claude",
"status": "completed",
"message": {
"role": "assistant",
"content": "Wir liefern innerhalb von zwei Werktagen."
},
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/chat/{conversation_uuid}
curl -X GET "https://creativeskyline.de/api/flowai/v1/chat/{conversation_uuid}" \
-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/flowai/v1/chat/{conversation_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/chat/{conversation_uuid}', {
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/flowai/v1/chat/{conversation_uuid}',
headers=headers,
)
data = response.json()
{
"object": "chat",
"conversation": "018f1234-5678-7abc-9def-0123456789ab",
"id": "018f9999-1111-7abc-9def-0123456789ab",
"model": "claude",
"status": "completed",
"message": {
"role": "assistant",
"content": "Wir liefern innerhalb von zwei Werktagen."
},
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/files
curl -X POST "https://creativeskyline.de/api/flowai/v1/files" \
-H "Authorization: Bearer pk_dein_api_key" \
-H "Accept: application/json" \
-F "file=@analyse.pdf" \
-F "purpose=user_data"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('pk_dein_api_key')
->attach('file', fopen('analyse.pdf', 'r'), 'analyse.pdf')
->post('https://creativeskyline.de/api/flowai/v1/files', ['purpose' => 'user_data']);
const form = new FormData();
form.append('file', fileInput.files[0]);
form.append('purpose', 'user_data');
const response = await fetch('https://creativeskyline.de/api/flowai/v1/files', {
method: 'POST',
headers: { Authorization: 'Bearer pk_dein_api_key' },
body: form,
});
import requests
with open('analyse.pdf', 'rb') as file:
response = requests.post(
'https://creativeskyline.de/api/flowai/v1/files',
headers={'Authorization': 'Bearer pk_dein_api_key'},
files={'file': ('analyse.pdf', file)},
data={'purpose': 'user_data'},
)
{
"id": "file-018f1234-5678-7abc-9def-0123456789ab",
"object": "file",
"bytes": 2048,
"created_at": 1735000000,
"expires_at": null,
"filename": "analyse.pdf",
"purpose": "user_data",
"status": "processed",
"status_details": null,
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/files
curl -X GET "https://creativeskyline.de/api/flowai/v1/files" \
-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/flowai/v1/files');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/files', {
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/flowai/v1/files',
headers=headers,
)
data = response.json()
{
"object": "list",
"data": [
{
"id": "file-018f1234-5678-7abc-9def-0123456789ab",
"object": "file",
"bytes": 2048,
"filename": "analyse.pdf",
"purpose": "user_data",
"status": "processed"
}
],
"has_more": false,
"first_id": "file-018f1234-5678-7abc-9def-0123456789ab",
"last_id": "file-018f1234-5678-7abc-9def-0123456789ab",
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/files/{file_uuid}
curl -X GET "https://creativeskyline.de/api/flowai/v1/files/{file_uuid}" \
-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/flowai/v1/files/{file_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/files/{file_uuid}', {
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/flowai/v1/files/{file_uuid}',
headers=headers,
)
data = response.json()
{
"id": "file-018f1234-5678-7abc-9def-0123456789ab",
"object": "file",
"bytes": 2048,
"created_at": 1735000000,
"expires_at": null,
"filename": "analyse.pdf",
"purpose": "user_data",
"status": "processed",
"status_details": null,
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/files/{file_uuid}/content
curl -X GET "https://creativeskyline.de/api/flowai/v1/files/{file_uuid}/content" \
-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/flowai/v1/files/{file_uuid}/content');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/files/{file_uuid}/content', {
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/flowai/v1/files/{file_uuid}/content',
headers=headers,
)
data = response.json()
Antwort ist kein JSON-Body.
/api/flowai/v1/files/{file_uuid}
curl -X DELETE "https://creativeskyline.de/api/flowai/v1/files/{file_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->delete('https://creativeskyline.de/api/flowai/v1/files/{file_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/files/{file_uuid}', {
method: 'DELETE',
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.delete(
'https://creativeskyline.de/api/flowai/v1/files/{file_uuid}',
headers=headers,
)
data = response.json()
{
"id": "file-018f1234-5678-7abc-9def-0123456789ab",
"object": "file",
"deleted": true,
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/webhook_endpoints
curl -X POST "https://creativeskyline.de/api/flowai/v1/webhook_endpoints" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"url": "value", "events": [], "description": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/flowai/v1/webhook_endpoints', [
'url' => 'value',
'events' => [],
'description' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'value',
events: [],
description: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'url': 'value',
'events': [],
'description': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/flowai/v1/webhook_endpoints',
headers=headers,
json=payload,
)
data = response.json()
{
"id": "018f1234-5678-7abc-9def-0123456789ab",
"object": "webhook_endpoint",
"url": "https://example.com/flowai",
"events": [
"response.completed"
],
"description": "Produktiv",
"is_active": true,
"deactivated_at": null,
"deactivation_reason": null,
"last_delivered_at": null,
"created": 1735000000,
"secret": "whsec_example",
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/webhook_endpoints
curl -X GET "https://creativeskyline.de/api/flowai/v1/webhook_endpoints" \
-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/flowai/v1/webhook_endpoints');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints', {
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/flowai/v1/webhook_endpoints',
headers=headers,
)
data = response.json()
{
"object": "list",
"data": [
{
"id": "018f1234-5678-7abc-9def-0123456789ab",
"object": "webhook_endpoint",
"url": "https://example.com/flowai",
"events": [
"response.completed"
],
"is_active": true
}
],
"has_more": false,
"first_id": "018f1234-5678-7abc-9def-0123456789ab",
"last_id": "018f1234-5678-7abc-9def-0123456789ab",
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/webhook_endpoints/{webhook_uuid}
curl -X GET "https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}" \
-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/flowai/v1/webhook_endpoints/{webhook_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}', {
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/flowai/v1/webhook_endpoints/{webhook_uuid}',
headers=headers,
)
data = response.json()
{
"id": "018f1234-5678-7abc-9def-0123456789ab",
"object": "webhook_endpoint",
"url": "https://example.com/flowai",
"events": [
"response.completed"
],
"description": "Produktiv",
"is_active": true,
"deactivated_at": null,
"deactivation_reason": null,
"last_delivered_at": null,
"created": 1735000000,
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/webhook_endpoints/{webhook_uuid}
curl -X PATCH "https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"url": "value", "events": [], "description": "value", "is_active": true}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}', [
'url' => 'value',
'events' => [],
'description' => 'value',
'is_active' => true,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'value',
events: [],
description: 'value',
is_active: true,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'url': 'value',
'events': [],
'description': 'value',
'is_active': True,
}
response = requests.patch(
'https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"id": "018f1234-5678-7abc-9def-0123456789ab",
"object": "webhook_endpoint",
"url": "https://example.com/flowai",
"events": [
"response.completed"
],
"description": "Aktualisiert",
"is_active": true,
"deactivated_at": null,
"deactivation_reason": null,
"last_delivered_at": null,
"created": 1735000000,
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/webhook_endpoints/{webhook_uuid}
curl -X DELETE "https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->delete('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}', {
method: 'DELETE',
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.delete(
'https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}',
headers=headers,
)
data = response.json()
{
"id": "018f1234-5678-7abc-9def-0123456789ab",
"object": "webhook_endpoint",
"deleted": true,
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/webhook_endpoints/{webhook_uuid}/deliveries
curl -X GET "https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/deliveries" \
-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/flowai/v1/webhook_endpoints/{webhook_uuid}/deliveries');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/deliveries', {
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/flowai/v1/webhook_endpoints/{webhook_uuid}/deliveries',
headers=headers,
)
data = response.json()
{
"object": "list",
"data": [
{
"id": "018f1234-5678-7abc-9def-0123456789ab",
"object": "webhook_delivery",
"event_type": "response.completed",
"status": "delivered",
"attempts": 1,
"http_status": 200,
"failure_kind": null,
"created": 1735000000,
"delivered_at": 1735000001,
"failed_at": null,
"next_attempt_at": null,
"response_id": "resp_01HXYZ…"
}
],
"has_more": false,
"first_id": "018f1234-5678-7abc-9def-0123456789ab",
"last_id": "018f1234-5678-7abc-9def-0123456789ab",
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/webhook_endpoints/{webhook_uuid}/test
curl -X POST "https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/test" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/test');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/test', {
method: 'POST',
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.post(
'https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/test',
headers=headers,
)
data = response.json()
{
"object": "webhook_delivery",
"uuid": "018f1234-5678-7abc-9def-0123456789ab",
"status": "pending",
"flowai_request_id": "01HXYZ…ULID"
}
/api/flowai/v1/webhook_endpoints/{webhook_uuid}/rotate_secret
curl -X POST "https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/rotate_secret" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/rotate_secret');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/rotate_secret', {
method: 'POST',
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.post(
'https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/rotate_secret',
headers=headers,
)
data = response.json()
{
"object": "webhook_endpoint",
"uuid": "018f1234-5678-7abc-9def-0123456789ab",
"secret": "whsec_example",
"secondary_secret_expires_at": 1735086400,
"flowai_request_id": "01HXYZ…ULID"
}
curl -X GET "https://creativeskyline.de/api/flowai/v1/models" \
-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/flowai/v1/models');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/models', {
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/flowai/v1/models',
headers=headers,
)
data = response.json()
{
"object": "list",
"data": [
{
"id": "flowai",
"object": "model",
"created": 1735000000,
"owned_by": "creativeskyline",
"pricing": {
"prompt": "0.000001",
"completion": "0.000002"
}
}
],
"has_more": false,
"first_id": "flowai",
"last_id": "flowai",
"flowai_request_id": "01HXYZ…ULID"
}
curl -X GET "https://creativeskyline.de/api/flowai/v1/models/{model_id}" \
-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/flowai/v1/models/{model_id}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/models/{model_id}', {
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/flowai/v1/models/{model_id}',
headers=headers,
)
data = response.json()
{
"id": "claude",
"object": "model",
"created": 1735000000,
"owned_by": "creativeskyline",
"pricing": {
"prompt": "0.000003",
"completion": "0.000015"
},
"context_length": 200000,
"max_output_tokens": 64000,
"capabilities": {
"reasoning": true,
"reasoning_levels": [
"low",
"medium",
"high"
],
"web_search": false,
"web_search_forced": false,
"tools": true,
"tool_choice": true,
"parallel_tool_calls": true,
"vision": true,
"json_object": false,
"json_schema": false,
"sampling": true,
"streaming": true
},
"supported_parameters": [
"temperature",
"top_p",
"max_tokens",
"tools",
"tool_choice",
"stream"
],
"flowai_limits": {
"input_tokens": 200000,
"max_output_tokens": 64000,
"max_messages": 50,
"max_payload_bytes": 131072,
"max_chars_per_message": 32000
},
"deprecated_at": null,
"flowai_request_id": "01HXYZ…ULID"
}
curl -X POST "https://creativeskyline.de/api/flowai/v1/chat" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"message": "Fasse unsere Lieferbedingungen zusammen.", "model": "claude"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/flowai/v1/chat', [
'message' => 'Fasse unsere Lieferbedingungen zusammen.',
'model' => 'claude',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/chat', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
message: "Fasse unsere Lieferbedingungen zusammen.",
model: "claude",
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'message': "Fasse unsere Lieferbedingungen zusammen.",
'model': "claude",
}
response = requests.post(
'https://creativeskyline.de/api/flowai/v1/chat',
headers=headers,
json=payload,
)
data = response.json()
{
"object": "chat",
"conversation": "018f1234-5678-7abc-9def-0123456789ab",
"id": "018f9999-1111-7abc-9def-0123456789ab",
"model": "claude",
"status": "completed",
"message": {
"role": "assistant",
"content": "Wir liefern innerhalb von zwei Werktagen."
},
"flowai_request_id": "01HXYZ…ULID"
}
curl -X GET "https://creativeskyline.de/api/flowai/v1/chat/{conversation_uuid}" \
-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/flowai/v1/chat/{conversation_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/chat/{conversation_uuid}', {
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/flowai/v1/chat/{conversation_uuid}',
headers=headers,
)
data = response.json()
{
"object": "chat",
"conversation": "018f1234-5678-7abc-9def-0123456789ab",
"id": "018f9999-1111-7abc-9def-0123456789ab",
"model": "claude",
"status": "completed",
"message": {
"role": "assistant",
"content": "Wir liefern innerhalb von zwei Werktagen."
},
"flowai_request_id": "01HXYZ…ULID"
}
curl -X POST "https://creativeskyline.de/api/flowai/v1/files" \
-H "Authorization: Bearer pk_dein_api_key" \
-H "Accept: application/json" \
-F "file=@analyse.pdf" \
-F "purpose=user_data"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('pk_dein_api_key')
->attach('file', fopen('analyse.pdf', 'r'), 'analyse.pdf')
->post('https://creativeskyline.de/api/flowai/v1/files', ['purpose' => 'user_data']);
const form = new FormData();
form.append('file', fileInput.files[0]);
form.append('purpose', 'user_data');
const response = await fetch('https://creativeskyline.de/api/flowai/v1/files', {
method: 'POST',
headers: { Authorization: 'Bearer pk_dein_api_key' },
body: form,
});
import requests
with open('analyse.pdf', 'rb') as file:
response = requests.post(
'https://creativeskyline.de/api/flowai/v1/files',
headers={'Authorization': 'Bearer pk_dein_api_key'},
files={'file': ('analyse.pdf', file)},
data={'purpose': 'user_data'},
)
{
"id": "file-018f1234-5678-7abc-9def-0123456789ab",
"object": "file",
"bytes": 2048,
"created_at": 1735000000,
"expires_at": null,
"filename": "analyse.pdf",
"purpose": "user_data",
"status": "processed",
"status_details": null,
"flowai_request_id": "01HXYZ…ULID"
}
curl -X GET "https://creativeskyline.de/api/flowai/v1/files" \
-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/flowai/v1/files');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/files', {
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/flowai/v1/files',
headers=headers,
)
data = response.json()
{
"object": "list",
"data": [
{
"id": "file-018f1234-5678-7abc-9def-0123456789ab",
"object": "file",
"bytes": 2048,
"filename": "analyse.pdf",
"purpose": "user_data",
"status": "processed"
}
],
"has_more": false,
"first_id": "file-018f1234-5678-7abc-9def-0123456789ab",
"last_id": "file-018f1234-5678-7abc-9def-0123456789ab",
"flowai_request_id": "01HXYZ…ULID"
}
curl -X GET "https://creativeskyline.de/api/flowai/v1/files/{file_uuid}" \
-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/flowai/v1/files/{file_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/files/{file_uuid}', {
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/flowai/v1/files/{file_uuid}',
headers=headers,
)
data = response.json()
{
"id": "file-018f1234-5678-7abc-9def-0123456789ab",
"object": "file",
"bytes": 2048,
"created_at": 1735000000,
"expires_at": null,
"filename": "analyse.pdf",
"purpose": "user_data",
"status": "processed",
"status_details": null,
"flowai_request_id": "01HXYZ…ULID"
}
curl -X GET "https://creativeskyline.de/api/flowai/v1/files/{file_uuid}/content" \
-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/flowai/v1/files/{file_uuid}/content');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/files/{file_uuid}/content', {
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/flowai/v1/files/{file_uuid}/content',
headers=headers,
)
data = response.json()
Antwort ist kein JSON-Body.
curl -X DELETE "https://creativeskyline.de/api/flowai/v1/files/{file_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->delete('https://creativeskyline.de/api/flowai/v1/files/{file_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/files/{file_uuid}', {
method: 'DELETE',
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.delete(
'https://creativeskyline.de/api/flowai/v1/files/{file_uuid}',
headers=headers,
)
data = response.json()
{
"id": "file-018f1234-5678-7abc-9def-0123456789ab",
"object": "file",
"deleted": true,
"flowai_request_id": "01HXYZ…ULID"
}
curl -X POST "https://creativeskyline.de/api/flowai/v1/webhook_endpoints" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"url": "value", "events": [], "description": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/flowai/v1/webhook_endpoints', [
'url' => 'value',
'events' => [],
'description' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'value',
events: [],
description: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'url': 'value',
'events': [],
'description': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/flowai/v1/webhook_endpoints',
headers=headers,
json=payload,
)
data = response.json()
{
"id": "018f1234-5678-7abc-9def-0123456789ab",
"object": "webhook_endpoint",
"url": "https://example.com/flowai",
"events": [
"response.completed"
],
"description": "Produktiv",
"is_active": true,
"deactivated_at": null,
"deactivation_reason": null,
"last_delivered_at": null,
"created": 1735000000,
"secret": "whsec_example",
"flowai_request_id": "01HXYZ…ULID"
}
curl -X GET "https://creativeskyline.de/api/flowai/v1/webhook_endpoints" \
-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/flowai/v1/webhook_endpoints');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints', {
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/flowai/v1/webhook_endpoints',
headers=headers,
)
data = response.json()
{
"object": "list",
"data": [
{
"id": "018f1234-5678-7abc-9def-0123456789ab",
"object": "webhook_endpoint",
"url": "https://example.com/flowai",
"events": [
"response.completed"
],
"is_active": true
}
],
"has_more": false,
"first_id": "018f1234-5678-7abc-9def-0123456789ab",
"last_id": "018f1234-5678-7abc-9def-0123456789ab",
"flowai_request_id": "01HXYZ…ULID"
}
curl -X GET "https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}" \
-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/flowai/v1/webhook_endpoints/{webhook_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}', {
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/flowai/v1/webhook_endpoints/{webhook_uuid}',
headers=headers,
)
data = response.json()
{
"id": "018f1234-5678-7abc-9def-0123456789ab",
"object": "webhook_endpoint",
"url": "https://example.com/flowai",
"events": [
"response.completed"
],
"description": "Produktiv",
"is_active": true,
"deactivated_at": null,
"deactivation_reason": null,
"last_delivered_at": null,
"created": 1735000000,
"flowai_request_id": "01HXYZ…ULID"
}
curl -X PATCH "https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"url": "value", "events": [], "description": "value", "is_active": true}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}', [
'url' => 'value',
'events' => [],
'description' => 'value',
'is_active' => true,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'value',
events: [],
description: 'value',
is_active: true,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'url': 'value',
'events': [],
'description': 'value',
'is_active': True,
}
response = requests.patch(
'https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"id": "018f1234-5678-7abc-9def-0123456789ab",
"object": "webhook_endpoint",
"url": "https://example.com/flowai",
"events": [
"response.completed"
],
"description": "Aktualisiert",
"is_active": true,
"deactivated_at": null,
"deactivation_reason": null,
"last_delivered_at": null,
"created": 1735000000,
"flowai_request_id": "01HXYZ…ULID"
}
curl -X DELETE "https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->delete('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}', {
method: 'DELETE',
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.delete(
'https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}',
headers=headers,
)
data = response.json()
{
"id": "018f1234-5678-7abc-9def-0123456789ab",
"object": "webhook_endpoint",
"deleted": true,
"flowai_request_id": "01HXYZ…ULID"
}
curl -X GET "https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/deliveries" \
-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/flowai/v1/webhook_endpoints/{webhook_uuid}/deliveries');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/deliveries', {
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/flowai/v1/webhook_endpoints/{webhook_uuid}/deliveries',
headers=headers,
)
data = response.json()
{
"object": "list",
"data": [
{
"id": "018f1234-5678-7abc-9def-0123456789ab",
"object": "webhook_delivery",
"event_type": "response.completed",
"status": "delivered",
"attempts": 1,
"http_status": 200,
"failure_kind": null,
"created": 1735000000,
"delivered_at": 1735000001,
"failed_at": null,
"next_attempt_at": null,
"response_id": "resp_01HXYZ…"
}
],
"has_more": false,
"first_id": "018f1234-5678-7abc-9def-0123456789ab",
"last_id": "018f1234-5678-7abc-9def-0123456789ab",
"flowai_request_id": "01HXYZ…ULID"
}
curl -X POST "https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/test" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/test');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/test', {
method: 'POST',
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.post(
'https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/test',
headers=headers,
)
data = response.json()
{
"object": "webhook_delivery",
"uuid": "018f1234-5678-7abc-9def-0123456789ab",
"status": "pending",
"flowai_request_id": "01HXYZ…ULID"
}
curl -X POST "https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/rotate_secret" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/rotate_secret');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/rotate_secret', {
method: 'POST',
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.post(
'https://creativeskyline.de/api/flowai/v1/webhook_endpoints/{webhook_uuid}/rotate_secret',
headers=headers,
)
data = response.json()
{
"object": "webhook_endpoint",
"uuid": "018f1234-5678-7abc-9def-0123456789ab",
"secret": "whsec_example",
"secondary_secret_expires_at": 1735086400,
"flowai_request_id": "01HXYZ…ULID"
}