Adult-фильтры
для ваших приложений
Одна точка входа. Одиннадцать пресетов. Отправьте фото и получите готовый результат — при любом объёме, на котором работает ваша платформа.
Создан для работы в продакшене
uncloth.app — это API трансформации изображений для платформ, которым генерируемые изображения нужны как надёжная часть продукта, а не как эксперимент. Вы отправляете фото и нужный пресет. Мы возвращаем готовый результат.
Всё, что стоит за точкой входа, эксплуатируем мы — мощности, очередь, доставку и восстановление. Ваша интеграция — это один аутентифицированный HTTP-вызов и, если нужен прогресс в реальном времени, одно WebSocket-соединение.
Ничто в запросе не зависит от того, насколько мы загружены. Один и тот же вызов ведёт себя одинаково в первый день и на пике нагрузки.
Одно фото, все пресеты
Каждый результат ниже получен из одной и той же исходной фотографии — в запросе менялся только id пресета.






Вам есть 18 лет?
Это необработанные результаты работы API. Подтвердите возраст, чтобы посмотреть.
Одиннадцать пресетов
Передайте feature=<id> вместе с задачей. Если не передать, запрос по умолчанию использует undress. Неизвестный id отклоняется вместе со списком допустимых значений, поэтому опечатка приводит к явной ошибке, а не к чужому изображению.
Четыре вызова от начала до конца
Отправьте фото
Multipart-запрос POST с изображением, пресетом и подтверждением согласия. Идентификатор задачи возвращается сразу.
Отслеживайте
Опрашивайте эндпоинт задачи или подпишитесь на WebSocket, чтобы получать события о ходе работы в реальном времени.
Заберите результат
Завершённая задача содержит идентификатор артефакта. Запросите его с тем же ключом и получите байты изображения.
Повтор без оплаты
Повторите вызов с тем же Idempotency-Key — и получите исходную задачу. Повтор никогда не создаёт второй результат.
Вся интеграция целиком
Один заголовок аутентифицирует каждый вызов. Любой ответ ограничен клиентом, которому принадлежит ключ, — включая задачи, события и результаты.
Базовый URL выдаётся вместе с ключом.
curl -X POST https://api.uncloth.app/api/v1/jobs \
-H "X-API-Key: $UNCLOTH_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-F feature=bikini \
-F consent=confirmed \
-F image=@photo.jpg
# { "data": { "id": "job_...", "status": "queued" } }curl -H "X-API-Key: $UNCLOTH_KEY" \
https://api.uncloth.app/api/v1/jobs/JOB_ID
# { "data": { "status": "succeeded",
# "outputs": [ { "id": "art_..." } ] } }
curl -H "X-API-Key: $UNCLOTH_KEY" \
https://api.uncloth.app/api/v1/artifacts/ART_ID \
-o result.pngСпроектирован, чтобы всегда отвечать
Мы обслуживаем мощности, очередь и путь доставки, чтобы этого не пришлось делать вашей платформе. Это обязательства о том, как сервис построен и эксплуатируется.
Удаляем через 10 минут
Ваше изображение удаляется из наших систем через 10 минут после того, как вы получили результат. Ничего не сохраняется — ни для обучения, ни для проверки, ни для чего-либо ещё.
Целевая доступность 99,9%
Уровень сервиса, на который мы проектируем, работаем и по которому измеряем себя; отслеживается на границе API, а не на отдельном компоненте.
Глобальная инфраструктура
Запросы обслуживаются распределёнными мощностями, поэтому спрос в одном регионе не превращается в очередь для всех остальных.
Автоматическое масштабирование
Мощности следуют за нагрузкой. Всплеск трафика меняет пропускную способность, но не форму API и не то, как ваш код его вызывает.
Отказоустойчивость по умолчанию
Любой отдельный компонент можно вывести из работы или заменить без перерыва, который пришлось бы обрабатывать вам. Работа в процессе восстанавливается, а не теряется.
Изоляция по ключу
Ключ видит только свои задачи, события и результаты. Ответы никогда не раскрывают внутренние идентификаторы или детали инфраструктуры.
Идемпотентность по контракту
Заголовок Idempotency-Key делает повторы безопасными. Повтор возвращает исходную задачу вместо повторного выполнения работы.
Надёжная очередь
Принятая работа фиксируется до начала выполнения и восстанавливается после. Перезапуск в любой точке пути не приводит к потере вашей задачи.
Строгая проверка входных данных
JPEG, PNG и WebP до 20 MiB, проверяются по содержимому, а не только по имени или заявленному типу файла.
Частые вопросы
Как проходит аутентификация?
Заголовок X-API-Key в REST-вызовах. В WebSocket ключ передаётся в первом сообщении после подключения, поэтому он никогда не попадает в URL или лог прокси.
Что будет, если запрос завершится по таймауту?
Повторите его с тем же Idempotency-Key. Вы получите исходную задачу, второй результат не создаётся.
Какие форматы и размеры принимаются?
JPEG, PNG и WebP до 20 MiB. Проверяется фактическое содержимое файла, поэтому переименованный или неверно помеченный файл отклоняется.
Можно ли применить несколько пресетов к одному фото?
Да. Каждый пресет — это отдельная задача, поэтому отправьте по одной задаче на пресет с тем же исходным изображением и отслеживайте их независимо.
Обязательно ли опрашивать статус?
Нет. Подключитесь к WebSocket, пройдите аутентификацию — и вы получите снимок ваших недавних задач, а затем обновления в реальном времени. Опрос остаётся доступен как запасной вариант.
Проверяется ли согласие?
Да. Вызов создания без consent=confirmed отклоняется на границе API. Это обязательное поле и заявление, за которое вы несёте ответственность.
Сколько это стоит?
Цена зависит от объёма и называется вместе с выдачей доступа. Расскажите о своей платформе и ожидаемой нагрузке — мы вернёмся с цифрами.
Храните ли вы мои изображения?
Исходные изображения и результаты хранятся в приватном хранилище и выдаются только тому ключу, который их создал. Условия хранения согласуются при выдаче доступа.
Расскажите, что вы строите
Доступ выдаётся под конкретную интеграцию. Опишите свою платформу, ожидаемый объём и то, как вы собираете согласие людей на изображениях, — и мы вышлем учётные данные и базовый URL.
Публичной регистрации нет. Самостоятельной выдачи ключей нет.
