Огляд API
Рушій опубліковано як невеликий HTTP API. Є два способи автентифікації.
Два канали
1. RapidAPI Marketplace (наявні клієнти)
Викликайте https://api.qr-branding.com зі своїм секретом проксі RapidAPI. Ендпоінти ШІ використовують ваш власний ключ LLM або керований ендпоінт, якому ключ не потрібен. Усе працює так само, як в оригінальному Signet QR API.
2. Споживчі пакети кредитів (нове)
Купіть пакет на сторінці /pricing. Ваші ендпоінти ШІ використовують серверні ключі LLM (Groq / Gemini / OpenAI), а кредити списуються за кожну успішну генерацію. Редактор у фронтенді використовує цей канал прозоро.
Ендпоінти
| Метод | Шлях | Призначення |
|---|---|---|
POST | /api/qr/generate | Рендер QR з явного QrConfig. |
POST | /api/qr/ai/generate | ШІ маркетплейсу — власний ключ LLM. |
POST | /api/qr/ai/generate-managed | Кероване ШІ маркетплейсу — ключ LLM не потрібен. |
POST | /api/qr/ai/generate/server | Споживчий ШІ — серверний ключ LLM, облік у кредитах. |
GET | /api/qr/templates | Список із 118 готових шаблонів (за бажання ?category=…). |
POST | /api/qr/templates/{templateId} | Рендер QR за ідентифікатором шаблону з необов’язковими перевизначеннями. |
POST | /api/qr/content/wifi | Помічник: формує рядок вмісту для WiFi QR. |
POST | /api/qr/content/vcard | Помічник: формує рядок вмісту vCard. |
POST | /api/qr/content/geo | Помічник: формує рядок вмісту геолокації. |
GET | /api/qr/ai/providers | Список підтримуваних провайдерів і моделей LLM. |
GET | /api/ping | Перевірка стану (анонімна). |
Заголовки автентифікації
RapidAPI
X-RapidAPI-Proxy-Secret: <secret>
Внутрішній BFF (споживчий сайт)
X-Internal-Service-Secret: <secret>
X-Internal-Customer-Id: <customer id>
X-Internal-Ts: <unix seconds>
X-Internal-Signature: <HMAC-SHA256(signing-key, "{customerId}.{ts}")>
TTL захисту від повторного відтворення: 60 секунд. Використовується всередині фронтенду Next.js — вручну ви їх ніколи не задаватимете.
Обгортка помилок
Структура кожної відповіді, відмінної від 2xx, стабільна:
{
"success": false,
"error": "Content length (5000) exceeds maximum allowed (4296 characters).",
"code": "CONTENT_TOO_LONG",
"field": "content"
}
field заповнюється, коли збій стосується конкретного вхідного параметра.
Ліміти запитів
| Рівень | За хвилину | Примітки |
|---|---|---|
| RapidAPI загальний | 60 | документація, ping, помічники |
| RapidAPI генерація | 30 | /api/qr/generate |
| RapidAPI ШІ | 15 | зовнішні виклики LLM |
| Споживчий загальний | 120 | на ідентифікатор клієнта |
| Споживча генерація | 60 | на ідентифікатор клієнта |
| Споживчий ШІ | 30 | на ідентифікатор клієнта |
Є також глобальні обмеження на хвилину, що захищають безкоштовний рівень Azure. Якщо ви на них натрапите, отримаєте 429 із заголовком Retry-After.
Формати виводу
png (за замовчуванням, base64), jpg, svg, pdf, webp. Задайте "responseType": "binary", щоб завантажити файл напряму, а не отримувати base64 у JSON.