API генерации QR-кодов
Генерируйте статические QR-коды через API для интеграции в ваши приложения.
API генерации
Генерируйте статические QR-коды через API: отправьте строку и объект дизайна — получите SVG за доли секунды.
Дизайн и брендирование
Применяйте цвета бренда, формы модулей, рамки и логотипы — всё через объект design.
Эндпоинты
/v1/generate
В теле: обязательное поле data, design по желанию. Ответ 200 — SVG в data.qr_code.
POST с JSON: обязательная строка data и необязательный объект design (как в конструкторе). Ответ HTTP 200, SVG в data.qr_code. WebQR не хранит ваши данные — файлы, БД и id на вашей стороне.
/v1/usage
Только чтение: счётчики за период, data.items пустой. Лимит генераций не тратит.
GET /v1/usage — счётчики за расчётный период; data.items всегда пустой. used_count не увеличивает.
API без состояния на стороне WebQR: нет серверной библиотеки ваших QR. Храните SVG и метаданные в своём приложении.
Безопасность в продакшене
Относитесь к API‑ключу как к паролю к квоте WebQR.
- Секрет — только на сервере; клиентам отдавайте свой HTTPS, а не ключ.
- Ограничьте ключ списком IP ваших серверов (или фиксированного egress CDN).
- По желанию включите обязательную HMAC‑подпись в настройках ключа.
Передавайте ключ в заголовке X-API-Key. Ключи создаются в кабинете.
Примеры тел запроса (JSON)
Классические модули на сплошном фоне
Тело JSON
{
"data": "https://webqr.io/",
"design": {
"size": 1024,
"backgroundColor": "#FFFFFF",
"color": "#000000",
"transparent": false,
"styleType": "a7k2m9",
"eyeType": "r2s4t6",
"eyeInnerType": "h7i9j1",
"roundedCorners": true,
"cornerRadius": 20,
"showColorGradient": false
}
}
Ответ
HTTP 200: JSON с success, строкой SVG в data.qr_code, эхом content, нормализованным design и блоком usage с подсказками по лимиту.
Цветной фон и другая форма модулей
Тело JSON
{
"data": "https://webqr.io/",
"design": {
"size": 1024,
"backgroundColor": "#0E2A47",
"color": "#F8FAFC",
"borderColor": "#58B4FF",
"centerColor": "#58B4FF",
"transparent": false,
"styleType": "m4k6l8",
"eyeType": "x4y6z8",
"eyeInnerType": "n9o1p3",
"roundedCorners": true,
"cornerRadius": 20,
"showColorGradient": false
}
}
Диагональный градиент модулей
Тело JSON
{
"data": "https://webqr.io/",
"design": {
"size": 1024,
"backgroundColor": "#FFFFFF",
"color": "#1e3a5f",
"borderColor": "#2563EB",
"centerColor": "#7C3AED",
"transparent": false,
"styleType": "a7k2m9",
"eyeType": "r2s4t6",
"eyeInnerType": "h7i9j1",
"roundedCorners": true,
"cornerRadius": 20,
"showColorGradient": true,
"fromColor": "#2563EB",
"toColor": "#7C3AED",
"styleColorGradient": "diagonal"
}
}
Пример запроса
curl -X POST https://api.webqr.io/v1/generate \
-H "Content-Type: application/json" \\n -H "X-API-Key: wq_xxxxxxxxxx_your_secret" \\n -d @payload.json
Сохраните JSON примера в payload.json или передайте в -d тем же текстом — но ключ вызывает только ваш сервер, не браузеры и приложения клиента.
Дизайн
В кабинете есть удобный конструктор QR: оформление собираете визуально, а тот же набор полей переносите в объект design в запросе к API — так проще собрать итоговое тело запроса без ручного подбора.
Указывайте Content-Type: application/json. В корне — data (обязательно) и design (опционально). Псевдонимы вроде markerOutColor приводятся к borderColor; при ошибках валидации вернётся HTTP 422.
Тот же предпросмотр, что в конструкторе: подпись под плиткой подставьте в design.styleType, design.eyeType или design.eyeInnerType.
Иконки те же, что на шаге дизайна. Под каждой — канонический код для design.styleType, design.eyeType или design.eyeInnerType.
Коды модулей (design.styleType)
Внешние искатели (design.eyeType)
Внутренние искатели (design.eyeInnerType)
Частые вопросы
Включённых успешных генераций за календарный месяц по тарифам: 200 — Starter (бесплатный), 5000 — Premium, 25000 — Business, 100000 — Business Plus. Если нужно больше — напишите нам.
Да. Вы можете создавать QR через API или вручную в основном конструкторе на главной странице.
Да. Starter уже включает Static QR API: 200 успешных генераций за календарный месяц (включённая квота); Premium — 5000, Business — 25000, Business Plus — 100000; квота обновляется в начале каждого месяца. Отдельной подписки «только за API» нет; при необходимости возможен платный оверэйдж по настройкам биллинга.
В JSON приходит готовый SVG (поле data.qr_code), те же content и design, что вы отправили, плюс блок usage для учёта квоты. Это stateless-сценарий: один вызов API сам по себе не попадает в вашу «библиотеку» WebQR как отдельная запись и не даёт постоянный id в ответе — файл и любые связки храните у себя на бэкенде или в вашем хранилище. То, что вы сами сохраните в конструкторе или кабинете WebQR, живёт отдельно по обычным правилам проектов.
Нужно больше запросов?
Напишите нам, если нужен больший дневной лимит для личного или коммерческого использования.