Перейти к основному содержанию
GetQR API находится в бета-версии и доступен для отдельных рабочих пространств. До общего релиза детали могут измениться.
QR-код в GetQR — это изображение и короткая ссылка, через которую он ведёт на адрес назначения. При создании QR-кода создаётся и его короткая ссылка, поэтому позже адрес назначения можно изменить без повторной печати кода.

Данные QR-кода по типам

Формат data для каждого из 16 типов.

Оформление

Стили точек, цвета, рамки и логотипы.

Правила доступа

Расписание, лимит сканирований и пароль.
Статистику сканирований QR-кода см. в разделе Аналитика.

Объект QR-кода

Все эндпоинты QR-кодов, кроме Удаления и Скачивания, отвечают этим объектом. Список возвращает массив таких объектов.
string
Уникальный ID QR-кода, например qr_1EPcVfeHZAY2iNoVLsgW2Aqf.
string
Тип QR-кода, например website. Все 16 значений см. в разделе Данные QR-кода по типам.
string | null
Название QR-кода, которое отображается в панели управления.
string | null
Произвольная заметка о QR-коде.
string
Сохранённые данные. Для wifi, vcard, social, multilink, event и sms — это переданные вами данные. Для остальных типов — короткая ссылка, поэтому адрес назначения читайте из url.
boolean
true, если QR-код приостановлен.
boolean
true для статического QR-кода, созданного в панели управления: у него нет короткой ссылки. API всегда создаёт динамические QR-коды.
Полная короткая ссылка, например https://getqr.sh/x7Kd2p1.
string | null
Домен короткой ссылки.
string | null
Слаг короткой ссылки.
boolean
true, если слаг выбран вручную, а не сгенерирован.
string | null
Адрес назначения, на который перенаправляет короткая ссылка.
string | null
Адрес назначения для посетителей с iOS, для QR-кодов app.
string | null
Адрес назначения для посетителей с Android, для QR-кодов app.
integer
Общее число сканирований.
object
Правила доступа. Сам пароль никогда не возвращается. См. Правила доступа.
string
Только для чтения. custom — дизайн, который API может полностью изменять. branded и ai — Branded design или AI design, созданный в панели управления. API не может изменить его изображение, но сохраняет его, когда вы меняете другие поля.
object
Сохранённый дизайн: styles, frameOptions и logoOptions, каждый — объект или null. У них та же структура, что и у полей запроса, поэтому их можно отправить обратно. См. Оформление.
object | null
Файл QR-кода pdf, image или video: id, name и size в байтах.
string | null
Только для чтения. Отображаемое название QR-кода app, созданного в панели управления.
object | null
Только для чтения. QR-код pdf с несколькими файлами, созданный в панели управления: title, layout и files.
Только для чтения. QR-код image с несколькими изображениями, созданный в панели управления: title, layout и files.
string
Дата создания, ISO 8601.
string
Дата последнего обновления, ISO 8601.
Секреты и внутренние ID (password, userId, workspaceId, projectId) никогда не возвращаются.

Список QR-кодов

GET /api/v1/qrs Возвращает QR-коды вашего рабочего пространства постранично.
integer
по умолчанию:"1"
Возвращаемая страница, 1 или больше.
integer
по умолчанию:"100"
QR-кодов на странице, от 1 до 100. Большее значение отклоняется.
Ищет по названию QR-кода. Запросы длиннее 2 символов ищут и по сохранённому data. Для типов-ссылок в сохранённом data находится короткая ссылка, поэтому по адресам назначения искать нельзя.
string
по умолчанию:"createdAt"
Поле сортировки: createdAt, updatedAt, clicks (всего сканирований), lastClicked (последнее сканирование) или type. type всегда сортирует по убыванию и игнорирует sortOrder.
string
по умолчанию:"desc"
Направление сортировки: asc или desc.
boolean
по умолчанию:"false"
Включать приостановленные QR-коды.
boolean
по умолчанию:"false"
Возвращать только приостановленные QR-коды. Имеет приоритет над showArchived.
Булевы параметры принимают строки true или false. Запрашивайте следующую страницу, пока pagination.hasMore равно true. См. Пагинация.

Создание QR-кода

POST /api/v1/qrs Создаёт QR-код вместе с его короткой ссылкой. Отвечает 201 Created с новым QR-кодом.
string
Ваш собственный токен для повторов. Повтор запроса с тем же ключом в течение 24 часов возвращает исходный ответ, а не создаёт второй QR-код. См. Повторы и дубликаты.
string
обязательно
Что кодирует QR-код. Этим же задаётся формат, в котором должно быть data. Одно из значений: website, pdf, image, video, whatsapp, social, wifi, app, feedback, vcard, sms, payment, location, multilink, email, event.
string
обязательно
Данные типа, которые проверяются на соответствие qrType. Пустая строка пропускает проверку. Формат каждого типа описан в разделе Данные QR-кода по типам.
Короткая ссылка, через которую работает QR-код. Необязательно: если её не передать, link.url берётся из data.
string
Название QR-кода, которое отображается в панели управления. Пробелы по краям обрезаются, от 1 до 40 символов. Если не передано, QR-код остаётся без названия.
string
Произвольная заметка о QR-коде. До 280 символов.
string
Файл QR-кода pdf, image или video, загруженный с соответствующим target. Для vcard, social и multilink — необязательное изображение профиля, загруженное с target logo. event тоже его принимает, но его страница берёт обложку из data.fileId. Другие типы получают 422. Сначала загрузите файл через Файлы. См. Файлы в QR-кодах.
string
Шаблон, дизайн которого применяется к новому QR-коду. Переданные поля дизайна накладываются поверх него. Шаблон с Branded design или AI design возвращает 422 (art_template_unsupported). Неизвестный шаблон или шаблон из другого рабочего пространства возвращает 404.
object
Формы и цвета точек и углов. См. Оформление.
object
Рамка вокруг QR-кода и текст призыва к действию. См. Оформление.
object
Логотип в центре: готовый логотип или ваш файл, загруженный с target logo. Неизвестный файл, незавершённая загрузка или файл другого target отклоняются. См. Оформление.
object
Расписание, лимит сканирований и защита паролем. См. Правила доступа.
boolean
Приостановлен ли QR-код. true создаёт его приостановленным: сканирования показывают страницу паузы вместо адреса назначения.
Неизвестные поля отбрасываются без ошибки. См. Не поддерживается в API.

Повторы и дубликаты

  • С ключом. С заголовком Idempotency-Key ответ повторяется в течение 24 часов.
  • Без ключа. Одинаковое тело запроса, отправленное в течение 30 секунд, считается дубликатом.
  • Повторы. Повтор возвращает сохранённый ответ с x-idempotent-replay: true. Новый QR-код возвращает false.
  • Запрос ещё выполняется. Второй запрос, пока первый ещё выполняется, получает 409 conflict.
  • Ошибки. Если создание не удалось, ключ сразу освобождается, и можно повторить запрос с тем же ключом.
  • Без гарантий. Если защита от дубликатов недоступна, создание выполняется без неё.
См. также Идемпотентность.

Получение QR-кода

GET /api/v1/qrs/{qrId} Возвращает QR-код с его короткой ссылкой, правилами доступа, дизайном и, для типов с файлами, его файлом.
string
обязательно
ID QR-кода из ответа на запрос списка или создания.
Ответ — полный объект QR-кода.

Обновление QR-кода

PATCH /api/v1/qrs/{qrId} Изменяет содержимое, адрес назначения, дизайн или правила доступа QR-кода. Передавайте только поля, которые хотите изменить. Отвечает обновлённым QR-кодом.
string
обязательно
ID QR-кода.
Тело принимает те же поля, что и Создание QR-кода, все необязательные, со следующими отличиями:
  • templateId. Не принимается.
  • link. Частичное обновление. Если не передать link.url, текущий адрес назначения сохраняется. link.domain и link.key возвращают 422: напечатанный код кодирует именно короткую ссылку, поэтому для другой ссылки создайте новый QR-код.
  • data. Проверяется на соответствие итоговому типу, только если меняется data или qrType. Смена qrType без подходящего data отклоняется. См. Смена типа.
  • Дизайн. styles, frameOptions и logoOptions объединяются с сохранённым дизайном, поэтому частичный объект меняет только то, что в нём указано. Выбор другого логотипа заменяет его, но сохраняет его размер.
  • access. Каждый ключ применяется, если он передан. null удаляет правило. Правила доступа передаются в access: передача их в link возвращает 422.
  • archived. Приостанавливает или возобновляет QR-код вместе с его короткой ссылкой, как Приостановка и Возобновление.
Что можно изменить после печати для каждого типа, описано в разделе Данные QR-кода по типам.

Установка состояния паузы

PUT /api/v1/qrs/{qrId} Напрямую задаёт состояние паузы. Приостановка и Возобновление делают то же самое и читаются понятнее.
string
обязательно
ID QR-кода.
boolean
обязательно
true, чтобы приостановить QR-код, false, чтобы возобновить его.

Приостановка QR-кода

POST /api/v1/qrs/{qrId}/pause QR-код перестаёт вести на адрес назначения: вместо него сканирования показывают страницу паузы. Напечатанный код и его короткая ссылка остаются действительными. Без тела запроса.
string
обязательно
ID QR-кода.

Возобновление QR-кода

POST /api/v1/qrs/{qrId}/activate Приостановленный QR-код снова начинает вести на адрес назначения. Расписание и лимит сканирований продолжают действовать. Без тела запроса.
string
обязательно
ID QR-кода.

Дублирование QR-кода

POST /api/v1/qrs/{qrId}/duplicate Создаёт копию с тем же содержимым и дизайном. Без тела запроса. Отвечает 201 Created с новым QR-кодом.
string
обязательно
ID QR-кода, который нужно скопировать.
  • Короткая ссылка. Копия получает собственную короткую ссылку со случайным слагом на домене рабочего пространства по умолчанию, а не на домене исходного кода. Её сканирования считаются отдельно.
  • Название. К названию добавляется суффикс (Copy). Результат укладывается в 40 символов: длинное название сначала сокращается. QR-код без названия остаётся без названия.
  • Не копируются. Правила доступа (пароль, расписание, лимит сканирований) и состояние паузы. Копия всегда активна.
  • Файлы. Файлы PDF и изображений, включая файлы наборов и галерей, копируются, поэтому копия владеет ими сама. Видеофайлы и файлы дизайна, например логотипы, общие с исходным кодом.

Удаление QR-кода

DELETE /api/v1/qrs/{qrId} Удаляет QR-код и его короткую ссылку. Отвечает ID удалённого кода.
Удаление безвозвратно. Напечатанный код и его короткая ссылка перестают работать, а история сканирований становится недоступной. Если QR-код может снова понадобиться, лучше приостановите его.
string
обязательно
ID QR-кода.
string
ID удалённого QR-кода.
boolean
Всегда true.

Скачивание изображения QR-кода

GET /api/v1/qrs/{qrId}/download Отрисовывает QR-код с его дизайном и возвращает файл.
string
обязательно
ID QR-кода для отрисовки из ответа на запрос списка или создания.
string
по умолчанию:"jpg"
Формат файла: jpg, png, svg, pdf (страница A4) или eps. Branded design или AI design скачивается только в jpg, png или pdf.
integer
по умолчанию:"1024"
Размер изображения в пикселях: 1024, 2048 или 4096. svg и pdf его игнорируют. Branded design или AI design скачивается только в размере 1024.
  • Тело. Тело ответа — это сам файл. Предлагаемое имя файла передаётся в заголовке Content-Disposition: оно строится из названия, а для QR-кода без названия — qr-code.
  • Кэширование. Ответы содержат ETag и Cache-Control: private, max-age=3600, must-revalidate. Отправьте ETag обратно в If-None-Match, чтобы получить 304 Not Modified, если QR-код не изменился.
  • Ошибки. Неподдерживаемый формат или размер возвращает 400 bad_request. Сообщение об ошибке называет причину: qr_download_invalid_format, qr_download_invalid_resolution, qr_download_art_format_unsupported или qr_download_art_resolution_unsupported.

Правила доступа

Передайте объект access при создании или обновлении, чтобы задать начало и окончание работы, ограничить число сканирований или установить пароль. Пропущенные правила не меняются, а null удаляет правило. Полное описание с примерами — в разделе Правила доступа.

Объекты дизайна

styles, frameOptions и logoOptions задают формы точек и углов, цвета, рамку и логотип. Они одинаково работают для QR-кодов, шаблонов и массового создания. Неизвестные формы, рамки или логотипы отклоняются. Все допустимые значения и готовый пример — в разделе Оформление.

Частые проблемы

Передавайте правило в access, а не в link.
data не соответствует формату qrType. Проверьте тип в разделе Данные QR-кода по типам.
Такой же запрос на создание ещё выполняется, или link.key уже занят. Повторите запрос, когда первый завершится. С Idempotency-Key повтор вернёт исходный QR-код.
Параметры называются format и resolution, а format по умолчанию равен jpg. Передайте format=png.
Каждый запрос выполняется в рабочем пространстве вашего API-ключа. Проверьте, что QR-код относится к нему. См. Аутентификация.

Что дальше

Данные QR-кода по типам

Оформление

Правила доступа

Аналитика