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.
/api/clients
Ruft die Kunden Ihres Teams ab, ohne weitere Angabe nur die aktiven. Mit status=archived erhalten Sie die archivierten Kunden, mit status=all beide. Jeder Kunde enthält seine Tags und Quellen. Verwenden Sie für die Adressierung einzelner Kunden ausschließlich das Feld uuid.
status
string
Welche Kunden geliefert werden: <code>active</code> (Standard), <code>archived</code> oder <code>all</code> für beide. Jeder andere Wert führt zu 422
per_page
integer
Einträge pro Seite (1 bis 500, Standard 500). Die Antwort enthält zusätzlich einen <code>meta</code>-Block mit <code>current_page</code>, <code>per_page</code>, <code>total</code> und <code>last_page</code>.
page
integer
Seitennummer, beginnend bei 1
/api/clients/search
Durchsucht die Kunden Ihres Teams nach Name, E-Mail-Adresse, Telefonnummer oder Webseite. Ohne weitere Angabe werden nur aktive Kunden gefunden, status bezieht archivierte ein.
search
string
*
Suchbegriff für die Kundensuche
status
string
Welche Kunden geliefert werden: <code>active</code> (Standard), <code>archived</code> oder <code>all</code> für beide. Jeder andere Wert führt zu 422
per_page
integer
Einträge pro Seite (1 bis 500, Standard 500). Die Antwort enthält zusätzlich einen <code>meta</code>-Block mit <code>current_page</code>, <code>per_page</code>, <code>total</code> und <code>last_page</code>.
page
integer
Seitennummer, beginnend bei 1
/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 Kunde gefunden, auch ein archivierter, 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
vat_id
string
USt-IdNr. des Kunden (max. 32 Zeichen). Für E-Rechnungen mit Reverse Charge erforderlich
tax_treatment
string
Steuerbehandlung: standard (mit Umsatzsteuer, Vorgabe) | reverse_charge (Belege ohne Umsatzsteuer, Steuerschuld beim Empfänger)
billing_language
string
Rechnungssprache des Kunden: de (Vorgabe) | en | pt. Gilt als Belegsprache neuer Rechnungen, wenn dort keine angegeben ist
tag_uuids
array
Liste team-eigener Tag-UUIDs aus <code>GET /api/tags</code>, die dem Kunden zugeordnet werden. Eine unbekannte, teamfremde oder gelöschte UUID führt zu HTTP 422, es wird dann nichts angelegt
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; ein Feld mit dem Wert null gilt als nicht gesendet. Archivieren und reaktivieren: Ein inaktiver Kunde heißt in FlowSuite archiviert. status: archived archiviert den Kunden und seine Projekte, status: active reaktiviert ihn; die Projekte bleiben dabei archiviert und werden einzeln reaktiviert. Ein nach DSGVO gelöschter Kunde lässt sich nicht reaktivieren (422). 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
email
string
E-Mail-Adresse
contact_person
string
Ansprechpartner
phone
string
Telefonnummer
website
string
Webseite
notes
string
Interne Notizen zum Kunden
status
string
active | archived. Archiviert oder reaktiviert den Kunden, siehe Beschreibung
tag_uuids
array
Tag-UUIDs, die dem Kunden zusätzlich zugeordnet werden. Vorhandene Tags bleiben erhalten; entfernt wird über <code>PATCH /api/clients/{uuid}/metadata</code> mit <code>remove_tag_uuids</code>
sources
array
Herkunftsquellen als Freitext, die dem Kunden zusätzlich zugeordnet werden
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
vat_id
string
USt-IdNr. des Kunden (max. 32 Zeichen). Für E-Rechnungen mit Reverse Charge erforderlich
tax_treatment
string
Steuerbehandlung: standard | reverse_charge
billing_language
string
Rechnungssprache des Kunden: de | en | pt
/api/clients/{uuid}
Ruft einen einzelnen Kunden Ihres Teams über seine uuid ab. Unbekannte oder teamfremde Kunden führen zu 404.
/api/clients/lookup
Exakte Suche nach genau einem Kunden, ohne jemals einen anzulegen. Ohne weitere Angabe werden nur aktive Kunden gefunden, status bezieht archivierte ein. Mindestens einer der drei Parameter ist erforderlich. Bei mehreren Angaben gilt die feste Reihenfolge external_id, dann customer_number, dann email (ohne Beachtung der Groß- und Kleinschreibung).
external_id
string
Externe Kennung des Kunden (max. 255)
customer_number
string
Kundennummer (max. 255)
email
string
E-Mail-Adresse (max. 255)
status
string
Welche Kunden geliefert werden: <code>active</code> (Standard), <code>archived</code> oder <code>all</code> für beide. Jeder andere Wert führt zu 422
/api/clients/{uuid}
Löscht den Kunden im Sinne der DSGVO. Aufbewahrungspflichtige Buchhaltungsbelege bleiben erhalten. Ein auf diesem Weg gelöschter Kunde lässt sich nicht wiederherstellen. Soll ein Kunde nur aus dem aktiven Bestand verschwinden, archivieren Sie ihn stattdessen über PATCH /api/clients/{uuid} mit status: archived.
include_export
boolean
Bei <code>true</code> enthält die Antwort zusätzlich den DSGVO-Datenexport des Kunden
/api/clients/{uuid}/restore
Holt einen Kunden aus dem Papierkorb zurück. Für archivierte Kunden ist dieser Endpunkt nicht gedacht, sie werden über PATCH /api/clients/{uuid} mit status: active reaktiviert. Ein nicht gelöschter Kunde wird unverändert zurückgegeben; die Antwort weist aus, ob eine Wiederherstellung stattgefunden hat. Nach DSGVO gelöschte Kunden sind davon ausgenommen.
/api/clients/{uuid}/timeline
Ruft alle Timeline-Einträge für einen bestimmten Kunden chronologisch sortiert ab. Jeder Eintrag enthält seine uuid für Ändern und Löschen.
/api/clients/{uuid}/timeline
Erstellt einen neuen Timeline-Eintrag für den angegebenen Kunden. Erfordert wie jede Timeline-Änderung das FlowCRM-Schreibrecht, sonst HTTP 403. Existiert bereits ein eigener Eintrag mit identischem Inhalt und identischem event_date, wird kein zweiter angelegt: Die Antwort ist dann HTTP 200 mit duplicate: true und dem vorhandenen Eintrag. Ohne event_date entsteht immer ein neuer Eintrag.
content
string
*
Text des Eintrags. Ältere Clients, die nur title senden, bleiben gültig: Der Titel wird dann als Text übernommen.
event_date
string
Ereignisdatum (ISO 8601, Standard: jetzt)
title
string
Veraltet. Neben content wird er verworfen, allein gesendet wird er als content gespeichert.
/api/clients/{uuid}/timeline/{entry_uuid}
Korrigiert einen eigenen, manuell verfassten Eintrag. Einträge anderer Personen und automatisch erzeugte Einträge, etwa aus einer Besprechungszuordnung, antworten mit HTTP 403 und behalten ihre Quelle.
content
string
Neuer Inhalt
title
string
Veraltet. Wird angenommen und nicht gespeichert.
type
string
note, meeting, email, call, text, coffee, food, networking, party oder other
event_date
string
Neuer Zeitpunkt
/api/clients/{uuid}/timeline/{entry_uuid}
Entfernt einen eigenen, manuell verfassten Eintrag.
/api/clients/{uuid}/timeline/bulk-delete
Entfernt bis zu 200 eigene, manuell verfasste Einträge eines Kunden in einem Aufruf. Für jeden Eintrag gilt dieselbe Regel wie beim einzelnen Löschen. Fremde, automatisch erzeugte und unbekannte Einträge brechen den Aufruf nicht ab, sondern erscheinen mit ihrem Ergebnis in results.
entry_uuids
array
*
Liste der zu löschenden Eintrags-UUIDs (1 bis 200, jede nur einmal)
/api/clients/{uuid}/timeline/search
Durchsucht die Timeline-Einträge eines Kunden nach Inhalt. Bei älteren Einträgen wird auch der frühere Titel durchsucht. Die Treffer haben dieselbe Form wie in der Liste.
search
string
*
Suchbegriff
/api/contacts
Listet die Kontakte auf, die der verwendete Schlüssel sehen darf: geteilte Teamkontakte und die eigenen privaten Kontakte.
search
string
Sucht in Vorname, Nachname, Firma sowie in hinterlegten E-Mail-Adressen und Rufnummern
client_uuid
uuid
Nur Kontakte des angegebenen Kunden
status
string
<code>active</code> (Standard), <code>archived</code> oder <code>all</code>
visibility
string
<code>team</code> oder <code>private</code>; ohne Angabe beides
per_page
integer
Einträge pro Seite (1 bis 200, Standard 50)
page
integer
Seitennummer, beginnend bei 1
/api/contacts
Legt einen Kontakt an. Mindestens Vor- oder Nachname ist erforderlich. Wird client_uuid gesetzt, entsteht direkt ein Teamkontakt beim angegebenen Kunden.
first_name
string
Vorname
last_name
string
Nachname
salutation
string
Herr, Frau, Divers, Firma oder keine
title
string
Titel, etwa Dr. oder Prof.
job_title
string
Position im Unternehmen
company
string
Firmenname
description
string
Freitext zur Person
birth_day
integer
Geburtstag, 1 bis 31
birth_month
integer
Geburtsmonat, 1 bis 12
birth_year
integer
Geburtsjahr
client_uuid
uuid
Kunde, zu dem der Kontakt gehört
visibility
string
<code>team</code> (Standard) oder <code>private</code>
/api/contacts/{uuid}
Liefert einen Kontakt mit allen Wertesammlungen: E-Mail-Adressen, Rufnummern, Anschriften, Links, Profile, Daten und Freifelder.
/api/contacts/{uuid}
Ändert nur die gesendeten Felder. Über status lässt sich ein Kontakt archivieren und wieder aktivieren. Vor- und Nachname dürfen nicht gleichzeitig leer werden.
first_name
string
Vorname
last_name
string
Nachname
salutation
string
Herr, Frau, Divers, Firma oder keine
title
string
Titel
job_title
string
Position im Unternehmen
company
string
Firmenname
description
string
Freitext zur Person
birth_day
integer
Geburtstag
birth_month
integer
Geburtsmonat
birth_year
integer
Geburtsjahr
status
string
<code>active</code> oder <code>archived</code>
/api/contacts/{uuid}
Verschiebt den Kontakt in den Papierkorb, genau wie die Kontaktliste in der Oberfläche. Wer den Kontakt nur vorübergehend ausblenden möchte, setzt stattdessen status: archived.
/api/contacts/{uuid}/client
Ordnet den Kontakt einem Kunden zu oder löst die Zuordnung mit client_uuid: null. Ein bisher privater Kontakt wird dabei bewusst mit dem Team geteilt. Ist beim Kunden noch kein Ansprechpartner hinterlegt, übernimmt er den Namen dieses Kontakts.
client_uuid
uuid
*
Kunde, oder <code>null</code> zum Lösen der Zuordnung
/api/contacts/{uuid}/values/{collection}
Fügt genau einen Wert einer Sammlung hinzu. Mögliche Sammlungen: emails, phones, addresses, links, socials, dates, customs. Pro Sammlung kann höchstens ein Wert is_primary sein; ein neuer Hauptwert löst den bisherigen ab.
label
string
*
Bezeichnung, etwa Arbeit oder Privat. Bei <code>socials</code> stattdessen <code>platform</code>
email
string
Nur bei <code>emails</code>
phone
string
Nur bei <code>phones</code>
url
string
Nur bei <code>links</code> und <code>socials</code>
date
string
Nur bei <code>dates</code>, im Format JJJJ-MM-TT
value
string
Nur bei <code>customs</code>
is_primary
boolean
Nur bei <code>emails</code>, <code>phones</code> und <code>addresses</code>
/api/contacts/{uuid}/values/{collection}/{value_uuid}
Ändert genau einen Wert. Es müssen nur die tatsächlich geänderten Felder gesendet werden. Bei Anschriften werden hinterlegte Koordinaten verworfen, sobald sich ein Adressfeld ändert.
label
string
Bezeichnung des Werts
is_primary
boolean
Macht den Wert zum Hauptwert der Sammlung
/api/contacts/{uuid}/values/{collection}/{value_uuid}
Entfernt genau einen Wert aus der angegebenen Sammlung.
/api/clients/{uuid}/projects
Listet alle Projekte des angegebenen Kunden auf, inklusive Status, Beschreibung und einem modules-Array mit aktiven Integrationen (flowcall, flowtime, flowtasks).
/api/projects
Listet die Projekte des Teams über alle Kunden hinweg.
client_uuid
uuid
Nur Projekte des angegebenen Kunden
search
string
Sucht im Projektnamen
status
string
<code>active</code> (Standard), <code>archived</code> oder <code>all</code>
per_page
integer
Einträge pro Seite (1 bis 200, Standard 50)
page
integer
Seitennummer, beginnend bei 1
/api/projects
Legt ein Projekt beim angegebenen Kunden an.
name
string
*
Name des Projekts
client_uuid
uuid
*
Kunde, zu dem das Projekt gehört
description
string
Beschreibung
notes
string
Interne Notizen
budget_type
string
<code>hours</code> oder <code>amount</code>
budget_value
number
Budgetwert
budget_currency
string
Währung als dreistelliger Code
budget_interval
string
<code>total</code>, <code>monthly</code> oder <code>daily</code>
budget_enforcement
string
<code>soft</code> oder <code>hard</code>
/api/clients/{uuid}/projects
Wie „Projekt anlegen", der Kunde steht jedoch bereits im Pfad und muss nicht im Rumpf wiederholt werden.
name
string
*
Name des Projekts
description
string
Beschreibung
notes
string
Interne Notizen
/api/projects/{uuid}
Liefert ein einzelnes Projekt samt Budgetangaben und aktiven Modulen.
/api/projects/{uuid}
Ändert nur die gesendeten Felder. Über client_uuid lässt sich ein Projekt einem anderen Kunden desselben Teams zuordnen, über status archivieren und wieder aktivieren.
name
string
Name des Projekts
description
string
Beschreibung
notes
string
Interne Notizen
client_uuid
uuid
Neuer Kunde des Projekts
status
string
<code>active</code> oder <code>archived</code>
budget_type
string
<code>hours</code> oder <code>amount</code>
budget_value
number
Budgetwert
budget_currency
string
Währung als dreistelliger Code
budget_interval
string
<code>total</code>, <code>monthly</code> oder <code>daily</code>
budget_enforcement
string
<code>soft</code> oder <code>hard</code>
/api/projects/{uuid}
Archiviert das Projekt. Es bleibt erhalten, weil Zeiterfassung, Rechnungen und Aufgabenboards weiter darauf verweisen.
/api/clients/{uuid}/projects/{project_uuid}/timeline
Ruft alle Timeline-Einträge für ein bestimmtes Projekt ab, analog zur Kunden-Timeline und in derselben Form, einschließlich uuid je Eintrag.
/api/clients/{uuid}/projects/{project_uuid}/timeline
Hängt einen Eintrag an die Projekt-Timeline an. Verfasser und Team ergeben sich aus dem Schlüssel und können nicht im Rumpf gesetzt werden. Ein eigener Eintrag mit identischem Inhalt, Typ und event_date wird nicht doppelt angelegt; die Antwort ist dann HTTP 200 mit duplicate: true.
content
string
*
Inhalt des Eintrags
title
string
Veraltet. Wird angenommen und nicht gespeichert.
type
string
note (Standard), meeting, email, call, text, coffee, food, networking, party oder other
event_date
string
Zeitpunkt des Ereignisses; ohne Angabe jetzt
/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}
Korrigiert einen eigenen, manuell verfassten Eintrag. Einträge anderer Personen und automatisch erzeugte Einträge antworten mit HTTP 403.
content
string
Neuer Inhalt
title
string
Veraltet. Wird angenommen und nicht gespeichert.
type
string
Neuer Typ
event_date
string
Neuer Zeitpunkt
/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}
Entfernt einen eigenen, manuell verfassten Eintrag.
/api/clients/{uuid}/projects/{project_uuid}/timeline/bulk-delete
Entfernt bis zu 200 eigene, manuell verfasste Einträge eines Projekts in einem Aufruf. Regeln und Antwort entsprechen dem Sammel-Löschen der Kunden-Timeline.
entry_uuids
array
*
Liste der zu löschenden Eintrags-UUIDs (1 bis 200, jede nur einmal)
/api/clients/{uuid}/todos
Listet die Aufgaben des Datensatzes auf. Erledigte Aufgaben erscheinen nur mit include_completed=1.
include_completed
boolean
Erledigte Aufgaben mit ausgeben
per_page
integer
Einträge pro Seite (1 bis 200, Standard 50)
page
integer
Seitennummer, beginnend bei 1
/api/clients/{uuid}/todos
Legt eine Aufgabe am Datensatz an. Zuständige werden über ihre Benutzer-UUID benannt und müssen zum Team des Schlüssels gehören. Mit recurring_interval entsteht eine Serie, also eine Aufgabe, die sich nach jedem Erledigen selbst auf den nächsten Termin setzt. Eine Serie braucht ein due_date und kann nicht bereits erledigt angelegt werden; beides antwortet sonst mit HTTP 422.
title
string
*
Titel der Aufgabe
description
string
Beschreibung
due_date
string
Fälligkeit im Format JJJJ-MM-TT
priority
string
<code>high</code>, <code>medium</code> (Standard) oder <code>low</code>
completed
boolean
Direkt als erledigt anlegen. Nicht zusammen mit <code>recurring_interval</code>
recurring_interval
string
Wiederholung der Aufgabe: <code>daily</code>, <code>every_2_days</code>, <code>weekly</code>, <code>every_2_weeks</code>, <code>monthly</code>, <code>every_2_months</code>, <code>quarterly</code>, <code>half_yearly</code> oder <code>yearly</code>. Erfordert <code>due_date</code>
assigned_user_uuids
array
Benutzer-UUIDs der Zuständigen
/api/clients/{uuid}/todos/{todo_uuid}
Ändert nur die gesendeten Felder. Über completed wird eine Aufgabe erledigt oder wieder geöffnet. Ein weggelassenes assigned_user_uuids lässt die Zuständigkeit unverändert, ein leeres Feld hebt sie auf. Bei einer Serie (Aufgabe mit recurring_interval) erledigt completed: true nur die aktuelle Wiederholung: Die Aufgabe bleibt offen, ihr due_date rückt um ein Intervall vor, und die erledigte Wiederholung wird als eigene, erledigte Aufgabe abgelegt. data ist immer die adressierte Aufgabe, bei einer Serie also weiterhin mit completed: false und dem neuen due_date. Die erledigte Wiederholung steht daneben im Antwortfeld completed_occurrence; in allen anderen Fällen ist es null. Wieder öffnen (completed: false) wirkt auf einfache Aufgaben und auf erledigte Wiederholungen, die Serie selbst ist nie erledigt. Das due_date einer Serie lässt sich nicht direkt ändern (HTTP 422). Ein wiederholter Aufruf würde auch die nächste Wiederholung erledigen: Wer expected_due_date mitsendet, erhält stattdessen HTTP 409 mit dem aktuellen Termin in current_due_date, sobald die Serie bereits weitergerückt ist.
title
string
Titel der Aufgabe
description
string
Beschreibung
due_date
string
Fälligkeit im Format JJJJ-MM-TT
priority
string
<code>high</code>, <code>medium</code> oder <code>low</code>
completed
boolean
Erledigt-Zustand. Bei einer Serie erledigt <code>true</code> nur die aktuelle Wiederholung
recurring_interval
string
Wiederholung der Aufgabe: <code>daily</code>, <code>every_2_days</code>, <code>weekly</code>, <code>every_2_weeks</code>, <code>monthly</code>, <code>every_2_months</code>, <code>quarterly</code>, <code>half_yearly</code> oder <code>yearly</code>. Erfordert ein <code>due_date</code>; <code>null</code> beendet die Serie
expected_due_date
string
Nur beim Erledigen einer Serie: der Termin im Format JJJJ-MM-TT, den der Aufrufer gerade sieht. Weicht er vom aktuellen <code>due_date</code> ab, antwortet der Endpunkt mit HTTP 409 und erledigt nichts
assigned_user_uuids
array
Benutzer-UUIDs der Zuständigen
/api/clients/{uuid}/todos/{todo_uuid}
Entfernt die Aufgabe.
/api/clients/{uuid}/metadata
Liefert Tags, Quellen und Zusatzfelder des Datensatzes sowie die im Team verfügbaren Tags und Zusatzfeld-Definitionen. Zusatzfelder vom Typ reference werden mit der UUID und dem Namen des Ziels beantwortet. Jede Definition nennt ihren type: text, textarea, number, url, dropdown, reference, date oder currency. Bei number und currency steht in decimals die Zahl der erlaubten Nachkommastellen, bei currency zusätzlich in currency der feste ISO-4217-Code des Feldes; für alle anderen Typen sind beide Angaben null. Werte vom Typ date haben das Format JJJJ-MM-TT, Werte vom Typ currency sind eine Dezimalzahl mit Punkt als Dezimaltrenner und nennen den Währungscode in currency.
/api/clients/{uuid}/metadata
Ergänzt oder entfernt gezielt einzelne Tags, Quellen und Zusatzfeldwerte. Nichts wird als Ganzes ersetzt, ein leerer Wert löscht das jeweilige Zusatzfeld. Zusatzfelder werden über definition_uuid oder ihren eindeutigen name benannt; bei Referenzfeldern ist der Wert die UUID des Ziels. Felder vom Typ date erwarten ein Datum im Format JJJJ-MM-TT, Felder vom Typ currency einen Betrag als Zahl oder Zahl-String ohne Währungszeichen und ohne Tausendertrennzeichen. Der Betrag darf höchstens so viele Nachkommastellen haben, wie die Definition in decimals nennt, und wird auf diese Stellenzahl aufgefüllt gespeichert. Ein Wert, der nicht zum Typ passt, führt zu HTTP 422 mit dem Feldbezug custom_fields.{index}; es wird dann nichts geändert.
add_tag_uuids
array
Tags, die ergänzt werden
remove_tag_uuids
array
Tags, die entfernt werden
add_sources
array
Quellen, die ergänzt werden
remove_sources
array
Quellen, die entfernt werden
custom_fields
array
Einträge aus <code>definition_uuid</code> oder <code>name</code> und <code>value</code>. Bei <code>date</code> ist <code>value</code> ein Datum wie <code>"2026-12-31"</code>, bei <code>currency</code> ein Betrag wie <code>12500.5</code> oder <code>"12500.50"</code>
/api/clients/{uuid}/files
Listet die Dateien des Datensatzes auf. has_document_source zeigt an, ob die Datei aus Markdown erzeugt wurde und damit überarbeitet statt ersetzt werden kann.
per_page
integer
Einträge pro Seite (1 bis 200, Standard 50)
page
integer
Seitennummer, beginnend bei 1
/api/clients/{uuid}/files
Hängt eine hochgeladene Datei an den Datensatz. Übertragung als multipart/form-data, höchstens 50 MB. Nicht zugelassene Dateitypen antworten mit HTTP 422.
file
file
*
Die hochzuladende Datei
name
string
Abweichender Dateiname
/api/clients/{uuid}/files/{file_uuid}/download
Liefert einen kurzlebigen Abruflink samt Gültigkeitsdauer in Sekunden. Die Antwort enthält den Link, nicht die Bytes.
/api/clients/{uuid}/files/{file_uuid}/text
Gibt den bereits extrahierten Text der Datei in Abschnitten von 20.000 Zeichen zurück. Der Endpunkt liest nur; er stößt keine neue Extraktion an.
offset
integer
Startposition im Text; <code>next_offset</code> der Antwort führt zum nächsten Abschnitt
/api/clients/{uuid}/documents
Erzeugt aus Markdown ein PDF oder ein Word-Dokument und legt es am Datensatz ab. Mit file_uuid wird eine bestehende, ebenfalls so erzeugte Fassung überarbeitet statt eine zweite daneben zu legen.
title
string
*
Titel und zugleich Dateiname ohne Endung
source_markdown
string
*
Der Inhalt als Markdown
format
string
*
<code>pdf</code> oder <code>docx</code>
file_uuid
uuid
Bestehende Fassung, die ersetzt wird
/api/contacts/{uuid}/todos
Listet die Aufgaben des Datensatzes auf. Erledigte Aufgaben erscheinen nur mit include_completed=1.
include_completed
boolean
Erledigte Aufgaben mit ausgeben
per_page
integer
Einträge pro Seite (1 bis 200, Standard 50)
page
integer
Seitennummer, beginnend bei 1
/api/contacts/{uuid}/todos
Legt eine Aufgabe am Datensatz an. Zuständige werden über ihre Benutzer-UUID benannt und müssen zum Team des Schlüssels gehören. Mit recurring_interval entsteht eine Serie, also eine Aufgabe, die sich nach jedem Erledigen selbst auf den nächsten Termin setzt. Eine Serie braucht ein due_date und kann nicht bereits erledigt angelegt werden; beides antwortet sonst mit HTTP 422.
title
string
*
Titel der Aufgabe
description
string
Beschreibung
due_date
string
Fälligkeit im Format JJJJ-MM-TT
priority
string
<code>high</code>, <code>medium</code> (Standard) oder <code>low</code>
completed
boolean
Direkt als erledigt anlegen. Nicht zusammen mit <code>recurring_interval</code>
recurring_interval
string
Wiederholung der Aufgabe: <code>daily</code>, <code>every_2_days</code>, <code>weekly</code>, <code>every_2_weeks</code>, <code>monthly</code>, <code>every_2_months</code>, <code>quarterly</code>, <code>half_yearly</code> oder <code>yearly</code>. Erfordert <code>due_date</code>
assigned_user_uuids
array
Benutzer-UUIDs der Zuständigen
/api/contacts/{uuid}/todos/{todo_uuid}
Ändert nur die gesendeten Felder. Über completed wird eine Aufgabe erledigt oder wieder geöffnet. Ein weggelassenes assigned_user_uuids lässt die Zuständigkeit unverändert, ein leeres Feld hebt sie auf. Bei einer Serie (Aufgabe mit recurring_interval) erledigt completed: true nur die aktuelle Wiederholung: Die Aufgabe bleibt offen, ihr due_date rückt um ein Intervall vor, und die erledigte Wiederholung wird als eigene, erledigte Aufgabe abgelegt. data ist immer die adressierte Aufgabe, bei einer Serie also weiterhin mit completed: false und dem neuen due_date. Die erledigte Wiederholung steht daneben im Antwortfeld completed_occurrence; in allen anderen Fällen ist es null. Wieder öffnen (completed: false) wirkt auf einfache Aufgaben und auf erledigte Wiederholungen, die Serie selbst ist nie erledigt. Das due_date einer Serie lässt sich nicht direkt ändern (HTTP 422). Ein wiederholter Aufruf würde auch die nächste Wiederholung erledigen: Wer expected_due_date mitsendet, erhält stattdessen HTTP 409 mit dem aktuellen Termin in current_due_date, sobald die Serie bereits weitergerückt ist.
title
string
Titel der Aufgabe
description
string
Beschreibung
due_date
string
Fälligkeit im Format JJJJ-MM-TT
priority
string
<code>high</code>, <code>medium</code> oder <code>low</code>
completed
boolean
Erledigt-Zustand. Bei einer Serie erledigt <code>true</code> nur die aktuelle Wiederholung
recurring_interval
string
Wiederholung der Aufgabe: <code>daily</code>, <code>every_2_days</code>, <code>weekly</code>, <code>every_2_weeks</code>, <code>monthly</code>, <code>every_2_months</code>, <code>quarterly</code>, <code>half_yearly</code> oder <code>yearly</code>. Erfordert ein <code>due_date</code>; <code>null</code> beendet die Serie
expected_due_date
string
Nur beim Erledigen einer Serie: der Termin im Format JJJJ-MM-TT, den der Aufrufer gerade sieht. Weicht er vom aktuellen <code>due_date</code> ab, antwortet der Endpunkt mit HTTP 409 und erledigt nichts
assigned_user_uuids
array
Benutzer-UUIDs der Zuständigen
/api/contacts/{uuid}/todos/{todo_uuid}
Entfernt die Aufgabe.
/api/contacts/{uuid}/metadata
Liefert Tags, Quellen und Zusatzfelder des Datensatzes sowie die im Team verfügbaren Tags und Zusatzfeld-Definitionen. Zusatzfelder vom Typ reference werden mit der UUID und dem Namen des Ziels beantwortet. Jede Definition nennt ihren type: text, textarea, number, url, dropdown, reference, date oder currency. Bei number und currency steht in decimals die Zahl der erlaubten Nachkommastellen, bei currency zusätzlich in currency der feste ISO-4217-Code des Feldes; für alle anderen Typen sind beide Angaben null. Werte vom Typ date haben das Format JJJJ-MM-TT, Werte vom Typ currency sind eine Dezimalzahl mit Punkt als Dezimaltrenner und nennen den Währungscode in currency.
/api/contacts/{uuid}/metadata
Ergänzt oder entfernt gezielt einzelne Tags, Quellen und Zusatzfeldwerte. Nichts wird als Ganzes ersetzt, ein leerer Wert löscht das jeweilige Zusatzfeld. Zusatzfelder werden über definition_uuid oder ihren eindeutigen name benannt; bei Referenzfeldern ist der Wert die UUID des Ziels. Felder vom Typ date erwarten ein Datum im Format JJJJ-MM-TT, Felder vom Typ currency einen Betrag als Zahl oder Zahl-String ohne Währungszeichen und ohne Tausendertrennzeichen. Der Betrag darf höchstens so viele Nachkommastellen haben, wie die Definition in decimals nennt, und wird auf diese Stellenzahl aufgefüllt gespeichert. Ein Wert, der nicht zum Typ passt, führt zu HTTP 422 mit dem Feldbezug custom_fields.{index}; es wird dann nichts geändert.
add_tag_uuids
array
Tags, die ergänzt werden
remove_tag_uuids
array
Tags, die entfernt werden
add_sources
array
Quellen, die ergänzt werden
remove_sources
array
Quellen, die entfernt werden
custom_fields
array
Einträge aus <code>definition_uuid</code> oder <code>name</code> und <code>value</code>. Bei <code>date</code> ist <code>value</code> ein Datum wie <code>"2026-12-31"</code>, bei <code>currency</code> ein Betrag wie <code>12500.5</code> oder <code>"12500.50"</code>
/api/contacts/{uuid}/files
Listet die Dateien des Datensatzes auf. has_document_source zeigt an, ob die Datei aus Markdown erzeugt wurde und damit überarbeitet statt ersetzt werden kann.
per_page
integer
Einträge pro Seite (1 bis 200, Standard 50)
page
integer
Seitennummer, beginnend bei 1
/api/contacts/{uuid}/files
Hängt eine hochgeladene Datei an den Datensatz. Übertragung als multipart/form-data, höchstens 50 MB. Nicht zugelassene Dateitypen antworten mit HTTP 422.
file
file
*
Die hochzuladende Datei
name
string
Abweichender Dateiname
/api/contacts/{uuid}/files/{file_uuid}/download
Liefert einen kurzlebigen Abruflink samt Gültigkeitsdauer in Sekunden. Die Antwort enthält den Link, nicht die Bytes.
/api/contacts/{uuid}/files/{file_uuid}/text
Gibt den bereits extrahierten Text der Datei in Abschnitten von 20.000 Zeichen zurück. Der Endpunkt liest nur; er stößt keine neue Extraktion an.
offset
integer
Startposition im Text; <code>next_offset</code> der Antwort führt zum nächsten Abschnitt
/api/contacts/{uuid}/documents
Erzeugt aus Markdown ein PDF oder ein Word-Dokument und legt es am Datensatz ab. Mit file_uuid wird eine bestehende, ebenfalls so erzeugte Fassung überarbeitet statt eine zweite daneben zu legen.
title
string
*
Titel und zugleich Dateiname ohne Endung
source_markdown
string
*
Der Inhalt als Markdown
format
string
*
<code>pdf</code> oder <code>docx</code>
file_uuid
uuid
Bestehende Fassung, die ersetzt wird
/api/projects/{uuid}/todos
Listet die Aufgaben des Datensatzes auf. Erledigte Aufgaben erscheinen nur mit include_completed=1.
include_completed
boolean
Erledigte Aufgaben mit ausgeben
per_page
integer
Einträge pro Seite (1 bis 200, Standard 50)
page
integer
Seitennummer, beginnend bei 1
/api/projects/{uuid}/todos
Legt eine Aufgabe am Datensatz an. Zuständige werden über ihre Benutzer-UUID benannt und müssen zum Team des Schlüssels gehören. Mit recurring_interval entsteht eine Serie, also eine Aufgabe, die sich nach jedem Erledigen selbst auf den nächsten Termin setzt. Eine Serie braucht ein due_date und kann nicht bereits erledigt angelegt werden; beides antwortet sonst mit HTTP 422.
title
string
*
Titel der Aufgabe
description
string
Beschreibung
due_date
string
Fälligkeit im Format JJJJ-MM-TT
priority
string
<code>high</code>, <code>medium</code> (Standard) oder <code>low</code>
completed
boolean
Direkt als erledigt anlegen. Nicht zusammen mit <code>recurring_interval</code>
recurring_interval
string
Wiederholung der Aufgabe: <code>daily</code>, <code>every_2_days</code>, <code>weekly</code>, <code>every_2_weeks</code>, <code>monthly</code>, <code>every_2_months</code>, <code>quarterly</code>, <code>half_yearly</code> oder <code>yearly</code>. Erfordert <code>due_date</code>
assigned_user_uuids
array
Benutzer-UUIDs der Zuständigen
/api/projects/{uuid}/todos/{todo_uuid}
Ändert nur die gesendeten Felder. Über completed wird eine Aufgabe erledigt oder wieder geöffnet. Ein weggelassenes assigned_user_uuids lässt die Zuständigkeit unverändert, ein leeres Feld hebt sie auf. Bei einer Serie (Aufgabe mit recurring_interval) erledigt completed: true nur die aktuelle Wiederholung: Die Aufgabe bleibt offen, ihr due_date rückt um ein Intervall vor, und die erledigte Wiederholung wird als eigene, erledigte Aufgabe abgelegt. data ist immer die adressierte Aufgabe, bei einer Serie also weiterhin mit completed: false und dem neuen due_date. Die erledigte Wiederholung steht daneben im Antwortfeld completed_occurrence; in allen anderen Fällen ist es null. Wieder öffnen (completed: false) wirkt auf einfache Aufgaben und auf erledigte Wiederholungen, die Serie selbst ist nie erledigt. Das due_date einer Serie lässt sich nicht direkt ändern (HTTP 422). Ein wiederholter Aufruf würde auch die nächste Wiederholung erledigen: Wer expected_due_date mitsendet, erhält stattdessen HTTP 409 mit dem aktuellen Termin in current_due_date, sobald die Serie bereits weitergerückt ist.
title
string
Titel der Aufgabe
description
string
Beschreibung
due_date
string
Fälligkeit im Format JJJJ-MM-TT
priority
string
<code>high</code>, <code>medium</code> oder <code>low</code>
completed
boolean
Erledigt-Zustand. Bei einer Serie erledigt <code>true</code> nur die aktuelle Wiederholung
recurring_interval
string
Wiederholung der Aufgabe: <code>daily</code>, <code>every_2_days</code>, <code>weekly</code>, <code>every_2_weeks</code>, <code>monthly</code>, <code>every_2_months</code>, <code>quarterly</code>, <code>half_yearly</code> oder <code>yearly</code>. Erfordert ein <code>due_date</code>; <code>null</code> beendet die Serie
expected_due_date
string
Nur beim Erledigen einer Serie: der Termin im Format JJJJ-MM-TT, den der Aufrufer gerade sieht. Weicht er vom aktuellen <code>due_date</code> ab, antwortet der Endpunkt mit HTTP 409 und erledigt nichts
assigned_user_uuids
array
Benutzer-UUIDs der Zuständigen
/api/projects/{uuid}/todos/{todo_uuid}
Entfernt die Aufgabe.
/api/projects/{uuid}/metadata
Liefert Tags, Quellen und Zusatzfelder des Datensatzes sowie die im Team verfügbaren Tags und Zusatzfeld-Definitionen. Zusatzfelder vom Typ reference werden mit der UUID und dem Namen des Ziels beantwortet. Jede Definition nennt ihren type: text, textarea, number, url, dropdown, reference, date oder currency. Bei number und currency steht in decimals die Zahl der erlaubten Nachkommastellen, bei currency zusätzlich in currency der feste ISO-4217-Code des Feldes; für alle anderen Typen sind beide Angaben null. Werte vom Typ date haben das Format JJJJ-MM-TT, Werte vom Typ currency sind eine Dezimalzahl mit Punkt als Dezimaltrenner und nennen den Währungscode in currency.
/api/projects/{uuid}/metadata
Ergänzt oder entfernt gezielt einzelne Tags, Quellen und Zusatzfeldwerte. Nichts wird als Ganzes ersetzt, ein leerer Wert löscht das jeweilige Zusatzfeld. Zusatzfelder werden über definition_uuid oder ihren eindeutigen name benannt; bei Referenzfeldern ist der Wert die UUID des Ziels. Felder vom Typ date erwarten ein Datum im Format JJJJ-MM-TT, Felder vom Typ currency einen Betrag als Zahl oder Zahl-String ohne Währungszeichen und ohne Tausendertrennzeichen. Der Betrag darf höchstens so viele Nachkommastellen haben, wie die Definition in decimals nennt, und wird auf diese Stellenzahl aufgefüllt gespeichert. Ein Wert, der nicht zum Typ passt, führt zu HTTP 422 mit dem Feldbezug custom_fields.{index}; es wird dann nichts geändert.
add_tag_uuids
array
Tags, die ergänzt werden
remove_tag_uuids
array
Tags, die entfernt werden
add_sources
array
Quellen, die ergänzt werden
remove_sources
array
Quellen, die entfernt werden
custom_fields
array
Einträge aus <code>definition_uuid</code> oder <code>name</code> und <code>value</code>. Bei <code>date</code> ist <code>value</code> ein Datum wie <code>"2026-12-31"</code>, bei <code>currency</code> ein Betrag wie <code>12500.5</code> oder <code>"12500.50"</code>
/api/projects/{uuid}/files
Listet die Dateien des Datensatzes auf. has_document_source zeigt an, ob die Datei aus Markdown erzeugt wurde und damit überarbeitet statt ersetzt werden kann.
per_page
integer
Einträge pro Seite (1 bis 200, Standard 50)
page
integer
Seitennummer, beginnend bei 1
/api/projects/{uuid}/files
Hängt eine hochgeladene Datei an den Datensatz. Übertragung als multipart/form-data, höchstens 50 MB. Nicht zugelassene Dateitypen antworten mit HTTP 422.
file
file
*
Die hochzuladende Datei
name
string
Abweichender Dateiname
/api/projects/{uuid}/files/{file_uuid}/download
Liefert einen kurzlebigen Abruflink samt Gültigkeitsdauer in Sekunden. Die Antwort enthält den Link, nicht die Bytes.
/api/projects/{uuid}/files/{file_uuid}/text
Gibt den bereits extrahierten Text der Datei in Abschnitten von 20.000 Zeichen zurück. Der Endpunkt liest nur; er stößt keine neue Extraktion an.
offset
integer
Startposition im Text; <code>next_offset</code> der Antwort führt zum nächsten Abschnitt
/api/projects/{uuid}/documents
Erzeugt aus Markdown ein PDF oder ein Word-Dokument und legt es am Datensatz ab. Mit file_uuid wird eine bestehende, ebenfalls so erzeugte Fassung überarbeitet statt eine zweite daneben zu legen.
title
string
*
Titel und zugleich Dateiname ohne Endung
source_markdown
string
*
Der Inhalt als Markdown
format
string
*
<code>pdf</code> oder <code>docx</code>
file_uuid
uuid
Bestehende Fassung, die ersetzt wird
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"}. Bei Feldern vom Typ date ist value ein Datum im Format JJJJ-MM-TT, bei Feldern vom Typ currency ein Betrag als Zahl oder Zahl-String ohne Währungszeichen und ohne Tausendertrennzeichen, mit höchstens den in der Definition festgelegten Nachkommastellen; ein unpassender Wert führt zu 422 und es wird kein Lead angelegt. 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. Felder vom Typ date liefern das Datum als JJJJ-MM-TT, Felder vom Typ currency den Betrag als Dezimalzahl mit Punkt in value und den ISO-4217-Code des Feldes in currency
/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). Bei Feldern vom Typ date ist value ein Datum im Format JJJJ-MM-TT, bei Feldern vom Typ currency ein Betrag als Zahl oder Zahl-String ohne Währungszeichen und ohne Tausendertrennzeichen; ein unpassender Wert führt zu 422. 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).
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)
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
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)
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
/api/leads/reports/funnel
Anzahl und Wert der offenen Leads je Status, in der Reihenfolge der Statusliste, dazu die Zahl der Leads ohne Status.
/api/leads/reports/assignments
Anzahl und Wert der offenen Leads je zuständiger Person. Nicht zugewiesene Leads erscheinen als eigene Zeile mit user: null, damit genau diese Lücke sichtbar bleibt.
/api/leads/reports/sources
Anzahl der Leads je Quelle, absteigend sortiert.
/api/leads/{uuid}/duplicates
Andere offene Leads mit derselben E-Mail-Adresse oder demselben Firmennamen, höchstens zwanzig. Bewusst eng gefasst: verglichen wird exakt, nicht ähnlich, weil über das Zusammenführen ein Mensch entscheidet.
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.
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", "vat_id": "value", "tax_treatment": "value", "billing_language": "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',
'vat_id' => 'value',
'tax_treatment' => 'value',
'billing_language' => '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',
vat_id: 'value',
tax_treatment: 'value',
billing_language: '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',
'vat_id': 'value',
'tax_treatment': 'value',
'billing_language': '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", "email": "value", "contact_person": "value", "phone": "value", "website": "value", "notes": "value", "status": "value", "tag_uuids": [], "sources": [], "address_line_1": "value", "address_line_2": "value", "postal_code": "value", "city": "value", "state": "value", "country": "value", "tax_id": "value", "vat_id": "value", "tax_treatment": "value", "billing_language": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/clients/{uuid}', [
'name' => 'value',
'email' => 'value',
'contact_person' => 'value',
'phone' => 'value',
'website' => 'value',
'notes' => 'value',
'status' => 'value',
'tag_uuids' => [],
'sources' => [],
'address_line_1' => 'value',
'address_line_2' => 'value',
'postal_code' => 'value',
'city' => 'value',
'state' => 'value',
'country' => 'value',
'tax_id' => 'value',
'vat_id' => 'value',
'tax_treatment' => 'value',
'billing_language' => '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',
email: 'value',
contact_person: 'value',
phone: 'value',
website: 'value',
notes: 'value',
status: 'value',
tag_uuids: [],
sources: [],
address_line_1: 'value',
address_line_2: 'value',
postal_code: 'value',
city: 'value',
state: 'value',
country: 'value',
tax_id: 'value',
vat_id: 'value',
tax_treatment: 'value',
billing_language: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'email': 'value',
'contact_person': 'value',
'phone': 'value',
'website': 'value',
'notes': 'value',
'status': 'value',
'tag_uuids': [],
'sources': [],
'address_line_1': 'value',
'address_line_2': 'value',
'postal_code': 'value',
'city': 'value',
'state': 'value',
'country': 'value',
'tax_id': 'value',
'vat_id': 'value',
'tax_treatment': 'value',
'billing_language': '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}
curl -X GET "https://creativeskyline.de/api/clients/{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/clients/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{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/clients/{uuid}',
headers=headers,
)
data = response.json()
/api/clients/lookup
curl -X GET "https://creativeskyline.de/api/clients/lookup" \
-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/lookup');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/lookup', {
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/lookup',
headers=headers,
)
data = response.json()
/api/clients/{uuid}
curl -X DELETE "https://creativeskyline.de/api/clients/{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/clients/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{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/clients/{uuid}',
headers=headers,
)
data = response.json()
/api/clients/{uuid}/restore
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/restore" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/restore');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/restore', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/restore',
headers=headers,
)
data = response.json()
/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 '{"content": "value", "event_date": "value", "title": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/timeline', [
'content' => 'value',
'event_date' => 'value',
'title' => '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({
content: 'value',
event_date: 'value',
title: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'content': 'value',
'event_date': 'value',
'title': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/timeline',
headers=headers,
json=payload,
)
data = response.json()
/api/clients/{uuid}/timeline/{entry_uuid}
curl -X PATCH "https://creativeskyline.de/api/clients/{uuid}/timeline/{entry_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value", "title": "value", "type": "value", "event_date": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/clients/{uuid}/timeline/{entry_uuid}', [
'content' => 'value',
'title' => 'value',
'type' => 'value',
'event_date' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/timeline/{entry_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
title: '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',
'title': 'value',
'type': 'value',
'event_date': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/clients/{uuid}/timeline/{entry_uuid}',
headers=headers,
json=payload,
)
data = response.json()
/api/clients/{uuid}/timeline/{entry_uuid}
curl -X DELETE "https://creativeskyline.de/api/clients/{uuid}/timeline/{entry_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/clients/{uuid}/timeline/{entry_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/timeline/{entry_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/clients/{uuid}/timeline/{entry_uuid}',
headers=headers,
)
data = response.json()
/api/clients/{uuid}/timeline/bulk-delete
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/timeline/bulk-delete" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"entry_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/timeline/bulk-delete', [
'entry_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/timeline/bulk-delete', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
entry_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'entry_uuids': [],
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/timeline/bulk-delete',
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/contacts
curl -X GET "https://creativeskyline.de/api/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/contacts');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/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/contacts',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"first_name": "Anna",
"last_name": "Beispiel",
"company": "Mustermann GmbH",
"visibility": "team",
"status": "active"
}
],
"meta": {
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1
}
}
/api/contacts
curl -X POST "https://creativeskyline.de/api/contacts" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"first_name": "value", "last_name": "value", "salutation": "value", "title": "value", "job_title": "value", "company": "value", "description": "value", "birth_day": 0, "birth_month": 0, "birth_year": 0, "client_uuid": "value", "visibility": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/contacts', [
'first_name' => 'value',
'last_name' => 'value',
'salutation' => 'value',
'title' => 'value',
'job_title' => 'value',
'company' => 'value',
'description' => 'value',
'birth_day' => 0,
'birth_month' => 0,
'birth_year' => 0,
'client_uuid' => 'value',
'visibility' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/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',
salutation: 'value',
title: 'value',
job_title: 'value',
company: 'value',
description: 'value',
birth_day: 0,
birth_month: 0,
birth_year: 0,
client_uuid: 'value',
visibility: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'first_name': 'value',
'last_name': 'value',
'salutation': 'value',
'title': 'value',
'job_title': 'value',
'company': 'value',
'description': 'value',
'birth_day': 0,
'birth_month': 0,
'birth_year': 0,
'client_uuid': 'value',
'visibility': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/contacts',
headers=headers,
json=payload,
)
data = response.json()
/api/contacts/{uuid}
curl -X GET "https://creativeskyline.de/api/contacts/{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/contacts/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{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/contacts/{uuid}',
headers=headers,
)
data = response.json()
/api/contacts/{uuid}
curl -X PATCH "https://creativeskyline.de/api/contacts/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"first_name": "value", "last_name": "value", "salutation": "value", "title": "value", "job_title": "value", "company": "value", "description": "value", "birth_day": 0, "birth_month": 0, "birth_year": 0, "status": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/contacts/{uuid}', [
'first_name' => 'value',
'last_name' => 'value',
'salutation' => 'value',
'title' => 'value',
'job_title' => 'value',
'company' => 'value',
'description' => 'value',
'birth_day' => 0,
'birth_month' => 0,
'birth_year' => 0,
'status' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
first_name: 'value',
last_name: 'value',
salutation: 'value',
title: 'value',
job_title: 'value',
company: 'value',
description: 'value',
birth_day: 0,
birth_month: 0,
birth_year: 0,
status: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'first_name': 'value',
'last_name': 'value',
'salutation': 'value',
'title': 'value',
'job_title': 'value',
'company': 'value',
'description': 'value',
'birth_day': 0,
'birth_month': 0,
'birth_year': 0,
'status': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/contacts/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
/api/contacts/{uuid}
curl -X DELETE "https://creativeskyline.de/api/contacts/{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/contacts/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{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/contacts/{uuid}',
headers=headers,
)
data = response.json()
/api/contacts/{uuid}/client
curl -X PUT "https://creativeskyline.de/api/contacts/{uuid}/client" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"client_uuid": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/contacts/{uuid}/client', [
'client_uuid' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/client', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
client_uuid: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'client_uuid': 'value',
}
response = requests.put(
'https://creativeskyline.de/api/contacts/{uuid}/client',
headers=headers,
json=payload,
)
data = response.json()
/api/contacts/{uuid}/values/{collection}
curl -X POST "https://creativeskyline.de/api/contacts/{uuid}/values/{collection}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"label": "value", "email": "value", "phone": "value", "url": "value", "date": "value", "value": "value", "is_primary": true}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/contacts/{uuid}/values/{collection}', [
'label' => 'value',
'email' => 'value',
'phone' => 'value',
'url' => 'value',
'date' => 'value',
'value' => 'value',
'is_primary' => true,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/values/{collection}', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
label: 'value',
email: 'value',
phone: 'value',
url: 'value',
date: 'value',
value: 'value',
is_primary: true,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'label': 'value',
'email': 'value',
'phone': 'value',
'url': 'value',
'date': 'value',
'value': 'value',
'is_primary': True,
}
response = requests.post(
'https://creativeskyline.de/api/contacts/{uuid}/values/{collection}',
headers=headers,
json=payload,
)
data = response.json()
/api/contacts/{uuid}/values/{collection}/{value_uuid}
curl -X PATCH "https://creativeskyline.de/api/contacts/{uuid}/values/{collection}/{value_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"label": "value", "is_primary": true}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/contacts/{uuid}/values/{collection}/{value_uuid}', [
'label' => 'value',
'is_primary' => true,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/values/{collection}/{value_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
label: 'value',
is_primary: true,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'label': 'value',
'is_primary': True,
}
response = requests.patch(
'https://creativeskyline.de/api/contacts/{uuid}/values/{collection}/{value_uuid}',
headers=headers,
json=payload,
)
data = response.json()
/api/contacts/{uuid}/values/{collection}/{value_uuid}
curl -X DELETE "https://creativeskyline.de/api/contacts/{uuid}/values/{collection}/{value_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/contacts/{uuid}/values/{collection}/{value_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/values/{collection}/{value_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/contacts/{uuid}/values/{collection}/{value_uuid}',
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/projects
curl -X GET "https://creativeskyline.de/api/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/projects');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/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/projects',
headers=headers,
)
data = response.json()
/api/projects
curl -X POST "https://creativeskyline.de/api/projects" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "client_uuid": "value", "description": "value", "notes": "value", "budget_type": "value", "budget_value": 0, "budget_currency": "value", "budget_interval": "value", "budget_enforcement": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/projects', [
'name' => 'value',
'client_uuid' => 'value',
'description' => 'value',
'notes' => 'value',
'budget_type' => 'value',
'budget_value' => 0,
'budget_currency' => 'value',
'budget_interval' => 'value',
'budget_enforcement' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
client_uuid: 'value',
description: 'value',
notes: 'value',
budget_type: 'value',
budget_value: 0,
budget_currency: 'value',
budget_interval: 'value',
budget_enforcement: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'client_uuid': 'value',
'description': 'value',
'notes': 'value',
'budget_type': 'value',
'budget_value': 0,
'budget_currency': 'value',
'budget_interval': 'value',
'budget_enforcement': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/projects',
headers=headers,
json=payload,
)
data = response.json()
/api/clients/{uuid}/projects
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/projects" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "description": "value", "notes": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/projects', [
'name' => 'value',
'description' => 'value',
'notes' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
description: 'value',
notes: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'description': 'value',
'notes': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/projects',
headers=headers,
json=payload,
)
data = response.json()
/api/projects/{uuid}
curl -X GET "https://creativeskyline.de/api/projects/{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/projects/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{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/projects/{uuid}',
headers=headers,
)
data = response.json()
/api/projects/{uuid}
curl -X PATCH "https://creativeskyline.de/api/projects/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "description": "value", "notes": "value", "client_uuid": "value", "status": "value", "budget_type": "value", "budget_value": 0, "budget_currency": "value", "budget_interval": "value", "budget_enforcement": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/projects/{uuid}', [
'name' => 'value',
'description' => 'value',
'notes' => 'value',
'client_uuid' => 'value',
'status' => 'value',
'budget_type' => 'value',
'budget_value' => 0,
'budget_currency' => 'value',
'budget_interval' => 'value',
'budget_enforcement' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
description: 'value',
notes: 'value',
client_uuid: 'value',
status: 'value',
budget_type: 'value',
budget_value: 0,
budget_currency: 'value',
budget_interval: 'value',
budget_enforcement: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'description': 'value',
'notes': 'value',
'client_uuid': 'value',
'status': 'value',
'budget_type': 'value',
'budget_value': 0,
'budget_currency': 'value',
'budget_interval': 'value',
'budget_enforcement': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/projects/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
/api/projects/{uuid}
curl -X DELETE "https://creativeskyline.de/api/projects/{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/projects/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{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/projects/{uuid}',
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/clients/{uuid}/projects/{project_uuid}/timeline
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value", "title": "value", "type": "value", "event_date": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline', [
'content' => 'value',
'title' => 'value',
'type' => 'value',
'event_date' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
title: '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',
'title': 'value',
'type': 'value',
'event_date': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline',
headers=headers,
json=payload,
)
data = response.json()
/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}
curl -X PATCH "https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value", "title": "value", "type": "value", "event_date": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}', [
'content' => 'value',
'title' => 'value',
'type' => 'value',
'event_date' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
title: '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',
'title': 'value',
'type': 'value',
'event_date': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}',
headers=headers,
json=payload,
)
data = response.json()
/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}
curl -X DELETE "https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_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/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_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/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}',
headers=headers,
)
data = response.json()
/api/clients/{uuid}/projects/{project_uuid}/timeline/bulk-delete
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/bulk-delete" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"entry_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/bulk-delete', [
'entry_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/bulk-delete', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
entry_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'entry_uuids': [],
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/bulk-delete',
headers=headers,
json=payload,
)
data = response.json()
/api/clients/{uuid}/todos
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/todos" \
-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}/todos');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/todos', {
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}/todos',
headers=headers,
)
data = response.json()
/api/clients/{uuid}/todos
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/todos" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value", "due_date": "value", "priority": "value", "completed": true, "recurring_interval": "value", "assigned_user_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/todos', [
'title' => 'value',
'description' => 'value',
'due_date' => 'value',
'priority' => 'value',
'completed' => true,
'recurring_interval' => 'value',
'assigned_user_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/todos', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
due_date: 'value',
priority: 'value',
completed: true,
recurring_interval: 'value',
assigned_user_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
'due_date': 'value',
'priority': 'value',
'completed': True,
'recurring_interval': 'value',
'assigned_user_uuids': [],
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/todos',
headers=headers,
json=payload,
)
data = response.json()
/api/clients/{uuid}/todos/{todo_uuid}
curl -X PATCH "https://creativeskyline.de/api/clients/{uuid}/todos/{todo_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value", "due_date": "value", "priority": "value", "completed": true, "recurring_interval": "value", "expected_due_date": "value", "assigned_user_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/clients/{uuid}/todos/{todo_uuid}', [
'title' => 'value',
'description' => 'value',
'due_date' => 'value',
'priority' => 'value',
'completed' => true,
'recurring_interval' => 'value',
'expected_due_date' => 'value',
'assigned_user_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/todos/{todo_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
due_date: 'value',
priority: 'value',
completed: true,
recurring_interval: 'value',
expected_due_date: 'value',
assigned_user_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
'due_date': 'value',
'priority': 'value',
'completed': True,
'recurring_interval': 'value',
'expected_due_date': 'value',
'assigned_user_uuids': [],
}
response = requests.patch(
'https://creativeskyline.de/api/clients/{uuid}/todos/{todo_uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "3f6c1b2a-9d4e-4c7f-8a1b-5e2d7c9f0a11",
"title": "Wochenbericht senden",
"description": null,
"due_date": "2026-10-16",
"priority": "medium",
"completed": false,
"completed_at": null,
"recurring_interval": "weekly",
"assigned_user_uuids": [],
"created_at": "2026-10-01T08:00:00+00:00",
"updated_at": "2026-10-09T09:30:00+00:00"
},
"completed_occurrence": {
"uuid": "b81d4c7e-2a5f-4e3b-9c6d-1f0a8e7b6c22",
"title": "Wochenbericht senden",
"description": null,
"due_date": "2026-10-09",
"priority": "medium",
"completed": true,
"completed_at": "2026-10-09T09:30:00+00:00",
"recurring_interval": null,
"assigned_user_uuids": [],
"created_at": "2026-10-09T09:30:00+00:00",
"updated_at": "2026-10-09T09:30:00+00:00"
}
}
/api/clients/{uuid}/todos/{todo_uuid}
curl -X DELETE "https://creativeskyline.de/api/clients/{uuid}/todos/{todo_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/clients/{uuid}/todos/{todo_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/todos/{todo_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/clients/{uuid}/todos/{todo_uuid}',
headers=headers,
)
data = response.json()
/api/clients/{uuid}/metadata
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/metadata" \
-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}/metadata');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/metadata', {
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}/metadata',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"tags": [],
"available_tags": [],
"sources": [
"messe-2026"
],
"custom_field_definitions": [
{
"uuid": "7c1f9a3b-42d5-4e88-9a10-b6c3f2d51e04",
"name": "Branche",
"type": "text",
"reference_source": null,
"decimals": null,
"currency": null,
"options": []
},
{
"uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Vertragsende",
"type": "date",
"reference_source": null,
"decimals": null,
"currency": null,
"options": []
},
{
"uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"reference_source": null,
"decimals": 2,
"currency": "EUR",
"options": []
}
],
"custom_field_values": [
{
"definition_uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Vertragsende",
"type": "date",
"value": "2026-12-31",
"currency": null,
"reference": null
},
{
"definition_uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"value": "12500.00",
"currency": "EUR",
"reference": null
}
]
}
}
/api/clients/{uuid}/metadata
curl -X PATCH "https://creativeskyline.de/api/clients/{uuid}/metadata" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"add_tag_uuids": [], "remove_tag_uuids": [], "add_sources": [], "remove_sources": [], "custom_fields": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/clients/{uuid}/metadata', [
'add_tag_uuids' => [],
'remove_tag_uuids' => [],
'add_sources' => [],
'remove_sources' => [],
'custom_fields' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/metadata', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
add_tag_uuids: [],
remove_tag_uuids: [],
add_sources: [],
remove_sources: [],
custom_fields: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'add_tag_uuids': [],
'remove_tag_uuids': [],
'add_sources': [],
'remove_sources': [],
'custom_fields': [],
}
response = requests.patch(
'https://creativeskyline.de/api/clients/{uuid}/metadata',
headers=headers,
json=payload,
)
data = response.json()
/api/clients/{uuid}/files
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/files" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/clients/{uuid}/files');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/files', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/clients/{uuid}/files',
headers=headers,
)
data = response.json()
/api/clients/{uuid}/files
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/files" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"file": "value", "name": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/files', [
'file' => 'value',
'name' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/files', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
file: 'value',
name: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'file': 'value',
'name': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/files',
headers=headers,
json=payload,
)
data = response.json()
/api/clients/{uuid}/files/{file_uuid}/download
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/files/{file_uuid}/download" \
-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}/files/{file_uuid}/download');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/files/{file_uuid}/download', {
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}/files/{file_uuid}/download',
headers=headers,
)
data = response.json()
/api/clients/{uuid}/files/{file_uuid}/text
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/files/{file_uuid}/text" \
-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}/files/{file_uuid}/text');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/files/{file_uuid}/text', {
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}/files/{file_uuid}/text',
headers=headers,
)
data = response.json()
/api/clients/{uuid}/documents
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/documents" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "source_markdown": "value", "format": "value", "file_uuid": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/documents', [
'title' => 'value',
'source_markdown' => 'value',
'format' => 'value',
'file_uuid' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/documents', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
source_markdown: 'value',
format: 'value',
file_uuid: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'source_markdown': 'value',
'format': 'value',
'file_uuid': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/documents',
headers=headers,
json=payload,
)
data = response.json()
/api/contacts/{uuid}/todos
curl -X GET "https://creativeskyline.de/api/contacts/{uuid}/todos" \
-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}/todos');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/todos', {
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}/todos',
headers=headers,
)
data = response.json()
/api/contacts/{uuid}/todos
curl -X POST "https://creativeskyline.de/api/contacts/{uuid}/todos" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value", "due_date": "value", "priority": "value", "completed": true, "recurring_interval": "value", "assigned_user_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/contacts/{uuid}/todos', [
'title' => 'value',
'description' => 'value',
'due_date' => 'value',
'priority' => 'value',
'completed' => true,
'recurring_interval' => 'value',
'assigned_user_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/todos', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
due_date: 'value',
priority: 'value',
completed: true,
recurring_interval: 'value',
assigned_user_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
'due_date': 'value',
'priority': 'value',
'completed': True,
'recurring_interval': 'value',
'assigned_user_uuids': [],
}
response = requests.post(
'https://creativeskyline.de/api/contacts/{uuid}/todos',
headers=headers,
json=payload,
)
data = response.json()
/api/contacts/{uuid}/todos/{todo_uuid}
curl -X PATCH "https://creativeskyline.de/api/contacts/{uuid}/todos/{todo_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value", "due_date": "value", "priority": "value", "completed": true, "recurring_interval": "value", "expected_due_date": "value", "assigned_user_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/contacts/{uuid}/todos/{todo_uuid}', [
'title' => 'value',
'description' => 'value',
'due_date' => 'value',
'priority' => 'value',
'completed' => true,
'recurring_interval' => 'value',
'expected_due_date' => 'value',
'assigned_user_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/todos/{todo_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
due_date: 'value',
priority: 'value',
completed: true,
recurring_interval: 'value',
expected_due_date: 'value',
assigned_user_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
'due_date': 'value',
'priority': 'value',
'completed': True,
'recurring_interval': 'value',
'expected_due_date': 'value',
'assigned_user_uuids': [],
}
response = requests.patch(
'https://creativeskyline.de/api/contacts/{uuid}/todos/{todo_uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "3f6c1b2a-9d4e-4c7f-8a1b-5e2d7c9f0a11",
"title": "Wochenbericht senden",
"description": null,
"due_date": "2026-10-16",
"priority": "medium",
"completed": false,
"completed_at": null,
"recurring_interval": "weekly",
"assigned_user_uuids": [],
"created_at": "2026-10-01T08:00:00+00:00",
"updated_at": "2026-10-09T09:30:00+00:00"
},
"completed_occurrence": {
"uuid": "b81d4c7e-2a5f-4e3b-9c6d-1f0a8e7b6c22",
"title": "Wochenbericht senden",
"description": null,
"due_date": "2026-10-09",
"priority": "medium",
"completed": true,
"completed_at": "2026-10-09T09:30:00+00:00",
"recurring_interval": null,
"assigned_user_uuids": [],
"created_at": "2026-10-09T09:30:00+00:00",
"updated_at": "2026-10-09T09:30:00+00:00"
}
}
/api/contacts/{uuid}/todos/{todo_uuid}
curl -X DELETE "https://creativeskyline.de/api/contacts/{uuid}/todos/{todo_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/contacts/{uuid}/todos/{todo_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/todos/{todo_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/contacts/{uuid}/todos/{todo_uuid}',
headers=headers,
)
data = response.json()
/api/contacts/{uuid}/metadata
curl -X GET "https://creativeskyline.de/api/contacts/{uuid}/metadata" \
-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}/metadata');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/metadata', {
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}/metadata',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"tags": [],
"available_tags": [],
"sources": [
"messe-2026"
],
"custom_field_definitions": [
{
"uuid": "7c1f9a3b-42d5-4e88-9a10-b6c3f2d51e04",
"name": "Branche",
"type": "text",
"reference_source": null,
"decimals": null,
"currency": null,
"options": []
},
{
"uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Vertragsende",
"type": "date",
"reference_source": null,
"decimals": null,
"currency": null,
"options": []
},
{
"uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"reference_source": null,
"decimals": 2,
"currency": "EUR",
"options": []
}
],
"custom_field_values": [
{
"definition_uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Vertragsende",
"type": "date",
"value": "2026-12-31",
"currency": null,
"reference": null
},
{
"definition_uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"value": "12500.00",
"currency": "EUR",
"reference": null
}
]
}
}
/api/contacts/{uuid}/metadata
curl -X PATCH "https://creativeskyline.de/api/contacts/{uuid}/metadata" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"add_tag_uuids": [], "remove_tag_uuids": [], "add_sources": [], "remove_sources": [], "custom_fields": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/contacts/{uuid}/metadata', [
'add_tag_uuids' => [],
'remove_tag_uuids' => [],
'add_sources' => [],
'remove_sources' => [],
'custom_fields' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/metadata', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
add_tag_uuids: [],
remove_tag_uuids: [],
add_sources: [],
remove_sources: [],
custom_fields: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'add_tag_uuids': [],
'remove_tag_uuids': [],
'add_sources': [],
'remove_sources': [],
'custom_fields': [],
}
response = requests.patch(
'https://creativeskyline.de/api/contacts/{uuid}/metadata',
headers=headers,
json=payload,
)
data = response.json()
/api/contacts/{uuid}/files
curl -X GET "https://creativeskyline.de/api/contacts/{uuid}/files" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/contacts/{uuid}/files');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/files', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/contacts/{uuid}/files',
headers=headers,
)
data = response.json()
/api/contacts/{uuid}/files
curl -X POST "https://creativeskyline.de/api/contacts/{uuid}/files" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"file": "value", "name": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/contacts/{uuid}/files', [
'file' => 'value',
'name' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/files', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
file: 'value',
name: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'file': 'value',
'name': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/contacts/{uuid}/files',
headers=headers,
json=payload,
)
data = response.json()
/api/contacts/{uuid}/files/{file_uuid}/download
curl -X GET "https://creativeskyline.de/api/contacts/{uuid}/files/{file_uuid}/download" \
-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}/files/{file_uuid}/download');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/files/{file_uuid}/download', {
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}/files/{file_uuid}/download',
headers=headers,
)
data = response.json()
/api/contacts/{uuid}/files/{file_uuid}/text
curl -X GET "https://creativeskyline.de/api/contacts/{uuid}/files/{file_uuid}/text" \
-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}/files/{file_uuid}/text');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/files/{file_uuid}/text', {
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}/files/{file_uuid}/text',
headers=headers,
)
data = response.json()
/api/contacts/{uuid}/documents
curl -X POST "https://creativeskyline.de/api/contacts/{uuid}/documents" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "source_markdown": "value", "format": "value", "file_uuid": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/contacts/{uuid}/documents', [
'title' => 'value',
'source_markdown' => 'value',
'format' => 'value',
'file_uuid' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/documents', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
source_markdown: 'value',
format: 'value',
file_uuid: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'source_markdown': 'value',
'format': 'value',
'file_uuid': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/contacts/{uuid}/documents',
headers=headers,
json=payload,
)
data = response.json()
/api/projects/{uuid}/todos
curl -X GET "https://creativeskyline.de/api/projects/{uuid}/todos" \
-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}/todos');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/todos', {
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}/todos',
headers=headers,
)
data = response.json()
/api/projects/{uuid}/todos
curl -X POST "https://creativeskyline.de/api/projects/{uuid}/todos" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value", "due_date": "value", "priority": "value", "completed": true, "recurring_interval": "value", "assigned_user_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/projects/{uuid}/todos', [
'title' => 'value',
'description' => 'value',
'due_date' => 'value',
'priority' => 'value',
'completed' => true,
'recurring_interval' => 'value',
'assigned_user_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/todos', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
due_date: 'value',
priority: 'value',
completed: true,
recurring_interval: 'value',
assigned_user_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
'due_date': 'value',
'priority': 'value',
'completed': True,
'recurring_interval': 'value',
'assigned_user_uuids': [],
}
response = requests.post(
'https://creativeskyline.de/api/projects/{uuid}/todos',
headers=headers,
json=payload,
)
data = response.json()
/api/projects/{uuid}/todos/{todo_uuid}
curl -X PATCH "https://creativeskyline.de/api/projects/{uuid}/todos/{todo_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value", "due_date": "value", "priority": "value", "completed": true, "recurring_interval": "value", "expected_due_date": "value", "assigned_user_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/projects/{uuid}/todos/{todo_uuid}', [
'title' => 'value',
'description' => 'value',
'due_date' => 'value',
'priority' => 'value',
'completed' => true,
'recurring_interval' => 'value',
'expected_due_date' => 'value',
'assigned_user_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/todos/{todo_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
due_date: 'value',
priority: 'value',
completed: true,
recurring_interval: 'value',
expected_due_date: 'value',
assigned_user_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
'due_date': 'value',
'priority': 'value',
'completed': True,
'recurring_interval': 'value',
'expected_due_date': 'value',
'assigned_user_uuids': [],
}
response = requests.patch(
'https://creativeskyline.de/api/projects/{uuid}/todos/{todo_uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "3f6c1b2a-9d4e-4c7f-8a1b-5e2d7c9f0a11",
"title": "Wochenbericht senden",
"description": null,
"due_date": "2026-10-16",
"priority": "medium",
"completed": false,
"completed_at": null,
"recurring_interval": "weekly",
"assigned_user_uuids": [],
"created_at": "2026-10-01T08:00:00+00:00",
"updated_at": "2026-10-09T09:30:00+00:00"
},
"completed_occurrence": {
"uuid": "b81d4c7e-2a5f-4e3b-9c6d-1f0a8e7b6c22",
"title": "Wochenbericht senden",
"description": null,
"due_date": "2026-10-09",
"priority": "medium",
"completed": true,
"completed_at": "2026-10-09T09:30:00+00:00",
"recurring_interval": null,
"assigned_user_uuids": [],
"created_at": "2026-10-09T09:30:00+00:00",
"updated_at": "2026-10-09T09:30:00+00:00"
}
}
/api/projects/{uuid}/todos/{todo_uuid}
curl -X DELETE "https://creativeskyline.de/api/projects/{uuid}/todos/{todo_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/projects/{uuid}/todos/{todo_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/todos/{todo_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/projects/{uuid}/todos/{todo_uuid}',
headers=headers,
)
data = response.json()
/api/projects/{uuid}/metadata
curl -X GET "https://creativeskyline.de/api/projects/{uuid}/metadata" \
-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}/metadata');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/metadata', {
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}/metadata',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"tags": [],
"available_tags": [],
"sources": [
"messe-2026"
],
"custom_field_definitions": [
{
"uuid": "7c1f9a3b-42d5-4e88-9a10-b6c3f2d51e04",
"name": "Branche",
"type": "text",
"reference_source": null,
"decimals": null,
"currency": null,
"options": []
},
{
"uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Vertragsende",
"type": "date",
"reference_source": null,
"decimals": null,
"currency": null,
"options": []
},
{
"uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"reference_source": null,
"decimals": 2,
"currency": "EUR",
"options": []
}
],
"custom_field_values": [
{
"definition_uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Vertragsende",
"type": "date",
"value": "2026-12-31",
"currency": null,
"reference": null
},
{
"definition_uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"value": "12500.00",
"currency": "EUR",
"reference": null
}
]
}
}
/api/projects/{uuid}/metadata
curl -X PATCH "https://creativeskyline.de/api/projects/{uuid}/metadata" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"add_tag_uuids": [], "remove_tag_uuids": [], "add_sources": [], "remove_sources": [], "custom_fields": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/projects/{uuid}/metadata', [
'add_tag_uuids' => [],
'remove_tag_uuids' => [],
'add_sources' => [],
'remove_sources' => [],
'custom_fields' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/metadata', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
add_tag_uuids: [],
remove_tag_uuids: [],
add_sources: [],
remove_sources: [],
custom_fields: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'add_tag_uuids': [],
'remove_tag_uuids': [],
'add_sources': [],
'remove_sources': [],
'custom_fields': [],
}
response = requests.patch(
'https://creativeskyline.de/api/projects/{uuid}/metadata',
headers=headers,
json=payload,
)
data = response.json()
/api/projects/{uuid}/files
curl -X GET "https://creativeskyline.de/api/projects/{uuid}/files" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/projects/{uuid}/files');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/files', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/projects/{uuid}/files',
headers=headers,
)
data = response.json()
/api/projects/{uuid}/files
curl -X POST "https://creativeskyline.de/api/projects/{uuid}/files" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"file": "value", "name": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/projects/{uuid}/files', [
'file' => 'value',
'name' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/files', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
file: 'value',
name: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'file': 'value',
'name': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/projects/{uuid}/files',
headers=headers,
json=payload,
)
data = response.json()
/api/projects/{uuid}/files/{file_uuid}/download
curl -X GET "https://creativeskyline.de/api/projects/{uuid}/files/{file_uuid}/download" \
-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}/files/{file_uuid}/download');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/files/{file_uuid}/download', {
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}/files/{file_uuid}/download',
headers=headers,
)
data = response.json()
/api/projects/{uuid}/files/{file_uuid}/text
curl -X GET "https://creativeskyline.de/api/projects/{uuid}/files/{file_uuid}/text" \
-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}/files/{file_uuid}/text');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/files/{file_uuid}/text', {
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}/files/{file_uuid}/text',
headers=headers,
)
data = response.json()
/api/projects/{uuid}/documents
curl -X POST "https://creativeskyline.de/api/projects/{uuid}/documents" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "source_markdown": "value", "format": "value", "file_uuid": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/projects/{uuid}/documents', [
'title' => 'value',
'source_markdown' => 'value',
'format' => 'value',
'file_uuid' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/documents', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
source_markdown: 'value',
format: 'value',
file_uuid: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'source_markdown': 'value',
'format': 'value',
'file_uuid': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/projects/{uuid}/documents',
headers=headers,
json=payload,
)
data = response.json()
/api/tags
curl -X GET "https://creativeskyline.de/api/tags" \
-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/tags');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/tags', {
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/tags',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"uuid": "b2c1a7a6-1249-4827-b533-ef1c65c1e273",
"title": "VIP",
"slug": "vip",
"description": null
}
],
"meta": {
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1
}
}
/api/tags
curl -X POST "https://creativeskyline.de/api/tags" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/tags', [
'title' => 'value',
'description' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/tags', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/tags',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"created": true,
"restored": false,
"data": {
"uuid": "b2c1a7a6-1249-4827-b533-ef1c65c1e273",
"title": "VIP",
"slug": "vip",
"description": null
}
}
/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"
},
{
"definition_uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Wunschtermin",
"type": "date",
"value": "2026-12-31"
},
{
"definition_uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"value": "12500.00",
"currency": "EUR"
}
],
"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/leads/reports/funnel
curl -X GET "https://creativeskyline.de/api/leads/reports/funnel" \
-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/reports/funnel');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/reports/funnel', {
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/reports/funnel',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"stages": [
{
"status_uuid": "123e4567-e89b-12d3-a456-426614174000",
"name": "Erstkontakt",
"leads": 12,
"value": 48000
}
],
"without_status": 3
}
}
/api/leads/reports/assignments
curl -X GET "https://creativeskyline.de/api/leads/reports/assignments" \
-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/reports/assignments');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/reports/assignments', {
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/reports/assignments',
headers=headers,
)
data = response.json()
/api/leads/reports/sources
curl -X GET "https://creativeskyline.de/api/leads/reports/sources" \
-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/reports/sources');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/reports/sources', {
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/reports/sources',
headers=headers,
)
data = response.json()
/api/leads/{uuid}/duplicates
curl -X GET "https://creativeskyline.de/api/leads/{uuid}/duplicates" \
-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}/duplicates');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/duplicates', {
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}/duplicates',
headers=headers,
)
data = response.json()
/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", "vat_id": "value", "tax_treatment": "value", "billing_language": "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',
'vat_id' => 'value',
'tax_treatment' => 'value',
'billing_language' => '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',
vat_id: 'value',
tax_treatment: 'value',
billing_language: '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',
'vat_id': 'value',
'tax_treatment': 'value',
'billing_language': '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", "email": "value", "contact_person": "value", "phone": "value", "website": "value", "notes": "value", "status": "value", "tag_uuids": [], "sources": [], "address_line_1": "value", "address_line_2": "value", "postal_code": "value", "city": "value", "state": "value", "country": "value", "tax_id": "value", "vat_id": "value", "tax_treatment": "value", "billing_language": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/clients/{uuid}', [
'name' => 'value',
'email' => 'value',
'contact_person' => 'value',
'phone' => 'value',
'website' => 'value',
'notes' => 'value',
'status' => 'value',
'tag_uuids' => [],
'sources' => [],
'address_line_1' => 'value',
'address_line_2' => 'value',
'postal_code' => 'value',
'city' => 'value',
'state' => 'value',
'country' => 'value',
'tax_id' => 'value',
'vat_id' => 'value',
'tax_treatment' => 'value',
'billing_language' => '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',
email: 'value',
contact_person: 'value',
phone: 'value',
website: 'value',
notes: 'value',
status: 'value',
tag_uuids: [],
sources: [],
address_line_1: 'value',
address_line_2: 'value',
postal_code: 'value',
city: 'value',
state: 'value',
country: 'value',
tax_id: 'value',
vat_id: 'value',
tax_treatment: 'value',
billing_language: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'email': 'value',
'contact_person': 'value',
'phone': 'value',
'website': 'value',
'notes': 'value',
'status': 'value',
'tag_uuids': [],
'sources': [],
'address_line_1': 'value',
'address_line_2': 'value',
'postal_code': 'value',
'city': 'value',
'state': 'value',
'country': 'value',
'tax_id': 'value',
'vat_id': 'value',
'tax_treatment': 'value',
'billing_language': '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}" \
-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}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{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/clients/{uuid}',
headers=headers,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/clients/lookup" \
-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/lookup');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/lookup', {
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/lookup',
headers=headers,
)
data = response.json()
curl -X DELETE "https://creativeskyline.de/api/clients/{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/clients/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{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/clients/{uuid}',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/restore" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/restore');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/restore', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/restore',
headers=headers,
)
data = response.json()
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 '{"content": "value", "event_date": "value", "title": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/timeline', [
'content' => 'value',
'event_date' => 'value',
'title' => '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({
content: 'value',
event_date: 'value',
title: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'content': 'value',
'event_date': 'value',
'title': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/timeline',
headers=headers,
json=payload,
)
data = response.json()
curl -X PATCH "https://creativeskyline.de/api/clients/{uuid}/timeline/{entry_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value", "title": "value", "type": "value", "event_date": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/clients/{uuid}/timeline/{entry_uuid}', [
'content' => 'value',
'title' => 'value',
'type' => 'value',
'event_date' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/timeline/{entry_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
title: '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',
'title': 'value',
'type': 'value',
'event_date': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/clients/{uuid}/timeline/{entry_uuid}',
headers=headers,
json=payload,
)
data = response.json()
curl -X DELETE "https://creativeskyline.de/api/clients/{uuid}/timeline/{entry_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/clients/{uuid}/timeline/{entry_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/timeline/{entry_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/clients/{uuid}/timeline/{entry_uuid}',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/timeline/bulk-delete" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"entry_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/timeline/bulk-delete', [
'entry_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/timeline/bulk-delete', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
entry_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'entry_uuids': [],
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/timeline/bulk-delete',
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/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/contacts');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/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/contacts',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"first_name": "Anna",
"last_name": "Beispiel",
"company": "Mustermann GmbH",
"visibility": "team",
"status": "active"
}
],
"meta": {
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1
}
}
curl -X POST "https://creativeskyline.de/api/contacts" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"first_name": "value", "last_name": "value", "salutation": "value", "title": "value", "job_title": "value", "company": "value", "description": "value", "birth_day": 0, "birth_month": 0, "birth_year": 0, "client_uuid": "value", "visibility": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/contacts', [
'first_name' => 'value',
'last_name' => 'value',
'salutation' => 'value',
'title' => 'value',
'job_title' => 'value',
'company' => 'value',
'description' => 'value',
'birth_day' => 0,
'birth_month' => 0,
'birth_year' => 0,
'client_uuid' => 'value',
'visibility' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/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',
salutation: 'value',
title: 'value',
job_title: 'value',
company: 'value',
description: 'value',
birth_day: 0,
birth_month: 0,
birth_year: 0,
client_uuid: 'value',
visibility: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'first_name': 'value',
'last_name': 'value',
'salutation': 'value',
'title': 'value',
'job_title': 'value',
'company': 'value',
'description': 'value',
'birth_day': 0,
'birth_month': 0,
'birth_year': 0,
'client_uuid': 'value',
'visibility': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/contacts',
headers=headers,
json=payload,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/contacts/{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/contacts/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{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/contacts/{uuid}',
headers=headers,
)
data = response.json()
curl -X PATCH "https://creativeskyline.de/api/contacts/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"first_name": "value", "last_name": "value", "salutation": "value", "title": "value", "job_title": "value", "company": "value", "description": "value", "birth_day": 0, "birth_month": 0, "birth_year": 0, "status": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/contacts/{uuid}', [
'first_name' => 'value',
'last_name' => 'value',
'salutation' => 'value',
'title' => 'value',
'job_title' => 'value',
'company' => 'value',
'description' => 'value',
'birth_day' => 0,
'birth_month' => 0,
'birth_year' => 0,
'status' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
first_name: 'value',
last_name: 'value',
salutation: 'value',
title: 'value',
job_title: 'value',
company: 'value',
description: 'value',
birth_day: 0,
birth_month: 0,
birth_year: 0,
status: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'first_name': 'value',
'last_name': 'value',
'salutation': 'value',
'title': 'value',
'job_title': 'value',
'company': 'value',
'description': 'value',
'birth_day': 0,
'birth_month': 0,
'birth_year': 0,
'status': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/contacts/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
curl -X DELETE "https://creativeskyline.de/api/contacts/{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/contacts/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{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/contacts/{uuid}',
headers=headers,
)
data = response.json()
curl -X PUT "https://creativeskyline.de/api/contacts/{uuid}/client" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"client_uuid": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/contacts/{uuid}/client', [
'client_uuid' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/client', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
client_uuid: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'client_uuid': 'value',
}
response = requests.put(
'https://creativeskyline.de/api/contacts/{uuid}/client',
headers=headers,
json=payload,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/contacts/{uuid}/values/{collection}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"label": "value", "email": "value", "phone": "value", "url": "value", "date": "value", "value": "value", "is_primary": true}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/contacts/{uuid}/values/{collection}', [
'label' => 'value',
'email' => 'value',
'phone' => 'value',
'url' => 'value',
'date' => 'value',
'value' => 'value',
'is_primary' => true,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/values/{collection}', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
label: 'value',
email: 'value',
phone: 'value',
url: 'value',
date: 'value',
value: 'value',
is_primary: true,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'label': 'value',
'email': 'value',
'phone': 'value',
'url': 'value',
'date': 'value',
'value': 'value',
'is_primary': True,
}
response = requests.post(
'https://creativeskyline.de/api/contacts/{uuid}/values/{collection}',
headers=headers,
json=payload,
)
data = response.json()
curl -X PATCH "https://creativeskyline.de/api/contacts/{uuid}/values/{collection}/{value_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"label": "value", "is_primary": true}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/contacts/{uuid}/values/{collection}/{value_uuid}', [
'label' => 'value',
'is_primary' => true,
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/values/{collection}/{value_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
label: 'value',
is_primary: true,
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'label': 'value',
'is_primary': True,
}
response = requests.patch(
'https://creativeskyline.de/api/contacts/{uuid}/values/{collection}/{value_uuid}',
headers=headers,
json=payload,
)
data = response.json()
curl -X DELETE "https://creativeskyline.de/api/contacts/{uuid}/values/{collection}/{value_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/contacts/{uuid}/values/{collection}/{value_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/values/{collection}/{value_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/contacts/{uuid}/values/{collection}/{value_uuid}',
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/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/projects');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/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/projects',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/projects" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "client_uuid": "value", "description": "value", "notes": "value", "budget_type": "value", "budget_value": 0, "budget_currency": "value", "budget_interval": "value", "budget_enforcement": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/projects', [
'name' => 'value',
'client_uuid' => 'value',
'description' => 'value',
'notes' => 'value',
'budget_type' => 'value',
'budget_value' => 0,
'budget_currency' => 'value',
'budget_interval' => 'value',
'budget_enforcement' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
client_uuid: 'value',
description: 'value',
notes: 'value',
budget_type: 'value',
budget_value: 0,
budget_currency: 'value',
budget_interval: 'value',
budget_enforcement: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'client_uuid': 'value',
'description': 'value',
'notes': 'value',
'budget_type': 'value',
'budget_value': 0,
'budget_currency': 'value',
'budget_interval': 'value',
'budget_enforcement': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/projects',
headers=headers,
json=payload,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/projects" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "description": "value", "notes": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/projects', [
'name' => 'value',
'description' => 'value',
'notes' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
description: 'value',
notes: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'description': 'value',
'notes': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/projects',
headers=headers,
json=payload,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/projects/{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/projects/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{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/projects/{uuid}',
headers=headers,
)
data = response.json()
curl -X PATCH "https://creativeskyline.de/api/projects/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "value", "description": "value", "notes": "value", "client_uuid": "value", "status": "value", "budget_type": "value", "budget_value": 0, "budget_currency": "value", "budget_interval": "value", "budget_enforcement": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/projects/{uuid}', [
'name' => 'value',
'description' => 'value',
'notes' => 'value',
'client_uuid' => 'value',
'status' => 'value',
'budget_type' => 'value',
'budget_value' => 0,
'budget_currency' => 'value',
'budget_interval' => 'value',
'budget_enforcement' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'value',
description: 'value',
notes: 'value',
client_uuid: 'value',
status: 'value',
budget_type: 'value',
budget_value: 0,
budget_currency: 'value',
budget_interval: 'value',
budget_enforcement: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'name': 'value',
'description': 'value',
'notes': 'value',
'client_uuid': 'value',
'status': 'value',
'budget_type': 'value',
'budget_value': 0,
'budget_currency': 'value',
'budget_interval': 'value',
'budget_enforcement': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/projects/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
curl -X DELETE "https://creativeskyline.de/api/projects/{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/projects/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{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/projects/{uuid}',
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 POST "https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value", "title": "value", "type": "value", "event_date": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline', [
'content' => 'value',
'title' => 'value',
'type' => 'value',
'event_date' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
title: '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',
'title': 'value',
'type': 'value',
'event_date': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline',
headers=headers,
json=payload,
)
data = response.json()
curl -X PATCH "https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content": "value", "title": "value", "type": "value", "event_date": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}', [
'content' => 'value',
'title' => 'value',
'type' => 'value',
'event_date' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'value',
title: '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',
'title': 'value',
'type': 'value',
'event_date': 'value',
}
response = requests.patch(
'https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}',
headers=headers,
json=payload,
)
data = response.json()
curl -X DELETE "https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_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/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/{entry_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/clients/{uuid}/projects/{project_uuid}/timeline/{entry_uuid}',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/bulk-delete" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"entry_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/bulk-delete', [
'entry_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/bulk-delete', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
entry_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'entry_uuids': [],
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/projects/{project_uuid}/timeline/bulk-delete',
headers=headers,
json=payload,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/todos" \
-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}/todos');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/todos', {
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}/todos',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/todos" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value", "due_date": "value", "priority": "value", "completed": true, "recurring_interval": "value", "assigned_user_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/todos', [
'title' => 'value',
'description' => 'value',
'due_date' => 'value',
'priority' => 'value',
'completed' => true,
'recurring_interval' => 'value',
'assigned_user_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/todos', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
due_date: 'value',
priority: 'value',
completed: true,
recurring_interval: 'value',
assigned_user_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
'due_date': 'value',
'priority': 'value',
'completed': True,
'recurring_interval': 'value',
'assigned_user_uuids': [],
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/todos',
headers=headers,
json=payload,
)
data = response.json()
curl -X PATCH "https://creativeskyline.de/api/clients/{uuid}/todos/{todo_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value", "due_date": "value", "priority": "value", "completed": true, "recurring_interval": "value", "expected_due_date": "value", "assigned_user_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/clients/{uuid}/todos/{todo_uuid}', [
'title' => 'value',
'description' => 'value',
'due_date' => 'value',
'priority' => 'value',
'completed' => true,
'recurring_interval' => 'value',
'expected_due_date' => 'value',
'assigned_user_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/todos/{todo_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
due_date: 'value',
priority: 'value',
completed: true,
recurring_interval: 'value',
expected_due_date: 'value',
assigned_user_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
'due_date': 'value',
'priority': 'value',
'completed': True,
'recurring_interval': 'value',
'expected_due_date': 'value',
'assigned_user_uuids': [],
}
response = requests.patch(
'https://creativeskyline.de/api/clients/{uuid}/todos/{todo_uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "3f6c1b2a-9d4e-4c7f-8a1b-5e2d7c9f0a11",
"title": "Wochenbericht senden",
"description": null,
"due_date": "2026-10-16",
"priority": "medium",
"completed": false,
"completed_at": null,
"recurring_interval": "weekly",
"assigned_user_uuids": [],
"created_at": "2026-10-01T08:00:00+00:00",
"updated_at": "2026-10-09T09:30:00+00:00"
},
"completed_occurrence": {
"uuid": "b81d4c7e-2a5f-4e3b-9c6d-1f0a8e7b6c22",
"title": "Wochenbericht senden",
"description": null,
"due_date": "2026-10-09",
"priority": "medium",
"completed": true,
"completed_at": "2026-10-09T09:30:00+00:00",
"recurring_interval": null,
"assigned_user_uuids": [],
"created_at": "2026-10-09T09:30:00+00:00",
"updated_at": "2026-10-09T09:30:00+00:00"
}
}
curl -X DELETE "https://creativeskyline.de/api/clients/{uuid}/todos/{todo_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/clients/{uuid}/todos/{todo_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/todos/{todo_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/clients/{uuid}/todos/{todo_uuid}',
headers=headers,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/metadata" \
-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}/metadata');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/metadata', {
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}/metadata',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"tags": [],
"available_tags": [],
"sources": [
"messe-2026"
],
"custom_field_definitions": [
{
"uuid": "7c1f9a3b-42d5-4e88-9a10-b6c3f2d51e04",
"name": "Branche",
"type": "text",
"reference_source": null,
"decimals": null,
"currency": null,
"options": []
},
{
"uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Vertragsende",
"type": "date",
"reference_source": null,
"decimals": null,
"currency": null,
"options": []
},
{
"uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"reference_source": null,
"decimals": 2,
"currency": "EUR",
"options": []
}
],
"custom_field_values": [
{
"definition_uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Vertragsende",
"type": "date",
"value": "2026-12-31",
"currency": null,
"reference": null
},
{
"definition_uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"value": "12500.00",
"currency": "EUR",
"reference": null
}
]
}
}
curl -X PATCH "https://creativeskyline.de/api/clients/{uuid}/metadata" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"add_tag_uuids": [], "remove_tag_uuids": [], "add_sources": [], "remove_sources": [], "custom_fields": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/clients/{uuid}/metadata', [
'add_tag_uuids' => [],
'remove_tag_uuids' => [],
'add_sources' => [],
'remove_sources' => [],
'custom_fields' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/metadata', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
add_tag_uuids: [],
remove_tag_uuids: [],
add_sources: [],
remove_sources: [],
custom_fields: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'add_tag_uuids': [],
'remove_tag_uuids': [],
'add_sources': [],
'remove_sources': [],
'custom_fields': [],
}
response = requests.patch(
'https://creativeskyline.de/api/clients/{uuid}/metadata',
headers=headers,
json=payload,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/files" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/clients/{uuid}/files');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/files', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/clients/{uuid}/files',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/files" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"file": "value", "name": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/files', [
'file' => 'value',
'name' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/files', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
file: 'value',
name: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'file': 'value',
'name': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/files',
headers=headers,
json=payload,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/files/{file_uuid}/download" \
-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}/files/{file_uuid}/download');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/files/{file_uuid}/download', {
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}/files/{file_uuid}/download',
headers=headers,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/clients/{uuid}/files/{file_uuid}/text" \
-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}/files/{file_uuid}/text');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/files/{file_uuid}/text', {
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}/files/{file_uuid}/text',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/clients/{uuid}/documents" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "source_markdown": "value", "format": "value", "file_uuid": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/clients/{uuid}/documents', [
'title' => 'value',
'source_markdown' => 'value',
'format' => 'value',
'file_uuid' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/clients/{uuid}/documents', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
source_markdown: 'value',
format: 'value',
file_uuid: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'source_markdown': 'value',
'format': 'value',
'file_uuid': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/clients/{uuid}/documents',
headers=headers,
json=payload,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/contacts/{uuid}/todos" \
-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}/todos');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/todos', {
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}/todos',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/contacts/{uuid}/todos" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value", "due_date": "value", "priority": "value", "completed": true, "recurring_interval": "value", "assigned_user_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/contacts/{uuid}/todos', [
'title' => 'value',
'description' => 'value',
'due_date' => 'value',
'priority' => 'value',
'completed' => true,
'recurring_interval' => 'value',
'assigned_user_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/todos', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
due_date: 'value',
priority: 'value',
completed: true,
recurring_interval: 'value',
assigned_user_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
'due_date': 'value',
'priority': 'value',
'completed': True,
'recurring_interval': 'value',
'assigned_user_uuids': [],
}
response = requests.post(
'https://creativeskyline.de/api/contacts/{uuid}/todos',
headers=headers,
json=payload,
)
data = response.json()
curl -X PATCH "https://creativeskyline.de/api/contacts/{uuid}/todos/{todo_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value", "due_date": "value", "priority": "value", "completed": true, "recurring_interval": "value", "expected_due_date": "value", "assigned_user_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/contacts/{uuid}/todos/{todo_uuid}', [
'title' => 'value',
'description' => 'value',
'due_date' => 'value',
'priority' => 'value',
'completed' => true,
'recurring_interval' => 'value',
'expected_due_date' => 'value',
'assigned_user_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/todos/{todo_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
due_date: 'value',
priority: 'value',
completed: true,
recurring_interval: 'value',
expected_due_date: 'value',
assigned_user_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
'due_date': 'value',
'priority': 'value',
'completed': True,
'recurring_interval': 'value',
'expected_due_date': 'value',
'assigned_user_uuids': [],
}
response = requests.patch(
'https://creativeskyline.de/api/contacts/{uuid}/todos/{todo_uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "3f6c1b2a-9d4e-4c7f-8a1b-5e2d7c9f0a11",
"title": "Wochenbericht senden",
"description": null,
"due_date": "2026-10-16",
"priority": "medium",
"completed": false,
"completed_at": null,
"recurring_interval": "weekly",
"assigned_user_uuids": [],
"created_at": "2026-10-01T08:00:00+00:00",
"updated_at": "2026-10-09T09:30:00+00:00"
},
"completed_occurrence": {
"uuid": "b81d4c7e-2a5f-4e3b-9c6d-1f0a8e7b6c22",
"title": "Wochenbericht senden",
"description": null,
"due_date": "2026-10-09",
"priority": "medium",
"completed": true,
"completed_at": "2026-10-09T09:30:00+00:00",
"recurring_interval": null,
"assigned_user_uuids": [],
"created_at": "2026-10-09T09:30:00+00:00",
"updated_at": "2026-10-09T09:30:00+00:00"
}
}
curl -X DELETE "https://creativeskyline.de/api/contacts/{uuid}/todos/{todo_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/contacts/{uuid}/todos/{todo_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/todos/{todo_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/contacts/{uuid}/todos/{todo_uuid}',
headers=headers,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/contacts/{uuid}/metadata" \
-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}/metadata');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/metadata', {
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}/metadata',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"tags": [],
"available_tags": [],
"sources": [
"messe-2026"
],
"custom_field_definitions": [
{
"uuid": "7c1f9a3b-42d5-4e88-9a10-b6c3f2d51e04",
"name": "Branche",
"type": "text",
"reference_source": null,
"decimals": null,
"currency": null,
"options": []
},
{
"uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Vertragsende",
"type": "date",
"reference_source": null,
"decimals": null,
"currency": null,
"options": []
},
{
"uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"reference_source": null,
"decimals": 2,
"currency": "EUR",
"options": []
}
],
"custom_field_values": [
{
"definition_uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Vertragsende",
"type": "date",
"value": "2026-12-31",
"currency": null,
"reference": null
},
{
"definition_uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"value": "12500.00",
"currency": "EUR",
"reference": null
}
]
}
}
curl -X PATCH "https://creativeskyline.de/api/contacts/{uuid}/metadata" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"add_tag_uuids": [], "remove_tag_uuids": [], "add_sources": [], "remove_sources": [], "custom_fields": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/contacts/{uuid}/metadata', [
'add_tag_uuids' => [],
'remove_tag_uuids' => [],
'add_sources' => [],
'remove_sources' => [],
'custom_fields' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/metadata', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
add_tag_uuids: [],
remove_tag_uuids: [],
add_sources: [],
remove_sources: [],
custom_fields: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'add_tag_uuids': [],
'remove_tag_uuids': [],
'add_sources': [],
'remove_sources': [],
'custom_fields': [],
}
response = requests.patch(
'https://creativeskyline.de/api/contacts/{uuid}/metadata',
headers=headers,
json=payload,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/contacts/{uuid}/files" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/contacts/{uuid}/files');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/files', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/contacts/{uuid}/files',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/contacts/{uuid}/files" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"file": "value", "name": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/contacts/{uuid}/files', [
'file' => 'value',
'name' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/files', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
file: 'value',
name: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'file': 'value',
'name': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/contacts/{uuid}/files',
headers=headers,
json=payload,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/contacts/{uuid}/files/{file_uuid}/download" \
-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}/files/{file_uuid}/download');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/files/{file_uuid}/download', {
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}/files/{file_uuid}/download',
headers=headers,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/contacts/{uuid}/files/{file_uuid}/text" \
-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}/files/{file_uuid}/text');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/files/{file_uuid}/text', {
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}/files/{file_uuid}/text',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/contacts/{uuid}/documents" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "source_markdown": "value", "format": "value", "file_uuid": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/contacts/{uuid}/documents', [
'title' => 'value',
'source_markdown' => 'value',
'format' => 'value',
'file_uuid' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/contacts/{uuid}/documents', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
source_markdown: 'value',
format: 'value',
file_uuid: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'source_markdown': 'value',
'format': 'value',
'file_uuid': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/contacts/{uuid}/documents',
headers=headers,
json=payload,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/projects/{uuid}/todos" \
-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}/todos');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/todos', {
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}/todos',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/projects/{uuid}/todos" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value", "due_date": "value", "priority": "value", "completed": true, "recurring_interval": "value", "assigned_user_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/projects/{uuid}/todos', [
'title' => 'value',
'description' => 'value',
'due_date' => 'value',
'priority' => 'value',
'completed' => true,
'recurring_interval' => 'value',
'assigned_user_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/todos', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
due_date: 'value',
priority: 'value',
completed: true,
recurring_interval: 'value',
assigned_user_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
'due_date': 'value',
'priority': 'value',
'completed': True,
'recurring_interval': 'value',
'assigned_user_uuids': [],
}
response = requests.post(
'https://creativeskyline.de/api/projects/{uuid}/todos',
headers=headers,
json=payload,
)
data = response.json()
curl -X PATCH "https://creativeskyline.de/api/projects/{uuid}/todos/{todo_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value", "due_date": "value", "priority": "value", "completed": true, "recurring_interval": "value", "expected_due_date": "value", "assigned_user_uuids": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/projects/{uuid}/todos/{todo_uuid}', [
'title' => 'value',
'description' => 'value',
'due_date' => 'value',
'priority' => 'value',
'completed' => true,
'recurring_interval' => 'value',
'expected_due_date' => 'value',
'assigned_user_uuids' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/todos/{todo_uuid}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
due_date: 'value',
priority: 'value',
completed: true,
recurring_interval: 'value',
expected_due_date: 'value',
assigned_user_uuids: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
'due_date': 'value',
'priority': 'value',
'completed': True,
'recurring_interval': 'value',
'expected_due_date': 'value',
'assigned_user_uuids': [],
}
response = requests.patch(
'https://creativeskyline.de/api/projects/{uuid}/todos/{todo_uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"data": {
"uuid": "3f6c1b2a-9d4e-4c7f-8a1b-5e2d7c9f0a11",
"title": "Wochenbericht senden",
"description": null,
"due_date": "2026-10-16",
"priority": "medium",
"completed": false,
"completed_at": null,
"recurring_interval": "weekly",
"assigned_user_uuids": [],
"created_at": "2026-10-01T08:00:00+00:00",
"updated_at": "2026-10-09T09:30:00+00:00"
},
"completed_occurrence": {
"uuid": "b81d4c7e-2a5f-4e3b-9c6d-1f0a8e7b6c22",
"title": "Wochenbericht senden",
"description": null,
"due_date": "2026-10-09",
"priority": "medium",
"completed": true,
"completed_at": "2026-10-09T09:30:00+00:00",
"recurring_interval": null,
"assigned_user_uuids": [],
"created_at": "2026-10-09T09:30:00+00:00",
"updated_at": "2026-10-09T09:30:00+00:00"
}
}
curl -X DELETE "https://creativeskyline.de/api/projects/{uuid}/todos/{todo_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/projects/{uuid}/todos/{todo_uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/todos/{todo_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/projects/{uuid}/todos/{todo_uuid}',
headers=headers,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/projects/{uuid}/metadata" \
-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}/metadata');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/metadata', {
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}/metadata',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"tags": [],
"available_tags": [],
"sources": [
"messe-2026"
],
"custom_field_definitions": [
{
"uuid": "7c1f9a3b-42d5-4e88-9a10-b6c3f2d51e04",
"name": "Branche",
"type": "text",
"reference_source": null,
"decimals": null,
"currency": null,
"options": []
},
{
"uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Vertragsende",
"type": "date",
"reference_source": null,
"decimals": null,
"currency": null,
"options": []
},
{
"uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"reference_source": null,
"decimals": 2,
"currency": "EUR",
"options": []
}
],
"custom_field_values": [
{
"definition_uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Vertragsende",
"type": "date",
"value": "2026-12-31",
"currency": null,
"reference": null
},
{
"definition_uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"value": "12500.00",
"currency": "EUR",
"reference": null
}
]
}
}
curl -X PATCH "https://creativeskyline.de/api/projects/{uuid}/metadata" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"add_tag_uuids": [], "remove_tag_uuids": [], "add_sources": [], "remove_sources": [], "custom_fields": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->patch('https://creativeskyline.de/api/projects/{uuid}/metadata', [
'add_tag_uuids' => [],
'remove_tag_uuids' => [],
'add_sources' => [],
'remove_sources' => [],
'custom_fields' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/metadata', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
add_tag_uuids: [],
remove_tag_uuids: [],
add_sources: [],
remove_sources: [],
custom_fields: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'add_tag_uuids': [],
'remove_tag_uuids': [],
'add_sources': [],
'remove_sources': [],
'custom_fields': [],
}
response = requests.patch(
'https://creativeskyline.de/api/projects/{uuid}/metadata',
headers=headers,
json=payload,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/projects/{uuid}/files" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->get('https://creativeskyline.de/api/projects/{uuid}/files');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/files', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
},
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
response = requests.get(
'https://creativeskyline.de/api/projects/{uuid}/files',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/projects/{uuid}/files" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"file": "value", "name": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/projects/{uuid}/files', [
'file' => 'value',
'name' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/files', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
file: 'value',
name: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'file': 'value',
'name': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/projects/{uuid}/files',
headers=headers,
json=payload,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/projects/{uuid}/files/{file_uuid}/download" \
-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}/files/{file_uuid}/download');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/files/{file_uuid}/download', {
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}/files/{file_uuid}/download',
headers=headers,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/projects/{uuid}/files/{file_uuid}/text" \
-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}/files/{file_uuid}/text');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/files/{file_uuid}/text', {
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}/files/{file_uuid}/text',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/projects/{uuid}/documents" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "source_markdown": "value", "format": "value", "file_uuid": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/projects/{uuid}/documents', [
'title' => 'value',
'source_markdown' => 'value',
'format' => 'value',
'file_uuid' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/projects/{uuid}/documents', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
source_markdown: 'value',
format: 'value',
file_uuid: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'source_markdown': 'value',
'format': 'value',
'file_uuid': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/projects/{uuid}/documents',
headers=headers,
json=payload,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/tags" \
-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/tags');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/tags', {
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/tags',
headers=headers,
)
data = response.json()
{
"success": true,
"data": [
{
"uuid": "b2c1a7a6-1249-4827-b533-ef1c65c1e273",
"title": "VIP",
"slug": "vip",
"description": null
}
],
"meta": {
"current_page": 1,
"per_page": 50,
"total": 1,
"last_page": 1
}
}
curl -X POST "https://creativeskyline.de/api/tags" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title": "value", "description": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/tags', [
'title' => 'value',
'description' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/tags', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'value',
description: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'title': 'value',
'description': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/tags',
headers=headers,
json=payload,
)
data = response.json()
{
"success": true,
"created": true,
"restored": false,
"data": {
"uuid": "b2c1a7a6-1249-4827-b533-ef1c65c1e273",
"title": "VIP",
"slug": "vip",
"description": null
}
}
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"
},
{
"definition_uuid": "5e2a9c71-3b0d-4f86-a1c4-7d9e0b6f2a38",
"name": "Wunschtermin",
"type": "date",
"value": "2026-12-31"
},
{
"definition_uuid": "b84d1f06-9a2e-4c53-8e7b-0f3a6d5c9e12",
"name": "Jahresbudget",
"type": "currency",
"value": "12500.00",
"currency": "EUR"
}
],
"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/leads/reports/funnel" \
-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/reports/funnel');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/reports/funnel', {
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/reports/funnel',
headers=headers,
)
data = response.json()
{
"success": true,
"data": {
"stages": [
{
"status_uuid": "123e4567-e89b-12d3-a456-426614174000",
"name": "Erstkontakt",
"leads": 12,
"value": 48000
}
],
"without_status": 3
}
}
curl -X GET "https://creativeskyline.de/api/leads/reports/assignments" \
-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/reports/assignments');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/reports/assignments', {
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/reports/assignments',
headers=headers,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/leads/reports/sources" \
-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/reports/sources');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/reports/sources', {
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/reports/sources',
headers=headers,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/leads/{uuid}/duplicates" \
-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}/duplicates');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/leads/{uuid}/duplicates', {
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}/duplicates',
headers=headers,
)
data = response.json()
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"
}
}