API для разработчиков
Сжимайте видео до точного размера файла
Отправьте публичный URL видео или загрузите файл. VidSmaller выполняет сжатие асинхронно, сообщает о прогрессе и возвращает готовый к скачиванию результат.
- Обновлено
- Обновлено: 2026-10-17
- Лимиты проверены
- Лимиты проверены: 2026-09-14
- Используются ваши кредиты VidSmaller
- Используются ваши кредиты VidSmaller
На этой странице
Начните за 3 шага
Создайте ключ, отправьте видео, затем опрашивайте задачу или дождитесь подписанного вебхука.
- 1
Создайте ключ
Задайте имя ключа в панели управления. Скопируйте API-ключ и секрет вебхука сразу после их появления: они показываются только один раз.
- 2
Создайте задачу
Отправьте публичный URL или загрузите файл, затем укажите target_size_mb и при необходимости кодек, разрешение и формат.
- 3
Получите результат
Опрашивайте статус задачи или получите подписанный вебхук. Завершённые задачи содержат временную ссылку на скачивание с авторизацией.
Бесплатные эндпоинты только для чтения
Запросы к лимитам платформ и оценке не требуют API-ключа и допускают 600 запросов в час на один IP.
Единый процесс сжатия
Авторизованные задачи используют те же кредиты, лимиты файлов, доступ к кодекам и лимиты всплесков, что и веб-компрессор.
Два способа ввода
Используйте публичную прямую ссылку на видео или запросите подписанный URL для загрузки локального файла.
Стабильный контракт v1
Новые поля могут добавляться, но значение существующих полей v1 не изменится.
Аутентификация и кредиты
Аутентификация нужна только для задач сжатия и загрузок. Эндпоинты платформ и оценки, работающие только на чтение, публичны.
Создавайте ключи в разделе API Keys панели управления. Храните значение целиком в надёжном месте — показать его повторно нельзя.
Authorization: Bearer $VIDSMALLER_API_KEY
У API нет отдельного тарифа. Задачи резервируют кредиты при создании, рассчитываются по фактическому времени кодирования и автоматически возвращают средства при сбое обработки.
/api/v1/platforms
Возвращает все лимиты загрузки, которые отслеживает VidSmaller, вместе с безопасными целевыми размерами, ссылками на источники и датой проверки каждого лимита.
Возвращает 8 платформ. Аутентификация и параметры не требуются.
curl -s https://vidsmaller.com/api/v1/platformsПоля ответа
statedLimitMbnumberЛимит загрузки, заявленный платформой для её основного уровня.
safeTargetMbnumberЧуть более низкий целевой размер, оставляющий запас на разброс кодировщика.
tierNotestring | nullОговорка, когда заявленный лимит зависит от типа аккаунта, приложения или доступа к API.
tiers[]arrayВсе задокументированные бесплатные, платные, ботовые и клиентские уровни с примечаниями.
verifiedAtdateДата последней проверки человеком официальной документации платформы.
sources[]arrayСтраницы-источники, использованные для проверки лимита.
/api/v1/estimate
Проверяет, подходит ли файл для нужной площадки, и оценивает результат заданных настроек сжатия. Параметры запроса GET и тело JSON для POST используют одинаковые имена.
curl -s "https://vidsmaller.com/api/v1/estimate?sizeMb=150.7&durationSeconds=596&platform=discord"Поля запроса
sizeBytesintegerРазмер исходного файла в байтах. Обязателен, если не указан sizeMb.
sizeMbnumberРазмер исходного файла в МиБ, где 1 МБ равен 1 048 576 байт.
durationSecondsnumberНеобязательная длительность. Настоятельно рекомендуется, так как без неё невозможно оценить качество и битрейт.
width, heightintegerНеобязательные размеры исходного видео. Нужны только при оценке изменения разрешения.
platformstringНеобязательный ключ платформы из /api/v1/platforms. Применяет безопасный целевой размер этой платформы.
targetMbnumberНеобязательный собственный предел размера файла. Переопределяет целевой размер выбранной платформы.
settingsobjectНеобязательные настройки компрессора: mode, preset, targetSizeMb, crf, resolution, maxResolution, bitrateKbps, codec и outputFormat.
Поля ответа
verdictstringfits_as_is, compress_recommended или no_target. Можно безопасно использовать в логике приложения.
estimateobject | nullПрогнозируемый результат для указанных настроек. Null, если по входным данным нельзя дать честную оценку.
recommendationobject | nullНастройки, которые должны уложиться в целевой размер, включая расчётный видеобитрейт и рекомендации по качеству.
notes[]string[]Понятные оговорки, которые полезно показать конечному пользователю.
compressUrlstringПодходящий веб-инструмент VidSmaller для тех, кто хочет завершить задачу вручную.
Пример ответа
{
"ok": true,
"input": { "sizeBytes": 158020403, "sizeMb": 150.7, "durationSeconds": 596 },
"target": {
"platform": "discord",
"safeTargetMb": 19,
"statedLimitMb": 20,
"verifiedAt": "2026-09-14"
},
"verdict": "compress_recommended",
"fitsAsIs": false,
"estimate": {
"settings": { "mode": "preset", "preset": "balanced", "codec": "libx264" },
"outputMb": 90.4,
"savedPercent": 40,
"fitsTarget": false,
"jobSeconds": 123
},
"recommendation": {
"settings": { "mode": "target_size", "targetSizeMb": 19 },
"outputMb": 19,
"quality": { "videoKbps": 134, "verdict": "rough" }
}
}/api/v1/video/jobs
Создаёт асинхронную задачу сжатия с целевым размером target_size_mb. Используйте либо публичный URL источника, либо токен загруженного файла.
Вариант A: публичный URL видео
Используйте source_url для общедоступного прямого видеофайла. VidSmaller проверяет реальный размер источника перед резервированием кредитов.
curl -s https://vidsmaller.com/api/v1/video/jobs \
-H "Authorization: Bearer $VIDSMALLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_url": "https://cdn.example.com/input.mp4",
"target_size_mb": 25,
"codec": "h264",
"max_resolution": "1080p",
"webhook_url": "https://example.com/webhooks/vidsmaller"
}'Вариант B: загрузка локального файла
Запросите подписанный URL для загрузки, отправьте байты PUT-запросом напрямую в хранилище, затем создайте задачу с полученным upload_token.
# 1. Request a one-hour signed upload URL
curl -s https://vidsmaller.com/api/v1/video/uploads \
-H "Authorization: Bearer $VIDSMALLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"filename":"input.mp4","file_size":52428800,"content_type":"video/mp4"}'
# 2. PUT the file to upload.url with the returned Content-Type header
# 3. Create the job with the returned upload_token
curl -s https://vidsmaller.com/api/v1/video/jobs \
-H "Authorization: Bearer $VIDSMALLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"upload_token":"UPLOAD_TOKEN","target_size_mb":25}'Поля запроса
source_urlHTTPS URLПубличная прямая ссылка на видео. Используйте либо её, либо upload_token, но не оба сразу.
upload_tokenstringТокен, полученный после запроса подписанного URL для загрузки. Используйте его либо source_url.
target_size_mbnumberОбязательный предел размера результата в МиБ.
codecstringПо умолчанию h264 или h265, если это разрешено платными возможностями аккаунта.
max_resolutionstringНеобязательный предел: 2160p, 1440p, 1080p, 720p, 576p, 480p или 360p.
output_formatstringНеобязательный выходной контейнер: mp4 по умолчанию, mkv, webm или mov.
webhook_urlHTTPS URLНеобязательный коллбэк о завершающем событии. Адреса в приватных сетях и редиректы отклоняются.
Проверка статуса и скачивание
Опрашивайте, пока job.status не станет completed или failed. Завершённая задача возвращает временный download_url с авторизацией. Для запросов статуса и скачивания используйте тот же ключ Bearer.
curl -H "Authorization: Bearer $VIDSMALLER_API_KEY" \
https://vidsmaller.com/api/v1/video/jobs/JOB_IDПодписанные вебхуки
Получайте коллбэк вместо опроса, когда задача достигает конечного состояния.
События: video.job.completed, video.job.failed и video.job.expired.
Проверьте x-vidsmaller-signature вычислив HMAC-SHA256 от timestamp + "." + rawBody.
Используйте секрет подписи вебхуков, показанный при создании API-ключа. Заголовок подписи начинается с v1=.
Ошибки
Ошибки возвращаются в формате JSON. Код статуса подсказывает, нужно ли исправить запрос, повторно авторизоваться, купить кредиты или повторить попытку позже.
400Некорректное или отсутствующее поле запроса.
Прочитайте сообщение об ошибке и исправьте тело запроса.
401API-ключ отсутствует, недействителен или удалён.
Отправьте действительный ключ Bearer или создайте новый.
402Недостаточно кредитов для задачи.
Пополните кредиты и создайте задачу снова.
404Задача или файл для скачивания не найдены для этого ключа.
Проверьте ID и используйте ключ, которым была создана задача.
409Загрузка или задача находится не в том состоянии.
Проверьте текущий статус перед повторной попыткой.
429Достигнут лимит запросов или параллельных задач.
Подождите и повторите попытку с задержкой.
500VidSmaller не смог выполнить запрос.
Повторите позже. Если проблема сохраняется, обратитесь в поддержку.
Лимиты и добросовестное использование
API следует тем же продуктовым лимитам, что и веб-компрессор.
- Публичные эндпоинты только для чтения допускают 600 запросов в час на один IP.
- Задачи сжатия используют кредиты вашего аккаунта, лимиты размера файлов, доступ к кодекам и лимиты всплесков.
- В API v1 могут добавляться новые поля ответа, но значение существующих полей не изменится.
- Коммерческое использование разрешено. Ссылка на VidSmaller приветствуется, но не обязательна.
Если лимит платформы указан неверно или запрос к API работает не так, как ожидается, напишите на support@vidsmaller.com