Введение
PICEX API возвращает чистый JSON. Все эндпоинты принимаютapplication/json и возвращают то же самое. Ответы кодированы в UTF-8, без trailing-слешей.
Все эндпоинты, примеры и нюансы. Базовый URL — https://picex.ru/api
PICEX API возвращает чистый JSON. Все эндпоинты принимаютapplication/json и возвращают то же самое. Ответы кодированы в UTF-8, без trailing-слешей.
Состояние сервиса. Без авторизации. Возвращает доступность под-сервисов и uptime.
{
"status": "ok",
"uptime": 3621.2,
"timestamp": "2026-05-02T00:00:00Z",
"services": { "images": true, "videos": true, "ytdlp": true },
"version": "2.0.0"
}Достаёт все изображения со страницы — теги <img>, srcset, lazy-load (data-src/data-bg/...), background-image, иконки, OG-теги, найденные в подключённых CSS-файлах.
{
"url": "https://example.com/gallery"
}{
"images": [
{
"src": "https://example.com/hero.jpg",
"size": {
"width": 1920,
"height": 1080,
"format": "jpg",
"size": 412000,
"fileSize": "402.34 Кб",
"buffer": { "type": "Buffer", "data": [...] }
}
}
]
}Находит видео на странице: теги <video>/<source>, прямые ссылки на MP4/WEBM/MOV, HLS (.m3u8), DASH (.mpd), а также iframe-эмбеды (YouTube, Rutube, VK и т.д.).
{
"url": "https://example.com/article",
"useYtdlp": false
}{
"mode": "page",
"videos": [
{
"src": "https://cdn.example.com/clip.mp4",
"kind": "mp4",
"contentType": "video/mp4",
"size": { "bytes": 15240000, "fileSize": "14.53 Мб", "format": "mp4" },
"useYtdlp": false
}
]
}Используем yt-dlp, который понимает 1500+ видео-платформ. Возвращает список доступных форматов с прямыми URL — клиент сам выбирает качество.
{
"url": "https://www.youtube.com/watch?v=…"
}{
"info": {
"id": "...",
"title": "...",
"duration": 215,
"uploader": "...",
"thumbnail": "https://...",
"formats": [
{ "formatId": "137", "ext": "mp4", "width": 1920, "height": 1080,
"vcodec": "avc1.640028", "acodec": null, "bitrate": 4500,
"filesize": 28000000, "url": "https://..." }
],
"bestUrl": "https://..."
}
}Стандартные HTTP-коды плюс поле error и опционально detail.
400 — нет url или невалидный 404 — на странице не нашли подходящих медиа-файлов 500 — внутренняя ошибка парсинга (детали в "detail") 503 — yt-dlp недоступен на этом инстансе
На бесплатном плане — 50 запросов в месяц на IP. Для безлимита и SLA смотрите тарифы.
Скоро: официальные клиенты на TypeScript и Python. Пока — обёртка fetch хватает с головой.
const r = await fetch("https://picex.ru/api/images/scrape", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ url })
});
const { images } = await r.json();