API-Dokumentation
Integrieren Sie Undress-, Gesichtertausch- und Animationsfunktionen in Ihre Anwendung.
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_idzu 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:
POST/api/v1/persons/analyzemit{image_url}→ Analyse-ID erhalten.GET /api/v1/persons/analyze/:idabfragen, biscompleted→ Personenliste mit IDs erhalten.POST /api/v3/undressmit derselbenimage_urlund der gewähltenperson_id→ Undress-ID erhalten.GET /api/v3/undress/:idabfragen, biscompletedoderfailed.
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:
POST/api/v1/persons/analyzemit{image_url}→ Analyse-ID.GET /api/v1/persons/analyze/:idabfragen, biscompleted→ Personenliste mit IDs.POST /api/v1/animationsmitundress_before_animation: true, der gleichenimage_url, der gewähltenperson_idund einertemplate_id, derenundress_before_animationtrueist.GET /api/v1/animations/:idwie 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 |