Auswertung
Kennzahlen und Aktivitäten
Kennzahlen wie die Statistik-Seite
/v1/analytics/overviewread:analyticsRecht: Übersicht und Statistiken ansehenliestDie Zahlen der Seite Kampagnen, Statistiken, mit denselben Formeln: Vernetzungsanfragen und Annahmequote, ausstehende Anfragen, Nachrichten und Antwortquote (Personen mit mindestens einer Nachricht, je Kampagne einmal), wer auf Antwort wartet, der Lücken-Finder (vernetzt, nie angeschrieben, in keiner laufenden Kampagne), Termine, laufende Kampagnen, Stand der Sequenzen, Landingpage-Besuche und dieselben Werte je Kampagne.
Zeitraum wie in der App als Kohorte: Ein Lead zählt, wenn seine Vernetzungsanfrage (sonst seine Vernetzung) im Zeitraum liegt; Leads ohne beides (noch in der Warteschlange) zählen immer. Tage gelten nach deutscher Zeit. Termine sind ein Stand ohne Zeitraum; Landingpage-Zahlen zählen Ereignisse im Zeitraum.
Die Statistik einer einzelnen Kampagne mit Funnel je Schritt steht unter GET /v1/campaigns/{id}/stats; sie rechnet Annahmen zusätzlich aus dem Verlauf und kann leicht abweichen. Sichtbar sind nur Zahlen der LinkedIn-Konten, auf die die Person hinter dem Key Zugriff hat. Bei großen Konten dauert die Antwort einige Sekunden.
Query-Parameter
fromstring (date)Erster Tag (JJJJ-MM-TT, deutsche Zeit), einschließlich
tostring (date)Letzter Tag (JJJJ-MM-TT, deutsche Zeit), einschließlich
account_idstring (uuid)Nur dieses LinkedIn-Konto (siehe /v1/linkedin/accounts)
campaign_idstring (uuid)Nur diese Kampagne (siehe /v1/campaigns)
Felder der Antwort
periodobjectZeitraum; ohne from und to gilt der Gesamtzeitraum
Felder anzeigen
fromstring (date), kann null seinErster Tag des Zeitraums (einschließlich), null ohne from
tostring (date), kann null seinLetzter Tag des Zeitraums (einschließlich), null ohne to
timezonestringZeitzone der Tagesgrenzen, immer Europe/Berlin
filtersobjectFilter, mit denen gerechnet wurde
Felder anzeigen
account_idstring (uuid), kann null seinAngewendeter Kontofilter aus der Query, null ohne Filter
campaign_idstring (uuid), kann null seinAngewendeter Kampagnenfilter aus der Query, null ohne Filter
connectionsobjectVernetzungsanfragen im Ausschnitt
Felder anzeigen
sentintegerLeads mit gesendeter Vernetzungsanfrage
acceptedintegerDavon vernetzt (wie die Annahmequote der App)
acceptance_rateintegerab 0bis 100Annahmequote in Prozent
already_connectedintegerVernetzt ohne Anfrage aus der Kampagne (war schon Kontakt)
pendingintegerAusstehende Vernetzungsanfragen
oldest_pending_daysinteger, kann null seinAlter der ältesten ausstehenden Anfrage in Tagen
messagesobjectNachrichten und Antworten im Ausschnitt
Felder anzeigen
sentintegerGesendete Nachrichten (Text, Sprache, Video, InMail), jede einzeln
messaged_peopleintegerPersonen mit mindestens einer Nachricht, je Kampagne einmal (Nenner der Antwortquote)
replied_peopleintegerDavon mit Antwort
reply_rateinteger, kann null seinab 0bis 100Antwortquote in Prozent; null, wenn noch niemand angeschrieben wurde
repliesintegerSequenz-Einträge mit Antwort, auch ohne Nachricht davor (Funnel-Stufe Geantwortet)
waiting_for_replyobjectAngeschrieben, aber noch keine Antwort (je Person)
Felder anzeigen
countintegerab 0Anzahl der Personen (Leads) insgesamt, auch über die Stichprobe hinaus
lead_idsListe aus string (uuid)Bis zu 50 Lead-IDs (für GET /v1/leads/{id})
idle_connectionsobjectLücken-Finder: vernetzt, nie angeschrieben und in keiner laufenden Kampagne oder Sequenz (je Person)
Felder anzeigen
countintegerab 0Anzahl der Personen (Leads) insgesamt, auch über die Stichprobe hinaus
lead_idsListe aus string (uuid)Bis zu 50 Lead-IDs (für GET /v1/leads/{id})
bookingsintegerLeads mit Termin (Status booked oder Termin gesetzt), Stand heute, ohne Zeitraum
active_campaignsintegerLaufende Kampagnen im Ausschnitt
sequence_statusListe aus objectStand der Leads in den Sequenzen, häufigster zuerst
Felder anzeigen
statusstringStatus des Sequenz-Eintrags, z. B. waiting_for_connection, active, replied; unknown ohne Status
countintegerAnzahl der Sequenz-Einträge mit diesem Status
landing_pagesobjectJe Lead einmal gezählt, Ereignisse im Zeitraum
Felder anzeigen
visitsintegerLeads mit Seitenaufruf im Zeitraum
video_viewsintegerLeads, die das Video gestartet haben
cta_clicksintegerLeads mit Klick auf einen Button
bookingsintegerLeads mit bestätigter Buchung über die Seite
campaignsListe aus objectJe Kampagne, meiste Anfragen zuerst
Felder anzeigen
campaign_idstring (uuid)ID der Kampagne (für GET /v1/campaigns/{id})
namestring, kann null seinName der Kampagne; null, wenn die Person hinter dem Key die Kampagne in der App nicht sieht
statusstring, kann null seinStatus der Kampagne, z. B. active, paused, draft; null wie bei name
leadsintegerSequenz-Einträge im Ausschnitt
connections_sentintegerLeads mit gesendeter Vernetzungsanfrage in dieser Kampagne
connections_acceptedintegerDavon vernetzt
acceptance_rateintegerab 0bis 100Annahmequote in Prozent
messages_sentintegerGesendete Nachrichten (Text, Sprache, Video, InMail) in dieser Kampagne
repliesintegerSequenz-Einträge mit Antwort in dieser Kampagne
reply_rateinteger, kann null seinab 0bis 100Antwortquote in Prozent, null ohne angeschriebene Person
calculated_atstring (date-time)Zeitpunkt der Berechnung (die Zahlen werden bei jedem Aufruf neu gerechnet)
Mögliche Fehler
curl -X GET "https://api.dealsky.io/functions/v1/api/v1/analytics/overview" \
-H "X-API-Key: $DEALSKY_API_KEY"const res = await fetch("https://api.dealsky.io/functions/v1/api/v1/analytics/overview", {
method: "GET",
headers: {
"X-API-Key": process.env.DEALSKY_API_KEY,
},
});
const { ok, data, error } = await res.json();import os, requests
res = requests.request(
"GET",
"https://api.dealsky.io/functions/v1/api/v1/analytics/overview",
headers={"X-API-Key": os.environ["DEALSKY_API_KEY"]},
)
print(res.json()){
"ok": true,
"data": {
"period": {
"from": "2026-10-01",
"to": "2026-10-18",
"timezone": "Europe/Berlin"
},
"filters": {
"account_id": null,
"campaign_id": null
},
"connections": {
"sent": 214,
"accepted": 81,
"acceptance_rate": 38,
"already_connected": 12,
"pending": 96,
"oldest_pending_days": 17
},
"messages": {
"sent": 131,
"messaged_people": 93,
"replied_people": 17,
"reply_rate": 18,
"replies": 19
},
"waiting_for_reply": {
"count": 76,
"lead_ids": [
"5b0c1e7a-3f1d-4a52-9c1e-8a7d2b6f4e10"
]
},
"idle_connections": {
"count": 4,
"lead_ids": [
"7e3d1c2b-9a8f-4e6d-8c5b-4a3f2e1d0c9b"
]
},
"bookings": 6,
"active_campaigns": 3,
"sequence_status": [
{
"status": "waiting_for_connection",
"count": 96
},
{
"status": "active",
"count": 58
},
{
"status": "replied",
"count": 17
}
],
"landing_pages": {
"visits": 22,
"video_views": 9,
"cta_clicks": 4,
"bookings": 2
},
"campaigns": [
{
"campaign_id": "9d2e1f3a-4b5c-4d6e-8f7a-1b2c3d4e5f60",
"name": "Geschäftsführer Logistik",
"status": "active",
"leads": 180,
"connections_sent": 150,
"connections_accepted": 61,
"acceptance_rate": 41,
"messages_sent": 102,
"replies": 14,
"reply_rate": 19
}
],
"calculated_at": "2026-10-18T09:30:00.000Z"
},
"meta": {
"request_id": "req_7f3a…"
}
}Werte je Tag
/v1/analytics/dailyread:analyticsRecht: Übersicht und Statistiken ansehenliestJe Kalendertag (deutsche Zeit): gesendete Vernetzungsanfragen, neue Kontakte, gesendete Nachrichten und eingegangene Antworten. Neue Kontakte sind die Werte der Karten Vernetzungs-Wachstum und Neue Kontakte pro Tag der App, gezählt aus den Kampagnen (Kontakte außerhalb von Kampagnen liest die App live bei LinkedIn, die gibt es hier nicht). Ohne Angabe die letzten 30 Tage bis heute, höchstens 92 Tage. Jeder Wert zählt an dem Tag, an dem es passiert ist, nicht als Kohorte. Sichtbar sind nur Zahlen der LinkedIn-Konten, auf die die Person hinter dem Key Zugriff hat.
Query-Parameter
fromstring (date)Erster Tag (JJJJ-MM-TT, deutsche Zeit), einschließlich
tostring (date)Letzter Tag (JJJJ-MM-TT, deutsche Zeit), einschließlich
account_idstring (uuid)Nur dieses LinkedIn-Konto (siehe /v1/linkedin/accounts)
campaign_idstring (uuid)Nur diese Kampagne (siehe /v1/campaigns)
Felder der Antwort
timezonestringZeitzone der Tagesgrenzen, immer Europe/Berlin
fromstring (date)Erster Tag (einschließlich); ohne Angabe 29 Tage vor to
tostring (date)Letzter Tag (einschließlich); ohne Angabe heute
filtersobjectFilter, mit denen gerechnet wurde
Felder anzeigen
account_idstring (uuid), kann null seinAngewendeter Kontofilter aus der Query, null ohne Filter
campaign_idstring (uuid), kann null seinAngewendeter Kampagnenfilter aus der Query, null ohne Filter
daysListe aus objectJeder Tag des Zeitraums, auch ohne Werte
Felder anzeigen
datestring (date)Kalendertag (JJJJ-MM-TT, deutsche Zeit)
connections_sentintegerLeads, an die an diesem Tag eine Vernetzungsanfrage ging
new_connectionsintegerNeu vernetzte Sequenz-Einträge (Karte „Neue Kontakte / Tag“)
messages_sentintegerGesendete Nachrichten (Text, Sprache, Video, InMail)
repliesintegerEingegangene Antworten (erste Antwort je Sequenz-Eintrag)
totalsobjectSumme der Tage
Felder anzeigen
connections_sentintegerSumme der Vernetzungsanfragen aller Tage
new_connectionsintegerSumme der neuen Kontakte aller Tage
messages_sentintegerSumme der gesendeten Nachrichten aller Tage
repliesintegerSumme der Antworten aller Tage
Mögliche Fehler
curl -X GET "https://api.dealsky.io/functions/v1/api/v1/analytics/daily" \
-H "X-API-Key: $DEALSKY_API_KEY"const res = await fetch("https://api.dealsky.io/functions/v1/api/v1/analytics/daily", {
method: "GET",
headers: {
"X-API-Key": process.env.DEALSKY_API_KEY,
},
});
const { ok, data, error } = await res.json();import os, requests
res = requests.request(
"GET",
"https://api.dealsky.io/functions/v1/api/v1/analytics/daily",
headers={"X-API-Key": os.environ["DEALSKY_API_KEY"]},
)
print(res.json()){
"ok": true,
"data": {
"timezone": "Europe/Berlin",
"from": "2026-10-12",
"to": "2026-10-14",
"filters": {
"account_id": "4c1d2e3f-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
"campaign_id": null
},
"days": [
{
"date": "2026-10-12",
"connections_sent": 0,
"new_connections": 2,
"messages_sent": 0,
"replies": 0
},
{
"date": "2026-10-13",
"connections_sent": 18,
"new_connections": 5,
"messages_sent": 9,
"replies": 2
},
{
"date": "2026-10-14",
"connections_sent": 20,
"new_connections": 7,
"messages_sent": 11,
"replies": 1
}
],
"totals": {
"connections_sent": 38,
"new_connections": 14,
"messages_sent": 20,
"replies": 3
}
},
"meta": {
"request_id": "req_7f3a…"
}
}Aktivitäten-Feed
/v1/analytics/activityread:analyticsRecht: Übersicht und Statistiken ansehenliestNeueste zuerst, wie die Aktivitäten der App: Ereignisse aus dem Verlauf der Leads (LinkedIn-Anfragen, Annahmen, Nachrichten, Antworten, Notizen, Statuswechsel) und aus dem Tracking (Landingpage, Video, Buttons, Buchungen, E-Mail). types filtert auf bestimmte Arten. Mit account_id oder campaign_id nur Ereignisse von Leads, die über dieses Konto bzw. in dieser Kampagne laufen. Inhalte von Nachrichten und Notizen stehen nicht im Feed (wie in der App); den Verlauf eines Leads liefert GET /v1/leads/{id}/activities. Wer nicht Inhaber oder Admin ist, sieht nur Ereignisse von Leads auf eigenen LinkedIn-Konten.
Query-Parameter
limitintegerab 1bis 100Einträge pro Seite (Standard 25, höchstens 100)
cursorstringmax. 200 ZeichenWert aus meta.next_cursor der vorigen Seite
fromstring (date)Erster Tag (JJJJ-MM-TT, deutsche Zeit), einschließlich
tostring (date)Letzter Tag (JJJJ-MM-TT, deutsche Zeit), einschließlich
account_idstring (uuid)Nur dieses LinkedIn-Konto (siehe /v1/linkedin/accounts)
campaign_idstring (uuid)Nur diese Kampagne (siehe /v1/campaigns)
typesListe aus stringmax. 50 EinträgeEine oder mehrere Arten, kommagetrennt, z. B. linkedin_reply_received,booking_confirmed
Felder der Antwort
idstringEindeutig im Feed; act-… aus dem Lead-Verlauf, evt-… aus dem Tracking
sourcestringactivity = Verlauf des Leads (LinkedIn, Notizen, Status), tracking = Landingpage und E-Mail
activitytrackingtypestringArt, z. B. linkedin_connection_sent, linkedin_connection_accepted, linkedin_message_sent, linkedin_reply_received, pageview, video_start, cta_clicked, booking_confirmed
occurred_atstring (date-time)Zeitpunkt des Ereignisses
lead_idstring (uuid), kann null seinLead des Ereignisses (für GET /v1/leads/{id}), null ohne Lead-Bezug
lead_namestring, kann null seinName des Leads, null, wenn unbekannt
companystring, kann null seinFirma des Leads, null, wenn unbekannt
Mögliche Fehler
curl -X GET "https://api.dealsky.io/functions/v1/api/v1/analytics/activity" \
-H "X-API-Key: $DEALSKY_API_KEY"const res = await fetch("https://api.dealsky.io/functions/v1/api/v1/analytics/activity", {
method: "GET",
headers: {
"X-API-Key": process.env.DEALSKY_API_KEY,
},
});
const { ok, data, error } = await res.json();import os, requests
res = requests.request(
"GET",
"https://api.dealsky.io/functions/v1/api/v1/analytics/activity",
headers={"X-API-Key": os.environ["DEALSKY_API_KEY"]},
)
print(res.json()){
"ok": true,
"data": [
{
"id": "act-0f1e2d3c-4b5a-4968-8776-655443322110",
"source": "activity",
"type": "linkedin_reply_received",
"occurred_at": "2026-10-18T08:41:12.000Z",
"lead_id": "5b0c1e7a-3f1d-4a52-9c1e-8a7d2b6f4e10",
"lead_name": "Max Mustermann",
"company": "Beispiel GmbH"
},
{
"id": "evt-1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"source": "tracking",
"type": "pageview",
"occurred_at": "2026-10-18T07:55:03.000Z",
"lead_id": "6c1d2f8b-4a2e-4b63-8d2f-9b8e3c7a5f21",
"lead_name": "Erika Beispiel",
"company": "Muster AG"
}
],
"meta": {
"request_id": "req_7f3a…",
"next_cursor": null,
"has_more": false
}
}