Jobs
Stand von Hintergrund-Aufträgen (Erzeugen, Löschen, Umwandeln)
Hintergrund-Aufträge auflisten
/v1/jobsread:assetsRecht: Outreach PlattformliestAlle Aufträge des Kontos, neueste zuerst, über alle Arten gemischt. Mehrere Filter werden mit UND verknüpft. lead_id findet die Video-Aufträge, die diesen Lead verarbeiten (auch Aufträge für eine ganze Liste, höchstens die 100 neuesten); Landingpages und Löschungen laufen je Liste, dafür list_id nutzen. Seitenweise über meta.next_cursor: Der Cursor merkt sich Zeitpunkt und ID des letzten Eintrags, darum gibt es beim Blättern keine Doppelten und keine Lücken, auch wenn inzwischen neue Aufträge dazukommen.
| kind | Auftrag | progress |
|---|---|---|
| landing_page | Persönliche Landingpages für eine Liste | erzeugte Seiten von allen, wie im Impact Studio; null bei failed und cancelled |
| video | Personalisierte Videos für einen Lead oder eine Liste | fertige plus fehlgeschlagene Videos von allen, wie im Fortschrittsfenster der App |
| list_deletion | Liste samt aller Leads löschen | gelöschte Leads von allen; null bei failed |
| video_conversion | Aufnahme schneiden und in MP4 wandeln, Sprachaufnahmen in M4A | null solange es läuft, 100 wenn fertig (die App zeigt hier auch keinen Prozentwert) |
| salutation | Anreden-Erkennung (Herr/Frau) für eine Liste oder ausgewählte Leads | geprüfte Leads von allen wie im Fortschrittsfenster der App, 100 sobald die Vorschläge bereitstehen; null bei failed und cancelled |
So bilden sich die Statuswerte der App auf die fünf der API ab:
| status | landing_page | video | list_deletion | video_conversion | salutation |
|---|---|---|---|---|---|
| queued | pending | kommt nicht vor | pending | queued | queued |
| running | generating | running | processing | processing | processing |
| succeeded | completed, completed_with_errors | completed, completed_with_errors | completed, completed_with_errors | done | review_ready, applying, completed |
| failed | failed | failed | failed | error | failed |
| cancelled | stopped | kommt nicht vor | kommt nicht vor | kommt nicht vor | cancelled |
error ist immer ein lesbarer Text, nie eine technische Meldung. Bei succeeded mit einzelnen Fehlschlägen (z. B. 3 von 120 Landingpages) steht die Zahl in result.failed und die Erklärung in error. Abfragen kostet keine Credits.
salutation: succeeded heißt, die Erkennung ist fertig und die Vorschläge stehen bereit. An den Leads stehen die Anreden erst, wenn jemand sie in der App bestätigt (result.applied wird true). Vorschläge, die 7 Tage niemand bestätigt, verwirft dealsky; der Auftrag steht dann auf cancelled.
Query-Parameter
limitintegerab 1bis 100Einträge pro Seite (Standard 25, höchstens 100)
cursorstringmax. 200 ZeichenWert aus meta.next_cursor der vorigen Seite
kindListe aus stringEine oder mehrere Arten, kommagetrennt
landing_pagevideolist_deletionvideo_conversionsalutationstatusListe aus stringEin oder mehrere Status, kommagetrennt, z. B. queued,running für alles, was noch läuft
queuedrunningsucceededfailedcancelledlead_idstring (uuid)Nur Video-Aufträge, die diesen Lead verarbeiten
list_idstring (uuid)Nur Aufträge zu dieser Liste
created_afterstring (date-time)Nur Aufträge, die seitdem gestartet wurden
Felder der Antwort
idstring (uuid)ID des Auftrags (bei startenden Endpunkten als job_id in der Antwort)
kindstringArt des Auftrags (Tabelle oben)
landing_pagevideolist_deletionvideo_conversionsalutationstatusstringqueued wartet, running läuft, succeeded ist durch (einzelne Fehlschläge stehen in result.failed), failed ist gescheitert, cancelled wurde gestoppt
queuedrunningsucceededfailedcancelledprogressinteger, kann null seinab 0bis 100Fortschritt in Prozent wie in der App, je Art berechnet (Tabelle oben). null, wo die App keinen Wert zeigt
namestring, kann null seinAnzeigename wie in der App: Vorlage (landing_page), Liste (list_deletion, salutation), Aufnahme (video_conversion)
created_atstring (date-time)Anlagezeitpunkt des Auftrags (ISO 8601, UTC)
updated_atstring (date-time), kann null seinLetzte Änderung am Auftrag (ISO 8601, UTC), ohne eigenen Wert der Anlagezeitpunkt. Bei video_conversion der Abschluss
finished_atstring (date-time), kann null seinZeitpunkt des Abschlusses, null solange der Auftrag läuft
errorstring, kann null seinLesbare Erklärung bei failed oder bei Teil-Fehlschlägen, nie eine technische Meldung
resultobjectErgebnis je Art; Felder, die für die Art nicht gelten, sind null
Felder anzeigen
totalinteger, kann null seinEinheiten im Auftrag: Landingpages, Videos bzw. Leads der Liste (salutation: geprüfte Leads ohne Anrede)
succeededinteger, kann null seindavon fertig (list_deletion: gelöscht, salutation: Anrede erkannt, in der App „Vorschläge“)
failedinteger, kann null seindavon fehlgeschlagen (salutation: keine sichere Anrede, in der App „manuell prüfen“)
template_idstring (uuid), kann null seinlanding_page: verwendete Vorlage (GET /v1/landing-page-templates/{id})
video_urlstring, kann null seinvideo: fertiges Video, nur bei einem Auftrag für genau einen Lead (bei Listen steht es je Lead in personalized_video_url). video_conversion: das fertige MP4
thumbnail_urlstring, kann null seinVorschaubild zu video_url
audio_urlstring, kann null seinvideo_conversion einer Sprachaufnahme: die fertige M4A-Datei
asset_idstring (uuid), kann null seinvideo_conversion: das angelegte Medium in der Mediathek
media_typestring, kann null seinvideo_conversion: Video oder Sprachaufnahme
videoaudioappliedboolean, kann null seinsalutation: true, wenn die erkannten Anreden an den Leads stehen; false, solange die Vorschläge auf Bestätigung in der App warten
lead_idstring (uuid), kann null seinvideo: der Lead, wenn der Auftrag genau einem Lead gilt
list_idstring (uuid), kann null seinListe des Auftrags. Bei list_deletion nach dem Löschen null
Mögliche Fehler
curl -X GET "https://api.dealsky.io/functions/v1/api/v1/jobs" \
-H "X-API-Key: $DEALSKY_API_KEY"const res = await fetch("https://api.dealsky.io/functions/v1/api/v1/jobs", {
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/jobs",
headers={"X-API-Key": os.environ["DEALSKY_API_KEY"]},
)
print(res.json()){
"ok": true,
"data": [
{
"id": "8d2e4f6a-1b3c-4d5e-8f7a-9b0c1d2e3f4a",
"kind": "landing_page",
"status": "running",
"progress": 42,
"name": "Outreach Geschäftsführer",
"created_at": "2026-10-18T10:02:11.004Z",
"updated_at": "2026-10-18T10:05:37.881Z",
"finished_at": null,
"error": null,
"result": {
"total": 120,
"succeeded": 50,
"failed": 1,
"template_id": "7c1d2e3f-4a5b-4c6d-8e7f-9a0b1c2d3e4f",
"video_url": null,
"thumbnail_url": null,
"audio_url": null,
"asset_id": null,
"media_type": null,
"applied": null
},
"lead_id": null,
"list_id": "1f4e2d3c-7b6a-4c5d-9e8f-0a1b2c3d4e5f"
}
],
"meta": {
"request_id": "req_7f3a…",
"next_cursor": null,
"has_more": false
}
}Stand eines Hintergrund-Auftrags
/v1/jobs/{id}read:assetsRecht: Outreach PlattformliestEin Auftrag, egal welcher Art: Landingpages für eine Liste, personalisierte Videos, Löschen einer Liste, Umwandeln einer Aufnahme oder Anreden-Erkennung. Die ID kommt aus GET /v1/jobs oder als job_id von dem Endpunkt, der den Auftrag startet. Zum Warten etwa alle 5 bis 10 Sekunden abfragen, bis status succeeded, failed oder cancelled ist; finished_at ist dann gesetzt.
| kind | Auftrag | progress |
|---|---|---|
| landing_page | Persönliche Landingpages für eine Liste | erzeugte Seiten von allen, wie im Impact Studio; null bei failed und cancelled |
| video | Personalisierte Videos für einen Lead oder eine Liste | fertige plus fehlgeschlagene Videos von allen, wie im Fortschrittsfenster der App |
| list_deletion | Liste samt aller Leads löschen | gelöschte Leads von allen; null bei failed |
| video_conversion | Aufnahme schneiden und in MP4 wandeln, Sprachaufnahmen in M4A | null solange es läuft, 100 wenn fertig (die App zeigt hier auch keinen Prozentwert) |
| salutation | Anreden-Erkennung (Herr/Frau) für eine Liste oder ausgewählte Leads | geprüfte Leads von allen wie im Fortschrittsfenster der App, 100 sobald die Vorschläge bereitstehen; null bei failed und cancelled |
So bilden sich die Statuswerte der App auf die fünf der API ab:
| status | landing_page | video | list_deletion | video_conversion | salutation |
|---|---|---|---|---|---|
| queued | pending | kommt nicht vor | pending | queued | queued |
| running | generating | running | processing | processing | processing |
| succeeded | completed, completed_with_errors | completed, completed_with_errors | completed, completed_with_errors | done | review_ready, applying, completed |
| failed | failed | failed | failed | error | failed |
| cancelled | stopped | kommt nicht vor | kommt nicht vor | kommt nicht vor | cancelled |
error ist immer ein lesbarer Text, nie eine technische Meldung. Bei succeeded mit einzelnen Fehlschlägen (z. B. 3 von 120 Landingpages) steht die Zahl in result.failed und die Erklärung in error. Abfragen kostet keine Credits.
salutation: succeeded heißt, die Erkennung ist fertig und die Vorschläge stehen bereit. An den Leads stehen die Anreden erst, wenn jemand sie in der App bestätigt (result.applied wird true). Vorschläge, die 7 Tage niemand bestätigt, verwirft dealsky; der Auftrag steht dann auf cancelled.
Pfad-Parameter
idstring (uuid)PflichtID des Auftrags
Felder der Antwort
idstring (uuid)ID des Auftrags (bei startenden Endpunkten als job_id in der Antwort)
kindstringArt des Auftrags (Tabelle oben)
landing_pagevideolist_deletionvideo_conversionsalutationstatusstringqueued wartet, running läuft, succeeded ist durch (einzelne Fehlschläge stehen in result.failed), failed ist gescheitert, cancelled wurde gestoppt
queuedrunningsucceededfailedcancelledprogressinteger, kann null seinab 0bis 100Fortschritt in Prozent wie in der App, je Art berechnet (Tabelle oben). null, wo die App keinen Wert zeigt
namestring, kann null seinAnzeigename wie in der App: Vorlage (landing_page), Liste (list_deletion, salutation), Aufnahme (video_conversion)
created_atstring (date-time)Anlagezeitpunkt des Auftrags (ISO 8601, UTC)
updated_atstring (date-time), kann null seinLetzte Änderung am Auftrag (ISO 8601, UTC), ohne eigenen Wert der Anlagezeitpunkt. Bei video_conversion der Abschluss
finished_atstring (date-time), kann null seinZeitpunkt des Abschlusses, null solange der Auftrag läuft
errorstring, kann null seinLesbare Erklärung bei failed oder bei Teil-Fehlschlägen, nie eine technische Meldung
resultobjectErgebnis je Art; Felder, die für die Art nicht gelten, sind null
Felder anzeigen
totalinteger, kann null seinEinheiten im Auftrag: Landingpages, Videos bzw. Leads der Liste (salutation: geprüfte Leads ohne Anrede)
succeededinteger, kann null seindavon fertig (list_deletion: gelöscht, salutation: Anrede erkannt, in der App „Vorschläge“)
failedinteger, kann null seindavon fehlgeschlagen (salutation: keine sichere Anrede, in der App „manuell prüfen“)
template_idstring (uuid), kann null seinlanding_page: verwendete Vorlage (GET /v1/landing-page-templates/{id})
video_urlstring, kann null seinvideo: fertiges Video, nur bei einem Auftrag für genau einen Lead (bei Listen steht es je Lead in personalized_video_url). video_conversion: das fertige MP4
thumbnail_urlstring, kann null seinVorschaubild zu video_url
audio_urlstring, kann null seinvideo_conversion einer Sprachaufnahme: die fertige M4A-Datei
asset_idstring (uuid), kann null seinvideo_conversion: das angelegte Medium in der Mediathek
media_typestring, kann null seinvideo_conversion: Video oder Sprachaufnahme
videoaudioappliedboolean, kann null seinsalutation: true, wenn die erkannten Anreden an den Leads stehen; false, solange die Vorschläge auf Bestätigung in der App warten
lead_idstring (uuid), kann null seinvideo: der Lead, wenn der Auftrag genau einem Lead gilt
list_idstring (uuid), kann null seinListe des Auftrags. Bei list_deletion nach dem Löschen null
Mögliche Fehler
curl -X GET "https://api.dealsky.io/functions/v1/api/v1/jobs/5b0c1e7a-3f1d-4a52-9c1e-8a7d2b6f4e10" \
-H "X-API-Key: $DEALSKY_API_KEY"const res = await fetch("https://api.dealsky.io/functions/v1/api/v1/jobs/5b0c1e7a-3f1d-4a52-9c1e-8a7d2b6f4e10", {
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/jobs/5b0c1e7a-3f1d-4a52-9c1e-8a7d2b6f4e10",
headers={"X-API-Key": os.environ["DEALSKY_API_KEY"]},
)
print(res.json()){
"ok": true,
"data": {
"id": "3f9c2a71-5d4e-4b8a-9c1f-7e6d5a4b3c21",
"kind": "video",
"status": "succeeded",
"progress": 100,
"name": null,
"created_at": "2026-10-18T09:12:04.512Z",
"updated_at": "2026-10-18T09:14:47.103Z",
"finished_at": "2026-10-18T09:14:47.103Z",
"error": null,
"result": {
"total": 1,
"succeeded": 1,
"failed": 0,
"template_id": null,
"video_url": "https://cdn.dealskycloud.com/tenants/9a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d/personalized/5b0c1e7a-3f1d-4a52-9c1e-8a7d2b6f4e10/video_1760778887103.mp4",
"thumbnail_url": "https://cdn.dealskycloud.com/tenants/9a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d/personalized/5b0c1e7a-3f1d-4a52-9c1e-8a7d2b6f4e10/thumbnail_1760778887103.jpg",
"audio_url": null,
"asset_id": null,
"media_type": null,
"applied": null
},
"lead_id": "5b0c1e7a-3f1d-4a52-9c1e-8a7d2b6f4e10",
"list_id": null
},
"meta": {
"request_id": "req_7f3a…"
}
}