API за QR кодове
Общ преглед
API за кодове е сърцето на qr3.app. С него можете да създавате, актуализирате и изтривате динамични и статични QR кодове.
Базов URL адрес: https://qr3.app/v1/codes
Създаване на QR код
POST /v1/codes
curl -X POST https://qr3.app/v1/codes \ -H "Authorization: Bearer qr3_sk_..." \ -H "Content-Type: application/json" \ -d '{ "type": "url", "url": "https://example.com", "title": "Mein erster QR-Code", "tags": ["marketing", "q1"], "is_dynamic": true }'const code = await qr3.codes.create({ type: 'url', url: 'https://example.com', title: 'Mein erster QR-Code', tags: ['marketing', 'q1'], is_dynamic: true,});qr3 create https://example.com --title "Mein QR-Code" --tags marketing,q1Отговор (HTTP 201):
{ "data": { "id": "qr_a1b2c3d4", "short_code": "r7f3Kx", "redirect_url": "https://qr3.app/r7f3Kx", "image_svg_url": "https://qr3.app/v1/codes/r7f3Kx/qr.svg", "image_png_url": "https://qr3.app/v1/codes/r7f3Kx/qr.png", "image_pdf_url": "https://qr3.app/v1/codes/r7f3Kx/qr.pdf", "image_eps_url": "https://qr3.app/v1/codes/r7f3Kx/qr.eps", "type": "url", "target_url": "https://example.com", "is_dynamic": true, "status": "live", "tags": ["marketing", "q1"], "total_scans": 0, "created_at": "2026-03-15T10:00:00.000Z" }, "meta": { "request_id": "req_xyz123" }}Типове QR кодове
| Тип | Описание | Задължителни полета |
|---|---|---|
url | URL адрес на уебсайт (динамичен или статичен) | url |
vcard | Визитка (vCard 3.0) | vcard_first_name или vcard_last_name |
wifi | WLAN конфигурация | wifi_ssid |
email | Имейл (mailto:) | email_to |
sms | SMS | sms_phone |
location | Местоположение (geo:) | location_lat, location_lng |
A/B тестване
Тествайте два различни целеви URL адреса с претеглено пренасочване:
{ "type": "url", "url": "https://version-a.example.com", "ab_enabled": true, "ab_target_url_b": "https://version-b.example.com", "ab_weight_a": 50}Изтичане на валидност (Expiry)
QR кодовете могат да изтичат автоматично:
{ "type": "url", "url": "https://aktionsseite.example.com", "expires_at": "2026-12-31T23:59:59Z", "redirect_after_expiry": "https://archiv.example.com"}След изтичане на валидността се извършва пренасочване към redirect_after_expiry или се показва страница с грешка 410.
Пакетно създаване
POST /v1/codes/batch
Създава до 1000 QR кода в една заявка. Идеално за масово генериране.
curl -X POST https://qr3.app/v1/codes/batch \ -H "Authorization: Bearer qr3_sk_..." \ -H "Content-Type: application/json" \ -d '{ "items": [ { "type": "url", "url": "https://produkt-1.example.com", "tags": ["batch"] }, { "type": "url", "url": "https://produkt-2.example.com", "tags": ["batch"] }, { "type": "wifi", "wifi_ssid": "GastWLAN", "wifi_password": "geheim123" } ], "skip_url_scan": false }'Отговор (HTTP 201):
{ "data": { "created": [ { "id": "qr_...", "short_code": "abc123", "redirect_url": "https://qr3.app/abc123" }, { "id": "qr_...", "short_code": "def456", "redirect_url": "https://qr3.app/def456" }, { "id": "qr_...", "short_code": "ghi789", "status": "live" } ], "total": 3, "failed": 0 }}Списък с QR кодове
GET /v1/codes
curl https://qr3.app/v1/codes?status=live&limit=20 \ -H "Authorization: Bearer qr3_sk_..."Query параметри:
| Параметър | Тип | По подразбиране | Описание |
|---|---|---|---|
cursor | string | — | Курсор за пагинация |
limit | integer | 20 | Резултати на страница (макс. 100) |
status | string | — | Филтър: live, paused, flagged, draft |
Получаване на QR код
GET /v1/codes/:id
curl https://qr3.app/v1/codes/qr_a1b2c3d4 \ -H "Authorization: Bearer qr3_sk_..."Актуализиране на QR код
PATCH /v1/codes/:id
Динамичните QR кодове позволяват промяна на целевия URL адрес по всяко време — без да е необходимо повторно отпечатване на QR кода.
curl -X PATCH https://qr3.app/v1/codes/qr_a1b2c3d4 \ -H "Authorization: Bearer qr3_sk_..." \ -H "Content-Type: application/json" \ -d '{ "url": "https://neue-zielseite.example.com", "status": "live" }'Целева страница (Landing page) & външни връзки
За динамични url кодове можете да зададете is_landing_page: true (при създаване или чрез PATCH). При сканиране вместо пренасочване ще се покаже хоствана от qr3 страница с публичните файлове и външните връзки на кода. Външните връзки се предават като масив links:
{ "is_landing_page": true, "links": [ { "label": "Datenblatt", "url": "https://example.com/datenblatt.pdf" }, { "label": "Zertifikat", "url": "https://example.com/zertifikat.pdf" } ]}- 0–20 връзки на код;
labelе с дължина 1–100 знака;urlтрябва да бъдеhttp(s)(≤ 2048 знака). - Всеки URL адрес се проверява с Google Web Risk — опасен URL адрес връща
422. - Ако Google Web Risk не е достъпен при записването, връзката все пак се приема, но се маркира за повторна проверка. Ежедневен процес (job) проверява отново записаните връзки (и периодично препроверява тези, класифицирани като безопасни) и автоматично паузира кода, ако някоя връзка по-късно бъде разпозната като опасна.
"links": []изтрива всички връзки. Вижте ръководството за целеви страници.
Изтриване на QR код
DELETE /v1/codes/:id
Меко изтриване (Soft-Delete) — QR кодът се архивира, а данните от сканиранията се запазват.
curl -X DELETE https://qr3.app/v1/codes/qr_a1b2c3d4 \ -H "Authorization: Bearer qr3_sk_..."Изтегляне на QR изображения
Всички формати на изображения са публично достъпни — не се изисква удостоверяване (автентификация).
| Формат | URL | Употреба |
|---|---|---|
| SVG (векторен) | /v1/codes/:code/qr.svg | Уеб, мащабиране, дигитални медии |
| PNG (растерен) | /v1/codes/:code/qr.png | Имейл, презентации |
| PDF (векторен) | /v1/codes/:code/qr.pdf | По подразбиране: квадратен (само кодът); ?format=a4 за лист за печат |
| EPS (векторен) | /v1/codes/:code/qr.eps | Професионални работни процеси за печат (Adobe, печатници) |
Опционално: ?size=N — размер на модула в пиксели (2–20, по подразбиране: 4) за SVG, PNG и EPS. PDF форматът използва фиксиран размер на модула.
Само за PDF: ?format=a4|square — формат на страницата (по подразбиране: square — само код + Quiet Zone, без бяло пространство за A4; a4 за готов за печат лист А4)
# SVG für Webcurl https://qr3.app/v1/codes/r7f3Kx/qr.svg
# PNG in hoher Auflösungcurl https://qr3.app/v1/codes/r7f3Kx/qr.png?size=10 -o qr-hires.png
# Kompaktes PDF (nur der Code, Standard)curl https://qr3.app/v1/codes/r7f3Kx/qr.pdf -o qr.pdf
# Druckfertiges A4-Blattcurl "https://qr3.app/v1/codes/r7f3Kx/qr.pdf?format=a4" -o qr-a4.pdfКоментари
Коментарите позволяват обратна връзка между агенции и клиенти.
GET /v1/codes/:id/comments
POST /v1/codes/:id/comments
PATCH /v1/codes/:id/comments/:commentId
DELETE /v1/codes/:id/comments/:commentId
# Kommentar hinzufügencurl -X POST https://qr3.app/v1/codes/qr_a1b2c3d4/comments \ -H "Authorization: Bearer qr3_sk_..." \ -H "Content-Type: application/json" \ -d '{ "body": "QR-Code bitte auf grünen Hintergrund abstimmen.", "author_name": "Max Müller" }'
# Offene Kommentare auflistencurl "https://qr3.app/v1/codes/qr_a1b2c3d4/comments?resolved=false" \ -H "Authorization: Bearer qr3_sk_..."
# Kommentar als erledigt markierencurl -X PATCH https://qr3.app/v1/codes/qr_a1b2c3d4/comments/cmt_xyz \ -H "Authorization: Bearer qr3_sk_..." \ -H "Content-Type: application/json" \ -d '{ "resolved": true }'