Ключі API користувачів
Якщо ви хочете автентифікуватися власним ключем, виданим на /dashboard/keys, а не секретом проксі маркетплейсу RapidAPI, ця сторінка для вас. Той самий рушій, інші двері.
Клієнти маркетплейсу мають і далі використовувати
X-RapidAPI-Proxy-Secretдляapi.qr-branding.com. Шлюз споживчих ключів працює наqr-branding.com/api/v1/*і ніяк не зачіпає канал маркетплейсу.
Базовий URL
https://qr-branding.com/api/v1
Автентифікація
Надсилайте свій ключ у кожному запиті:
X-API-Key: qrb_…
Ключ перевіряється на периферії (CF Pages) за хешем у нашій базі даних — сам рушій ніколи не бачить ваш ключ у відкритому вигляді.
Якщо ключ відсутній, має неправильний формат або відкликаний, ви отримаєте:
{ "success": false, "error": "Key not recognised, revoked, or malformed.", "code": "invalid_api_key" }
(Код статусу 401.)
Вимога: план Studio
API — це функція Studio. Кожен запит, а не лише запити ШІ, потребує активного пакета Studio (купленого менше ніж 12 місяців тому й не відшкодованого). Якщо ключ дійсний, але у вашому обліковому записі немає Studio, шлюз відповідає 402 з посиланнями на цю сторінку та на ціни:
{ "success": false, "error": "The QR Branding API is included with Studio. Buy a Studio pack at https://qr-branding.com/pricing to use your key.", "code": "studio_required", "docs": "https://qr-branding.com/docs/api/public-keys", "pricing": "https://qr-branding.com/pricing" }
Генерації ШІ на наших ключах LLM (POST /api/v1/qr/ai/generate/server) додатково списують один кредит ШІ з вашого пакета Studio; коли вони закінчаться, ви отримаєте 402 out_of_api_credits з тими самими посиланнями. Решта викликів кредитів не витрачає.
Доступні ендпоінти
Шлюз перенаправляє до рушія всі шляхи під /api/v1/*. Отже:
| Публічний URL | Перенаправляє на |
|---|---|
POST /api/v1/qr/generate | POST /api/qr/generate |
POST /api/v1/qr/ai/generate/server | POST /api/qr/ai/generate/server |
GET /api/v1/qr/templates | GET /api/qr/templates |
POST /api/v1/qr/templates/:id | POST /api/qr/templates/:id |
POST /api/v1/qr/content/:type | Помічники для вмісту (wifi · vcard · geo) |
GET /api/v1/qr/ai/providers | GET /api/qr/ai/providers |
GET /api/v1/ping | GET /api/ping |
Тіла запитів, структури відповідей і коди помилок ідентичні ендпоінтам рушія — ваші закладки на сторінки документації лишаються чинними.
Швидка перевірка
curl -X POST https://qr-branding.com/api/v1/qr/generate \
-H "X-API-Key: qrb_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "content": "https://yourbrand.com", "primaryColor": "#dcc28a", "backgroundColor": "#0a0b0e", "eccLevel": "H" }' \
--output qr.png --silent --write-out "%{http_code}\n"
Якщо ви отримали 200 і на диску з’явився qr.png, усе готово.
Обмеження
Користувацькі ключі мають ліміти на клієнта споживчого каналу:
| Тип виклику | За хвилину |
|---|---|
| Загальні | 120 |
Генерація (/qr/generate, /qr/templates/:id) | 60 |
ШІ (/qr/ai/generate/server) | 30 |
Якщо ви досягнете ліміту, отримаєте 429 із заголовком Retry-After. Подробиці та глобальні обмеження — в Огляді API.
Завантаження multipart
Шлюз приймає лише JSON. Для двійкових файлів логотипа / фону використовуйте поля base64 (logoBase64, backgroundImageBase64) замість multipart/form-data. Можливо, у v2 ми додамо нативну підтримку multipart.
Ротація
Згенеруйте новий ключ, розгорніть його, а потім відкличте старий. Ключ у відкритому вигляді показується лише один раз — збережіть його в менеджері секретів.
# in your CI / secrets tool
QR_BRANDING_KEY=qrb_new_key_here
Коли старий ключ отримує від шлюзу 401 invalid_api_key, це означає, що всі ваші сервіси вже перейшли на новий ключ і ротацію можна вважати успішною.