Obter QR code
GET
/v1/instances/{id}/qrdesde M1token da instância ou adminQuando usar
QR atual para escanear em WhatsApp > Aparelhos conectados. O código muda a cada poucos segundos: busque de novo se expirar. Só responde enquanto a instância está qr_pending.
Autenticação
Aceita o token da instância (só a própria instância) ou o token admin. Um token de outra instância recebe 403 forbidden (ou 404 not_found em webhooks de outra instância).
Parâmetros
Caminho
| Nome | Tipo | Descrição |
|---|---|---|
idobrigatório | string | Id da instância (inst_...). |
Query
| Nome | Tipo | Descrição |
|---|---|---|
format | "png" | png devolve a imagem (320×320); omitido devolve o texto do QR em JSON. |
Exemplo
curl -s "$LITEZAP_URL/v1/instances/$ID/qr?format=png" \ -H "Authorization: Bearer $LITEZAP_TOKEN" \ -o qr.pngimport { writeFile } from "node:fs/promises";
const res = await fetch("http://localhost:8787/v1/instances/inst_7f3a9c2e5b1d4086/qr?format=png", { headers: { Authorization: `Bearer ${process.env.LITEZAP_TOKEN}` },});await writeFile("qr.png", Buffer.from(await res.arrayBuffer()));import osimport requests
r = requests.get( "http://localhost:8787/v1/instances/inst_7f3a9c2e5b1d4086/qr", headers={"Authorization": f"Bearer {os.environ['LITEZAP_TOKEN']}"}, params={ "format": "png", }, timeout=150,)r.raise_for_status()open("qr.png", "wb").write(r.content)package main
import ( "fmt" "io" "net/http" "os")
func main() { req, _ := http.NewRequest("GET", "http://localhost:8787/v1/instances/inst_7f3a9c2e5b1d4086/qr?format=png", nil) req.Header.Set("Authorization", "Bearer "+os.Getenv("LITEZAP_TOKEN")) resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() f, _ := os.Create("qr.png") defer f.Close() io.Copy(f, resp.Body) fmt.Println(resp.Status)}<?phprequire 'vendor/autoload.php'; // composer require guzzlehttp/guzzle
$client = new GuzzleHttp\Client(['base_uri' => 'http://localhost:8787']);$res = $client->request('GET', '/v1/instances/inst_7f3a9c2e5b1d4086/qr', [ 'headers' => ['Authorization' => 'Bearer ' . getenv('LITEZAP_TOKEN')], 'query' => [ 'format' => 'png', ], 'sink' => 'qr.png', 'http_errors' => false,]);echo $res->getStatusCode(), ' ', 'salvo em qr.png', PHP_EOL;Nos exemplos, LITEZAP_URL é a URL base (ex.: http://localhost:8787) e o token vem deLITEZAP_TOKEN (instância) ou LITEZAP_ADMIN_TOKEN.
Resposta
200 Código do QR (JSON) ou imagem PNG. Também: image/png.
Campos de object
code | string |
{ "code": "2@kQ3x...,Zm9v...,YmFy...,MQ=="}Erros
| Código | HTTP | Retentável | O que fazer |
|---|---|---|---|
unauthorized | 401 | não | Envie Authorization: Bearer <token> válido. |
forbidden | 403 | não | Use o token certo (admin, ou o da própria instância). |
instance_not_found | 404 | não | Confira o id da instância. |
instance_not_pairing | 409 | depende | Só vale em qr_pending; a instância já está pareada ou parada. |
Todo erro usa o envelope {"error":{"code","message","retryable"}}. Tabela completa em Erros.
Eventos gerados
Equivalente na Z-API: Pegar QRCode / QRCode imagem. Veja Migrar da Z-API.
Outras operações de Pareamento: Parear por código

