GetQR API находится в бета-версии и доступен для отдельных рабочих пространств. До общего релиза детали могут измениться.
Данные QR-кода по типам
Формат
data для каждого из 16 типов.Оформление
Стили точек, цвета, рамки и логотипы.
Правила доступа
Расписание, лимит сканирований и пароль.
Объект 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-коды.string | null
Полная короткая ссылка, например
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.object | null
Только для чтения. QR-код
image с несколькими изображениями, созданный в панели управления: title, layout и files.string
Дата создания, ISO 8601.
string
Дата последнего обновления, ISO 8601.
password, userId, workspaceId, projectId) никогда не возвращаются.
Список QR-кодов
GET /api/v1/qrs
Возвращает QR-коды вашего рабочего пространства постранично.
integer
по умолчанию:"1"
Возвращаемая страница, 1 или больше.
integer
по умолчанию:"100"
QR-кодов на странице, от 1 до 100. Большее значение отклоняется.
string
Ищет по названию 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-кода по типам.object
Короткая ссылка, через которую работает 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 создаёт его приостановленным: сканирования показывают страницу паузы вместо адреса назначения.Повторы и дубликаты
- С ключом. С заголовком
Idempotency-Keyответ повторяется в течение 24 часов. - Без ключа. Одинаковое тело запроса, отправленное в течение 30 секунд, считается дубликатом.
- Повторы. Повтор возвращает сохранённый ответ с
x-idempotent-replay: true. Новый QR-код возвращаетfalse. - Запрос ещё выполняется. Второй запрос, пока первый ещё выполняется, получает
409 conflict. - Ошибки. Если создание не удалось, ключ сразу освобождается, и можно повторить запрос с тем же ключом.
- Без гарантий. Если защита от дубликатов недоступна, создание выполняется без неё.
Получение QR-кода
GET /api/v1/qrs/{qrId}
Возвращает QR-код с его короткой ссылкой, правилами доступа, дизайном и, для типов с файлами, его файлом.
string
обязательно
ID QR-кода из ответа на запрос списка или создания.
Обновление QR-кода
PATCH /api/v1/qrs/{qrId}
Изменяет содержимое, адрес назначения, дизайн или правила доступа QR-кода. Передавайте только поля, которые хотите изменить. Отвечает обновлённым QR-кодом.
string
обязательно
ID 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-код вместе с его короткой ссылкой, как Приостановка и Возобновление.
Установка состояния паузы
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 удалённого кода.
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-кодов, шаблонов и массового создания. Неизвестные формы, рамки или логотипы отклоняются. Все допустимые значения и готовый пример — в разделе Оформление.
Частые проблемы
422 при установке пароля, расписания или лимита сканирований
422 при установке пароля, расписания или лимита сканирований
Передавайте правило в
access, а не в link.422 при изменении link.domain или link.key
422 при изменении link.domain или link.key
Короткую ссылку нельзя изменить после создания, потому что её кодирует напечатанный код. Вместо этого создайте новый QR-код.
422 "Expected … for qrType"
422 "Expected … for qrType"
data не соответствует формату qrType. Проверьте тип в разделе Данные QR-кода по типам.409 conflict при создании QR-кода
409 conflict при создании QR-кода
Такой же запрос на создание ещё выполняется, или
link.key уже занят. Повторите запрос, когда первый завершится. С Idempotency-Key повтор вернёт исходный QR-код.Скачивается JPEG, а не PNG
Скачивается JPEG, а не PNG
Параметры называются
format и resolution, а format по умолчанию равен jpg. Передайте format=png.404 для QR-кода, который виден в панели управления
404 для QR-кода, который виден в панели управления
Каждый запрос выполняется в рабочем пространстве вашего API-ключа. Проверьте, что QR-код относится к нему. См. Аутентификация.