Saltar para o conteúdo principal
A API do GetQR está em versão beta e só está disponível para alguns espaços de trabalho. Os detalhes podem mudar antes do lançamento geral.
No GetQR, um código QR é a imagem mais uma ligação curta através da qual é resolvido. Criar um código QR cria também a respetiva ligação curta, pelo que pode alterar o destino mais tarde sem voltar a imprimir o código.

Dados do código QR por tipo

O formato de data de cada um dos 16 tipos.

Personalização

Estilos de pontos, cores, molduras e logótipos.

Regras de acesso

Agendamento, limite de leituras e palavra-passe.
Para as estatísticas de leituras de um código QR, consulte Estatísticas.

O objeto de código QR

Todos os endpoints de códigos QR respondem com este objeto, exceto Eliminar e Transferir. A listagem devolve um array destes objetos.
string
ID único do código QR, por exemplo qr_1EPcVfeHZAY2iNoVLsgW2Aqf.
string
Tipo de código QR, por exemplo website. Consulte Dados do código QR por tipo para ver os 16 valores.
string | null
Nome do código QR, apresentado no painel.
string | null
Nota livre sobre o código QR.
string
O payload guardado. Em wifi, vcard, social, multilink, event e sms, é o payload que enviou. Nos restantes tipos, é a ligação curta, pelo que deve ler o destino em url.
boolean
true quando o código QR está em pausa.
boolean
true num código QR estático criado no painel, que não tem ligação curta. A API cria sempre códigos QR dinâmicos.
Ligação curta completa, por exemplo https://getqr.sh/x7Kd2p1.
string | null
Domínio da ligação curta.
string | null
Slug da ligação curta.
boolean
true quando o slug foi escolhido em vez de gerado.
string | null
Destino para o qual a ligação curta redireciona.
string | null
Destino para os visitantes em iOS, nos códigos QR app.
string | null
Destino para os visitantes em Android, nos códigos QR app.
integer
Número total de leituras.
object
Regras de acesso. A palavra-passe nunca é devolvida. Consulte Regras de acesso.
string
Só de leitura. custom é um design que a API pode editar na totalidade. branded e ai são um Branded design ou um AI design criado no painel. A API não pode editar a respetiva imagem, mas mantém-na quando altera outros campos.
object
O design guardado: styles, frameOptions e logoOptions, cada um um objeto ou null. Têm a mesma estrutura dos campos do pedido, pelo que os pode reenviar. Consulte Personalização.
object | null
O ficheiro de um código QR pdf, image ou video: id, name e size em bytes.
string | null
Só de leitura. Nome apresentado de um código QR app criado no painel.
object | null
Só de leitura. Um código QR pdf com vários ficheiros, criado no painel: title, layout e files.
Só de leitura. Um código QR image com várias imagens, criado no painel: title, layout e files.
string
Data de criação, ISO 8601.
string
Data da última atualização, ISO 8601.
Os segredos e os IDs internos (password, userId, workspaceId, projectId) nunca são devolvidos.

Listar códigos QR

GET /api/v1/qrs Devolve os códigos QR do seu espaço de trabalho, uma página de cada vez.
integer
padrão:"1"
Página a devolver, 1 ou mais.
integer
padrão:"100"
Códigos QR por página, de 1 a 100. Um valor superior é rejeitado.
Pesquisa no título do código QR. As pesquisas com mais de 2 caracteres também pesquisam no data guardado. Nos tipos de ligação, o data guardado é a ligação curta, pelo que não é possível pesquisar pelos URL de destino.
string
padrão:"createdAt"
Campo pelo qual ordenar: createdAt, updatedAt, clicks (leituras totais), lastClicked (última leitura) ou type. type ordena sempre por ordem decrescente e ignora sortOrder.
string
padrão:"desc"
Sentido da ordenação: asc ou desc.
boolean
padrão:"false"
Inclui os códigos QR em pausa.
boolean
padrão:"false"
Devolve apenas os códigos QR em pausa. Prevalece sobre showArchived.
Os parâmetros booleanos aceitam as strings true ou false. Peça a página seguinte enquanto pagination.hasMore for true. Consulte Paginação.

Criar um código QR

POST /api/v1/qrs Cria um código QR e a respetiva ligação curta em conjunto. Responde 201 Created com o novo código QR.
string
O seu próprio token de repetição. Se repetir o pedido com a mesma chave no prazo de 24 horas, recebe a resposta original em vez de um segundo código QR. Consulte Repetições e duplicados.
string
obrigatório
O que o código QR codifica. Define também o formato que data tem de ter. Um de website, pdf, image, video, whatsapp, social, wifi, app, feedback, vcard, sms, payment, location, multilink, email, event.
string
obrigatório
O payload do tipo, validado face a qrType. Uma string vazia ignora a validação. O formato de cada tipo está em Dados do código QR por tipo.
A ligação curta através da qual o código QR é resolvido. Opcional: se for omitida, link.url segue data.
string
Nome do código QR, apresentado no painel. Os espaços no início e no fim são removidos; de 1 a 40 caracteres. Se for omitido, o código QR fica sem título.
string
Nota livre sobre o código QR. Até 280 caracteres.
string
O ficheiro de um código QR pdf, image ou video, carregado com o target correspondente. Em vcard, social e multilink, uma imagem de perfil opcional carregada com o target logo. event também o aceita, mas a respetiva página lê a capa a partir de data.fileId. Os outros tipos devolvem 422. Carregue primeiro o ficheiro com Ficheiros. Consulte Ficheiros em códigos QR.
string
Modelo cujo design é aplicado ao novo código QR. Os campos de design que enviar são combinados sobre ele. Um modelo de Branded design ou AI design devolve 422 (art_template_unsupported). Um modelo desconhecido, ou de outro espaço de trabalho, devolve 404.
object
Formas e cores dos pontos e dos cantos. Consulte Personalização.
object
Moldura desenhada à volta do código QR e o respetivo texto de apelo à ação. Consulte Personalização.
object
Logótipo no centro: um logótipo sugerido ou o seu próprio ficheiro carregado com o target logo. Um ficheiro desconhecido, um carregamento não concluído ou um ficheiro de outro target é rejeitado. Consulte Personalização.
object
Agendamento, limite de leituras e proteção por palavra-passe. Consulte Regras de acesso.
boolean
Se o código QR está em pausa. true cria-o já em pausa: as leituras mostram a página de pausa em vez do destino.
Os campos desconhecidos são descartados sem erro. Consulte Não suportado na API.

Repetições e duplicados

  • Com chave. Com um cabeçalho Idempotency-Key, a resposta é reproduzida durante 24 horas.
  • Sem chave. Um corpo idêntico enviado no espaço de 30 segundos é tratado como duplicado.
  • Reproduções. Uma reprodução devolve a resposta guardada com x-idempotent-replay: true. Um novo código QR devolve false.
  • Em curso. Um segundo pedido enquanto o primeiro ainda está em curso devolve 409 conflict.
  • Falhas. Uma criação falhada liberta a chave de imediato, pelo que pode repetir com a mesma chave.
  • Sem garantia. Se a proteção não estiver disponível, as criações são processadas sem proteção.
Consulte também Idempotência.

Obter um código QR

GET /api/v1/qrs/{qrId} Devolve um código QR com a respetiva ligação curta, regras de acesso, design e, nos tipos baseados em ficheiros, o ficheiro.
string
obrigatório
ID do código QR, obtido na resposta da listagem ou da criação.
A resposta é o objeto de código QR completo.

Atualizar um código QR

PATCH /api/v1/qrs/{qrId} Altera o conteúdo, o destino, o design ou as regras de acesso de um código QR. Envie apenas os campos que pretende alterar. Responde com o código QR atualizado.
string
obrigatório
ID do código QR.
O corpo aceita os mesmos campos de Criar um código QR, todos opcionais, com estas diferenças:
  • templateId. Não é aceite.
  • link. Parcial. O destino atual é mantido se omitir link.url. link.domain e link.key devolvem 422: a ligação curta é o que o código impresso codifica, por isso crie um novo código QR para usar outra.
  • data. Só é validado face ao tipo resultante quando data ou qrType muda. Mudar qrType sem um data correspondente é rejeitado. Consulte Mudar de tipo.
  • Design. styles, frameOptions e logoOptions são combinados com o design guardado, pelo que um objeto parcial só altera o que indica. Escolher outro logótipo substitui-o, mas mantém o respetivo tamanho.
  • access. Cada chave é aplicada quando está presente. null apaga uma regra. As regras de acesso ficam dentro de access: enviá-las dentro de link devolve 422.
  • archived. Coloca em pausa ou reativa em conjunto o código QR e a ligação curta, tal como Pausar e Reativar.
O que cada tipo permite alterar após a impressão está indicado em Dados do código QR por tipo.

Definir o estado de pausa

PUT /api/v1/qrs/{qrId} Define diretamente o estado de pausa. Pausar e Reativar fazem o mesmo de forma mais legível.
string
obrigatório
ID do código QR.
boolean
obrigatório
true para colocar o código QR em pausa, false para o reativar.

Pausar um código QR

POST /api/v1/qrs/{qrId}/pause O código QR deixa de encaminhar para o destino: as leituras mostram a página de pausa. O código impresso e a ligação curta continuam válidos. Sem corpo de pedido.
string
obrigatório
ID do código QR.

Reativar um código QR

POST /api/v1/qrs/{qrId}/activate Um código QR em pausa volta a encaminhar para o destino. O agendamento e o limite de leituras continuam a aplicar-se. Sem corpo de pedido.
string
obrigatório
ID do código QR.

Duplicar um código QR

POST /api/v1/qrs/{qrId}/duplicate Cria uma cópia com o mesmo conteúdo e design. Sem corpo de pedido. Responde 201 Created com o novo código QR.
string
obrigatório
ID do código QR a copiar.
  • Ligação curta. A cópia recebe a sua própria ligação curta, com um slug aleatório no domínio predefinido do espaço de trabalho, e não no domínio do original. As respetivas leituras são contadas em separado.
  • Título. O título recebe o sufixo (Copy). O resultado não ultrapassa os 40 caracteres: um título longo é encurtado primeiro. Um código QR sem título continua sem título.
  • Não copiado. As regras de acesso (palavra-passe, agendamento, limite de leituras) e o estado de pausa. A cópia fica sempre ativa.
  • Ficheiros. Os ficheiros PDF e de imagem, incluindo os de conjuntos e galerias, são copiados, pelo que passam a pertencer à cópia. Os ficheiros de vídeo e os ficheiros de design, como os logótipos, são partilhados com o original.

Eliminar um código QR

DELETE /api/v1/qrs/{qrId} Elimina o código QR e a respetiva ligação curta. Responde com o ID eliminado.
A eliminação é permanente. O código impresso e a ligação curta deixam de funcionar, e o histórico de leituras deixa de estar acessível. Se puder voltar a precisar dele, coloque o código QR em pausa.
string
obrigatório
ID do código QR.
string
ID do código QR eliminado.
boolean
Sempre true.

Transferir a imagem de um código QR

GET /api/v1/qrs/{qrId}/download Gera o código QR com o respetivo design e devolve o ficheiro.
string
obrigatório
ID do código QR a gerar, obtido na resposta da listagem ou da criação.
string
padrão:"jpg"
Formato de saída: jpg, png, svg, pdf (uma página A4) ou eps. Um Branded design ou AI design só é transferido em jpg, png ou pdf.
integer
padrão:"1024"
Tamanho da imagem em píxeis: 1024, 2048 ou 4096. svg e pdf ignoram este valor. Um Branded design ou AI design só é transferido em 1024.
  • Corpo. O corpo da resposta é o ficheiro. O nome de ficheiro sugerido está no cabeçalho Content-Disposition, criado a partir do título, ou qr-code num código QR sem título.
  • Cache. As respostas incluem um ETag e Cache-Control: private, max-age=3600, must-revalidate. Reenvie o ETag em If-None-Match para receber 304 Not Modified quando o código QR não tiver mudado.
  • Erros. Um formato ou uma resolução não suportados devolvem 400 bad_request. A mensagem de erro indica o motivo: qr_download_invalid_format, qr_download_invalid_resolution, qr_download_art_format_unsupported ou qr_download_art_resolution_unsupported.

Regras de acesso

Envie um objeto access na criação ou na atualização para agendar um início e um fim, limitar o número de leituras ou exigir uma palavra-passe. As regras omitidas não são alteradas, e null apaga uma regra. O comportamento completo, com exemplos, está em Regras de acesso.

Objetos de design

styles, frameOptions e logoOptions definem as formas dos pontos e dos cantos, as cores, a moldura e o logótipo. Funcionam da mesma forma em códigos QR, modelos e criações em massa. As formas, molduras ou logótipos desconhecidos são rejeitados. Todos os valores aceites e um exemplo completo estão em Personalização.

Problemas comuns

Envie a regra dentro de access e não dentro de link.
data não corresponde ao formato de qrType. Verifique o tipo em Dados do código QR por tipo.
Uma criação idêntica ainda está em curso, ou link.key já está a ser utilizado. Repita quando o primeiro pedido terminar. Com uma Idempotency-Key, a repetição devolve o código QR original.
Os parâmetros são format e resolution, e format é jpg por predefinição. Envie format=png.
Cada pedido é executado no espaço de trabalho da sua chave de API. Verifique se o código QR pertence a esse espaço de trabalho. Consulte Autenticação.

Próximos passos

Dados do código QR por tipo

Personalização

Regras de acesso

Estatísticas