Eine moderne REST API zur Verwaltung von Kundendaten, Leads, Kanban-Boards und Timeline-Einträgen. Perfekt für CRM-Integrationen, Lead-Ingest, Automatisierung und individuelle Anwendungen.
https://creativeskyline.de/api/clients
https://creativeskyline.de/api/clients/{uuid}/timeline
https://creativeskyline.de/api/clients/{uuid}/projects
https://creativeskyline.de/api/leads
https://creativeskyline.de/api/lead-boards
https://creativeskyline.de/api/leads/{uuid}/docs
Bevor Sie die API nutzen können, benötigen Sie Ihre persönlichen Zugangsdaten: Melden Sie sich an, navigieren Sie zu Profil → API-Zugang und kopieren Sie Ihren persönlichen API-Key (pk_...).
Alle API-Anfragen benötigen diesen HTTP-Header. Akzeptiert werden ein persönlicher Key (pk_...) oder ein Team-API-Token (at_...):
Authorization: Bearer pk_dein_api_key
Accept: application/json
Pro Token sind bis zu 300 Anfragen pro Minute erlaubt.
https://creativeskyline.de/api/clients
https://creativeskyline.de/api/clients/{uuid}/timeline
https://creativeskyline.de/api/clients/{uuid}/projects
https://creativeskyline.de/api/leads
https://creativeskyline.de/api/lead-boards
https://creativeskyline.de/api/leads/{uuid}/docs
/api/clients
Ruft eine Liste aller aktiven Kunden Ihres Teams ab. Verwenden Sie für die Adressierung einzelner Kunden ausschließlich das Feld uuid.
/api/clients/search
Durchsucht die Kundendatenbank nach Name, Firmenname oder E-Mail-Adresse.
search
string
*
Suchbegriff für die Kundensuche
/api/clients
Legt einen Kunden im Team des Tokens an. Idempotent per Find-or-Create: Zuerst wird über eine gesetzte external_id gesucht, danach über die E-Mail-Adresse (teamweit, Gross-/Kleinschreibung egal). Wird ein bestehender aktiver Kunde gefunden, gibt die Antwort diesen mit created: false zurück und synchronisiert nur die mitgesendeten tag_uuids und sources. Nur bei einer echten Neuanlage ist created: true (HTTP 201). Kollidiert die E-Mail oder external_id mit einem Kunden im Papierkorb, antwortet der Endpunkt mit HTTP 409.
name
string
*
Name des Kunden
email
string
*
E-Mail-Adresse (dient als Find-or-Create-Schlüssel)
phone
string
Telefonnummer
source
string
Einzelne Herkunftsquelle als Freitext
external_id
string
Maschinen-Kennung für den Upsert-Abgleich (hat Vorrang vor der E-Mail)
whmcs_client_id
integer
Optionale WHMCS-Kunden-ID
address_line_1
string
Adresszeile 1
address_line_2
string
Adresszeile 2
postal_code
string
Postleitzahl
city
string
Ort
country
string
Land (ISO-Code oder Name)
contact_person
string
Ansprechpartner
tax_id
string
Steuernummer / USt-IdNr.
tag_uuids
array
Liste team-eigener Tag-UUIDs, die dem Kunden zugeordnet werden
sources
array
Liste von Herkunftsquellen als Freitext
stripe_customer_id
string
Optionale Stripe-Kunden-ID (Präfix cus_), wird in die Zahlungszuordnung geschrieben
/api/clients/{uuid}
Aktualisiert einen team-eigenen Kunden anhand seiner UUID. Nur explizit gesendete Felder werden geschrieben, ausgelassene Felder bleiben unverändert. Breaking Change: Der frühere numerische Pfad /api/clients/{id} wurde ersatzlos entfernt (HTTP 404); es gilt ausschließlich der UUID-Pfad.
name
string
Name des Kunden
contact_person
string
Ansprechpartner
phone
string
Telefonnummer
website
string
Webseite
address_line_1
string
Adresszeile 1
address_line_2
string
Adresszeile 2
postal_code
string
Postleitzahl
city
string
Ort
state
string
Bundesland / Region
country
string
Land
tax_id
string
Steuernummer / USt-IdNr.
https://creativeskyline.de/api/clients
https://creativeskyline.de/api/clients/{uuid}/timeline
https://creativeskyline.de/api/clients/{uuid}/projects
https://creativeskyline.de/api/leads
https://creativeskyline.de/api/lead-boards
https://creativeskyline.de/api/leads/{uuid}/docs
/api/clients/{uuid}/timeline
Ruft alle Timeline-Einträge für einen bestimmten Kunden chronologisch sortiert ab.
/api/clients/{uuid}/timeline
Erstellt einen neuen Timeline-Eintrag für den angegebenen Kunden.
title
string
*
Titel des Eintrags
content
string
Inhalt des Eintrags
event_date
string
Ereignisdatum (ISO 8601, Standard: jetzt)
/api/clients/{uuid}/timeline/search
Durchsucht die Timeline-Einträge eines Kunden nach Titel oder Inhalt.
search
string
*
Suchbegriff
https://creativeskyline.de/api/clients
https://creativeskyline.de/api/clients/{uuid}/timeline
https://creativeskyline.de/api/clients/{uuid}/projects
https://creativeskyline.de/api/leads
https://creativeskyline.de/api/lead-boards
https://creativeskyline.de/api/leads/{uuid}/docs
/api/clients/{uuid}/projects
Listet alle Projekte des angegebenen Kunden auf, inklusive Status, Beschreibung und einem modules-Array mit aktiven Integrationen (flowcall, flowtime, flowtasks).
https://creativeskyline.de/api/clients
https://creativeskyline.de/api/clients/{uuid}/timeline
https://creativeskyline.de/api/clients/{uuid}/projects
https://creativeskyline.de/api/leads
https://creativeskyline.de/api/lead-boards
https://creativeskyline.de/api/leads/{uuid}/docs
/api/clients/{uuid}/projects/{project_uuid}/timeline
Ruft alle Timeline-Einträge für ein bestimmtes Projekt ab, analog zur Kunden-Timeline.
https://creativeskyline.de/api/clients
https://creativeskyline.de/api/clients/{uuid}/timeline
https://creativeskyline.de/api/clients/{uuid}/projects
https://creativeskyline.de/api/leads
https://creativeskyline.de/api/lead-boards
https://creativeskyline.de/api/leads/{uuid}/docs
Leads sind team-eigen: team_id und status werden serverseitig gesetzt und nie aus dem Request übernommen. Ein neuer Lead startet im Standard-Status des Teams. Der Status wird ausschliesslich über den eigenen Status-Endpunkt geändert, der Systemstatus converted nur über die Konvertierung.
Idempotenz: Trifft ein POST über external_source + external_id auf einen bestehenden Lead, werden nur die im Payload enthaltenen Felder aktualisiert (Merge). Nicht gesendete Felder bleiben unberührt. Ein solcher Wiederholungs-POST liefert created: false. Das Roh-Payload wird als source_payload gespeichert, erscheint aber nie in der Antwort.
Duplikatwarnung: Wird beim Anlegen ein mögliches Duplikat erkannt, wird der Lead trotzdem angelegt und die Antwort trägt ein Feld duplicate_warning mit den Treffern. Ohne Treffer ist das Feld null.
/api/leads
Listet die Leads des Teams paginiert auf. Standardmässig wird nur die offene Pipeline gezeigt (abgeschlossene und konvertierte Leads ausgeblendet); mit pipeline=false wird der volle Satz zurückgegeben. Die Antwort folgt dem Standard-Paginierungsformat mit data, links und meta.
pipeline
boolean
Standard true (nur offene Pipeline). false zeigt alle Leads inkl. abgeschlossener
search
string
Volltextsuche über Firmenname, Vor-/Nachname und E-Mail
source
string
Filter auf eine Quelle oder mehrere per Komma getrennt
tag_uuid
string
Filter auf eine team-eigene Tag-UUID
assigned_user_uuid
string
Filter auf die UUID des zugewiesenen Benutzers. Eine UUID ausserhalb des Teams liefert eine leere Liste. Breaking Change: assigned_user_id wird nicht mehr akzeptiert (422)
created_from
string
Erstellt ab (Datum, YYYY-MM-DD)
created_to
string
Erstellt bis (Datum, YYYY-MM-DD)
updated_from
string
Geändert ab (Datum, YYYY-MM-DD)
updated_to
string
Geändert bis (Datum, YYYY-MM-DD)
per_page
integer
Einträge pro Seite (Standard 50, Maximum 100)
include
string
Zusätzliche Relationen, per Komma: contacts, sources, tags, status, board_cards, assigned_user, notes, custom_fields
/api/leads
Legt einen Lead an oder aktualisiert per external_source + external_id idempotent einen bestehenden (Merge nur der gesendeten Felder). Der Status kann hier nie gesetzt werden; ein neuer Lead startet im Standard-Status. Ein optionales doc-Objekt befüllt beim erstmaligen Anlegen das FlowDoc des Leads, nicht bei einem idempotenten Wiederholungs-POST. Das frühere docs[]-Array wird nicht mehr akzeptiert (422), weil ein Lead genau ein FlowDoc hat. Die Antwort trägt created (bool) und duplicate_warning (Objekt mit matches oder null). HTTP 201 bei Neuanlage, 200 bei idempotenter Aktualisierung.
type
string
*
company oder person
company_name
string
Firmenname (Pflicht wenn type=company)
first_name
string
Vorname (Pflicht wenn type=person)
last_name
string
Nachname
email
string
E-Mail-Adresse
phone
string
Telefonnummer
website
string
Webseite
address_line_1
string
Adresszeile 1
address_line_2
string
Adresszeile 2
postal_code
string
Postleitzahl
city
string
Ort
state
string
Bundesland / Region
country
string
Land (ISO-Code)
country_display
string
Anzeigename des Landes
deal_value
number
Potenzieller Auftragswert
deal_currency
string
Währung (3-stelliger ISO-Code)
notes
string
Freitext-Notiz am Lead
external_source
string
Quellsystem-Kennung, Teil des Idempotenzschlüssels
external_id
string
Datensatz-Kennung im Quellsystem, Teil des Idempotenzschlüssels
source_payload
object
Roh-Payload der Quelle. Wird gespeichert, erscheint aber nie in der Antwort
sources
array
Liste von Herkunftsquellen als Freitext (max. 20 Einträge)
tag_uuids
array
Liste team-eigener Tag-UUIDs (max. 50 Einträge)
assigned_user_uuid
string
UUID eines Team-Mitglieds als zugewiesener Benutzer. Benutzer außerhalb des Teams werden mit 422 abgelehnt. Breaking Change: assigned_user_id wird nicht mehr akzeptiert (Validierungsfehler)
contacts
array
Ansprechpartner-Objekte (first_name, last_name, email, phone, role; max. 50 Einträge)
custom_fields
array
Custom-Field-Werte (definition_uuid oder name, plus value). Bei Feldern vom Typ reference ist value die UUID des Ziels (Kunde, Kontakt, Projekt oder Team-Mitglied), zum Beispiel {"definition_uuid": "...", "value": "3f7c1a02-9b64-4d1e-a5c8-2e7b90d41f6a"}. Breaking Change: definition_id wird nicht mehr akzeptiert, und eine numerische Ziel-ID in value wird bei Referenzfeldern ebenfalls mit 422 abgelehnt
doc
object
Das FlowDoc des Leads, nur bei Neuanlage. Einziges Feld ist content als Markdown-String; ein Titel ist nicht vorgesehen. Breaking Change: das frühere docs[]-Array wird mit 422 abgelehnt
/api/leads/{uuid}
Ruft einen einzelnen team-eigenen Lead per UUID ab. Status, Quellen, Tags, Ansprechpartner und zugewiesener Benutzer sind enthalten. Custom-Field-Werte nur mit include=custom_fields; Referenzfelder werden ausschließlich per UUID adressiert.
include
string
custom_fields, um die Custom-Field-Werte mitzuladen. Referenzfelder liefern die UUID des Ziels in value und referenced_uuid sowie den Anzeigenamen in referenced_name; ist das Ziel nicht mehr vorhanden, ist referenced_uuid null
/api/leads/{uuid}
Aktualisiert die Kernfelder eines team-eigenen Leads (Teil-Update, nur gesendete Felder). Der Status kann hier nicht gesetzt werden (status und status_id werden mit 422 abgelehnt), dafür dient der Status-Endpunkt. Die Antwort trägt zusätzlich duplicate_warning.
type
string
company oder person
company_name
string
Firmenname
first_name
string
Vorname
last_name
string
Nachname
email
string
E-Mail-Adresse
phone
string
Telefonnummer
website
string
Webseite
address_line_1
string
Adresszeile 1
address_line_2
string
Adresszeile 2
postal_code
string
Postleitzahl
city
string
Ort
state
string
Bundesland / Region
country
string
Land (ISO-Code)
country_display
string
Anzeigename des Landes
deal_value
number
Potenzieller Auftragswert
deal_currency
string
Währung (3-stelliger ISO-Code)
notes
string
Freitext-Notiz
external_source
string
Quellsystem-Kennung
external_id
string
Datensatz-Kennung im Quellsystem
source_payload
object
Roh-Payload der Quelle. Wird gespeichert, erscheint aber nie in der Antwort
sources
array
Herkunftsquellen, additiv (fügt nur hinzu, entfernt nie; zum Ersetzen dient PUT /sources; max. 20 Einträge)
tag_uuids
array
Team-eigene Tag-UUIDs, additiv (zum Ersetzen dient PUT /tags; max. 50 Einträge)
assigned_user_uuid
string
UUID eines Team-Mitglieds als zugewiesener Benutzer; null entfernt die Zuweisung. Benutzer außerhalb des Teams werden mit 422 abgelehnt. Breaking Change: assigned_user_id wird nicht mehr akzeptiert (Validierungsfehler)
contacts
array
Ansprechpartner-Objekte (first_name, last_name, email, phone, role), additiv: legt neue Ansprechpartner an, verändert oder löscht keine bestehenden (dafür die /contacts-Endpunkte; max. 50 Einträge)
custom_fields
array
Custom-Field-Werte (definition_uuid oder name, plus value). Bei Feldern vom Typ reference ist value die UUID des Ziels (Kunde, Kontakt, Projekt oder Team-Mitglied). Breaking Change: definition_id wird nicht mehr akzeptiert, und eine numerische Ziel-ID in value wird bei Referenzfeldern ebenfalls mit 422 abgelehnt
/api/leads/{uuid}
Löscht einen team-eigenen Lead (Soft-Delete).
https://creativeskyline.de/api/clients
https://creativeskyline.de/api/clients/{uuid}/timeline
https://creativeskyline.de/api/clients/{uuid}/projects
https://creativeskyline.de/api/leads
https://creativeskyline.de/api/lead-boards
https://creativeskyline.de/api/leads/{uuid}/docs
Alle Endpunkte sind team-scoped: eine fremde Lead-UUID ergibt 404. Fremd-Team-Tag-UUIDs werden als ungültige Auswahl (422) abgelehnt. Die Autorenschaft einer Notiz stammt immer vom Token-Benutzer und kann nicht mitgesendet werden.
/api/leads/{uuid}/sources
Voller Sync der Quellen des Leads: die gesendete Liste ersetzt die gespeicherte. Ein leeres Array leert die Quellen. Trimmen, Leer-Entfernen und Deduplizieren übernimmt der Server.
sources
array
*
Vollständige Liste der Quellen (Freitext, max. 50 Einträge). Muss vorhanden sein; leeres Array leert die Quellen
/api/leads/{uuid}/tags
Voller Sync der Tags des Leads über team-eigene Tag-UUIDs: die gesendete Liste ersetzt die gespeicherte. Behaltene Tags behalten ihre Pivot-Quelle, neu angehängte erhalten source=api, ausgelassene werden entfernt. Ein leeres Array entfernt alle Tags. Eine Fremd-Team-UUID wird mit 422 abgelehnt.
tag_uuids
array
*
Vollständige Liste team-eigener Tag-UUIDs (max. 50 Einträge). Muss vorhanden sein; leeres Array entfernt alle Tags
/api/leads/{uuid}/contacts
Listet die Ansprechpartner eines team-eigenen Leads auf.
/api/leads/{uuid}/contacts
Legt einen Ansprechpartner am Lead an. Nur first_name ist Pflicht.
first_name
string
*
Vorname
last_name
string
Nachname
email
string
E-Mail-Adresse
phone
string
Telefonnummer
role
string
Rolle / Funktion
/api/leads/{uuid}/contacts/{contactUuid}
Aktualisiert einen Ansprechpartner (Teil-Update). first_name darf, wenn gesendet, nicht leer sein. Der Ansprechpartner wird per UUID innerhalb des Leads adressiert; numerische IDs werden nicht mehr akzeptiert (HTTP 404).
first_name
string
Vorname (darf nicht geleert werden)
last_name
string
Nachname
email
string
E-Mail-Adresse
phone
string
Telefonnummer
role
string
Rolle / Funktion
/api/leads/{uuid}/contacts/{contactUuid}
Entfernt einen Ansprechpartner des Leads.
/api/leads/{uuid}/notes
Listet die Notizen des Leads auf, neueste zuerst. Der Autor wird als Objekt (uuid, name) mitgeliefert.
/api/leads/{uuid}/notes
Hängt eine Notiz an den Lead an. Notizen sind append-only, es gibt kein Bearbeiten oder Löschen. Der Autor ist immer der Token-Benutzer.
body
string
*
Notizinhalt (max. 65535 Zeichen)
https://creativeskyline.de/api/clients
https://creativeskyline.de/api/clients/{uuid}/timeline
https://creativeskyline.de/api/clients/{uuid}/projects
https://creativeskyline.de/api/leads
https://creativeskyline.de/api/lead-boards
https://creativeskyline.de/api/leads/{uuid}/docs
Der Status wird ausschliesslich über seine team-eigene UUID gesetzt, nie über einen Schlüssel oder eine numerische id. Eine Fremd-Team-Status-UUID wird als ungültige Auswahl (422) abgelehnt. Der Schreibvorgang läuft über denselben Pfad wie die Detailseite, sodass derselbe Timeline-Eintrag geschrieben und das Board synchronisiert wird.
/api/leads/{uuid}/status
Setzt den Status eines team-eigenen Leads auf einen team-eigenen Status, adressiert per Status-UUID. converted wird mit 422 abgelehnt; eine UUID, die die Validierung passiert, aber keinen auffindbaren Status trifft, liefert 404.
status_uuid
string
*
UUID eines team-eigenen Lead-Status
https://creativeskyline.de/api/clients
https://creativeskyline.de/api/clients/{uuid}/timeline
https://creativeskyline.de/api/clients/{uuid}/projects
https://creativeskyline.de/api/leads
https://creativeskyline.de/api/lead-boards
https://creativeskyline.de/api/leads/{uuid}/docs
Die Lead-Timeline spiegelt die Kunden-Timeline: GET ist paginiert (neueste zuerst), POST hängt einen Eintrag an. Über die API angelegte Einträge bleiben in der bestehenden Timeline sichtbar und fliessen nach einer Konvertierung in die Kunden-Timeline. Ein konvertierter Lead ist schreibgeschützt: ein POST wird mit HTTP 409 abgelehnt.
/api/leads/{uuid}/timeline
Ruft die Timeline-Einträge eines team-eigenen Leads paginiert ab (neueste zuerst).
per_page
integer
Einträge pro Seite (Standard 50, Maximum 100)
/api/leads/{uuid}/timeline
Hängt einen Timeline-Eintrag an den Lead an. type wird gegen die erlaubte Timeline-Typenliste geprüft; fehlt type, wird note verwendet. Bei einem konvertierten Lead antwortet der Endpunkt mit HTTP 409.
content
string
*
Inhalt des Eintrags
type
string
Timeline-Typ aus der erlaubten Vokabel (Standard note)
event_date
string
Ereignisdatum (ISO 8601, Standard: jetzt)
https://creativeskyline.de/api/clients
https://creativeskyline.de/api/clients/{uuid}/timeline
https://creativeskyline.de/api/clients/{uuid}/projects
https://creativeskyline.de/api/leads
https://creativeskyline.de/api/lead-boards
https://creativeskyline.de/api/leads/{uuid}/docs
Konvertiert einen team-eigenen Lead in einen neuen Kunden über denselben Konvertierungsdienst wie das UI-Modal. Die vier optionalen Transfer-Flags entsprechen den Checkboxen im Modal; ohne Flag wird die jeweilige Kategorie nicht übertragen. Die Flags tragen keine IDs, der Dienst leitet jede übertragene Zeile serverseitig vom gesperrten Lead ab. Die Antwort ist der neu angelegte Kunde (nicht der Lead).
/api/leads/{uuid}/convert
Konvertiert den Lead in einen neuen Kunden. Ohne client_name wird der Name aus dem Lead abgeleitet (Firmenname bei Firma, Vor- und Nachname bei Person). Die Antwort ist der neue Kunde (CmmClient) mit HTTP 201. Ein bereits konvertierter Lead ergibt 409.
client_name
string
Expliziter Kundenname (überschreibt den abgeleiteten Namen)
transfer_contacts
boolean
Ansprechpartner mit übernehmen
transfer_todos
boolean
Aufgaben mit übernehmen
transfer_docs
boolean
FlowDocs mit übernehmen
transfer_custom_fields
boolean
Custom-Field-Werte mit übernehmen
https://creativeskyline.de/api/clients
https://creativeskyline.de/api/clients/{uuid}/timeline
https://creativeskyline.de/api/clients/{uuid}/projects
https://creativeskyline.de/api/leads
https://creativeskyline.de/api/lead-boards
https://creativeskyline.de/api/leads/{uuid}/docs
Kanban-Boards für Leads: ein Board enthält Spalten, eine Spalte enthält Karten, jede Karte verweist auf genau einen Lead. Das Verschieben einer Karte in eine status-gemappte Spalte setzt den Status des Leads über denselben Pfad wie das Drag-and-Drop im UI. Karten dieses Endpunkts verweisen immer auf einen Lead, nie auf einen Kunden.
/api/lead-boards
Listet die Boards des Teams auf. Mit include=columns oder include=columns.cards werden Spalten bzw. Spalten samt Karten mitgeladen.
include
string
columns oder columns.cards
/api/lead-boards
Legt ein neues Board an. Bei überschrittenem Limit (5 pro Team) antwortet der Endpunkt mit HTTP 422.
name
string
*
Name des Boards
/api/lead-boards/{uuid}
Ruft ein team-eigenes Board ab. Mit include=columns oder columns.cards inklusive Spalten bzw. Karten.
include
string
columns oder columns.cards
/api/lead-boards/{uuid}
Benennt ein team-eigenes Board um.
name
string
Neuer Name des Boards
/api/lead-boards/{uuid}
Löscht ein team-eigenes Board samt seiner Spalten und Karten. Die verknüpften Leads bleiben bestehen.
/api/lead-boards/{uuid}/columns
Legt eine Spalte in einem team-eigenen Board an. Ohne sort_order wird die Spalte hinten angefügt.
name
string
*
Name der Spalte
sort_order
integer
Position der Spalte (Standard: hinten angefügt)
/api/lead-board-columns/{uuid}
Aktualisiert Name oder Position einer team-eigenen Spalte.
name
string
Neuer Name der Spalte
sort_order
integer
Neue Position der Spalte
/api/lead-board-columns/{uuid}
Löscht eine team-eigene Spalte. Die Karten der Spalte werden mitentfernt; die verknüpften Leads bleiben bestehen.
/api/lead-board-columns/{uuid}/cards
Legt eine Karte in einer team-eigenen Spalte an. Genau eine der beiden Varianten angeben: entweder lead_uuid (bestehender Lead) ODER ein verschachteltes lead-Objekt (neuer Lead und Karte in einer Transaktion). Die Karten-eigenen deal_value/deal_currency sind unabhängig von den Deal-Feldern des Leads.
lead_uuid
string
UUID eines bestehenden team-eigenen Leads (Alternative zu lead)
lead
object
Neuer Lead (type plus company_name/first_name usw., analog zum Lead-Anlegen; Alternative zu lead_uuid)
deal_value
number
Auftragswert der Karte
deal_currency
string
Währung der Karte (3-stelliger ISO-Code)
sort_order
integer
Position der Karte in der Spalte
/api/lead-board-cards/{uuid}
Aktualisiert die Deal-Felder oder die Position einer team-eigenen Karte. Die Verknüpfung zum Lead und die Spalte werden hier nicht geändert (dafür dient der Move-Endpunkt).
deal_value
number
Auftragswert der Karte
deal_currency
string
Währung der Karte (3-stelliger ISO-Code)
sort_order
integer
Position der Karte in der Spalte
/api/lead-board-cards/{uuid}/move
Verschiebt eine team-eigene Karte in eine team-eigene Zielspalte. Ist die Zielspalte status-gemappt, wird der Status des Leads über denselben Pfad wie das UI-Drag-and-Drop gesetzt. Die Verknüpfung der Karte kann dabei nicht geändert werden.
target_column_uuid
string
*
UUID der team-eigenen Zielspalte
sort_order
integer
Zielposition in der Spalte
/api/lead-board-cards/{uuid}
Löscht eine team-eigene Karte. Der verknüpfte Lead bleibt bestehen.
https://creativeskyline.de/api/clients
https://creativeskyline.de/api/clients/{uuid}/timeline
https://creativeskyline.de/api/clients/{uuid}/projects
https://creativeskyline.de/api/leads
https://creativeskyline.de/api/lead-boards
https://creativeskyline.de/api/leads/{uuid}/docs
Jede der vier Eigentümer-Entitäten — Lead, Kunde, Kontakt und Projekt — hat genau ein FlowDoc. Es gibt deshalb weder eine Liste noch einen Anlege-Endpunkt noch eine Dokument-UUID im Pfad: GET /api/{eigentümer}/{uuid}/docs liefert das Dokument und legt es beim ersten Zugriff an, PUT auf denselben Pfad ersetzt den Inhalt vollständig. Breaking Change: POST auf /docs antwortet mit HTTP 405, die früheren Pfade /docs/{docUuid} mit HTTP 404. Der Eigentümer wird per UUID adressiert. title steht aus Kompatibilitätsgründen weiterhin in der Antwort, ist immer Notizen und wird im Request-Body mit 422 abgelehnt; team_id und die Eigentümer-Verknüpfung ebenso. Für Schreibvorgänge wird content ausschließlich als Markdown-String übergeben. TipTap-JSON wird als Eingabe nicht akzeptiert. Die Syntax folgt CommonMark und unterstützt zusätzlich Aufgabenlisten im GitHub-Stil. Verarbeitet werden Überschriften, Absätze, Aufzählungen, nummerierte Listen, Aufgabenlisten, Fett, Kursiv, Links und feste Zeilenumbrüche. Echte LF- und CRLF-Zeilenumbrüche werden verarbeitet und auch einzelne Zeilenumbrüche sichtbar bewahrt; ein vollständig doppelt kodierter Inhalt mit literalen
-Sequenzen wird ebenfalls normalisiert. Eingebettetes HTML wird verworfen. Beim Anlegen eines Leads kann das doc-Feld den Inhalt direkt mitliefern (siehe Lead anlegen). Die folgende Referenz zeigt den vollen Payload einmal für Leads; die Endpunkte für Kunden, Kontakte und Projekte sind identisch aufgebaut und unterscheiden sich nur im Pfad und in der Berechtigung.
/api/leads/{uuid}/docs
Ruft das FlowDoc eines team-eigenen Leads ab, inklusive latest_version_number. Existiert noch keines, wird es beim ersten Aufruf angelegt und leer zurückgegeben. documentable.type ist crm_lead.
/api/leads/{uuid}/docs
Ersetzt den Inhalt des FlowDocs vollständig. content muss übergeben werden; null oder ein leerer String leert das Dokument. Jeder Aufruf erzeugt eine neue Version und erhöht latest_version_number. title wird im Body mit 422 abgelehnt.
content
string
*
Markdown-Inhalt, wird serverseitig in TipTap umgewandelt. null oder leerer String leert das Dokument
/api/clients/{uuid}/docs
Ruft das FlowDoc eines team-eigenen Kunden ab, inklusive latest_version_number. Existiert noch keines, wird es beim ersten Aufruf angelegt und leer zurückgegeben. documentable.type ist cmm_client.
/api/clients/{uuid}/docs
Ersetzt den Inhalt des FlowDocs vollständig. content muss übergeben werden; null oder ein leerer String leert das Dokument. Jeder Aufruf erzeugt eine neue Version und erhöht latest_version_number. title wird im Body mit 422 abgelehnt.
content
string
*
Markdown-Inhalt, wird serverseitig in TipTap umgewandelt. null oder leerer String leert das Dokument
/api/contacts/{uuid}/docs
Ruft das FlowDoc eines Kontakts (ein privater Kontakt ohne Team ist nur für seinen Eigentümer erreichbar) ab, inklusive latest_version_number. Existiert noch keines, wird es beim ersten Aufruf angelegt und leer zurückgegeben. documentable.type ist cmm_contact.
/api/contacts/{uuid}/docs
Ersetzt den Inhalt des FlowDocs vollständig. content muss übergeben werden; null oder ein leerer String leert das Dokument. Jeder Aufruf erzeugt eine neue Version und erhöht latest_version_number. title wird im Body mit 422 abgelehnt.
content
string
*
Markdown-Inhalt, wird serverseitig in TipTap umgewandelt. null oder leerer String leert das Dokument
/api/projects/{uuid}/docs
Ruft das FlowDoc eines Projekts (ein Projekt hat kein eigenes Team und wird über seinen Kunden team-scoped) ab, inklusive latest_version_number. Existiert noch keines, wird es beim ersten Aufruf angelegt und leer zurückgegeben. documentable.type ist cmm_client_project.
/api/projects/{uuid}/docs
Ersetzt den Inhalt des FlowDocs vollständig. content muss übergeben werden; null oder ein leerer String leert das Dokument. Jeder Aufruf erzeugt eine neue Version und erhöht latest_version_number. title wird im Body mit 422 abgelehnt.
content
string
*
Markdown-Inhalt, wird serverseitig in TipTap umgewandelt. null oder leerer String leert das Dokument
/api/clients
curl -X GET "https://creativeskyline.de/api/clients" \
-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/clients');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients', {
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/clients',
headers=headers,
)
data = response.json()
{
"success": true,
"count": 1,
"data": [
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 123 456789",
"contact_person": null,
"source": null,
"whmcs_client_id": null,
"external_id": null,
"stripe_customer_id": null,
"website": "https://mustermann.de",
"address_line_1": null,
"address_line_2": null,
"postal_code": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"currency": "EUR",
"tax_id": null,
"notes": null,
"status": "active",
"tags": [],
"sources": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
]
}
/api/clients/search
curl -X GET "https://creativeskyline.de/api/clients/search" \
-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/clients/search');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/search', {
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/clients/search',
headers=headers,
)
data = response.json()
/api/clients
curl -X POST "https://creativeskyline.de/api/clients" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "email": "value", "phone": "value", "source": "value", "external_id": "value", "whmcs_client_id": 0, "address_line_1": "value", "address_line_2": "value", "postal_code": "value", "city": "value", "country": "value", "contact_person": "value", "tax_id": "value", "tag_uuids": [], "sources": [], "stripe_customer_id": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients', [
'name' => 'value',
'email' => 'value',
'phone' => 'value',
'source' => 'value',
'external_id' => 'value',
'whmcs_client_id' => 0,
'address_line_1' => 'value',
'address_line_2' => 'value',
'postal_code' => 'value',
'city' => 'value',
'country' => 'value',
'contact_person' => 'value',
'tax_id' => 'value',
'tag_uuids' => [],
'sources' => [],
'stripe_customer_id' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
email: 'value',
phone: 'value',
source: 'value',
external_id: 'value',
whmcs_client_id: 0,
address_line_1: 'value',
address_line_2: 'value',
postal_code: 'value',
city: 'value',
country: 'value',
contact_person: 'value',
tax_id: 'value',
tag_uuids: [],
sources: [],
stripe_customer_id: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'email': 'value',
'phone': 'value',
'source': 'value',
'external_id': 'value',
'whmcs_client_id': 0,
'address_line_1': 'value',
'address_line_2': 'value',
'postal_code': 'value',
'city': 'value',
'country': 'value',
'contact_person': 'value',
'tax_id': 'value',
'tag_uuids': [],
'sources': [],
'stripe_customer_id': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"created": true,
"data": {
"uuid": "8c1a5d2e-0f4b-4a9c-9d3e-2b7f0a6c1e44",
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 30 123456",
"contact_person": "Erika Musterfrau",
"source": "messe-2026",
"whmcs_client_id": null,
"external_id": "MSG-4711",
"stripe_customer_id": null,
"website": null,
"address_line_1": "Hauptstrasse 1",
"address_line_2": null,
"postal_code": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"currency": "EUR",
"tax_id": null,
"notes": null,
"status": "active",
"tags": [
{
"uuid": "b2c1a7a6-1249-4827-b533-ef1c65c1e273",
"title": "VIP",
"slug": "vip",
"source": "api"
}
],
"sources": [
"messe-2026"
],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
}
/api/clients/{uuid}
curl -X PATCH "https://creativeskyline.de/api/clients/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "contact_person": "value", "phone": "value", "website": "value", "address_line_1": "value", "address_line_2": "value", "postal_code": "value", "city": "value", "state": "value", "country": "value", "tax_id": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/clients/{uuid}', [
'name' => 'value',
'contact_person' => 'value',
'phone' => 'value',
'website' => 'value',
'address_line_1' => 'value',
'address_line_2' => 'value',
'postal_code' => 'value',
'city' => 'value',
'state' => 'value',
'country' => 'value',
'tax_id' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
contact_person: 'value',
phone: 'value',
website: 'value',
address_line_1: 'value',
address_line_2: 'value',
postal_code: 'value',
city: 'value',
state: 'value',
country: 'value',
tax_id: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'contact_person': 'value',
'phone': 'value',
'website': 'value',
'address_line_1': 'value',
'address_line_2': 'value',
'postal_code': 'value',
'city': 'value',
'state': 'value',
'country': 'value',
'tax_id': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/clients/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "8c1a5d2e-0f4b-4a9c-9d3e-2b7f0a6c1e44",
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 30 999888",
"contact_person": "Erika Musterfrau",
"source": "messe-2026",
"whmcs_client_id": null,
"external_id": "MSG-4711",
"stripe_customer_id": null,
"website": null,
"address_line_1": "Hauptstrasse 1",
"address_line_2": null,
"postal_code": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"currency": "EUR",
"tax_id": null,
"notes": null,
"status": "active",
"tags": [],
"sources": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T11:30:00+00:00"
}
}
/api/clients/{uuid}/timeline
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/timeline" \
-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/clients/{uuid}/timeline');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/timeline', {
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/clients/{uuid}/timeline',
headers=headers,
)
data = response.json()
/api/clients/{uuid}/timeline
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/timeline" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "content": "value", "event_date": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/timeline', [
'title' => 'value',
'content' => 'value',
'event_date' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/timeline', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
content: 'value',
event_date: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'content': 'value',
'event_date': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/timeline',
headers=headers,
json=payload,
)
data = response.json()
/api/clients/{uuid}/timeline/search
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/timeline/search" \
-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/clients/{uuid}/timeline/search');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/timeline/search', {
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/clients/{uuid}/timeline/search',
headers=headers,
)
data = response.json()
/api/clients/{uuid}/projects
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/projects" \
-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/clients/{uuid}/projects');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects', {
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/clients/{uuid}/projects',
headers=headers,
)
data = response.json()
/api/clients/{uuid}/projects/{project_uuid}/timeline
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline" \
-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/clients/{uuid}/projects/{project_uuid}/timeline');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline', {
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/clients/{uuid}/projects/{project_uuid}/timeline',
headers=headers,
)
data = response.json()
/api/leads
curl -X GET "https://creativeskyline.de/api/leads" \
-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/leads');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads', {
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/leads',
headers=headers,
)
data = response.json()
{
"data": [
{
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"company_name": "Mustermann GmbH",
"first_name": null,
"last_name": null,
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 30 123456",
"website": null,
"address_line_1": null,
"address_line_2": null,
"postal_code": null,
"city": "Berlin",
"state": null,
"country": "DE",
"country_display": null,
"deal_value": "5000.00",
"deal_currency": "EUR",
"notes": null,
"external_source": "messe-2026",
"external_id": "MSG-4711",
"possible_duplicate": false,
"last_api_ingested_at": null,
"sources": [],
"tags": [],
"contacts": [],
"board_cards": [],
"assigned_user": null,
"notes_log": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
],
"links": {
"first": "/api/leads?page=1",
"last": "/api/leads?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1
}
}
/api/leads
curl -X POST "https://creativeskyline.de/api/leads" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"type": "value", "company_name": "value", "first_name": "value", "last_name": "value", "email": "value", "phone": "value", "website": "value", "address_line_1": "value", "address_line_2": "value", "postal_code": "value", "city": "value", "state": "value", "country": "value", "country_display": "value", "deal_value": 0, "deal_currency": "value", "notes": "value", "external_source": "value", "external_id": "value", "source_payload": "value", "sources": [], "tag_uuids": [], "assigned_user_uuid": "value", "contacts": [], "custom_fields": [], "doc": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/leads', [
'type' => 'value',
'company_name' => 'value',
'first_name' => 'value',
'last_name' => 'value',
'email' => 'value',
'phone' => 'value',
'website' => 'value',
'address_line_1' => 'value',
'address_line_2' => 'value',
'postal_code' => 'value',
'city' => 'value',
'state' => 'value',
'country' => 'value',
'country_display' => 'value',
'deal_value' => 0,
'deal_currency' => 'value',
'notes' => 'value',
'external_source' => 'value',
'external_id' => 'value',
'source_payload' => 'value',
'sources' => [],
'tag_uuids' => [],
'assigned_user_uuid' => 'value',
'contacts' => [],
'custom_fields' => [],
'doc' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
type: 'value',
company_name: 'value',
first_name: 'value',
last_name: 'value',
email: 'value',
phone: 'value',
website: 'value',
address_line_1: 'value',
address_line_2: 'value',
postal_code: 'value',
city: 'value',
state: 'value',
country: 'value',
country_display: 'value',
deal_value: 0,
deal_currency: 'value',
notes: 'value',
external_source: 'value',
external_id: 'value',
source_payload: 'value',
sources: [],
tag_uuids: [],
assigned_user_uuid: 'value',
contacts: [],
custom_fields: [],
doc: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'type': 'value',
'company_name': 'value',
'first_name': 'value',
'last_name': 'value',
'email': 'value',
'phone': 'value',
'website': 'value',
'address_line_1': 'value',
'address_line_2': 'value',
'postal_code': 'value',
'city': 'value',
'state': 'value',
'country': 'value',
'country_display': 'value',
'deal_value': 0,
'deal_currency': 'value',
'notes': 'value',
'external_source': 'value',
'external_id': 'value',
'source_payload': 'value',
'sources': [],
'tag_uuids': [],
'assigned_user_uuid': 'value',
'contacts': [],
'custom_fields': [],
'doc': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/leads',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"created": true,
"data": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"company_name": "Mustermann GmbH",
"first_name": null,
"last_name": null,
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 30 123456",
"website": "https://mustermann.de",
"address_line_1": "Hauptstrasse 1",
"address_line_2": null,
"postal_code": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"country_display": "Deutschland",
"deal_value": "5000.00",
"deal_currency": "EUR",
"notes": "Interessent von der Messe",
"external_source": "messe-2026",
"external_id": "MSG-4711",
"possible_duplicate": false,
"last_api_ingested_at": "2026-07-21T10:00:00+00:00",
"status": {
"uuid": "1f2e3d4c-5b6a-4790-8123-45a6b7c8d9e0",
"key": "kalt",
"name": "Kalt",
"color": "#94a3b8",
"is_won": false,
"is_lost": false,
"is_closed": false,
"is_system": false
},
"sources": [
"messe-2026"
],
"tags": [
{
"uuid": "b2c1a7a6-1249-4827-b533-ef1c65c1e273",
"title": "VIP",
"source": "api"
}
],
"contacts": [
{
"uuid": "4f8a2b6c-9d1e-4c3a-8b5f-0a7e6d2c1b9e",
"first_name": "Erika",
"last_name": "Musterfrau",
"email": "erika@mustermann.de",
"phone": null,
"role": "Einkauf"
}
],
"board_cards": [],
"assigned_user": null,
"notes_log": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
},
"duplicate_warning": null
}
/api/leads/{uuid}
curl -X GET "https://creativeskyline.de/api/leads/{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/leads/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{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/leads/{uuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"company_name": "Mustermann GmbH",
"first_name": null,
"last_name": null,
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 30 123456",
"website": "https://mustermann.de",
"address_line_1": "Hauptstrasse 1",
"address_line_2": null,
"postal_code": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"country_display": "Deutschland",
"deal_value": "5000.00",
"deal_currency": "EUR",
"notes": "Interessent von der Messe",
"external_source": "messe-2026",
"external_id": "MSG-4711",
"possible_duplicate": false,
"last_api_ingested_at": "2026-07-21T10:00:00+00:00",
"status": {
"uuid": "1f2e3d4c-5b6a-4790-8123-45a6b7c8d9e0",
"key": "kalt",
"name": "Kalt",
"color": "#94a3b8",
"is_won": false,
"is_lost": false,
"is_closed": false,
"is_system": false
},
"sources": [
"messe-2026"
],
"tags": [],
"contacts": [],
"board_cards": [],
"assigned_user": null,
"notes_log": [],
"custom_fields": [
{
"definition_uuid": "7c1f9a3b-42d5-4e88-9a10-b6c3f2d51e04",
"name": "Branche",
"type": "text",
"value": "Gastronomie"
},
{
"definition_uuid": "0d5b8e21-6c74-4f39-8a2b-91e7c40d3f55",
"name": "Stammkunde",
"type": "reference",
"value": "3f7c1a02-9b64-4d1e-a5c8-2e7b90d41f6a",
"referenced_uuid": "3f7c1a02-9b64-4d1e-a5c8-2e7b90d41f6a",
"referenced_name": "Mustermann GmbH"
}
],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
}
/api/leads/{uuid}
curl -X PATCH "https://creativeskyline.de/api/leads/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"type": "value", "company_name": "value", "first_name": "value", "last_name": "value", "email": "value", "phone": "value", "website": "value", "address_line_1": "value", "address_line_2": "value", "postal_code": "value", "city": "value", "state": "value", "country": "value", "country_display": "value", "deal_value": 0, "deal_currency": "value", "notes": "value", "external_source": "value", "external_id": "value", "source_payload": "value", "sources": [], "tag_uuids": [], "assigned_user_uuid": "value", "contacts": [], "custom_fields": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/leads/{uuid}', [
'type' => 'value',
'company_name' => 'value',
'first_name' => 'value',
'last_name' => 'value',
'email' => 'value',
'phone' => 'value',
'website' => 'value',
'address_line_1' => 'value',
'address_line_2' => 'value',
'postal_code' => 'value',
'city' => 'value',
'state' => 'value',
'country' => 'value',
'country_display' => 'value',
'deal_value' => 0,
'deal_currency' => 'value',
'notes' => 'value',
'external_source' => 'value',
'external_id' => 'value',
'source_payload' => 'value',
'sources' => [],
'tag_uuids' => [],
'assigned_user_uuid' => 'value',
'contacts' => [],
'custom_fields' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
type: 'value',
company_name: 'value',
first_name: 'value',
last_name: 'value',
email: 'value',
phone: 'value',
website: 'value',
address_line_1: 'value',
address_line_2: 'value',
postal_code: 'value',
city: 'value',
state: 'value',
country: 'value',
country_display: 'value',
deal_value: 0,
deal_currency: 'value',
notes: 'value',
external_source: 'value',
external_id: 'value',
source_payload: 'value',
sources: [],
tag_uuids: [],
assigned_user_uuid: 'value',
contacts: [],
custom_fields: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'type': 'value',
'company_name': 'value',
'first_name': 'value',
'last_name': 'value',
'email': 'value',
'phone': 'value',
'website': 'value',
'address_line_1': 'value',
'address_line_2': 'value',
'postal_code': 'value',
'city': 'value',
'state': 'value',
'country': 'value',
'country_display': 'value',
'deal_value': 0,
'deal_currency': 'value',
'notes': 'value',
'external_source': 'value',
'external_id': 'value',
'source_payload': 'value',
'sources': [],
'tag_uuids': [],
'assigned_user_uuid': 'value',
'contacts': [],
'custom_fields': [],
}
response = requests.patch(
'https://creativeskyline.de/api/leads/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"company_name": "Mustermann GmbH",
"name": "Mustermann GmbH",
"email": "kontakt@mustermann.de",
"phone": "+49 30 123456",
"deal_value": "7500.00",
"deal_currency": "EUR",
"external_source": "messe-2026",
"external_id": "MSG-4711",
"possible_duplicate": false,
"status": {
"uuid": "1f2e3d4c-5b6a-4790-8123-45a6b7c8d9e0",
"key": "kalt",
"name": "Kalt",
"color": "#94a3b8",
"is_won": false,
"is_lost": false,
"is_closed": false,
"is_system": false
},
"sources": [],
"tags": [],
"contacts": [],
"board_cards": [],
"assigned_user": null,
"notes_log": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T12:00:00+00:00"
},
"duplicate_warning": null
}
/api/leads/{uuid}
curl -X DELETE "https://creativeskyline.de/api/leads/{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/leads/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{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/leads/{uuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"message": "Lead gelöscht."
}
/api/leads/{uuid}/sources
curl -X PUT "https://creativeskyline.de/api/leads/{uuid}/sources" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"sources": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/leads/{uuid}/sources', [
'sources' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/sources', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
sources: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'sources': [],
}
response = requests.put(
'https://creativeskyline.de/api/leads/{uuid}/sources',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"name": "Mustermann GmbH",
"sources": [
"messe-2026",
"empfehlung"
],
"tags": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T12:10:00+00:00"
}
}
/api/leads/{uuid}/tags
curl -X PUT "https://creativeskyline.de/api/leads/{uuid}/tags" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"tag_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/leads/{uuid}/tags', [
'tag_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/tags', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tag_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'tag_uuids': [],
}
response = requests.put(
'https://creativeskyline.de/api/leads/{uuid}/tags',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"name": "Mustermann GmbH",
"sources": [],
"tags": [
{
"uuid": "b2c1a7a6-1249-4827-b533-ef1c65c1e273",
"title": "VIP",
"source": "api"
}
],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T12:12:00+00:00"
}
}
/api/leads/{uuid}/contacts
curl -X GET "https://creativeskyline.de/api/leads/{uuid}/contacts" \
-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/leads/{uuid}/contacts');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/contacts', {
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/leads/{uuid}/contacts',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"uuid": "4f8a2b6c-9d1e-4c3a-8b5f-0a7e6d2c1b9e",
"first_name": "Erika",
"last_name": "Musterfrau",
"email": "erika@mustermann.de",
"phone": null,
"role": "Einkauf",
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
]
}
/api/leads/{uuid}/contacts
curl -X POST "https://creativeskyline.de/api/leads/{uuid}/contacts" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"first_name": "value", "last_name": "value", "email": "value", "phone": "value", "role": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/leads/{uuid}/contacts', [
'first_name' => 'value',
'last_name' => 'value',
'email' => 'value',
'phone' => 'value',
'role' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/contacts', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
first_name: 'value',
last_name: 'value',
email: 'value',
phone: 'value',
role: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'first_name': 'value',
'last_name': 'value',
'email': 'value',
'phone': 'value',
'role': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/leads/{uuid}/contacts',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "5a9b3c7d-0e2f-4d4b-9c6a-1b8f7e3d2c0f",
"first_name": "Max",
"last_name": "Mustermann",
"email": null,
"phone": "+49 170 111222",
"role": "Geschäftsführung",
"created_at": "2026-07-21T12:20:00+00:00",
"updated_at": "2026-07-21T12:20:00+00:00"
}
}
/api/leads/{uuid}/contacts/{contactUuid}
curl -X PATCH "https://creativeskyline.de/api/leads/{uuid}/contacts/{contactUuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"first_name": "value", "last_name": "value", "email": "value", "phone": "value", "role": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/leads/{uuid}/contacts/{contactUuid}', [
'first_name' => 'value',
'last_name' => 'value',
'email' => 'value',
'phone' => 'value',
'role' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/contacts/{contactUuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
first_name: 'value',
last_name: 'value',
email: 'value',
phone: 'value',
role: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'first_name': 'value',
'last_name': 'value',
'email': 'value',
'phone': 'value',
'role': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/leads/{uuid}/contacts/{contactUuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "5a9b3c7d-0e2f-4d4b-9c6a-1b8f7e3d2c0f",
"first_name": "Max",
"last_name": "Mustermann",
"email": "max@mustermann.de",
"phone": "+49 170 111222",
"role": "Geschäftsführung",
"created_at": "2026-07-21T12:20:00+00:00",
"updated_at": "2026-07-21T12:25:00+00:00"
}
}
/api/leads/{uuid}/contacts/{contactUuid}
curl -X DELETE "https://creativeskyline.de/api/leads/{uuid}/contacts/{contactUuid}" \
-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/leads/{uuid}/contacts/{contactUuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/contacts/{contactUuid}', {
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/leads/{uuid}/contacts/{contactUuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"message": "Kontaktperson entfernt."
}
/api/leads/{uuid}/notes
curl -X GET "https://creativeskyline.de/api/leads/{uuid}/notes" \
-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/leads/{uuid}/notes');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/notes', {
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/leads/{uuid}/notes',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"body": "Rückruf für Freitag vereinbart.",
"user": {
"uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"name": "Sascha"
},
"created_at": "2026-07-21T12:30:00+00:00"
}
]
}
/api/leads/{uuid}/notes
curl -X POST "https://creativeskyline.de/api/leads/{uuid}/notes" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"body": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/leads/{uuid}/notes', [
'body' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/notes', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
body: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'body': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/leads/{uuid}/notes',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"body": "Angebot per E-Mail versendet.",
"user": {
"uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"name": "Sascha"
},
"created_at": "2026-07-21T12:35:00+00:00"
}
}
/api/leads/{uuid}/status
curl -X PUT "https://creativeskyline.de/api/leads/{uuid}/status" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"status_uuid": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/leads/{uuid}/status', [
'status_uuid' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/status', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
status_uuid: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'status_uuid': 'value',
}
response = requests.put(
'https://creativeskyline.de/api/leads/{uuid}/status',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"name": "Mustermann GmbH",
"status": {
"uuid": "3c4d5e6f-7a8b-49c0-8d1e-2f3a4b5c6d7e",
"key": null,
"name": "Angebot",
"color": "#f59e0b",
"is_won": false,
"is_lost": false,
"is_closed": false,
"is_system": false
},
"sources": [],
"tags": [],
"contacts": [],
"board_cards": [],
"assigned_user": null,
"notes_log": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T12:40:00+00:00"
}
}
/api/leads/{uuid}/timeline
curl -X GET "https://creativeskyline.de/api/leads/{uuid}/timeline" \
-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/leads/{uuid}/timeline');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/timeline', {
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/leads/{uuid}/timeline',
headers=headers,
)
data = response.json()
{
"success": true,
"lead": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"name": "Mustermann GmbH"
},
"data": [
{
"type": "note",
"type_label": "Notiz",
"type_emoji": "📝",
"content": "Erstkontakt auf der Messe.",
"event_date": "2026-07-21T09:00:00+00:00",
"formatted_date": "21.07.2026 09:00",
"relative_date": "vor 4 Stunden",
"user": "Sascha",
"created_at": "2026-07-21T09:00:00+00:00"
}
],
"meta": {
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1
}
}
/api/leads/{uuid}/timeline
curl -X POST "https://creativeskyline.de/api/leads/{uuid}/timeline" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value", "type": "value", "event_date": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/leads/{uuid}/timeline', [
'content' => 'value',
'type' => 'value',
'event_date' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/timeline', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
type: 'value',
event_date: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'content': 'value',
'type': 'value',
'event_date': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/leads/{uuid}/timeline',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"type": "call",
"type_label": "Anruf",
"type_emoji": "📞",
"content": "Telefonat, Angebot angekündigt.",
"event_date": "2026-07-21T13:00:00+00:00",
"formatted_date": "21.07.2026 13:00",
"relative_date": "gerade eben",
"user": "Sascha",
"created_at": "2026-07-21T13:00:00+00:00"
}
}
/api/leads/{uuid}/convert
curl -X POST "https://creativeskyline.de/api/leads/{uuid}/convert" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"client_name": "value", "transfer_contacts": true, "transfer_todos": true, "transfer_docs": true, "transfer_custom_fields": true}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/leads/{uuid}/convert', [
'client_name' => 'value',
'transfer_contacts' => true,
'transfer_todos' => true,
'transfer_docs' => true,
'transfer_custom_fields' => true,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/convert', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
client_name: 'value',
transfer_contacts: true,
transfer_todos: true,
transfer_docs: true,
transfer_custom_fields: true,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'client_name': 'value',
'transfer_contacts': True,
'transfer_todos': True,
'transfer_docs': True,
'transfer_custom_fields': True,
}
response = requests.post(
'https://creativeskyline.de/api/leads/{uuid}/convert',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "d4e5f6a7-8b9c-40d1-8e2f-3a4b5c6d7e8f",
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 30 123456",
"contact_person": null,
"source": "messe-2026",
"whmcs_client_id": null,
"external_id": null,
"stripe_customer_id": null,
"website": null,
"address_line_1": "Hauptstrasse 1",
"address_line_2": null,
"postal_code": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"currency": "EUR",
"tax_id": null,
"notes": null,
"status": "active",
"tags": [],
"sources": [
"messe-2026"
],
"created_at": "2026-07-21T13:10:00+00:00",
"updated_at": "2026-07-21T13:10:00+00:00"
}
}
/api/lead-boards
curl -X GET "https://creativeskyline.de/api/lead-boards" \
-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/lead-boards');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-boards', {
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/lead-boards',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"uuid": "aa11bb22-cc33-4d44-8e55-6f66aa77bb88",
"name": "Vertrieb",
"is_default": true,
"sort_order": 0,
"created_at": "2026-07-01T08:00:00+00:00",
"updated_at": "2026-07-01T08:00:00+00:00"
}
]
}
/api/lead-boards
curl -X POST "https://creativeskyline.de/api/lead-boards" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/lead-boards', [
'name' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-boards', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/lead-boards',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"created": true,
"data": {
"uuid": "bb22cc33-dd44-4e55-8f66-7a77bb88cc99",
"name": "Partner",
"is_default": false,
"sort_order": 1,
"created_at": "2026-07-21T13:20:00+00:00",
"updated_at": "2026-07-21T13:20:00+00:00"
}
}
/api/lead-boards/{uuid}
curl -X GET "https://creativeskyline.de/api/lead-boards/{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/lead-boards/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-boards/{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/lead-boards/{uuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "aa11bb22-cc33-4d44-8e55-6f66aa77bb88",
"name": "Vertrieb",
"is_default": true,
"sort_order": 0,
"columns": [
{
"uuid": "cc33dd44-ee55-4f66-8a77-8b88cc99dd00",
"name": "Neu",
"sort_order": 0,
"created_at": "2026-07-01T08:00:00+00:00",
"updated_at": "2026-07-01T08:00:00+00:00"
}
],
"created_at": "2026-07-01T08:00:00+00:00",
"updated_at": "2026-07-01T08:00:00+00:00"
}
}
/api/lead-boards/{uuid}
curl -X PATCH "https://creativeskyline.de/api/lead-boards/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/lead-boards/{uuid}', [
'name' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-boards/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/lead-boards/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "aa11bb22-cc33-4d44-8e55-6f66aa77bb88",
"name": "Vertrieb DACH",
"is_default": true,
"sort_order": 0,
"created_at": "2026-07-01T08:00:00+00:00",
"updated_at": "2026-07-21T13:25:00+00:00"
}
}
/api/lead-boards/{uuid}
curl -X DELETE "https://creativeskyline.de/api/lead-boards/{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/lead-boards/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-boards/{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/lead-boards/{uuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"message": "Board gelöscht."
}
/api/lead-boards/{uuid}/columns
curl -X POST "https://creativeskyline.de/api/lead-boards/{uuid}/columns" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "sort_order": 0}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/lead-boards/{uuid}/columns', [
'name' => 'value',
'sort_order' => 0,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-boards/{uuid}/columns', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
sort_order: 0,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'sort_order': 0,
}
response = requests.post(
'https://creativeskyline.de/api/lead-boards/{uuid}/columns',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"created": true,
"data": {
"uuid": "dd44ee55-ff66-4a77-8b88-9c99dd00ee11",
"name": "In Verhandlung",
"sort_order": 1,
"created_at": "2026-07-21T13:30:00+00:00",
"updated_at": "2026-07-21T13:30:00+00:00"
}
}
/api/lead-board-columns/{uuid}
curl -X PATCH "https://creativeskyline.de/api/lead-board-columns/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "sort_order": 0}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/lead-board-columns/{uuid}', [
'name' => 'value',
'sort_order' => 0,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-board-columns/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
sort_order: 0,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'sort_order': 0,
}
response = requests.patch(
'https://creativeskyline.de/api/lead-board-columns/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "dd44ee55-ff66-4a77-8b88-9c99dd00ee11",
"name": "Verhandlung",
"sort_order": 1,
"created_at": "2026-07-21T13:30:00+00:00",
"updated_at": "2026-07-21T13:35:00+00:00"
}
}
/api/lead-board-columns/{uuid}
curl -X DELETE "https://creativeskyline.de/api/lead-board-columns/{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/lead-board-columns/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-board-columns/{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/lead-board-columns/{uuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"message": "Spalte gelöscht."
}
/api/lead-board-columns/{uuid}/cards
curl -X POST "https://creativeskyline.de/api/lead-board-columns/{uuid}/cards" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"lead_uuid": "value", "lead": "value", "deal_value": 0, "deal_currency": "value", "sort_order": 0}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/lead-board-columns/{uuid}/cards', [
'lead_uuid' => 'value',
'lead' => 'value',
'deal_value' => 0,
'deal_currency' => 'value',
'sort_order' => 0,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-board-columns/{uuid}/cards', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
lead_uuid: 'value',
lead: 'value',
deal_value: 0,
deal_currency: 'value',
sort_order: 0,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'lead_uuid': 'value',
'lead': 'value',
'deal_value': 0,
'deal_currency': 'value',
'sort_order': 0,
}
response = requests.post(
'https://creativeskyline.de/api/lead-board-columns/{uuid}/cards',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"created": true,
"data": {
"uuid": "ee55ff66-aa77-4b88-9c99-0d00ee11ff22",
"deal_value": "5000.00",
"deal_currency": "EUR",
"sort_order": 0,
"column_uuid": "cc33dd44-ee55-4f66-8a77-8b88cc99dd00",
"lead": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"name": "Mustermann GmbH"
},
"created_at": "2026-07-21T13:40:00+00:00",
"updated_at": "2026-07-21T13:40:00+00:00"
}
}
/api/lead-board-cards/{uuid}
curl -X PATCH "https://creativeskyline.de/api/lead-board-cards/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"deal_value": 0, "deal_currency": "value", "sort_order": 0}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/lead-board-cards/{uuid}', [
'deal_value' => 0,
'deal_currency' => 'value',
'sort_order' => 0,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-board-cards/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
deal_value: 0,
deal_currency: 'value',
sort_order: 0,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'deal_value': 0,
'deal_currency': 'value',
'sort_order': 0,
}
response = requests.patch(
'https://creativeskyline.de/api/lead-board-cards/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "ee55ff66-aa77-4b88-9c99-0d00ee11ff22",
"deal_value": "6500.00",
"deal_currency": "EUR",
"sort_order": 0,
"column_uuid": "cc33dd44-ee55-4f66-8a77-8b88cc99dd00",
"lead": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"name": "Mustermann GmbH"
},
"created_at": "2026-07-21T13:40:00+00:00",
"updated_at": "2026-07-21T13:45:00+00:00"
}
}
/api/lead-board-cards/{uuid}/move
curl -X PUT "https://creativeskyline.de/api/lead-board-cards/{uuid}/move" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"target_column_uuid": "value", "sort_order": 0}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/lead-board-cards/{uuid}/move', [
'target_column_uuid' => 'value',
'sort_order' => 0,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-board-cards/{uuid}/move', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
target_column_uuid: 'value',
sort_order: 0,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'target_column_uuid': 'value',
'sort_order': 0,
}
response = requests.put(
'https://creativeskyline.de/api/lead-board-cards/{uuid}/move',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "ee55ff66-aa77-4b88-9c99-0d00ee11ff22",
"deal_value": "6500.00",
"deal_currency": "EUR",
"sort_order": 0,
"column_uuid": "dd44ee55-ff66-4a77-8b88-9c99dd00ee11",
"lead": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"name": "Mustermann GmbH"
},
"created_at": "2026-07-21T13:40:00+00:00",
"updated_at": "2026-07-21T13:50:00+00:00"
}
}
/api/lead-board-cards/{uuid}
curl -X DELETE "https://creativeskyline.de/api/lead-board-cards/{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/lead-board-cards/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-board-cards/{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/lead-board-cards/{uuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"message": "Karte gelöscht."
}
/api/leads/{uuid}/docs
curl -X GET "https://creativeskyline.de/api/leads/{uuid}/docs" \
-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/leads/{uuid}/docs');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/docs', {
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/leads/{uuid}/docs',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot bis Freitag."
}
]
}
]
},
"content_html": "<p>Angebot bis Freitag.</p>",
"documentable": {
"type": "crm_lead",
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 1,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:00:00+00:00"
}
}
/api/leads/{uuid}/docs
curl -X PUT "https://creativeskyline.de/api/leads/{uuid}/docs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/leads/{uuid}/docs', [
'content' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/docs', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'content': 'value',
}
response = requests.put(
'https://creativeskyline.de/api/leads/{uuid}/docs',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot versendet."
}
]
}
]
},
"content_html": "<p>Angebot versendet.</p>",
"documentable": {
"type": "crm_lead",
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 2,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:10:00+00:00"
}
}
/api/clients/{uuid}/docs
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/docs" \
-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/clients/{uuid}/docs');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/docs', {
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/clients/{uuid}/docs',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "c3d4e5f6-a7b8-4c9d-0e1f-2a3b4c5d6e7f",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot bis Freitag."
}
]
}
]
},
"content_html": "<p>Angebot bis Freitag.</p>",
"documentable": {
"type": "cmm_client",
"uuid": "8c1a5d2e-0f4b-4a9c-9d3e-2b7f0a6c1e44"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 1,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:00:00+00:00"
}
}
/api/clients/{uuid}/docs
curl -X PUT "https://creativeskyline.de/api/clients/{uuid}/docs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/clients/{uuid}/docs', [
'content' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/docs', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'content': 'value',
}
response = requests.put(
'https://creativeskyline.de/api/clients/{uuid}/docs',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "c3d4e5f6-a7b8-4c9d-0e1f-2a3b4c5d6e7f",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot versendet."
}
]
}
]
},
"content_html": "<p>Angebot versendet.</p>",
"documentable": {
"type": "cmm_client",
"uuid": "8c1a5d2e-0f4b-4a9c-9d3e-2b7f0a6c1e44"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 2,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:10:00+00:00"
}
}
/api/contacts/{uuid}/docs
curl -X GET "https://creativeskyline.de/api/contacts/{uuid}/docs" \
-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/contacts/{uuid}/docs');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/docs', {
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/contacts/{uuid}/docs',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8a9b",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot bis Freitag."
}
]
}
]
},
"content_html": "<p>Angebot bis Freitag.</p>",
"documentable": {
"type": "cmm_contact",
"uuid": "7d2e6f3a-1b5c-4d8e-9f0a-3c4b5d6e7f8a"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 1,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:00:00+00:00"
}
}
/api/contacts/{uuid}/docs
curl -X PUT "https://creativeskyline.de/api/contacts/{uuid}/docs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/contacts/{uuid}/docs', [
'content' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/docs', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'content': 'value',
}
response = requests.put(
'https://creativeskyline.de/api/contacts/{uuid}/docs',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8a9b",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot versendet."
}
]
}
]
},
"content_html": "<p>Angebot versendet.</p>",
"documentable": {
"type": "cmm_contact",
"uuid": "7d2e6f3a-1b5c-4d8e-9f0a-3c4b5d6e7f8a"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 2,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:10:00+00:00"
}
}
/api/projects/{uuid}/docs
curl -X GET "https://creativeskyline.de/api/projects/{uuid}/docs" \
-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/projects/{uuid}/docs');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/docs', {
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/projects/{uuid}/docs',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "f6a7b8c9-d0e1-4f2a-3b4c-5d6e7f8a9b0c",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot bis Freitag."
}
]
}
]
},
"content_html": "<p>Angebot bis Freitag.</p>",
"documentable": {
"type": "cmm_client_project",
"uuid": "6e3f7a4b-2c6d-4e9f-0a1b-4d5c6e7f8a9b"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 1,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:00:00+00:00"
}
}
/api/projects/{uuid}/docs
curl -X PUT "https://creativeskyline.de/api/projects/{uuid}/docs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/projects/{uuid}/docs', [
'content' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/docs', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'content': 'value',
}
response = requests.put(
'https://creativeskyline.de/api/projects/{uuid}/docs',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "f6a7b8c9-d0e1-4f2a-3b4c-5d6e7f8a9b0c",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot versendet."
}
]
}
]
},
"content_html": "<p>Angebot versendet.</p>",
"documentable": {
"type": "cmm_client_project",
"uuid": "6e3f7a4b-2c6d-4e9f-0a1b-4d5c6e7f8a9b"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 2,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:10:00+00:00"
}
}
curl -X GET "https://creativeskyline.de/api/clients" \
-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/clients');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients', {
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/clients',
headers=headers,
)
data = response.json()
{
"success": true,
"count": 1,
"data": [
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 123 456789",
"contact_person": null,
"source": null,
"whmcs_client_id": null,
"external_id": null,
"stripe_customer_id": null,
"website": "https://mustermann.de",
"address_line_1": null,
"address_line_2": null,
"postal_code": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"currency": "EUR",
"tax_id": null,
"notes": null,
"status": "active",
"tags": [],
"sources": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
]
}
curl -X GET "https://creativeskyline.de/api/clients/search" \
-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/clients/search');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/search', {
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/clients/search',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/clients" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "email": "value", "phone": "value", "source": "value", "external_id": "value", "whmcs_client_id": 0, "address_line_1": "value", "address_line_2": "value", "postal_code": "value", "city": "value", "country": "value", "contact_person": "value", "tax_id": "value", "tag_uuids": [], "sources": [], "stripe_customer_id": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients', [
'name' => 'value',
'email' => 'value',
'phone' => 'value',
'source' => 'value',
'external_id' => 'value',
'whmcs_client_id' => 0,
'address_line_1' => 'value',
'address_line_2' => 'value',
'postal_code' => 'value',
'city' => 'value',
'country' => 'value',
'contact_person' => 'value',
'tax_id' => 'value',
'tag_uuids' => [],
'sources' => [],
'stripe_customer_id' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
email: 'value',
phone: 'value',
source: 'value',
external_id: 'value',
whmcs_client_id: 0,
address_line_1: 'value',
address_line_2: 'value',
postal_code: 'value',
city: 'value',
country: 'value',
contact_person: 'value',
tax_id: 'value',
tag_uuids: [],
sources: [],
stripe_customer_id: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'email': 'value',
'phone': 'value',
'source': 'value',
'external_id': 'value',
'whmcs_client_id': 0,
'address_line_1': 'value',
'address_line_2': 'value',
'postal_code': 'value',
'city': 'value',
'country': 'value',
'contact_person': 'value',
'tax_id': 'value',
'tag_uuids': [],
'sources': [],
'stripe_customer_id': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"created": true,
"data": {
"uuid": "8c1a5d2e-0f4b-4a9c-9d3e-2b7f0a6c1e44",
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 30 123456",
"contact_person": "Erika Musterfrau",
"source": "messe-2026",
"whmcs_client_id": null,
"external_id": "MSG-4711",
"stripe_customer_id": null,
"website": null,
"address_line_1": "Hauptstrasse 1",
"address_line_2": null,
"postal_code": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"currency": "EUR",
"tax_id": null,
"notes": null,
"status": "active",
"tags": [
{
"uuid": "b2c1a7a6-1249-4827-b533-ef1c65c1e273",
"title": "VIP",
"slug": "vip",
"source": "api"
}
],
"sources": [
"messe-2026"
],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
}
curl -X PATCH "https://creativeskyline.de/api/clients/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "contact_person": "value", "phone": "value", "website": "value", "address_line_1": "value", "address_line_2": "value", "postal_code": "value", "city": "value", "state": "value", "country": "value", "tax_id": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/clients/{uuid}', [
'name' => 'value',
'contact_person' => 'value',
'phone' => 'value',
'website' => 'value',
'address_line_1' => 'value',
'address_line_2' => 'value',
'postal_code' => 'value',
'city' => 'value',
'state' => 'value',
'country' => 'value',
'tax_id' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
contact_person: 'value',
phone: 'value',
website: 'value',
address_line_1: 'value',
address_line_2: 'value',
postal_code: 'value',
city: 'value',
state: 'value',
country: 'value',
tax_id: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'contact_person': 'value',
'phone': 'value',
'website': 'value',
'address_line_1': 'value',
'address_line_2': 'value',
'postal_code': 'value',
'city': 'value',
'state': 'value',
'country': 'value',
'tax_id': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/clients/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "8c1a5d2e-0f4b-4a9c-9d3e-2b7f0a6c1e44",
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 30 999888",
"contact_person": "Erika Musterfrau",
"source": "messe-2026",
"whmcs_client_id": null,
"external_id": "MSG-4711",
"stripe_customer_id": null,
"website": null,
"address_line_1": "Hauptstrasse 1",
"address_line_2": null,
"postal_code": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"currency": "EUR",
"tax_id": null,
"notes": null,
"status": "active",
"tags": [],
"sources": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T11:30:00+00:00"
}
}
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/timeline" \
-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/clients/{uuid}/timeline');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/timeline', {
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/clients/{uuid}/timeline',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/timeline" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "content": "value", "event_date": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/timeline', [
'title' => 'value',
'content' => 'value',
'event_date' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/timeline', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
content: 'value',
event_date: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'content': 'value',
'event_date': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/timeline',
headers=headers,
json=payload,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/timeline/search" \
-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/clients/{uuid}/timeline/search');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/timeline/search', {
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/clients/{uuid}/timeline/search',
headers=headers,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/projects" \
-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/clients/{uuid}/projects');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects', {
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/clients/{uuid}/projects',
headers=headers,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline" \
-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/clients/{uuid}/projects/{project_uuid}/timeline');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline', {
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/clients/{uuid}/projects/{project_uuid}/timeline',
headers=headers,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/leads" \
-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/leads');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads', {
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/leads',
headers=headers,
)
data = response.json()
{
"data": [
{
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"company_name": "Mustermann GmbH",
"first_name": null,
"last_name": null,
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 30 123456",
"website": null,
"address_line_1": null,
"address_line_2": null,
"postal_code": null,
"city": "Berlin",
"state": null,
"country": "DE",
"country_display": null,
"deal_value": "5000.00",
"deal_currency": "EUR",
"notes": null,
"external_source": "messe-2026",
"external_id": "MSG-4711",
"possible_duplicate": false,
"last_api_ingested_at": null,
"sources": [],
"tags": [],
"contacts": [],
"board_cards": [],
"assigned_user": null,
"notes_log": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
],
"links": {
"first": "/api/leads?page=1",
"last": "/api/leads?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1
}
}
curl -X POST "https://creativeskyline.de/api/leads" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"type": "value", "company_name": "value", "first_name": "value", "last_name": "value", "email": "value", "phone": "value", "website": "value", "address_line_1": "value", "address_line_2": "value", "postal_code": "value", "city": "value", "state": "value", "country": "value", "country_display": "value", "deal_value": 0, "deal_currency": "value", "notes": "value", "external_source": "value", "external_id": "value", "source_payload": "value", "sources": [], "tag_uuids": [], "assigned_user_uuid": "value", "contacts": [], "custom_fields": [], "doc": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/leads', [
'type' => 'value',
'company_name' => 'value',
'first_name' => 'value',
'last_name' => 'value',
'email' => 'value',
'phone' => 'value',
'website' => 'value',
'address_line_1' => 'value',
'address_line_2' => 'value',
'postal_code' => 'value',
'city' => 'value',
'state' => 'value',
'country' => 'value',
'country_display' => 'value',
'deal_value' => 0,
'deal_currency' => 'value',
'notes' => 'value',
'external_source' => 'value',
'external_id' => 'value',
'source_payload' => 'value',
'sources' => [],
'tag_uuids' => [],
'assigned_user_uuid' => 'value',
'contacts' => [],
'custom_fields' => [],
'doc' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
type: 'value',
company_name: 'value',
first_name: 'value',
last_name: 'value',
email: 'value',
phone: 'value',
website: 'value',
address_line_1: 'value',
address_line_2: 'value',
postal_code: 'value',
city: 'value',
state: 'value',
country: 'value',
country_display: 'value',
deal_value: 0,
deal_currency: 'value',
notes: 'value',
external_source: 'value',
external_id: 'value',
source_payload: 'value',
sources: [],
tag_uuids: [],
assigned_user_uuid: 'value',
contacts: [],
custom_fields: [],
doc: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'type': 'value',
'company_name': 'value',
'first_name': 'value',
'last_name': 'value',
'email': 'value',
'phone': 'value',
'website': 'value',
'address_line_1': 'value',
'address_line_2': 'value',
'postal_code': 'value',
'city': 'value',
'state': 'value',
'country': 'value',
'country_display': 'value',
'deal_value': 0,
'deal_currency': 'value',
'notes': 'value',
'external_source': 'value',
'external_id': 'value',
'source_payload': 'value',
'sources': [],
'tag_uuids': [],
'assigned_user_uuid': 'value',
'contacts': [],
'custom_fields': [],
'doc': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/leads',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"created": true,
"data": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"company_name": "Mustermann GmbH",
"first_name": null,
"last_name": null,
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 30 123456",
"website": "https://mustermann.de",
"address_line_1": "Hauptstrasse 1",
"address_line_2": null,
"postal_code": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"country_display": "Deutschland",
"deal_value": "5000.00",
"deal_currency": "EUR",
"notes": "Interessent von der Messe",
"external_source": "messe-2026",
"external_id": "MSG-4711",
"possible_duplicate": false,
"last_api_ingested_at": "2026-07-21T10:00:00+00:00",
"status": {
"uuid": "1f2e3d4c-5b6a-4790-8123-45a6b7c8d9e0",
"key": "kalt",
"name": "Kalt",
"color": "#94a3b8",
"is_won": false,
"is_lost": false,
"is_closed": false,
"is_system": false
},
"sources": [
"messe-2026"
],
"tags": [
{
"uuid": "b2c1a7a6-1249-4827-b533-ef1c65c1e273",
"title": "VIP",
"source": "api"
}
],
"contacts": [
{
"uuid": "4f8a2b6c-9d1e-4c3a-8b5f-0a7e6d2c1b9e",
"first_name": "Erika",
"last_name": "Musterfrau",
"email": "erika@mustermann.de",
"phone": null,
"role": "Einkauf"
}
],
"board_cards": [],
"assigned_user": null,
"notes_log": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
},
"duplicate_warning": null
}
curl -X GET "https://creativeskyline.de/api/leads/{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/leads/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{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/leads/{uuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"company_name": "Mustermann GmbH",
"first_name": null,
"last_name": null,
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 30 123456",
"website": "https://mustermann.de",
"address_line_1": "Hauptstrasse 1",
"address_line_2": null,
"postal_code": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"country_display": "Deutschland",
"deal_value": "5000.00",
"deal_currency": "EUR",
"notes": "Interessent von der Messe",
"external_source": "messe-2026",
"external_id": "MSG-4711",
"possible_duplicate": false,
"last_api_ingested_at": "2026-07-21T10:00:00+00:00",
"status": {
"uuid": "1f2e3d4c-5b6a-4790-8123-45a6b7c8d9e0",
"key": "kalt",
"name": "Kalt",
"color": "#94a3b8",
"is_won": false,
"is_lost": false,
"is_closed": false,
"is_system": false
},
"sources": [
"messe-2026"
],
"tags": [],
"contacts": [],
"board_cards": [],
"assigned_user": null,
"notes_log": [],
"custom_fields": [
{
"definition_uuid": "7c1f9a3b-42d5-4e88-9a10-b6c3f2d51e04",
"name": "Branche",
"type": "text",
"value": "Gastronomie"
},
{
"definition_uuid": "0d5b8e21-6c74-4f39-8a2b-91e7c40d3f55",
"name": "Stammkunde",
"type": "reference",
"value": "3f7c1a02-9b64-4d1e-a5c8-2e7b90d41f6a",
"referenced_uuid": "3f7c1a02-9b64-4d1e-a5c8-2e7b90d41f6a",
"referenced_name": "Mustermann GmbH"
}
],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
}
curl -X PATCH "https://creativeskyline.de/api/leads/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"type": "value", "company_name": "value", "first_name": "value", "last_name": "value", "email": "value", "phone": "value", "website": "value", "address_line_1": "value", "address_line_2": "value", "postal_code": "value", "city": "value", "state": "value", "country": "value", "country_display": "value", "deal_value": 0, "deal_currency": "value", "notes": "value", "external_source": "value", "external_id": "value", "source_payload": "value", "sources": [], "tag_uuids": [], "assigned_user_uuid": "value", "contacts": [], "custom_fields": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/leads/{uuid}', [
'type' => 'value',
'company_name' => 'value',
'first_name' => 'value',
'last_name' => 'value',
'email' => 'value',
'phone' => 'value',
'website' => 'value',
'address_line_1' => 'value',
'address_line_2' => 'value',
'postal_code' => 'value',
'city' => 'value',
'state' => 'value',
'country' => 'value',
'country_display' => 'value',
'deal_value' => 0,
'deal_currency' => 'value',
'notes' => 'value',
'external_source' => 'value',
'external_id' => 'value',
'source_payload' => 'value',
'sources' => [],
'tag_uuids' => [],
'assigned_user_uuid' => 'value',
'contacts' => [],
'custom_fields' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
type: 'value',
company_name: 'value',
first_name: 'value',
last_name: 'value',
email: 'value',
phone: 'value',
website: 'value',
address_line_1: 'value',
address_line_2: 'value',
postal_code: 'value',
city: 'value',
state: 'value',
country: 'value',
country_display: 'value',
deal_value: 0,
deal_currency: 'value',
notes: 'value',
external_source: 'value',
external_id: 'value',
source_payload: 'value',
sources: [],
tag_uuids: [],
assigned_user_uuid: 'value',
contacts: [],
custom_fields: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'type': 'value',
'company_name': 'value',
'first_name': 'value',
'last_name': 'value',
'email': 'value',
'phone': 'value',
'website': 'value',
'address_line_1': 'value',
'address_line_2': 'value',
'postal_code': 'value',
'city': 'value',
'state': 'value',
'country': 'value',
'country_display': 'value',
'deal_value': 0,
'deal_currency': 'value',
'notes': 'value',
'external_source': 'value',
'external_id': 'value',
'source_payload': 'value',
'sources': [],
'tag_uuids': [],
'assigned_user_uuid': 'value',
'contacts': [],
'custom_fields': [],
}
response = requests.patch(
'https://creativeskyline.de/api/leads/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"company_name": "Mustermann GmbH",
"name": "Mustermann GmbH",
"email": "kontakt@mustermann.de",
"phone": "+49 30 123456",
"deal_value": "7500.00",
"deal_currency": "EUR",
"external_source": "messe-2026",
"external_id": "MSG-4711",
"possible_duplicate": false,
"status": {
"uuid": "1f2e3d4c-5b6a-4790-8123-45a6b7c8d9e0",
"key": "kalt",
"name": "Kalt",
"color": "#94a3b8",
"is_won": false,
"is_lost": false,
"is_closed": false,
"is_system": false
},
"sources": [],
"tags": [],
"contacts": [],
"board_cards": [],
"assigned_user": null,
"notes_log": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T12:00:00+00:00"
},
"duplicate_warning": null
}
curl -X DELETE "https://creativeskyline.de/api/leads/{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/leads/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{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/leads/{uuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"message": "Lead gelöscht."
}
curl -X PUT "https://creativeskyline.de/api/leads/{uuid}/sources" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"sources": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/leads/{uuid}/sources', [
'sources' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/sources', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
sources: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'sources': [],
}
response = requests.put(
'https://creativeskyline.de/api/leads/{uuid}/sources',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"name": "Mustermann GmbH",
"sources": [
"messe-2026",
"empfehlung"
],
"tags": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T12:10:00+00:00"
}
}
curl -X PUT "https://creativeskyline.de/api/leads/{uuid}/tags" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"tag_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/leads/{uuid}/tags', [
'tag_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/tags', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tag_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'tag_uuids': [],
}
response = requests.put(
'https://creativeskyline.de/api/leads/{uuid}/tags',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"name": "Mustermann GmbH",
"sources": [],
"tags": [
{
"uuid": "b2c1a7a6-1249-4827-b533-ef1c65c1e273",
"title": "VIP",
"source": "api"
}
],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T12:12:00+00:00"
}
}
curl -X GET "https://creativeskyline.de/api/leads/{uuid}/contacts" \
-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/leads/{uuid}/contacts');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/contacts', {
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/leads/{uuid}/contacts',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"uuid": "4f8a2b6c-9d1e-4c3a-8b5f-0a7e6d2c1b9e",
"first_name": "Erika",
"last_name": "Musterfrau",
"email": "erika@mustermann.de",
"phone": null,
"role": "Einkauf",
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
]
}
curl -X POST "https://creativeskyline.de/api/leads/{uuid}/contacts" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"first_name": "value", "last_name": "value", "email": "value", "phone": "value", "role": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/leads/{uuid}/contacts', [
'first_name' => 'value',
'last_name' => 'value',
'email' => 'value',
'phone' => 'value',
'role' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/contacts', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
first_name: 'value',
last_name: 'value',
email: 'value',
phone: 'value',
role: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'first_name': 'value',
'last_name': 'value',
'email': 'value',
'phone': 'value',
'role': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/leads/{uuid}/contacts',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "5a9b3c7d-0e2f-4d4b-9c6a-1b8f7e3d2c0f",
"first_name": "Max",
"last_name": "Mustermann",
"email": null,
"phone": "+49 170 111222",
"role": "Geschäftsführung",
"created_at": "2026-07-21T12:20:00+00:00",
"updated_at": "2026-07-21T12:20:00+00:00"
}
}
curl -X PATCH "https://creativeskyline.de/api/leads/{uuid}/contacts/{contactUuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"first_name": "value", "last_name": "value", "email": "value", "phone": "value", "role": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/leads/{uuid}/contacts/{contactUuid}', [
'first_name' => 'value',
'last_name' => 'value',
'email' => 'value',
'phone' => 'value',
'role' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/contacts/{contactUuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
first_name: 'value',
last_name: 'value',
email: 'value',
phone: 'value',
role: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'first_name': 'value',
'last_name': 'value',
'email': 'value',
'phone': 'value',
'role': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/leads/{uuid}/contacts/{contactUuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "5a9b3c7d-0e2f-4d4b-9c6a-1b8f7e3d2c0f",
"first_name": "Max",
"last_name": "Mustermann",
"email": "max@mustermann.de",
"phone": "+49 170 111222",
"role": "Geschäftsführung",
"created_at": "2026-07-21T12:20:00+00:00",
"updated_at": "2026-07-21T12:25:00+00:00"
}
}
curl -X DELETE "https://creativeskyline.de/api/leads/{uuid}/contacts/{contactUuid}" \
-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/leads/{uuid}/contacts/{contactUuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/contacts/{contactUuid}', {
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/leads/{uuid}/contacts/{contactUuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"message": "Kontaktperson entfernt."
}
curl -X GET "https://creativeskyline.de/api/leads/{uuid}/notes" \
-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/leads/{uuid}/notes');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/notes', {
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/leads/{uuid}/notes',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"body": "Rückruf für Freitag vereinbart.",
"user": {
"uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"name": "Sascha"
},
"created_at": "2026-07-21T12:30:00+00:00"
}
]
}
curl -X POST "https://creativeskyline.de/api/leads/{uuid}/notes" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"body": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/leads/{uuid}/notes', [
'body' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/notes', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
body: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'body': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/leads/{uuid}/notes',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"body": "Angebot per E-Mail versendet.",
"user": {
"uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"name": "Sascha"
},
"created_at": "2026-07-21T12:35:00+00:00"
}
}
curl -X PUT "https://creativeskyline.de/api/leads/{uuid}/status" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"status_uuid": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/leads/{uuid}/status', [
'status_uuid' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/status', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
status_uuid: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'status_uuid': 'value',
}
response = requests.put(
'https://creativeskyline.de/api/leads/{uuid}/status',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"type": "company",
"name": "Mustermann GmbH",
"status": {
"uuid": "3c4d5e6f-7a8b-49c0-8d1e-2f3a4b5c6d7e",
"key": null,
"name": "Angebot",
"color": "#f59e0b",
"is_won": false,
"is_lost": false,
"is_closed": false,
"is_system": false
},
"sources": [],
"tags": [],
"contacts": [],
"board_cards": [],
"assigned_user": null,
"notes_log": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T12:40:00+00:00"
}
}
curl -X GET "https://creativeskyline.de/api/leads/{uuid}/timeline" \
-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/leads/{uuid}/timeline');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/timeline', {
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/leads/{uuid}/timeline',
headers=headers,
)
data = response.json()
{
"success": true,
"lead": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"name": "Mustermann GmbH"
},
"data": [
{
"type": "note",
"type_label": "Notiz",
"type_emoji": "📝",
"content": "Erstkontakt auf der Messe.",
"event_date": "2026-07-21T09:00:00+00:00",
"formatted_date": "21.07.2026 09:00",
"relative_date": "vor 4 Stunden",
"user": "Sascha",
"created_at": "2026-07-21T09:00:00+00:00"
}
],
"meta": {
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1
}
}
curl -X POST "https://creativeskyline.de/api/leads/{uuid}/timeline" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value", "type": "value", "event_date": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/leads/{uuid}/timeline', [
'content' => 'value',
'type' => 'value',
'event_date' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/timeline', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
type: 'value',
event_date: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'content': 'value',
'type': 'value',
'event_date': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/leads/{uuid}/timeline',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"type": "call",
"type_label": "Anruf",
"type_emoji": "📞",
"content": "Telefonat, Angebot angekündigt.",
"event_date": "2026-07-21T13:00:00+00:00",
"formatted_date": "21.07.2026 13:00",
"relative_date": "gerade eben",
"user": "Sascha",
"created_at": "2026-07-21T13:00:00+00:00"
}
}
curl -X POST "https://creativeskyline.de/api/leads/{uuid}/convert" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"client_name": "value", "transfer_contacts": true, "transfer_todos": true, "transfer_docs": true, "transfer_custom_fields": true}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/leads/{uuid}/convert', [
'client_name' => 'value',
'transfer_contacts' => true,
'transfer_todos' => true,
'transfer_docs' => true,
'transfer_custom_fields' => true,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/convert', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
client_name: 'value',
transfer_contacts: true,
transfer_todos: true,
transfer_docs: true,
transfer_custom_fields: true,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'client_name': 'value',
'transfer_contacts': True,
'transfer_todos': True,
'transfer_docs': True,
'transfer_custom_fields': True,
}
response = requests.post(
'https://creativeskyline.de/api/leads/{uuid}/convert',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "d4e5f6a7-8b9c-40d1-8e2f-3a4b5c6d7e8f",
"name": "Mustermann GmbH",
"email": "info@mustermann.de",
"phone": "+49 30 123456",
"contact_person": null,
"source": "messe-2026",
"whmcs_client_id": null,
"external_id": null,
"stripe_customer_id": null,
"website": null,
"address_line_1": "Hauptstrasse 1",
"address_line_2": null,
"postal_code": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"currency": "EUR",
"tax_id": null,
"notes": null,
"status": "active",
"tags": [],
"sources": [
"messe-2026"
],
"created_at": "2026-07-21T13:10:00+00:00",
"updated_at": "2026-07-21T13:10:00+00:00"
}
}
curl -X GET "https://creativeskyline.de/api/lead-boards" \
-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/lead-boards');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-boards', {
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/lead-boards',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"uuid": "aa11bb22-cc33-4d44-8e55-6f66aa77bb88",
"name": "Vertrieb",
"is_default": true,
"sort_order": 0,
"created_at": "2026-07-01T08:00:00+00:00",
"updated_at": "2026-07-01T08:00:00+00:00"
}
]
}
curl -X POST "https://creativeskyline.de/api/lead-boards" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/lead-boards', [
'name' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-boards', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/lead-boards',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"created": true,
"data": {
"uuid": "bb22cc33-dd44-4e55-8f66-7a77bb88cc99",
"name": "Partner",
"is_default": false,
"sort_order": 1,
"created_at": "2026-07-21T13:20:00+00:00",
"updated_at": "2026-07-21T13:20:00+00:00"
}
}
curl -X GET "https://creativeskyline.de/api/lead-boards/{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/lead-boards/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-boards/{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/lead-boards/{uuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "aa11bb22-cc33-4d44-8e55-6f66aa77bb88",
"name": "Vertrieb",
"is_default": true,
"sort_order": 0,
"columns": [
{
"uuid": "cc33dd44-ee55-4f66-8a77-8b88cc99dd00",
"name": "Neu",
"sort_order": 0,
"created_at": "2026-07-01T08:00:00+00:00",
"updated_at": "2026-07-01T08:00:00+00:00"
}
],
"created_at": "2026-07-01T08:00:00+00:00",
"updated_at": "2026-07-01T08:00:00+00:00"
}
}
curl -X PATCH "https://creativeskyline.de/api/lead-boards/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/lead-boards/{uuid}', [
'name' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-boards/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/lead-boards/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "aa11bb22-cc33-4d44-8e55-6f66aa77bb88",
"name": "Vertrieb DACH",
"is_default": true,
"sort_order": 0,
"created_at": "2026-07-01T08:00:00+00:00",
"updated_at": "2026-07-21T13:25:00+00:00"
}
}
curl -X DELETE "https://creativeskyline.de/api/lead-boards/{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/lead-boards/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-boards/{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/lead-boards/{uuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"message": "Board gelöscht."
}
curl -X POST "https://creativeskyline.de/api/lead-boards/{uuid}/columns" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "sort_order": 0}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/lead-boards/{uuid}/columns', [
'name' => 'value',
'sort_order' => 0,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-boards/{uuid}/columns', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
sort_order: 0,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'sort_order': 0,
}
response = requests.post(
'https://creativeskyline.de/api/lead-boards/{uuid}/columns',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"created": true,
"data": {
"uuid": "dd44ee55-ff66-4a77-8b88-9c99dd00ee11",
"name": "In Verhandlung",
"sort_order": 1,
"created_at": "2026-07-21T13:30:00+00:00",
"updated_at": "2026-07-21T13:30:00+00:00"
}
}
curl -X PATCH "https://creativeskyline.de/api/lead-board-columns/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "sort_order": 0}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/lead-board-columns/{uuid}', [
'name' => 'value',
'sort_order' => 0,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-board-columns/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
sort_order: 0,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'sort_order': 0,
}
response = requests.patch(
'https://creativeskyline.de/api/lead-board-columns/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "dd44ee55-ff66-4a77-8b88-9c99dd00ee11",
"name": "Verhandlung",
"sort_order": 1,
"created_at": "2026-07-21T13:30:00+00:00",
"updated_at": "2026-07-21T13:35:00+00:00"
}
}
curl -X DELETE "https://creativeskyline.de/api/lead-board-columns/{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/lead-board-columns/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-board-columns/{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/lead-board-columns/{uuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"message": "Spalte gelöscht."
}
curl -X POST "https://creativeskyline.de/api/lead-board-columns/{uuid}/cards" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"lead_uuid": "value", "lead": "value", "deal_value": 0, "deal_currency": "value", "sort_order": 0}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/lead-board-columns/{uuid}/cards', [
'lead_uuid' => 'value',
'lead' => 'value',
'deal_value' => 0,
'deal_currency' => 'value',
'sort_order' => 0,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-board-columns/{uuid}/cards', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
lead_uuid: 'value',
lead: 'value',
deal_value: 0,
deal_currency: 'value',
sort_order: 0,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'lead_uuid': 'value',
'lead': 'value',
'deal_value': 0,
'deal_currency': 'value',
'sort_order': 0,
}
response = requests.post(
'https://creativeskyline.de/api/lead-board-columns/{uuid}/cards',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"created": true,
"data": {
"uuid": "ee55ff66-aa77-4b88-9c99-0d00ee11ff22",
"deal_value": "5000.00",
"deal_currency": "EUR",
"sort_order": 0,
"column_uuid": "cc33dd44-ee55-4f66-8a77-8b88cc99dd00",
"lead": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"name": "Mustermann GmbH"
},
"created_at": "2026-07-21T13:40:00+00:00",
"updated_at": "2026-07-21T13:40:00+00:00"
}
}
curl -X PATCH "https://creativeskyline.de/api/lead-board-cards/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"deal_value": 0, "deal_currency": "value", "sort_order": 0}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/lead-board-cards/{uuid}', [
'deal_value' => 0,
'deal_currency' => 'value',
'sort_order' => 0,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-board-cards/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
deal_value: 0,
deal_currency: 'value',
sort_order: 0,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'deal_value': 0,
'deal_currency': 'value',
'sort_order': 0,
}
response = requests.patch(
'https://creativeskyline.de/api/lead-board-cards/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "ee55ff66-aa77-4b88-9c99-0d00ee11ff22",
"deal_value": "6500.00",
"deal_currency": "EUR",
"sort_order": 0,
"column_uuid": "cc33dd44-ee55-4f66-8a77-8b88cc99dd00",
"lead": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"name": "Mustermann GmbH"
},
"created_at": "2026-07-21T13:40:00+00:00",
"updated_at": "2026-07-21T13:45:00+00:00"
}
}
curl -X PUT "https://creativeskyline.de/api/lead-board-cards/{uuid}/move" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"target_column_uuid": "value", "sort_order": 0}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/lead-board-cards/{uuid}/move', [
'target_column_uuid' => 'value',
'sort_order' => 0,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-board-cards/{uuid}/move', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
target_column_uuid: 'value',
sort_order: 0,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'target_column_uuid': 'value',
'sort_order': 0,
}
response = requests.put(
'https://creativeskyline.de/api/lead-board-cards/{uuid}/move',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "ee55ff66-aa77-4b88-9c99-0d00ee11ff22",
"deal_value": "6500.00",
"deal_currency": "EUR",
"sort_order": 0,
"column_uuid": "dd44ee55-ff66-4a77-8b88-9c99dd00ee11",
"lead": {
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11",
"name": "Mustermann GmbH"
},
"created_at": "2026-07-21T13:40:00+00:00",
"updated_at": "2026-07-21T13:50:00+00:00"
}
}
curl -X DELETE "https://creativeskyline.de/api/lead-board-cards/{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/lead-board-cards/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/lead-board-cards/{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/lead-board-cards/{uuid}',
headers=headers,
)
data = response.json()
{
"success": true,
"message": "Karte gelöscht."
}
curl -X GET "https://creativeskyline.de/api/leads/{uuid}/docs" \
-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/leads/{uuid}/docs');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/docs', {
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/leads/{uuid}/docs',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot bis Freitag."
}
]
}
]
},
"content_html": "<p>Angebot bis Freitag.</p>",
"documentable": {
"type": "crm_lead",
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 1,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:00:00+00:00"
}
}
curl -X PUT "https://creativeskyline.de/api/leads/{uuid}/docs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/leads/{uuid}/docs', [
'content' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/docs', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'content': 'value',
}
response = requests.put(
'https://creativeskyline.de/api/leads/{uuid}/docs',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot versendet."
}
]
}
]
},
"content_html": "<p>Angebot versendet.</p>",
"documentable": {
"type": "crm_lead",
"uuid": "9b1c7f3e-2a4d-4c8b-8e1a-6f0d2c9b4a11"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 2,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:10:00+00:00"
}
}
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/docs" \
-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/clients/{uuid}/docs');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/docs', {
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/clients/{uuid}/docs',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "c3d4e5f6-a7b8-4c9d-0e1f-2a3b4c5d6e7f",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot bis Freitag."
}
]
}
]
},
"content_html": "<p>Angebot bis Freitag.</p>",
"documentable": {
"type": "cmm_client",
"uuid": "8c1a5d2e-0f4b-4a9c-9d3e-2b7f0a6c1e44"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 1,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:00:00+00:00"
}
}
curl -X PUT "https://creativeskyline.de/api/clients/{uuid}/docs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/clients/{uuid}/docs', [
'content' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/docs', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'content': 'value',
}
response = requests.put(
'https://creativeskyline.de/api/clients/{uuid}/docs',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "c3d4e5f6-a7b8-4c9d-0e1f-2a3b4c5d6e7f",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot versendet."
}
]
}
]
},
"content_html": "<p>Angebot versendet.</p>",
"documentable": {
"type": "cmm_client",
"uuid": "8c1a5d2e-0f4b-4a9c-9d3e-2b7f0a6c1e44"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 2,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:10:00+00:00"
}
}
curl -X GET "https://creativeskyline.de/api/contacts/{uuid}/docs" \
-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/contacts/{uuid}/docs');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/docs', {
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/contacts/{uuid}/docs',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8a9b",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot bis Freitag."
}
]
}
]
},
"content_html": "<p>Angebot bis Freitag.</p>",
"documentable": {
"type": "cmm_contact",
"uuid": "7d2e6f3a-1b5c-4d8e-9f0a-3c4b5d6e7f8a"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 1,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:00:00+00:00"
}
}
curl -X PUT "https://creativeskyline.de/api/contacts/{uuid}/docs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/contacts/{uuid}/docs', [
'content' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/docs', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'content': 'value',
}
response = requests.put(
'https://creativeskyline.de/api/contacts/{uuid}/docs',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8a9b",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot versendet."
}
]
}
]
},
"content_html": "<p>Angebot versendet.</p>",
"documentable": {
"type": "cmm_contact",
"uuid": "7d2e6f3a-1b5c-4d8e-9f0a-3c4b5d6e7f8a"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 2,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:10:00+00:00"
}
}
curl -X GET "https://creativeskyline.de/api/projects/{uuid}/docs" \
-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/projects/{uuid}/docs');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/docs', {
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/projects/{uuid}/docs',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "f6a7b8c9-d0e1-4f2a-3b4c-5d6e7f8a9b0c",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot bis Freitag."
}
]
}
]
},
"content_html": "<p>Angebot bis Freitag.</p>",
"documentable": {
"type": "cmm_client_project",
"uuid": "6e3f7a4b-2c6d-4e9f-0a1b-4d5c6e7f8a9b"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 1,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:00:00+00:00"
}
}
curl -X PUT "https://creativeskyline.de/api/projects/{uuid}/docs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/projects/{uuid}/docs', [
'content' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/docs', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'content': 'value',
}
response = requests.put(
'https://creativeskyline.de/api/projects/{uuid}/docs',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "f6a7b8c9-d0e1-4f2a-3b4c-5d6e7f8a9b0c",
"title": "Notizen",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Angebot versendet."
}
]
}
]
},
"content_html": "<p>Angebot versendet.</p>",
"documentable": {
"type": "cmm_client_project",
"uuid": "6e3f7a4b-2c6d-4e9f-0a1b-4d5c6e7f8a9b"
},
"created_by_uuid": "2b7c4d8e-1f3a-4e5c-0d7b-2c9a8f4e3d1a",
"latest_version_number": 2,
"created_at": "2026-07-21T14:00:00+00:00",
"updated_at": "2026-07-21T14:10:00+00:00"
}
}