Eine moderne REST API zur Verwaltung von privaten Kontakten, Timeline-Einträgen und persönlichen Details. Perfekt für Integrationen, Daten-Synchronisation und individuelle Beziehungs-Management-Tools.
https://creativeskyline.de/api/flowcontacts/contacts
Bevor Sie die API nutzen können, benötigen Sie Ihre persönlichen Zugangsdaten:
Alle API-Anfragen benötigen diese HTTP-Header:
Authorization: Bearer pk_dein_api_key Accept: application/json
https://creativeskyline.de/api/flowcontacts/contacts
/api/flowcontacts/contacts
Ruft eine Liste Ihrer persönlichen Kontakte ab. Die Antwort enthält alle verknüpften Daten wie E-Mails, Telefonnummern und Adressen.
status
string
Filter nach Status: active, archived, all
search
string
Suchbegriff (Name, Firma, Job, E-Mail)
per_page
integer
Anzahl der Ergebnisse (max 200)
/api/flowcontacts/contacts/{uuid}
Ruft die vollständigen Details eines einzelnen Kontakts ab, inklusive E-Mails, Telefonnummern und Adressen. Empfohlener Weg ist die Adressierung per UUID. Übergangsweise wird zusätzlich die numerische ID akzeptiert (/api/flowcontacts/contacts/123) – dieser Weg ist veraltet und läuft aus, sobald die FlowContacts-App vollständig auf UUIDs umgestellt ist. Neue Integrationen dürfen ausschließlich UUIDs verwenden. Die Antwort enthält neben uuid übergangsweise wieder das Feld id; Unterobjekte (E-Mails, Telefonnummern, Adressen) tragen weiterhin keine IDs.
/api/flowcontacts/contacts
Erstellt einen neuen privaten Kontakt. Breaking Change: Die frühere Upsert-Semantik über eine uuid im Body existiert nicht mehr; Aktualisierungen laufen über PUT /api/flowcontacts/contacts/{uuid}.
first_name
string
Vorname
last_name
string
Nachname
company
string
Firma
job_title
string
Berufsbezeichnung
email_addresses
array
Array aus E-Mail-Objekten mit label, address und is_primary
phone_numbers
array
Array aus Telefon-Objekten mit label, number und is_primary
/api/flowcontacts/contacts/{uuid}
Aktualisiert einen bestehenden Kontakt per UUID (Teil-Update: nur gesendete Felder werden geschrieben). Übergangsweise wird auch die numerische ID im Pfad akzeptiert; dieser Weg ist veraltet und läuft aus. Ein unbekannter oder fremder Pfadwert ergibt in beiden Formen HTTP 404.
first_name
string
Vorname
last_name
string
Nachname
company
string
Firma
job_title
string
Berufsbezeichnung
email_addresses
array
Array aus E-Mail-Objekten mit label, address und is_primary
phone_numbers
array
Array aus Telefon-Objekten mit label, number und is_primary
/api/flowcontacts/contacts/{uuid}
Löscht einen Kontakt per UUID (Soft-Delete). Übergangsweise wird auch die numerische ID im Pfad akzeptiert; dieser Weg ist veraltet und läuft aus. Ein unbekannter oder fremder Pfadwert ergibt in beiden Formen HTTP 404.
/api/flowcontacts/contacts/{uuid}/avatar
Lädt das Profilbild eines Kontakts als multipart/form-data hoch und ersetzt ein vorhandenes Bild. Das Bild wird serverseitig auf 500×500 Pixel zugeschnitten und als JPEG gespeichert, ein zuvor hinterlegtes Bild wird entfernt. Erlaubt sind JPEG, PNG und WebP bis 8 MB. HEIC und HEIF werden nicht unterstützt – iOS-Clients konvertieren vor dem Upload nach JPEG. Profilbilder sind bewusst nicht Teil des Sync-Push-Protokolls; Änderungen erkennen Clients über avatar_sha1 im Sync-Pull.
avatar
file
*
Bilddatei als multipart/form-data-Feld (JPEG, PNG oder WebP, max. 8 MB)
/api/flowcontacts/contacts/{uuid}/avatar
BINARY
Liefert die Bilddaten des Profilbilds, in der Regel als image/jpeg. Die Antwort trägt einen ETag mit dem SHA-1 der Bytes; ein Aufruf mit If-None-Match wird mit 304 Not Modified ohne Inhalt beantwortet. Externe Profilbilder, etwa aus Google Kontakte, werden per 302 auf ihre Original-URL weitergeleitet. Ohne hinterlegtes Bild antwortet der Endpunkt mit 404. Wichtig: die URL ist wie jeder andere Endpunkt tokengeschützt – sie muss mit dem Authorization-Header abgerufen werden und funktioniert nicht in einem einfachen Bild-Tag.
/api/flowcontacts/contacts/{uuid}/avatar
Entfernt das Profilbild des Kontakts samt gespeicherter Datei. Der Aufruf ist idempotent: auch ohne hinterlegtes Bild antwortet der Server mit 204 No Content.
https://creativeskyline.de/api/flowcontacts/contacts
curl -X POST "BASE_URL/api/flowcontacts/contacts" \
-H "Authorization: Bearer pk_dein_api_key" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Erika",
"last_name": "Mustermann",
"job_title": "Designerin",
"email_addresses": [
{ "label": "Geschäftlich", "address": "erika@muster.de" }
]
}'curl -X POST "BASE_URL/api/flowcontacts/contacts/{uuid}/avatar" \
-H "Authorization: Bearer pk_dein_api_key" \
-F "avatar=@profilbild.jpg"
# Bytes abrufen (Header ist Pflicht, auch fuer das Bild selbst)
curl "BASE_URL/api/flowcontacts/contacts/{uuid}/avatar" \
-H "Authorization: Bearer pk_dein_api_key" \
-o profilbild.jpg
# Nur laden, wenn sich das Bild geaendert hat
curl "BASE_URL/api/flowcontacts/contacts/{uuid}/avatar" \
-H "Authorization: Bearer pk_dein_api_key" \
-H 'If-None-Match: "<avatar_sha1>"'
/api/flowcontacts/contacts
curl -X GET "https://creativeskyline.de/api/flowcontacts/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/flowcontacts/contacts');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/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/flowcontacts/contacts',
headers=headers,
)
data = response.json()
{
"data": [
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"id": 1042,
"first_name": "Max",
"last_name": "Mustermann",
"company": "Firma GmbH",
"job_title": null,
"notes": null,
"birthday": null,
"avatar_url": null,
"avatar_sha1": null,
"is_shared": false,
"is_own": true,
"status": "active",
"emails": [
{
"label": "Privat",
"address": "max@example.com",
"is_primary": true
}
],
"phones": [],
"addresses": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
],
"meta": {
"current_page": 1,
"per_page": 15,
"total": 42
}
}
/api/flowcontacts/contacts/{uuid}
curl -X GET "https://creativeskyline.de/api/flowcontacts/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/flowcontacts/contacts/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/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/flowcontacts/contacts/{uuid}',
headers=headers,
)
data = response.json()
{
"data": {
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"id": 1042,
"first_name": "Max",
"last_name": "Mustermann",
"company": "Firma GmbH",
"job_title": null,
"notes": null,
"birthday": null,
"avatar_url": null,
"avatar_sha1": null,
"is_shared": false,
"is_own": true,
"status": "active",
"emails": [
{
"label": "Privat",
"address": "max@example.com",
"is_primary": true
}
],
"phones": [],
"addresses": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
}
/api/flowcontacts/contacts
curl -X POST "https://creativeskyline.de/api/flowcontacts/contacts" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"first_name": "value", "last_name": "value", "company": "value", "job_title": "value", "email_addresses": [], "phone_numbers": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/flowcontacts/contacts', [
'first_name' => 'value',
'last_name' => 'value',
'company' => 'value',
'job_title' => 'value',
'email_addresses' => [],
'phone_numbers' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/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',
company: 'value',
job_title: 'value',
email_addresses: [],
phone_numbers: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'first_name': 'value',
'last_name': 'value',
'company': 'value',
'job_title': 'value',
'email_addresses': [],
'phone_numbers': [],
}
response = requests.post(
'https://creativeskyline.de/api/flowcontacts/contacts',
headers=headers,
json=payload,
)
data = response.json()
{
"data": {
"uuid": "223e4567-e89b-12d3-a456-426614174111",
"id": 1043,
"first_name": "Erika",
"last_name": "Mustermann",
"company": null,
"job_title": "Designerin",
"notes": null,
"birthday": null,
"avatar_url": null,
"avatar_sha1": null,
"is_shared": false,
"is_own": true,
"status": "active",
"emails": [
{
"label": "Geschäftlich",
"address": "erika@muster.de",
"is_primary": true
}
],
"phones": [],
"addresses": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
}
/api/flowcontacts/contacts/{uuid}
curl -X PUT "https://creativeskyline.de/api/flowcontacts/contacts/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"first_name": "value", "last_name": "value", "company": "value", "job_title": "value", "email_addresses": [], "phone_numbers": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/flowcontacts/contacts/{uuid}', [
'first_name' => 'value',
'last_name' => 'value',
'company' => 'value',
'job_title' => 'value',
'email_addresses' => [],
'phone_numbers' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/contacts/{uuid}', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
first_name: 'value',
last_name: 'value',
company: 'value',
job_title: 'value',
email_addresses: [],
phone_numbers: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'first_name': 'value',
'last_name': 'value',
'company': 'value',
'job_title': 'value',
'email_addresses': [],
'phone_numbers': [],
}
response = requests.put(
'https://creativeskyline.de/api/flowcontacts/contacts/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"data": {
"uuid": "223e4567-e89b-12d3-a456-426614174111",
"id": 1043,
"first_name": "Erika",
"last_name": "Mustermann",
"company": "Muster Design",
"job_title": "Designerin",
"notes": null,
"birthday": null,
"avatar_url": null,
"avatar_sha1": null,
"is_shared": false,
"is_own": true,
"status": "active",
"emails": [
{
"label": "Geschäftlich",
"address": "erika@muster.de",
"is_primary": true
}
],
"phones": [],
"addresses": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T11:00:00+00:00"
}
}
/api/flowcontacts/contacts/{uuid}
curl -X DELETE "https://creativeskyline.de/api/flowcontacts/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/flowcontacts/contacts/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/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/flowcontacts/contacts/{uuid}',
headers=headers,
)
data = response.json()
/api/flowcontacts/contacts/{uuid}/avatar
curl -X POST "https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"avatar": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar', [
'avatar' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
avatar: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'avatar': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar',
headers=headers,
json=payload,
)
data = response.json()
{
"data": {
"avatar_url": "https://creativeskyline.de/api/flowcontacts/contacts/123e4567-e89b-12d3-a456-426614174000/avatar",
"avatar_sha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
"avatar_updated_at": "2026-08-16T10:00:00+00:00"
}
}
/api/flowcontacts/contacts/{uuid}/avatar
curl -X GET "https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar" \
-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/flowcontacts/contacts/{uuid}/avatar');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar', {
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/flowcontacts/contacts/{uuid}/avatar',
headers=headers,
)
data = response.json()
Antwort ist kein JSON-Body.
/api/flowcontacts/contacts/{uuid}/avatar
curl -X DELETE "https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar" \
-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/flowcontacts/contacts/{uuid}/avatar');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar', {
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/flowcontacts/contacts/{uuid}/avatar',
headers=headers,
)
data = response.json()
curl -X GET "https://creativeskyline.de/api/flowcontacts/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/flowcontacts/contacts');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/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/flowcontacts/contacts',
headers=headers,
)
data = response.json()
{
"data": [
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"id": 1042,
"first_name": "Max",
"last_name": "Mustermann",
"company": "Firma GmbH",
"job_title": null,
"notes": null,
"birthday": null,
"avatar_url": null,
"avatar_sha1": null,
"is_shared": false,
"is_own": true,
"status": "active",
"emails": [
{
"label": "Privat",
"address": "max@example.com",
"is_primary": true
}
],
"phones": [],
"addresses": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
],
"meta": {
"current_page": 1,
"per_page": 15,
"total": 42
}
}
curl -X GET "https://creativeskyline.de/api/flowcontacts/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/flowcontacts/contacts/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/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/flowcontacts/contacts/{uuid}',
headers=headers,
)
data = response.json()
{
"data": {
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"id": 1042,
"first_name": "Max",
"last_name": "Mustermann",
"company": "Firma GmbH",
"job_title": null,
"notes": null,
"birthday": null,
"avatar_url": null,
"avatar_sha1": null,
"is_shared": false,
"is_own": true,
"status": "active",
"emails": [
{
"label": "Privat",
"address": "max@example.com",
"is_primary": true
}
],
"phones": [],
"addresses": [],
"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/flowcontacts/contacts" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"first_name": "value", "last_name": "value", "company": "value", "job_title": "value", "email_addresses": [], "phone_numbers": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/flowcontacts/contacts', [
'first_name' => 'value',
'last_name' => 'value',
'company' => 'value',
'job_title' => 'value',
'email_addresses' => [],
'phone_numbers' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/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',
company: 'value',
job_title: 'value',
email_addresses: [],
phone_numbers: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'first_name': 'value',
'last_name': 'value',
'company': 'value',
'job_title': 'value',
'email_addresses': [],
'phone_numbers': [],
}
response = requests.post(
'https://creativeskyline.de/api/flowcontacts/contacts',
headers=headers,
json=payload,
)
data = response.json()
{
"data": {
"uuid": "223e4567-e89b-12d3-a456-426614174111",
"id": 1043,
"first_name": "Erika",
"last_name": "Mustermann",
"company": null,
"job_title": "Designerin",
"notes": null,
"birthday": null,
"avatar_url": null,
"avatar_sha1": null,
"is_shared": false,
"is_own": true,
"status": "active",
"emails": [
{
"label": "Geschäftlich",
"address": "erika@muster.de",
"is_primary": true
}
],
"phones": [],
"addresses": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T10:00:00+00:00"
}
}
curl -X PUT "https://creativeskyline.de/api/flowcontacts/contacts/{uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"first_name": "value", "last_name": "value", "company": "value", "job_title": "value", "email_addresses": [], "phone_numbers": []}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->put('https://creativeskyline.de/api/flowcontacts/contacts/{uuid}', [
'first_name' => 'value',
'last_name' => 'value',
'company' => 'value',
'job_title' => 'value',
'email_addresses' => [],
'phone_numbers' => [],
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/contacts/{uuid}', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
first_name: 'value',
last_name: 'value',
company: 'value',
job_title: 'value',
email_addresses: [],
phone_numbers: [],
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'first_name': 'value',
'last_name': 'value',
'company': 'value',
'job_title': 'value',
'email_addresses': [],
'phone_numbers': [],
}
response = requests.put(
'https://creativeskyline.de/api/flowcontacts/contacts/{uuid}',
headers=headers,
json=payload,
)
data = response.json()
{
"data": {
"uuid": "223e4567-e89b-12d3-a456-426614174111",
"id": 1043,
"first_name": "Erika",
"last_name": "Mustermann",
"company": "Muster Design",
"job_title": "Designerin",
"notes": null,
"birthday": null,
"avatar_url": null,
"avatar_sha1": null,
"is_shared": false,
"is_own": true,
"status": "active",
"emails": [
{
"label": "Geschäftlich",
"address": "erika@muster.de",
"is_primary": true
}
],
"phones": [],
"addresses": [],
"created_at": "2026-07-21T10:00:00+00:00",
"updated_at": "2026-07-21T11:00:00+00:00"
}
}
curl -X DELETE "https://creativeskyline.de/api/flowcontacts/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/flowcontacts/contacts/{uuid}');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/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/flowcontacts/contacts/{uuid}',
headers=headers,
)
data = response.json()
curl -X POST "https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"avatar": "value"}'
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_TOKEN')
->post('https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar', [
'avatar' => 'value',
]);
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
avatar: 'value',
}),
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
payload = {
'avatar': 'value',
}
response = requests.post(
'https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar',
headers=headers,
json=payload,
)
data = response.json()
{
"data": {
"avatar_url": "https://creativeskyline.de/api/flowcontacts/contacts/123e4567-e89b-12d3-a456-426614174000/avatar",
"avatar_sha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
"avatar_updated_at": "2026-08-16T10:00:00+00:00"
}
}
curl -X GET "https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar" \
-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/flowcontacts/contacts/{uuid}/avatar');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar', {
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/flowcontacts/contacts/{uuid}/avatar',
headers=headers,
)
data = response.json()
Antwort ist kein JSON-Body.
curl -X DELETE "https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar" \
-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/flowcontacts/contacts/{uuid}/avatar');
$data = $response->json();
const response = await fetch('https://creativeskyline.de/api/flowcontacts/contacts/{uuid}/avatar', {
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/flowcontacts/contacts/{uuid}/avatar',
headers=headers,
)
data = response.json()