API-Dokumentation

Integrieren Sie Undress-, Gesichtertausch- und Animationsfunktionen in Ihre Anwendung.

API-Schlüssel

Melden Sie sich an, um Ihre API-Schlüssel zu erstellen und zu verwalten.

Anmelden

Autorisierung

Uebergeben Sie Ihren API-Schlüssel im Authorization-Header jeder Anfrage.

Authorization: Bearer <your_api_key>

Undress API

Die Undress API erzeugt ein entkleidetes Bild — oder ein animiertes Video — aus einem Quellfoto. Jede Anfrage benötigt den Header Authorization: Bearer <your_api_key> und einen JSON-Body.

Vier Stile, hier als Unterabschnitte gruppiert:

Stil Ausgabe Credits Endpunkt
Standard Standbild 1 POST /api/v1/undress
Premium v2 Standbild 3 POST /api/v1/undress
Premium v3 Standbild in höchster Qualität 5 POST /api/v3/undress
Video Animiertes mp4 7 initial · 5 Fortsetzung POST /api/v1/undress

standard, premium_v2 und video teilen sich POST /api/v1/undress — wähle über das Feld style, und frage anschließend GET /api/v1/undress/:id ab. source_image ist stets base64-kodiert im Format jpeg, png oder webp, bis zu 12 MB groß. premium_v2 ist der einzige Stil, bei dem mask/automask tatsächlich Wirkung zeigen; bei den anderen v1-Stilen erzeugt der Server die Maske stets automatisch.

Premium v3 hat einen eigenen Endpunkt (POST /api/v3/undress) und zielt stets auf eine explizit ausgewählte Person, benötigt daher einen vorherigen Aufruf der Personenanalyse-API, um die Person auszuwählen. Siehe Premium v3 unten.

Standard

Günstigster Stil — 1 Credit, einzelnes Standbild, servergenerierte Maske, keine Anpassungsmöglichkeiten.

Undress erstellen

POST /api/v1/undress

Parameter Typ Erforderlich Beschreibung
source_image string (base64) ja Base64-kodiertes jpeg/png/webp, bis zu 12 MB.
style string ja Muss "standard" sein.
curl -X POST https://deepstrip.com/api/v1/undress \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"source_image": "<base64_encoded_image>", "style": "standard"}'

Antworten:

201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}

400 {"error": "no_credits"} — das Konto hat keine Credits mehr.

400 {"error": "invalid_params", "errors": ["Image is invalid"]} — Validierung fehlgeschlagen; errors listet die Gründe auf.

400 {"error": "internal_server_error"} — die Anfrage wurde als ungewöhnlich abgelehnt.

Undress-Ergebnis abrufen

GET /api/v1/undress/:id

Frage ab, bis status completed oder failed ist. result ist die Bild-URL.

curl https://deepstrip.com/api/v1/undress/<identifier> \
  -H "Authorization: Bearer <your_api_key>"

200 {"status": "pending"}

200 {"status": "completed", "result": "<result url>", "image": "<result url>"}image ist ein veralteter Alias für result, der aus Gründen der Rückwärtskompatibilität erhalten bleibt.

200 {"status": "failed", "details": "analysis_failed"} — Eingabe wurde abgelehnt (z. B. keine Person erkannt, minderjähriges Motiv). Nicht mit derselben Eingabe erneut versuchen.

200 {"status": "failed", "details": "system_error"} — die Generierung selbst ist fehlgeschlagen. Erneutes Versenden ist unbedenklich.

404 {"error": "NOT_FOUND"}

Premium v2

3 Credits, einzelnes Standbild. Optional benutzerseitig gelieferte oder servergenerierte Maske, plus Knöpfe für Körperform / Brüste / Haare.

Undress erstellen

POST /api/v1/undress

Parameter Typ Erforderlich Beschreibung
source_image string (base64) ja Base64-kodiertes jpeg/png/webp, bis zu 12 MB.
style string ja Muss "premium_v2" sein.
mask string (base64) wenn automask nicht true ist Base64-kodiertes png, bis zu 1 MB. Weiß = Bereich zum Entkleiden, Schwarz = behalten.
automask boolean optional true weist den Server an, die Maske selbst zu erzeugen.
body_shape string optional fat, skinny, athletic oder old. Weglassen für Normal.
boobs string optional small oder large. Weglassen für Normal.
hair string optional hairy oder shaved. Weglassen für Normal.

Mit automatischer Maske und Körperanpassung:

curl -X POST https://deepstrip.com/api/v1/undress \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"source_image": "<base64_encoded_image>", "style": "premium_v2", "automask": true, "body_shape": "athletic", "boobs": "large", "hair": "shaved"}'

Mit benutzerseitig gelieferter Maske:

curl -X POST https://deepstrip.com/api/v1/undress \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"source_image": "<base64_encoded_image>", "mask": "<base64_encoded_mask_png>", "style": "premium_v2"}'

Antworten:

201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}

400 {"error": "no_credits"}

400 {"error": "invalid_params", "errors": ["Image is invalid"]}

400 {"error": "internal_server_error"} — die Anfrage wurde als ungewöhnlich abgelehnt.

Undress-Ergebnis abrufen

GET /api/v1/undress/:id — gleiche Antwortform wie Standard.

Premium v3

Standbild in höchster Qualität — 5 Credits. Im Gegensatz zu den anderen Stilen hat Premium v3 einen eigenen Endpunkt (POST /api/v3/undress) und benötigt einen vorherigen Schritt zur Personenerkennung.

Voraussetzung: Rufe zuerst die Personenanalyse-API auf, um eine person_id zu erhalten. Premium v3 zielt stets auf eine explizit ausgewählte Person — du kannst kein Foto einsenden, ohne vorher auszuwählen, wen du entkleiden möchtest.

Vollständiger Ablauf:

  1. POST /api/v1/persons/analyze mit {image_url} → Analyse-ID erhalten.
  2. GET /api/v1/persons/analyze/:id abfragen, bis completed → Personenliste mit IDs erhalten.
  3. POST /api/v3/undress mit derselben image_url und der gewählten person_id → Undress-ID erhalten.
  4. GET /api/v3/undress/:id abfragen, bis completed oder failed.

Keine mask / automask / Körper-Knöpfe — alles wird aus der gewählten Person abgeleitet.

Undress erstellen

POST /api/v3/undress

Parameter Typ Erforderlich Beschreibung
image_url string ja HTTPS-URL eines jpeg-, png- oder webp-Bildes, bis zu 12 MB. Muss bytegleich mit der für die Personenanalyse verwendeten URL sein.
person_id string ja id der zu entkleidenden Person aus dem persons[]-Array einer completed Analyse, die zu demselben API-Schlüssel gehört.
person_gender string optional Überschreibt das vom Detektor ermittelte Geschlecht dieser Person. Akzeptiert "male" oder "female" (Groß-/Kleinschreibung egal). Nutze diese Option, wenn der Detektor falsch klassifiziert und du den gegenteiligen Workflow erzwingen möchtest.
body_shape string optional, nur für Frauen Erzwingt die Körperform. Einer der Werte: "as_in_photo" (KI behält die ursprüngliche Form, Standard), "fat", "skinny", "athletic".
boobs string optional, nur für Frauen Erzwingt die Brustgröße. Einer der Werte: "as_in_photo" (KI entscheidet, Standard), "small", "large", "huge".
curl -X POST https://deepstrip.com/api/v3/undress \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"image_url": "https://example.com/photo.jpg", "person_id": "6f2a13e4-5b52-4c39-9a7d-29e80a9c1a62"}'

Antworten:

201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}

400 {"error": "invalid_params", "errors": ["image_url is required"]} — fehlendes image_url / person_id, ungültiges person_gender oder Validierung auf Modellebene fehlgeschlagen.

400 {"error": "invalid_person_id"}person_id ist unbekannt, abgelaufen (> 3 Stunden), gehört zu einem anderen API-Schlüssel oder das übergebene image_url passt nicht zu der bei der Analyse verwendeten URL.

400 {"error": "image_fetch_failed"} — der Server konnte das Bild unter image_url nicht herunterladen (nicht HTTPS, kein 2xx, nicht erlaubter Content-Type, > 12 MB, Timeout oder zu viele Redirects).

400 {"error": "under_age"} — das geschätzte Alter der gewählten Person liegt unter 18. Nicht erneut mit dieser Person versuchen.

400 {"error": "no_credits"} — das Konto hat keine Credits mehr.

Erneut generieren (kostenlos, einmal pro Undress)

POST /api/v3/undress/:id/regenerate

Wenn ein Ergebnis unbefriedigend ist, kannst du es mit einem anderen Zufalls-Seed kostenlos erneut generieren. Gleiches Quellbild, gleiche Person, keine Credits. Eine kostenlose Regeneration pro Eltern-Undress, nur innerhalb von 24 Stunden nach dessen Erstellung. Die person_gender-Überschreibung des Eltern-Undress (falls vorhanden) wird geerbt.

curl -X POST https://deepstrip.com/api/v3/undress/<parent_id>/regenerate \
  -H "Authorization: Bearer <your_api_key>"

Antworten:

201 {"id": "<new_undress_id>"} — frage GET /api/v3/undress/:id mit der neuen ID ab.

400 {"error": "already_regenerated"} — die kostenlose Regeneration wurde für diesen Eltern-Undress bereits verwendet.

400 {"error": "parent_expired"} — der Eltern-Undress ist älter als 24 Stunden.

400 {"error": "parent_not_completed"} — der Eltern-Undress ist noch nicht fertig; warte auf completed, bevor du erneut generierst.

400 {"error": "not_v3"} — nur Premium-v3-Undresses können über diesen Endpunkt erneut generiert werden.

404 {"error": "NOT_FOUND"} — die Eltern-ID ist unbekannt oder wurde mit einem anderen API-Schlüssel erstellt.

Undress-Ergebnis abrufen

GET /api/v3/undress/:id

Dieselbe Antwortform wie GET /api/v1/undress/:id.

curl https://deepstrip.com/api/v3/undress/<id> \
  -H "Authorization: Bearer <your_api_key>"

200 {"status": "pending"}

200 {"status": "completed", "result": "<result url>", "image": "<result url>"}image ist ein veralteter Alias für result.

200 {"status": "failed", "details": "analysis_failed"} — Eingabe abgelehnt. Nicht mit derselben Eingabe erneut versuchen.

200 {"status": "failed", "details": "system_error"} — die Generierung selbst ist fehlgeschlagen. Erneutes Senden ist unbedenklich.

404 {"error": "NOT_FOUND"}

Video

Animierte mp4-Ausgabe — 7 Credits für das initiale Video, 5 Credits zum Fortsetzen mit der nächsten Kleidungsschicht. Stets automatisch maskiert, keine Anpassungsmöglichkeiten.

Undress erstellen

POST /api/v1/undress

Parameter Typ Erforderlich Beschreibung
source_image string (base64) ja — außer bei parent Base64-kodiertes jpeg/png/webp, bis zu 12 MB.
style string ja — außer bei parent Muss "video" sein.
parent string (uuid) optional ID eines vorherigen video-Undress, um mit der nächsten Kleidungsschicht fortzufahren. Stil und Quelle werden geerbt; der Parent muss jünger als 24 Stunden sein. Kostet 5 Credits.

Initiales animiertes Undress — 7 Credits:

curl -X POST https://deepstrip.com/api/v1/undress \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"source_image": "<base64_encoded_image>", "style": "video"}'

Vorheriges Video fortsetzen — 5 Credits (Stil und Quelle werden vom parent geerbt):

curl -X POST https://deepstrip.com/api/v1/undress \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"parent": "<id-of-previous-video-undress>"}'

Antworten:

201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}

400 {"error": "no_credits"}

400 {"error": "invalid_params", "errors": ["Image is invalid"]}

400 {"error": "parent_expired"} — der parent-Undress ist älter als 24 Stunden.

400 {"error": "too_many_retries"} — für diesen parent sind keine kostenlosen Regenerierungen mehr übrig.

400 {"error": "internal_server_error"} — die Anfrage wurde als ungewöhnlich abgelehnt.

Undress-Ergebnis abrufen

GET /api/v1/undress/:id — gleiche Antwortform wie Standard; result ist eine mp4-URL statt einer Bild-URL.

Face Swap auf Video-Ergebnis

Gilt nur für abgeschlossene video-Undresses. Führt kostenlos einen Face Swap über dem animierten Ergebnis aus, um die Gesichtskonsistenz zu verbessern; dauert in der Regel 60–120 Sekunden.

POST /api/v1/undress_face_swap_videos

curl -X POST https://deepstrip.com/api/v1/undress_face_swap_videos \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"undress_id": "<id-of-the-video-undress>"}'

201

{
  "id": "69d280ab-42c5-4f49-9881-51076afb1747",
  "face_swap_video_id": "35b4a4a8-e5e6-4613-b1a3-d538b8698d06",
  "undress_id": "69968efe-556d-4805-87bd-1556a49f4e37",
  "undress_result_id": null
}

404 {"error": "NOT_FOUND"} — Undress nicht gefunden, gehört nicht dem Aufrufer oder ist kein video-Stil.

GET /api/v1/undress_face_swap_videos/:id

curl https://deepstrip.com/api/v1/undress_face_swap_videos/<identifier> \
  -H "Authorization: Bearer <your_api_key>"

200 Während der Verarbeitung ist undress_result_id null. Nach Abschluss zeigt undress_result_id auf einen neuen Undress — das Video abrufen via GET /api/v1/undress/:id:

{
  "id": "69d280ab-42c5-4f49-9881-51076afb1747",
  "face_swap_video_id": "35b4a4a8-e5e6-4613-b1a3-d538b8698d06",
  "undress_id": "69968efe-556d-4805-87bd-1556a49f4e37",
  "undress_result_id": "616c2b43-c432-416d-8ecb-470a670fbdee"
}

404 {"error": "NOT_FOUND"}

Personenanalyse-API

Erkennt Personen auf einem Bild, damit du mit Premium v3 gezielt eine bestimmte Person entkleiden kannst. Analysen werden asynchron erstellt und 3 Stunden lang zwischengespeichert. Das Erstellen ist auf 15 Anfragen pro Minute pro API-Schlüssel begrenzt.

Die Bildbytes werden nicht hochgeladen — übergib eine HTTPS-URL; der Detektor lädt sie selbst.

Analyse erstellen

POST /api/v1/persons/analyze

Anfragetext

Parameter Typ Erforderlich Beschreibung
image_url string ja HTTPS-URL eines jpeg-, png- oder webp-Bildes. Muss dieselbe URL sein, die du später an POST /api/v3/undress sendest — sie ist Teil der Person-ID-Prüfung.
curl -X POST https://deepstrip.com/api/v1/persons/analyze \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"image_url": "https://example.com/photo.jpg"}'

Antworten

201 {"id": "a1e0b0c8-..."} — frage GET /api/v1/persons/analyze/:id ab, um das Ergebnis zu erhalten.

400 {"error": "invalid_params", "errors": ["image_url must use HTTPS"]} — fehlende, nicht-HTTPS- oder ungültige URL.

429 {"error": "rate_limited", "retry_after": 37} — mehr als 15 Analysen in der aktuellen Minute für diesen API-Schlüssel. retry_after ist die Zeit in Sekunden bis zum nächsten Fenster.


Analyseergebnis abrufen

GET /api/v1/persons/analyze/:id

Frage den Endpunkt ab, bis status completed oder failed ist. Der Cache-Eintrag läuft 3 Stunden nach Erstellung ab; danach liefert GET 404.

curl https://deepstrip.com/api/v1/persons/analyze/<id> \
  -H "Authorization: Bearer <your_api_key>"

Antworten

200 {"status": "pending"} — Detektor läuft noch.

200 Abgeschlossen mit Personen:

{
  "status": "completed",
  "persons": [
    {
      "id": "6f2a13e4-5b52-4c39-9a7d-29e80a9c1a62",
      "bbox": [112.0, 80.0, 430.0, 920.0],
      "age": 27.3,
      "gender": "female",
      "score": 0.94
    }
  ]
}

Personen, deren Alter oder Geschlecht nicht erkannt werden konnte, werden herausgefiltert. Übergib persons[].id als person_id an POST /api/v3/undress.

200 {"status": "completed", "persons": []} — der Detektor war erfolgreich, fand aber keine erkannten Personen. Kein Fehler; wähle ein anderes Bild.

200 {"status": "failed", "details": "detector_failed"} — der Detektor konnte die URL nicht verarbeiten (nicht erreichbar, ungültiges Bild, Dienstfehler). Später oder mit einer anderen URL erneut versuchen.

404 {"error": "NOT_FOUND"} — unbekannte ID, Cache abgelaufen (> 3 Stunden) oder Analyse gehört zu einem anderen API-Schlüssel.


FaceSwap API

FaceSwap erstellen

POST /api/v1/face_swaps

Akzeptiert das Gesichtsbild und das Zielbild.

Gesichts- und Zielbilder sollten base64-kodierte Bilder im jpeg-, webp- oder png-Format sein.

curl -X POST https://deepstrip.com/api/v1/face_swaps \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"image": "<base64_encoded_image>", "face": "<base64_encoded_face>"}'

Antworten:

201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}

400 {"error": "no_credits"}

400 {"error": "invalid_params", "errors": ["Image is invalid"]}


FaceSwap-Ergebnis abrufen

GET /api/v1/face_swaps/:id

Gibt das generierte Bild oder den Generierungsstatus zurück.

curl https://deepstrip.com/api/v1/face_swaps/<identifier> \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json"

Antworten:

200 {"status": "completed", "image": "<result image url>"}

200 {"status": "pending"}

200 {"status": "failed"}

404 {"error": "NOT_FOUND"}

Face Swap Videos API


Video analysieren

POST /api/v1/face_swap_videos/analyze

Berechnen Sie den Preis für die Verarbeitung eines Videos basierend auf seiner Dauer.

curl -X POST https://deepstrip.com/api/v1/face_swap_videos/analyze \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://example.com/video.mp4", "preview": false, "version": "v2"}'

Antworten:

200 {"price": 4.0, "duration": 20}

400 {"error": "INVALID_VIDEO_URL", "details": ["must be a valid URL", "must use HTTPS"]}

422 Videoabmessungen duerfen 1920x1080 nicht überschreiten — {"error": "ANALYSIS_FAILED", "details": "too_large"}


Face Swap Video erstellen

POST /api/v1/face_swap_videos

Erstellen Sie einen neuen Face-Swap-Video-Auftrag per URL.

curl -X POST https://deepstrip.com/api/v1/face_swap_videos \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://example.com/video.mp4", "face_url": "https://example.com/face.jpg", "preview": false, "version": "v2"}'

Antworten:

201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747", "status": "created", "message": "Face swap video creation started"}

400 {"error": "VALIDATION_ERROR", "details": ["Video is required"]}


Face Swap Video Status abrufen

GET /api/v1/face_swap_videos/:id

Pruefen Sie den Status eines Face-Swap-Video-Auftrags und erhalten Sie die Ergebnis-URL nach Abschluss.

curl https://deepstrip.com/api/v1/face_swap_videos/<identifier> \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json"

Antworten:

200 In Bearbeitung

{
  "id": "69d280ab-42c5-4f49-9881-51076afb1747",
  "status": "processing",
  "progress": 45.5,
  "step": "working",
  "result_url": null,
  "error_details": null
}

200 Abgeschlossen

{
  "id": "69d280ab-42c5-4f49-9881-51076afb1747",
  "status": "completed",
  "progress": 100.0,
  "step": "uploading",
  "result_url": "https://assets.nodress.ai/videos/result.mp4",
  "error_details": null
}

404 {"error": "NOT_FOUND"}

Foto animieren API

Die Foto animieren API wandelt statische Fotos in Videos mit fluessiger, natuerlicher Bewegung um.

Animation erstellen

POST /api/v1/animations

Akzeptiert ein Quellbild und eine Vorlagen-ID, um einen Animationsauftrag zu erstellen.

Das Quellbild sollte eine base64-kodierte Daten-URI im jpeg-, png- oder webp-Format sein (z.B. data:image/jpeg;base64,/9j/4AAQ...).

Verfügbare Vorlagen

Der Parameter template_id ist erforderlich und bestimmt den Animationsstil. preset_id wird aus Gruenden der Abwärtskompatibilitaet ebenfalls akzeptiert (veraltet).

GET /api/v1/animation_templates (auch verfügbar unter /api/v1/animation_presets, veraltet)

curl https://deepstrip.com/api/v1/animation_templates

Beispielantwort:

[{"id": 1, "name": "Missionary POV", "name_de": "Missionarsstellung POV", "name_es": "Misionero POV", ..., "combo": false, "price": 7, "undress_before_animation": false}, ...]

Die Antwort enthält lokalisierte Namen für alle unterstützten Sprachen (en, de, es, pt, fr, ru, zh). Das Feld name enthält den englischen Namen. Jedes name_XX-Feld enthält die Uebersetzung für die jeweilige Sprache, mit Rueckfall auf Englisch, wenn nicht gesetzt. Das Feld undress_before_animation gibt an, ob eine Vorlage den optionalen Undress-vor-Animation-Schritt unterstützt.

Aktuelle Vorlagen:

ID Name Combo Price (credits)
3 Reverse Cowgirl No 7
4 Face Sitting No 7
5 Breast Expansion No 7
6 Doggy Style No 7
8 Cumshot on the face No 7
9 Foot Show No 7
12 Pet Play No 7
13 Squirt No 7
30 Breast Play No 7
16 Breast Play Solo No 7
17 Spooning No 7
18 Deep Throat BBC No 7
19 Blowjob No 7
21 Double Blowjob No 7
7 Dildo Handjob No 7
24 Handjob No 7
26 Two-Hand Handjob No 7
29 Standing Doggy No 7
33 Sex Machine No 7
36 Pussy Fingering No 7
38 Doggy POV No 7
1 Missionary POV No 7
45 Missionary Side View No 7
28 Kissing No 7
46 Lesbian Kissing No 7
47 Gay Kissing No 7
48 Smoking No 7
49 Blowjob POV No 7
79 Ahegao No 7
55 Pregnant No 7
56 Deep Throat with Cumshot BBC Yes 14
57 Two Guys Handjob No 7
58 Rough Blowjob No 7
83 Kissing & Undressing Yes 14
75 Pussy Rubbing No 7
76 Pussy rubbing with creampie Yes 14
77 Riding the gear shift No 7
86 Gains weight quickly No 7
78 Continue Action No 7

Combo-Vorlagen kombinieren zwei Animationsstile und kosten 14 Credits statt 7.

Beispielanfrage:

curl -X POST https://deepstrip.com/api/v1/animations \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"source_image": "<base64_encoded_image>", "template_id": 1}'

Antworten:

201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}

400 {"error": "no_credits"}

400 {"error": "invalid_params", "errors": ["Input is invalid"]}

400 Analyse fehlgeschlagen — Kind erkannt:

{"error": "analysis_failed", "error_details": {"code": "face.child", "underage_persons": [{"age": 17.6, "face": {"x1": 36, "x2": 99, "y1": 103, "y2": 176}, "body": {"x1": 1, "x2": 170, "y1": 72, "y2": 735}}]}}

400 Analyse fehlgeschlagen — kein Gesicht gefunden:

{"error": "analysis_failed", "error_details": {"code": "no_face_found"}}

Eine vorherige Animation fortsetzen

Übergeben Sie parent_id, um eine vorherige Animation zu verlängern. Der neue Clip wird an das Video der Eltern-Animation angehängt. Das letzte Videobild der Eltern-Animation wird immer als Quelle verwendet — ein mitgesendetes source_image wird ignoriert. template_id ist optional und entspricht standardmäßig der Vorlage der Eltern-Animation; übergeben Sie eine andere ID, um den Stil zu wechseln. Die Eltern-Animation muss weniger als 24 Stunden alt sein und ein gespeichertes letztes Bild besitzen.

Mit derselben Vorlage fortsetzen:

curl -X POST https://deepstrip.com/api/v1/animations \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"parent_id": "<id-of-previous-animation>"}'

Mit einer anderen Vorlage fortsetzen:

curl -X POST https://deepstrip.com/api/v1/animations \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"parent_id": "<id-of-previous-animation>", "template_id": 5}'

400 {"error": "parent_expired"} — die Eltern-Animation ist älter als 24 Stunden oder hat kein gespeichertes letztes Bild.

400 {"error": "internal_server_error"} — die Eltern-Animation gehört einem anderen Benutzer oder existiert nicht.

Undress vor Animation

Einige Vorlagen können das Foto vor dem Animieren durch ein Premium-v3-Undress laufen lassen, sodass die Animation von einem entkleideten Bild ausgeht. Dies ist pro Vorlage optional aktivierbar: Prüfe das Feld undress_before_animation, das von GET /api/v1/animation_templates zurückgegeben wird. Es wird nur für Vorlagen berücksichtigt, bei denen dieses Feld true ist, und nur bei einer neuen Animation (es wird ignoriert, wenn parent_id übergeben wird).

Das zwischengeschaltete Undress ist ein normales, im Verlauf sichtbares Premium-v3-Undress, das separat mit 3 Credits zusätzlich zur Animation berechnet wird (eine Standard-Vorlage mit 7 Credits kostet also insgesamt 10 Credits). Das Undress bleibt erhalten, selbst wenn die Animation später fehlschlägt.

Da es die Premium-v3-Pipeline wiederverwendet, funktioniert die Personenauswahl genau wie bei Premium v3: Du übergibst image_url + person_id (nach einer Personenanalyse) anstelle von source_image.

Ablauf:

  1. POST /api/v1/persons/analyze mit {image_url} → Analyse-ID.
  2. GET /api/v1/persons/analyze/:id abfragen, bis completed → Personenliste mit IDs.
  3. POST /api/v1/animations mit undress_before_animation: true, der gleichen image_url, der gewählten person_id und einer template_id, deren undress_before_animation true ist.
  4. GET /api/v1/animations/:id wie gewohnt abfragen.
Parameter Typ Erforderlich Beschreibung
undress_before_animation boolean ja Muss true sein, um diesen Ablauf zu aktivieren.
image_url string ja HTTPS-URL des Quellbildes (jpeg/png/webp, bis zu 12 MB). Muss bytegleich mit der für person_id analysierten URL sein. Ersetzt source_image.
person_id string ja id der zu entkleidenden Person aus einer completed Analyse, die zu demselben API-Schlüssel gehört.
template_id integer ja Eine Vorlage, deren Feld undress_before_animation true ist.
person_gender string optional Überschreibt das vom Detektor ermittelte Geschlecht. "male" oder "female" (Groß-/Kleinschreibung egal).
body_shape string optional, nur für Frauen "as_in_photo" (Standard), "fat", "skinny", "athletic".
boobs string optional, nur für Frauen "as_in_photo" (Standard), "small", "large", "huge".
curl -X POST https://deepstrip.com/api/v1/animations \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"template_id": 1, "undress_before_animation": true, "image_url": "https://example.com/photo.jpg", "person_id": "6f2a13e4-5b52-4c39-9a7d-29e80a9c1a62", "body_shape": "athletic"}'

Antworten (zusätzlich zu den obigen Antworten von Animation erstellen):

201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"} — frage GET /api/v1/animations/:id mit der zurückgegebenen ID ab; zuerst läuft das Undress, dann die Animation.

400 {"error": "invalid_params", "errors": ["image_url is required"]} — fehlendes image_url / person_id oder ungültiges person_gender / body_shape / boobs.

400 {"error": "invalid_person_id"}person_id ist unbekannt, abgelaufen (> 3 Stunden), gehört zu einem anderen API-Schlüssel oder die analysierte URL passt nicht zu image_url.

400 {"error": "image_fetch_failed"} — der Server konnte das Bild unter image_url nicht herunterladen (nicht HTTPS, kein 2xx, nicht erlaubter Content-Type, > 12 MB, Timeout oder zu viele Redirects).

400 {"error": "under_age"} — das geschätzte Alter der gewählten Person liegt unter 18. Nicht erneut mit dieser Person versuchen.


Animationsergebnis abrufen

GET /api/v1/animations/:id

Gibt die generierte Video-URL oder den Generierungsstatus zurück.

curl https://deepstrip.com/api/v1/animations/<identifier> \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json"

Antworten:

200 {"status": "completed", "result": "<result video url>"}

200 {"status": "pending"}

200 {"status": "failed"} — Systemfehler oder unbekannter Fehler

200 Fehlgeschlagen — Kind erkannt:

{"status": "failed", "error_details": {"code": "face.child", "underage_persons": [{"age": 17.6, "face": {"x1": 36, "x2": 99, "y1": 103, "y2": 176}, "body": {"x1": 1, "x2": 170, "y1": 72, "y2": 735}}]}}

200 Fehlgeschlagen — kein Gesicht gefunden:

{"status": "failed", "error_details": {"code": "no_face_found"}}

404 {"error": "NOT_FOUND"}

Änderungsprotokoll

Datum Änderung
22.05.2026 Optionales “Undress vor Animation” zu POST /api/v1/animations hinzugefügt (undress_before_animation + image_url + person_id, Premium v3, 3 Credits zusätzlich). Feld undress_before_animation zu GET /api/v1/animation_templates hinzugefügt.
29.04.2026 "athletic" zu den body_shape-Optionen in Premium v3 (POST /api/v3/undress) hinzugefügt.
24.04.2026 person_gender in Premium v3 vereinfacht: Es werden nur noch "male" und "female" akzeptiert (Aliase "man"/"woman" werden nicht mehr unterstützt). Internes gender_score-Feld aus der Dokumentation der Personenanalyse-Antwort entfernt.
24.04.2026 API-Dokumentation reorganisiert: Undress ist jetzt ein einziger Abschnitt mit Unterabschnitten Standard, Premium v2, Premium v3, Video. Die Premium v3 Beschreibung verlinkt nun explizit die Personenanalyse-API als Voraussetzung.
21.04.2026 Hinzugefügt: POST /api/v3/undress/:id/regenerate — eine kostenlose Regeneration pro Eltern-Undress, gültig 24 Stunden.
21.04.2026 Breaking: Stil premium_v3 aus POST /api/v1/undress entfernt; Premium v3 läuft jetzt über POST /api/v3/undress und benötigt image_url + person_id. Hinzugefügt: POST /api/v1/persons/analyze + GET /api/v1/persons/analyze/:id (15 Anfragen/Minute pro API-Schlüssel, 3-Stunden-Cache).
20.04.2026 premium_v3-Preis von 10 Credits auf 5 Credits reduziert
19.04.2026 Undress-API-Abschnitt neu geschrieben; URL /api/v1/undress_face_swap_videos (Plural) korrigiert, Feld details bei failed dokumentiert, too_many_retries/parent_expired/internal_server_error hinzugefügt, old zu body_shape-Optionen hinzugefügt
07.04.2026 Premium v3 vereinfacht zu einem einzigen premium_v3 Stil mit 2.0 MP, pauschal 10 Credits
01.04.2026 Premium v3 Stile hinzugefügt
28.03.2026 error_details zu Animation-API-Antworten hinzugefügt (Kindererkennung und kein Gesicht gefunden)
15.03.2026 Combo-Animationsvorlagen hinzugefügt (14 Credits)
24.02.2026 Animationsvoreinstellungen in Animationsvorlagen umbenannt; /api/v1/animation_presets funktioniert weiterhin (veraltet)
03.02.2026 Lokalisierte Namen zum Animationsvoreinstellungen-Endpunkt hinzugefügt
02.02.2026 Endpunkt für Animationsvoreinstellungen-Liste hinzugefügt
01.02.2026 Breaking Update der Foto animieren API
21.01.2026 Foto animieren API hinzugefügt
21.01.2026 Optionen body_shape, boobs, hair für den premium_v2-Stil hinzugefügt
19.12.2025 Einfachen Foto-Gesichtertausch entfernt
13.12.2025 Dokumentation ueber Undress-Videos aktualisiert
12.12.2025 Möglichkeit zur Erstellung von Undress-Videos hinzugefügt
11.12.2025 Veraltete Optionen aus der OpenAPI-Spezifikation entfernt
26.09.2025 Informationen ueber nicht unterstützte Undress-Stile entfernt
30.12.2024 Link zur Beta-Version der API-Dokumentation hinzugefügt
27.12.2024 Face Swap Videos API hinzugefügt
10.12.2024 Versionsfeld zur FaceSwap API hinzugefügt
25.10.2024 FaceSwap API hinzugefügt
18.10.2024 Premium v2 Stil hinzugefügt
21.09.2024 Link zur OpenAPI-Spezifikation hinzugefügt
21.09.2024 Informationen ueber automatische Maskenerstellung hinzugefügt
16.09.2024 Link zur Preisseite hinzugefügt
11.05.2024 curl-Verwendungsbeispiel hinzugefügt
10.05.2024 API-Dokumentation aktualisiert und mit aktueller Version synchronisiert