Генерируйте изображения одним HTTP GET-запросом — без SDK, без настройки и без бэкенда.
Достаточно вставить правильный URL в атрибут <img src="..."> вашего сайта — никаких токенов OAuth, никаких асинхронных POST-запросов и вебхуков для старта работы. Сервер мгновенно вернёт готовое изображение или placeholder.
Самый простой запрос:
https://pixinlink.ru/api/v1/800x400/кофе-на-столе-утром
→ Результат: готовое изображение 800×400px.
TL;DR
URL API PixInLink = GET-запрос → изображение (или 302 редирект из CDN-кеша).
Обязательные параметры: {width}x{height} в пути и ?prompt=.
Ключевые опции: style= (6 значений), seed= (фиксация), format= (webp/avif/png).
Аутентификация: Bearer-токен для тарифов Starter+, без токена для Free.
Справочник ниже — всё для copy-paste.
Ключевые факты
- done Один GET-запрос → изображение: POST не нужен, тело запроса не нужно.
- done 6 стилей: realistic, illustration, 3d, pixel-art, cyberpunk, anime.
- done CDN-кеш 1 год: SHA256-хеш URL → immutable cache.
- done 500 символов: максимальная длина промпта (обрезается).
- done Seed диапазон: 1–2 147 483 647 → для воспроизводимых результатов.
- done 5 форматов ответа HTTP: 302 (hit), 200 (miss), 400, 401, 429.
- done Rate limit: Free: 5 req/min; Business: 600 req/min.
Что такое URL API?
URL API (URL-based API) — это интерфейс, где все параметры запроса передаются непосредственно в URL-строке, а сервер возвращает готовый ресурс по HTTP GET-запросу. В отличие от стандартного REST API (POST → async job → polling → download), наш URL API можно вставить прямо в HTML, и всю сложную асинхронную работу под капотом выполнит наш сервер. Идеально для статических сайтов (Hugo, Next.js), мета-тегов og:image и email-рассылок.
Как работает запрос (Архитектура)
- Шаг 1: Клиент отправляет GET-запрос к
pixinlink.ru. - Шаг 2: Мы вычисляем SHA256 хеш от всех переданных параметров и проверяем CDN.
-
Шаг 3a (Cache Hit): Возвращаем HTTP
302 Foundна CDN URL. Клиент получает картинку мгновенно. -
Шаг 3b (Cache Miss): Возвращаем HTTP
200 OKс цветным SVG placeholder-ом ("Generating image..."). В фоне запускается AI-пайплайн (Перевод → Kandinsky → WebP → CDN). Следующий запрос (через 3–8 сек) вернёт 302 из шага 3a.
Path Parameters (обязательные)
Параметры пути передаются непосредственно в структуре URL до знака вопроса ?. Порядок строгий: /{width}x{height}/{background_hex}/{foreground_hex}.
| Параметр | Тип | Обязательный | Пример | Ограничения |
|---|---|---|---|---|
width |
integer | ✅ Да | 1200 | 16–8192 px (clamped) |
height |
integer | ✅ Да | 630 | 16–8192 px (clamped) |
background_hex |
string | ✅ Рекомендован | ffffff | 6-знач. HEX без # |
foreground_hex |
string | ✅ Рекомендован | 000000 | 6-знач. HEX без # |
Примечание: Значения размеров вне диапазона «зажимаются» (clamped) без ошибки. Параметры цвета (bg/fg) — это визуальная подсказка для нейросети, а не жесткое правило.
Query Parameters (опциональные)
1. prompt — Текстовое описание
Обязательный параметр (в строке запроса или в slug-пути). Максимум 500 символов (обрезается без ошибки).
- Поведение: Если промпт короткий (1-3 слова), AI автоматически добавляет дескрипторы для улучшения качества. Русский язык (Kandinsky 3.1) поддерживается нативно.
- Кодирование: Обязательно используйте URL-encode (пробелы =
%20или+).
2. style — Художественный стиль
| Значение (enum) | Описание | Рекомендованный bg / fg |
|---|---|---|
realistic (default) | Фотореализм (люди, еда, интерьеры) | ffffff / 000000 |
illustration | Цифровая живопись (персонажи) | fef9e7 / 2c3e50 |
3d | Blender-стиль (продукты, техника) | f0f0f0 / 333333 |
pixel-art | 16/32-bit графика (ретро, игры) | 0d0d0d / 39ff14 |
cyberpunk | IT, sci-fi, неон | 0d0d0d / ff2d78 |
anime | Аниме/манга стиль | 87ceeb / ffffff |
3. seed — Фиксация результата
Тип: integer (1–2 147 483 647). Если не передан — при каждом новом запросе (cache-miss) генерируется уникальное изображение. Если передан — комбинация «тот же prompt + тот же seed» всегда возвращает одну и ту же картинку. Незаменимо для og:image.
PHP (Алгоритм из slug)
function pixinlink_seed(string $slug): int {
return abs(crc32($slug)) % 2147483647;
}
JavaScript
function getSeed(slug) {
let hash = 0;
for (let i=0; i<slug.length; i++) {
hash = ((hash << 5) - hash) + slug.charCodeAt(i);
}
return Math.abs(hash) % 2147483647 || 1;
}
4. format — Формат вывода
| Формат | Сжатие | Поддержка | Когда использовать |
|---|---|---|---|
webp (default) | ~80% vs JPEG | Все современные | Оптимальный выбор по умолчанию |
avif | ~50% vs JPEG | Chrome 85+, Safari 16+ | Для максимальной скорости LCP |
png | Lossless | Все браузеры | Для прозрачного фона (RGBA) |
5. watermark
Управление водяным знаком (boolean). На тарифе Free игнорируется (всегда true). На Starter, Pro и Business по умолчанию false.
&watermark=false — убрать (Starter+).
6. callback (Webhook)
Тип: URL. Доступно для Pro+. Сервер отправит POST-запрос с JSON-payload, когда генерация завершится. Идеально для прогрева кеша.
// Пример payload на ваш callback URL
{
"job_id": "job_abc123",
"status": "done",
"url": "https://cdn.pixinlink.ru/images/ab/cd/ef123.webp",
"prompt": "офис разработчиков"
}
Аутентификация
API поддерживает две схемы работы: анонимную (Free-тариф) и авторизованную (Starter+). Для авторизации используется стандартный заголовок Authorization: Bearer.
1. Free тариф (Без токена)
GET https://pixinlink.ru/800x400/офис
Лимит 50 генераций/мес. Водяной знак.
2. Starter+ (Bearer Token)
GET https://pixinlink.ru/800x400/офис
Authorization: Bearer pk_live_вашключ
Полные права, без watermark.
Коды ответов HTTP
API использует стандартные HTTP-коды. При успешном попадании в кэш возвращается 302 Found, при промахе — 200 OK с временным SVG (и запускается фоновая генерация).
| Код | Статус | Описание | Как обработать |
|---|---|---|---|
| 200 | OK | Cache miss: отдаётся placeholder SVG | Показать placeholder, img перезагрузится |
| 302 | Found | Cache hit: редирект на CDN-ссылку | Браузер автоматически следует редиректу |
| 400 | Bad Request | Ошибка в параметрах запроса | Проверить JSON, поле field |
| 401 | Unauthorized | Неверный или отсутствующий API-ключ | Проверить заголовок Authorization |
| 429 | Too Many Req. | Превышен Rate Limit или месячная квота | Ждать retry_after или сброса квоты |
| 502 | Bad Gateway | AI провайдер временно недоступен | Повторить запрос через 10-20 сек |
Пример тела ответа (400 Bad Request):
{
"error": "invalid_parameter",
"detail": "width must be between 16 and 8192",
"field": "width"
}
Rate Limits и квоты
Cache hit (302) не считается генерацией — квота не расходуется. Списание происходит только при Cache miss (200).
| Тариф | Rate Limit (req/min) | Квота (генераций/мес) | Сброс квоты |
|---|---|---|---|
| Free | 5 | 50 | 1-го числа UTC |
| Starter | 30 | 500 | 1-го числа UTC |
| Pro | 120 | 2 000 | 1-го числа UTC |
| Business | 600 | 10 000 | 1-го числа UTC |
Полный пример API-запроса
GET https://pixinlink.ru/1200x630/ffffff/000000 ?prompt=современный%20офис%20разработчиков%20вечер &style=realistic &seed=20260515 &format=webp &watermark=false &callback=https%3A%2F%2Fmysite.ru%2Fhook Authorization: Bearer pk_live_вашключздесь
Попробуйте прямо сейчас
50 бесплатных генераций. Вставьте URL прямо в браузер.
Получить API-ключ Примеры кода GitHub

