Documentação da API
Integre funcionalidades de undress, troca de rosto e animação na sua aplicação.
Autorização
Passe a sua chave de API no cabeçalho Authorization de cada pedido.
Authorization: Bearer <your_api_key>
API Undress
A API Undress gera uma imagem despida — ou um vídeo animado — a partir de uma foto de origem. Cada pedido requer o cabeçalho Authorization: Bearer <your_api_key> e um corpo JSON.
Quatro estilos, agrupados aqui como subsecções:
| Estilo | Saída | Créditos | Endpoint |
|---|---|---|---|
| Standard | Imagem estática | 1 | POST /api/v1/undress |
| Premium v2 | Imagem estática | 3 | POST /api/v1/undress |
| Premium v3 | Imagem estática da máxima qualidade | 5 | POST /api/v3/undress |
| Vídeo | mp4 animado | 7 inicial · 5 ao continuar | POST /api/v1/undress |
standard, premium_v2 e video partilham POST /api/v1/undress — escolha através do campo style e, em seguida, consulte GET /api/v1/undress/:id. source_image é sempre codificado em base64 nos formatos jpeg, png ou webp, até 12 MB. premium_v2 é o único estilo em que mask/automask realmente afetam o comportamento; para os restantes estilos v1, o servidor gera sempre a máscara automaticamente.
Premium v3 vive no seu próprio endpoint (POST /api/v3/undress) e atua sempre sobre uma pessoa explicitamente selecionada, pelo que exige uma chamada prévia à API de Análise de Pessoas para escolher a pessoa. Veja Premium v3 abaixo.
Standard
O estilo mais barato — 1 crédito, uma única imagem estática, máscara gerada pelo servidor, sem opções de personalização.
Criar Undress
POST /api/v1/undress
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
source_image |
string (base64) | sim | Codificado em base64, jpeg/png/webp, até 12 MB. |
style |
string | sim | Deve ser "standard". |
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"}'
Respostas:
201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}
400 {"error": "no_credits"} — a conta está sem créditos.
400 {"error": "invalid_params", "errors": ["Image is invalid"]} — falha de validação; errors lista os motivos.
400 {"error": "internal_server_error"} — o pedido foi rejeitado como anómalo.
Obter Resultado do Undress
GET /api/v1/undress/:id
Consulte até que status seja completed ou failed. result é o URL da imagem.
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 é um alias descontinuado de result, mantido por retrocompatibilidade.
200 {"status": "failed", "details": "analysis_failed"} — a entrada foi rejeitada (p. ex. nenhuma pessoa detetada, sujeito menor de idade). Não repetir com a mesma entrada.
200 {"status": "failed", "details": "system_error"} — a geração em si falhou. Pode repetir o pedido.
404 {"error": "NOT_FOUND"}
Premium v2
3 créditos, uma única imagem estática. Máscara opcional fornecida pelo utilizador ou gerada pelo servidor, além de opções de body_shape / boobs / hair.
Criar Undress
POST /api/v1/undress
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
source_image |
string (base64) | sim | Codificado em base64, jpeg/png/webp, até 12 MB. |
style |
string | sim | Deve ser "premium_v2". |
mask |
string (base64) | quando automask não é true |
png codificado em base64, até 1 MB. Branco = região a despir, preto = manter. |
automask |
boolean | opcional | true indica ao servidor para gerar a máscara. |
body_shape |
string | opcional | fat, skinny, athletic ou old. Omitir para normal. |
boobs |
string | opcional | small ou large. Omitir para normal. |
hair |
string | opcional | hairy ou shaved. Omitir para normal. |
Com auto-máscara e personalização corporal:
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"}'
Com máscara fornecida pelo utilizador:
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"}'
Respostas:
201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}
400 {"error": "no_credits"}
400 {"error": "invalid_params", "errors": ["Image is invalid"]}
400 {"error": "internal_server_error"} — o pedido foi rejeitado como anómalo.
Obter Resultado do Undress
GET /api/v1/undress/:id — mesma estrutura de resposta que Standard.
Premium v3
Imagem estática da máxima qualidade — 5 créditos. Ao contrário dos outros estilos, o Premium v3 vive num endpoint separado (POST /api/v3/undress) e exige um passo prévio de deteção de pessoas.
Pré-requisito: chame primeiro a API de Análise de Pessoas para obter um
person_id. O Premium v3 atua sempre sobre uma pessoa explicitamente selecionada — não é possível enviar uma foto sem escolher antes quem despir.
Fluxo completo:
POST/api/v1/persons/analyzecom{image_url}→ recebe um id de análise.- Consulte
GET /api/v1/persons/analyze/:idatécompleted→ recebe a lista de pessoas com ids. POST /api/v3/undresscom o mesmoimage_urle operson_idescolhido → recebe um id de undress.- Consulte
GET /api/v3/undress/:idatécompletedoufailed.
Sem opções mask / automask / traços corporais — tudo é derivado da pessoa selecionada.
Criar Undress
POST /api/v3/undress
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
image_url |
string | sim | URL HTTPS de uma imagem jpeg, png ou webp, até 12 MB. Deve ser byte-a-byte idêntico ao URL usado na análise de pessoas. |
person_id |
string | sim | id da pessoa a despir, retirado do array persons[] de uma análise completed pertencente à mesma chave de API. |
person_gender |
string | opcional | Substitui o género detetado para esta pessoa. Aceita "male" ou "female" (sem distinção de maiúsculas). Use quando o detetor classifica mal e quer forçar o fluxo oposto. |
body_shape |
string | opcional, apenas mulheres | Força a forma do corpo. Um de "as_in_photo" (a IA mantém a forma original, padrão), "fat", "skinny", "athletic". |
boobs |
string | opcional, apenas mulheres | Força o tamanho do peito. Um de "as_in_photo" (a IA decide, padrão), "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"}'
Respostas:
201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}
400 {"error": "invalid_params", "errors": ["image_url is required"]} — image_url / person_id em falta, person_gender inválido, ou a validação do modelo falhou.
400 {"error": "invalid_person_id"} — person_id desconhecido, expirado (> 3 horas), pertence a outra chave de API, ou o image_url enviado não coincide com o analisado para essa pessoa.
400 {"error": "image_fetch_failed"} — o servidor não conseguiu descarregar a imagem em image_url (não HTTPS, sem 2xx, content-type não permitido, > 12 MB, timeout ou demasiados redirecionamentos).
400 {"error": "under_age"} — a idade estimada da pessoa escolhida é inferior a 18. Não repita com esta pessoa.
400 {"error": "no_credits"} — a conta ficou sem créditos.
Regenerar (gratuito, uma vez por undress)
POST /api/v3/undress/:id/regenerate
Quando o resultado não é satisfatório, pode gerá-lo novamente de graça com outra semente aleatória. Mesma imagem de origem, mesma pessoa, sem custo em créditos. É permitida exatamente uma regeneração gratuita por undress pai, e apenas dentro de 24 horas após a criação do pai. O person_gender do pai (se existir) é herdado.
curl -X POST https://deepstrip.com/api/v3/undress/<parent_id>/regenerate \
-H "Authorization: Bearer <your_api_key>"
Respostas:
201 {"id": "<new_undress_id>"} — consulte GET /api/v3/undress/:id com o novo id.
400 {"error": "already_regenerated"} — a regeneração gratuita já foi usada para este pai.
400 {"error": "parent_expired"} — o undress pai tem mais de 24 horas.
400 {"error": "parent_not_completed"} — o undress pai ainda não terminou; aguarde completed antes de regenerar.
400 {"error": "not_v3"} — apenas undresses premium v3 podem ser regenerados por este endpoint.
404 {"error": "NOT_FOUND"} — id pai desconhecido ou criado por outra chave de API.
Obter Resultado do Undress
GET /api/v3/undress/:id
Mesma estrutura de resposta que 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 é um alias obsoleto de result.
200 {"status": "failed", "details": "analysis_failed"} — entrada rejeitada. Não repita com a mesma entrada.
200 {"status": "failed", "details": "system_error"} — a geração em si falhou. É seguro repetir.
404 {"error": "NOT_FOUND"}
Vídeo
Saída mp4 animada — 7 créditos para o vídeo inicial, 5 créditos para continuar com a próxima camada de roupa. Sempre com auto-máscara, sem opções de personalização.
Criar Undress
POST /api/v1/undress
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
source_image |
string (base64) | sim — exceto ao usar parent |
Codificado em base64, jpeg/png/webp, até 12 MB. |
style |
string | sim — exceto ao usar parent |
Deve ser "video". |
parent |
string (uuid) | opcional | Id de um undress video anterior para continuar com a próxima peça de roupa. O estilo e a imagem de origem são herdados; o pai deve ter menos de 24 horas. Custa 5 créditos. |
Undress animado inicial — 7 créditos:
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"}'
Continuar um vídeo anterior — 5 créditos (estilo e imagem de origem herdados do parent):
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>"}'
Respostas:
201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}
400 {"error": "no_credits"}
400 {"error": "invalid_params", "errors": ["Image is invalid"]}
400 {"error": "parent_expired"} — o undress parent tem mais de 24 horas.
400 {"error": "too_many_retries"} — não há regenerações gratuitas disponíveis para este parent.
400 {"error": "internal_server_error"} — o pedido foi rejeitado como anómalo.
Obter Resultado do Undress
GET /api/v1/undress/:id — mesma estrutura de resposta que Standard; result é um URL mp4 em vez de um URL de imagem.
Face Swap sobre Resultado de Vídeo
Aplica-se apenas a undresses de estilo video concluídos. Executa uma troca de rosto gratuita sobre o resultado animado para melhorar a consistência do rosto; normalmente demora 60–120 segundos.
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 não encontrado, não pertence ao chamador ou não é de estilo video.
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 Durante o processamento, undress_result_id é null. Ao concluir, undress_result_id aponta para um novo undress — obtenha o vídeo 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"}
API de Análise de Pessoas
Deteta pessoas numa imagem para que possa despir uma pessoa específica com Premium v3. As análises são criadas de forma assíncrona e mantidas em cache durante 3 horas. O endpoint está limitado a 15 pedidos por minuto por chave de API.
Não é necessário enviar os bytes da imagem — forneça um URL HTTPS; o detetor obtém-nos sozinho.
Criar análise
POST /api/v1/persons/analyze
Corpo do pedido
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
image_url |
string | sim | URL HTTPS de uma imagem jpeg, png ou webp. Deve ser o mesmo URL que enviará depois a POST /api/v3/undress — faz parte da validação do person_id. |
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"}'
Respostas
201 {"id": "a1e0b0c8-..."} — consulte GET /api/v1/persons/analyze/:id para obter o resultado.
400 {"error": "invalid_params", "errors": ["image_url must use HTTPS"]} — URL em falta, não HTTPS ou malformado.
429 {"error": "rate_limited", "retry_after": 37} — mais de 15 análises no minuto atual para esta chave de API. retry_after é o tempo em segundos até à próxima janela.
Obter resultado da análise
GET /api/v1/persons/analyze/:id
Consulte até o status ser completed ou failed. A entrada do cache expira 3 horas após a criação; depois disso, GET devolve 404.
curl https://deepstrip.com/api/v1/persons/analyze/<id> \
-H "Authorization: Bearer <your_api_key>"
Respostas
200 {"status": "pending"} — o detetor ainda está a correr.
200 Concluído, com pessoas:
{
"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
}
]
}
As pessoas cuja idade ou género não pôde ser reconhecido são filtradas. Passe persons[].id como person_id para POST /api/v3/undress.
200 {"status": "completed", "persons": []} — o detetor correu com sucesso mas não encontrou pessoas reconhecidas. Não é uma falha; escolha outra imagem.
200 {"status": "failed", "details": "detector_failed"} — o detetor não conseguiu processar o URL (inacessível, imagem inválida, erro de serviço). Tente mais tarde ou com outro URL.
404 {"error": "NOT_FOUND"} — id desconhecido, cache expirado (> 3 horas) ou análise criada por outra chave de API.
API FaceSwap
Criar FaceSwap
POST /api/v1/face_swaps
Aceita a imagem do rosto e a imagem de destino.
As imagens do rosto e de destino devem ser imagens codificadas em base64 no formato jpeg, webp ou png.
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>"}'
Respostas:
201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}
400 {"error": "no_credits"}
400 {"error": "invalid_params", "errors": ["Image is invalid"]}
Obter Resultado do FaceSwap
GET /api/v1/face_swaps/:id
Retorna a imagem gerada ou o estado da geração.
curl https://deepstrip.com/api/v1/face_swaps/<identifier> \
-H "Authorization: Bearer <your_api_key>" \
-H "Content-Type: application/json"
Respostas:
200 {"status": "completed", "image": "<result image url>"}
200 {"status": "pending"}
200 {"status": "failed"}
404 {"error": "NOT_FOUND"}
API Face Swap Vídeos
Analisar Vídeo
POST /api/v1/face_swap_videos/analyze
Calcular o preço de processamento de um vídeo com base na sua duração.
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"}'
Respostas:
200 {"price": 4.0, "duration": 20}
400 {"error": "INVALID_VIDEO_URL", "details": ["must be a valid URL", "must use HTTPS"]}
422 as dimensões do vídeo não devem exceder 1920x1080 — {"error": "ANALYSIS_FAILED", "details": "too_large"}
Criar Troca de Rosto em Vídeo
POST /api/v1/face_swap_videos
Criar um novo trabalho de troca de rosto em vídeo usando 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"}'
Respostas:
201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747", "status": "created", "message": "Face swap video creation started"}
400 {"error": "VALIDATION_ERROR", "details": ["Video is required"]}
Obter Estado da Troca de Rosto em Vídeo
GET /api/v1/face_swap_videos/:id
Verificar o estado de um trabalho de troca de rosto em vídeo e obter o URL do resultado quando concluído.
curl https://deepstrip.com/api/v1/face_swap_videos/<identifier> \
-H "Authorization: Bearer <your_api_key>" \
-H "Content-Type: application/json"
Respostas:
200 Em processamento
{
"id": "69d280ab-42c5-4f49-9881-51076afb1747",
"status": "processing",
"progress": 45.5,
"step": "working",
"result_url": null,
"error_details": null
}
200 Concluído
{
"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"}
API Animar Foto
A API Animar Foto converte fotos estáticas em vídeos com movimento suave e natural.
Criar Animação
POST /api/v1/animations
Aceita uma imagem de origem e um ID de template para criar um trabalho de animação.
A imagem de origem deve ser um data URI codificado em base64 no formato jpeg, png ou webp (ex.: data:image/jpeg;base64,/9j/4AAQ...).
Templates Disponíveis
O parâmetro template_id é obrigatório e determina o estilo da animação. preset_id também é aceite para compatibilidade retroativa (descontinuado).
GET /api/v1/animation_templates (também disponível em /api/v1/animation_presets, descontinuado)
curl https://deepstrip.com/api/v1/animation_templates
Exemplo de resposta:
[{"id": 1, "name": "Missionary POV", "name_de": "Missionarsstellung POV", "name_es": "Misionero POV", ..., "combo": false, "price": 7}, ...]
A resposta inclui nomes localizados para todos os idiomas suportados (en, de, es, pt, fr, ru, zh). O campo name contém o nome em inglês. Cada campo name_XX contém a tradução para esse idioma, recorrendo ao inglês se não estiver definido.
Templates atuais:
| 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 |
Os templates combo combinam dois estilos de animação e custam 14 créditos em vez de 7.
Exemplo de pedido:
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}'
Respostas:
201 {"id": "69d280ab-42c5-4f49-9881-51076afb1747"}
400 {"error": "no_credits"}
400 {"error": "invalid_params", "errors": ["Input is invalid"]}
400 Analise falhou — menor detectado:
{"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 Analise falhou — nenhum rosto encontrado:
{"error": "analysis_failed", "error_details": {"code": "no_face_found"}}
Obter Resultado da Animação
GET /api/v1/animations/:id
Retorna o URL do vídeo gerado ou o estado da geração.
curl https://deepstrip.com/api/v1/animations/<identifier> \
-H "Authorization: Bearer <your_api_key>" \
-H "Content-Type: application/json"
Respostas:
200 {"status": "completed", "result": "<result video url>"}
200 {"status": "pending"}
200 {"status": "failed"} — erro do sistema ou falha desconhecida
200 Falhou — menor detectado:
{"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 Falhou — nenhum rosto encontrado:
{"status": "failed", "error_details": {"code": "no_face_found"}}
404 {"error": "NOT_FOUND"}
Registo de alterações
| Data | Alteração |
|---|---|
| 29.04.2026 | Adicionado "athletic" às opções de body_shape no Premium v3 (POST /api/v3/undress). |
| 24.04.2026 | person_gender simplificado em Premium v3: apenas "male" e "female" são aceites (os aliases "man"/"woman" deixam de ser suportados). Campo interno gender_score removido da documentação da resposta de Persons Analysis. |
| 24.04.2026 | Documentação da API reorganizada: Undress agora é uma seção única com subseções Standard, Premium v2, Premium v3, Video. A descrição do Premium v3 agora vincula explicitamente a API de Análise de Pessoas como pré-requisito. |
| 21.04.2026 | Adicionado POST /api/v3/undress/:id/regenerate — uma regeneração gratuita por undress pai, válida 24 horas. |
| 21.04.2026 | Breaking: estilo premium_v3 removido de POST /api/v1/undress; Premium v3 passa a estar em POST /api/v3/undress e exige image_url + person_id. Adicionados POST /api/v1/persons/analyze + GET /api/v1/persons/analyze/:id (15 pedidos/min por chave de API, cache de 3 horas). |
| 20.04.2026 | Preço de premium_v3 reduzido de 10 créditos para 5 créditos |
| 19.04.2026 | Secção da API Undress reescrita; URL /api/v1/undress_face_swap_videos (plural) corrigido, campo details em failed documentado, adicionados too_many_retries/parent_expired/internal_server_error, adicionado old às opções de body_shape |
| 07.04.2026 | Premium v3 simplificado para um unico estilo premium_v3 a 2.0 MP, 10 creditos fixos |
| 01.04.2026 | Adicionados estilos Premium v3 |
| 28.03.2026 | Adicionado error_details às respostas da API de animação (deteção de menores e rosto não encontrado) |
| 15.03.2026 | Adicionados templates de animação combo (14 créditos) |
| 24.02.2026 | Renomeados presets de animação para templates de animação; /api/v1/animation_presets continua a funcionar (descontinuado) |
| 03.02.2026 | Adicionados nomes localizados ao endpoint de presets de animação |
| 02.02.2026 | Adicionado endpoint de lista de presets de animação |
| 01.02.2026 | Atualização com alterações incompatíveis da API Animar Foto |
| 21.01.2026 | Adicionada API Animar Foto |
| 21.01.2026 | Adicionadas opções body_shape, boobs, hair para o estilo premium_v2 |
| 19.12.2025 | Removida troca de rosto básica em fotos |
| 13.12.2025 | Atualizada documentação sobre vídeos de undress |
| 12.12.2025 | Adicionada capacidade de criar vídeos de undress |
| 11.12.2025 | Removidas opções legadas da especificação OpenAPI |
| 26.09.2025 | Removidas informações sobre estilos de undress não suportados |
| 30.12.2024 | Adicionado link para versão beta da documentação da API |
| 27.12.2024 | Adicionada API Face Swap Vídeos |
| 10.12.2024 | Adicionado campo version à API FaceSwap |
| 25.10.2024 | Adicionada API FaceSwap |
| 18.10.2024 | Adicionado estilo premium v2 |
| 21.09.2024 | Adicionado link para especificação OpenAPI |
| 21.09.2024 | Adicionadas informações sobre geração automática de máscara |
| 16.09.2024 | Adicionado link para página de preços |
| 11.05.2024 | Adicionado exemplo de utilização com curl |
| 10.05.2024 | Documentação da API atualizada para sincronizar com a versão atual |