> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getqr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Coduri QR

> Creați, listați, actualizați, puneți în pauză, duplicați, ștergeți și descărcați coduri QR.

> [!NOTE]
>
> API-ul GetQR este în versiune beta și este disponibil pentru anumite spații de lucru. Detaliile se pot schimba înainte de lansarea generală.

În GetQR, un cod QR este imaginea plus un link scurt prin care se rezolvă. Crearea unui cod QR creează și linkul său scurt, așa că puteți schimba destinația mai târziu fără să retipăriți codul.

| Metodă | Cale | Descriere |
| - | - | - |
| `GET` | `/api/v1/qrs` | [Listarea codurilor QR](#listarea-codurilor-qr) |
| `POST` | `/api/v1/qrs` | [Crearea unui cod QR](#crearea-unui-cod-qr) |
| `GET` | `/api/v1/qrs/{qrId}` | [Obținerea unui cod QR](#obținerea-unui-cod-qr) |
| `PATCH` | `/api/v1/qrs/{qrId}` | [Actualizarea unui cod QR](#actualizarea-unui-cod-qr) |
| `PUT` | `/api/v1/qrs/{qrId}` | [Setarea stării de pauză](#setarea-stării-de-pauză) |
| `POST` | `/api/v1/qrs/{qrId}/pause` | [Punerea în pauză a unui cod QR](#punerea-în-pauză-a-unui-cod-qr) |
| `POST` | `/api/v1/qrs/{qrId}/activate` | [Reactivarea unui cod QR](#reactivarea-unui-cod-qr) |
| `POST` | `/api/v1/qrs/{qrId}/duplicate` | [Duplicarea unui cod QR](#duplicarea-unui-cod-qr) |
| `DELETE` | `/api/v1/qrs/{qrId}` | [Ștergerea unui cod QR](#ștergerea-unui-cod-qr) |
| `GET` | `/api/v1/qrs/{qrId}/download` | [Descărcarea imaginii unui cod QR](#descărcarea-imaginii-unui-cod-qr) |

> [card] [Datele codurilor QR pe tipuri](https://docs.getqr.com/ro/api/guides/qr-types.md)
>
> Formatul `data` pentru fiecare dintre cele 16 tipuri.

> [card] [Personalizare](https://docs.getqr.com/ro/api/guides/customization.md)
>
> Stiluri de puncte, culori, cadre și logouri.

> [card] [Reguli de acces](https://docs.getqr.com/ro/api/guides/access-rules.md)
>
> Programare, limită de scanări și parolă.

Pentru statisticile de scanare ale unui cod QR, consultați [Statistici](https://docs.getqr.com/ro/api/endpoints/analytics.md).

## Obiectul cod QR

Toate endpointurile pentru coduri QR răspund cu acest obiect, cu excepția [ștergerii](#ștergerea-unui-cod-qr) și a [descărcării](#descărcarea-imaginii-unui-cod-qr). Listarea returnează un array de astfel de obiecte.

**id** `string`

ID-ul unic al codului QR, de exemplu `qr_1EPcVfeHZAY2iNoVLsgW2Aqf`.

**qrType** `string`

Tipul codului QR, de exemplu `website`. Consultați [Datele codurilor QR pe tipuri](https://docs.getqr.com/ro/api/guides/qr-types.md) pentru toate cele 16 valori.

**title** `string | null`

Numele codului QR, afișat în panou.

**description** `string | null`

Notă liberă despre codul QR.

**data** `string`

Payloadul stocat. Pentru `wifi`, `vcard`, `social`, `multilink`, `event` și `sms`, este payloadul pe care l-ați trimis. Pentru toate celelalte tipuri, este linkul scurt, așa că citiți destinația din `url`.

**archived** `boolean`

`true` când codul QR este pus în pauză.

**isStatic** `boolean`

`true` pentru un cod QR static creat în panou, care nu are link scurt. API-ul creează întotdeauna coduri QR dinamice.

**shortLink** `string | null`

Linkul scurt complet, de exemplu `https://getqr.sh/x7Kd2p1`.

**domain** `string | null`

Domeniul linkului scurt.

**key** `string | null`

Slugul linkului scurt.

**keyIsCustom** `boolean`

`true` când slugul a fost ales, nu generat.

**url** `string | null`

Destinația către care redirecționează linkul scurt.

**ios** `string | null`

Destinația pentru vizitatorii de pe iOS, la codurile QR `app`.

**android** `string | null`

Destinația pentru vizitatorii de pe Android, la codurile QR `app`.

**scans** `integer`

Numărul total de scanări.

**access** `object`

Regulile de acces. Parola în sine nu este returnată niciodată. Consultați [Reguli de acces](https://docs.getqr.com/ro/api/guides/access-rules.md).

**properties**

**passwordProtected** `boolean`

Dacă vizitatorii trebuie să introducă o parolă.

**activeAt** `string | null`

Început programat, ISO 8601.

**pauseAt** `string | null`

Sfârșit programat, ISO 8601.

**scanLimit** `integer | null`

Numărul maxim de scanări.

**designKind** `string`

Doar citire. `custom` este un design pe care API-ul îl poate edita complet. `branded` și `ai` sunt un design Branded sau un design AI creat în panou. API-ul nu îi poate edita imaginea, dar o păstrează când modificați alte câmpuri.

**design** `object`

Designul stocat: `styles`, `frameOptions` și `logoOptions`, fiecare fiind un obiect sau `null`. Au aceeași formă ca și câmpurile cererii, așa că le puteți trimite înapoi. Consultați [Personalizare](https://docs.getqr.com/ro/api/guides/customization.md).

**file** `object | null`

Fișierul unui cod QR `pdf`, `image` sau `video`: `id`, `name` și `size` în octeți.

**appName** `string | null`

Doar citire. Numele afișat al unui cod QR `app` creat în panou.

**pdfBundle** `object | null`

Doar citire. Un cod QR `pdf` cu mai multe fișiere, creat în panou: `title`, `layout` și `files`.

**imageGallery** `object | null`

Doar citire. Un cod QR `image` cu mai multe imagini, creat în panou: `title`, `layout` și `files`.

**createdAt** `string`

Data creării, ISO 8601.

**updatedAt** `string`

Data ultimei actualizări, ISO 8601.

Datele secrete și ID-urile interne (`password`, `userId`, `workspaceId`, `projectId`) nu sunt returnate niciodată.

```json theme={null}
{
  "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
  "qrType": "website",
  "title": "Landing page",
  "description": null,
  "data": "https://getqr.sh/x7Kd2p1",
  "archived": false,
  "isStatic": false,
  "shortLink": "https://getqr.sh/x7Kd2p1",
  "domain": "getqr.sh",
  "key": "x7Kd2p1",
  "keyIsCustom": false,
  "url": "https://example.com",
  "ios": null,
  "android": null,
  "scans": 128,
  "access": {
    "passwordProtected": false,
    "activeAt": null,
    "pauseAt": null,
    "scanLimit": null
  },
  "designKind": "custom",
  "design": {
    "styles": { "dotsOptions": { "type": "rounded", "color": "#1E40AF" }, … },
    "frameOptions": { "id": "card", "text": "Scan me!", … },
    "logoOptions": { "type": "suggested", "id": "logo-website-3", "scalePercent": 25 }
  },
  "file": null,
  "appName": null,
  "pdfBundle": null,
  "imageGallery": null,
  "createdAt": "2026-08-01T10:00:00.000Z",
  "updatedAt": "2026-08-01T10:00:00.000Z"
}
```

## Listarea codurilor QR

`GET /api/v1/qrs`

Returnează codurile QR din spațiul dvs. de lucru, câte o pagină odată.

**page** `integer` (default: 1)

Pagina returnată, 1 sau mai mult.

**pageSize** `integer` (default: 100)

Coduri QR pe pagină, de la 1 la 100. O valoare mai mare este respinsă.

**search** `string`

Caută în titlul codului QR. Interogările mai lungi de 2 caractere caută și în `data` stocat. Pentru tipurile de tip link, `data` stocat este linkul scurt, așa că URL-urile de destinație nu pot fi căutate.

**sortBy** `string` (default: createdAt)

Câmpul după care se sortează: `createdAt`, `updatedAt`, `clicks` (totalul scanărilor), `lastClicked` (ultima scanare) sau `type`. `type` sortează întotdeauna descrescător și ignoră `sortOrder`.

**sortOrder** `string` (default: desc)

Direcția sortării: `asc` sau `desc`.

**showArchived** `boolean` (default: false)

Include codurile QR puse în pauză.

**onlyArchived** `boolean` (default: false)

Returnează doar codurile QR puse în pauză. Are prioritate față de `showArchived`.

Parametrii booleeni primesc șirurile `true` sau `false`. Cereți pagina următoare cât timp `pagination.hasMore` este `true`. Consultați [Paginare](https://docs.getqr.com/ro/api/introduction.md#paginare).

```bash cURL theme={null}
curl "https://getqr.com/api/v1/qrs?page=1&pageSize=100" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 200 theme={null}
{
  "data": [
    {
      "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
      "qrType": "website",
      "title": "Landing page",
      "shortLink": "https://getqr.sh/x7Kd2p1",
      "url": "https://example.com",
      "scans": 128,
      "…": "…"
    }
  ],
  "pagination": { "page": 1, "pageSize": 100, "total": 1, "hasMore": false }
}
```

## Crearea unui cod QR

`POST /api/v1/qrs`

Creează un cod QR împreună cu linkul său scurt. Răspunde cu `201 Created` și noul [cod QR](#obiectul-cod-qr).

**Idempotency-Key** `string`

Propriul dvs. token pentru reîncercări. Dacă repetați cererea cu aceeași cheie în decurs de 24 de ore, primiți răspunsul inițial în loc să se creeze un al doilea cod QR. Consultați [Reîncercări și duplicate](#reîncercări-și-duplicate).

**qrType** `string` *required*

Ce codifică codul QR. Stabilește și formatul pe care trebuie să îl aibă `data`. Una dintre valorile `website`, `pdf`, `image`, `video`, `whatsapp`, `social`, `wifi`, `app`, `feedback`, `vcard`, `sms`, `payment`, `location`, `multilink`, `email`, `event`.

**data** `string` *required*

Payloadul tipului, verificat în funcție de `qrType`. Un șir gol sare peste verificare. Formatul fiecărui tip este descris în [Datele codurilor QR pe tipuri](https://docs.getqr.com/ro/api/guides/qr-types.md).

**link** `object`

Linkul scurt prin care se rezolvă codul QR. Opțional: dacă este omis, `link.url` urmează `data`.

**properties**

**url** `string`

Destinația către care redirecționează linkul scurt. Dacă este omis sau gol, implicit este `data`. Când ambele sunt trimise și diferă, are prioritate `link.url`. Codurile QR `vcard`, `social`, `multilink` și `event` indică întotdeauna pagina lor găzduită, iar codurile QR `pdf`, `image` și `video` cu un `fileId` indică fișierul. Scheme acceptate: `http:`, `https:`, `wifi:`, `mailto:`, `sms:`, `begin:`.

**domain** `string`

Domeniul linkului scurt. Trebuie să fie un domeniu activ al spațiului dvs. de lucru: alt domeniu primește `403`, iar un domeniu care nu este încă activ primește `422`. Implicit este domeniul implicit al spațiului de lucru.

**key** `string`

Slugul linkului scurt, între 3 și 15 caractere, stocat cu litere mici. Un slug nepermis primește `422`, iar unul deja ocupat primește `409`. Dacă este omis, se generează un slug aleatoriu de 7 caractere.

**ios** `string | null`

URL-ul de destinație pentru vizitatorii de pe iOS, la codurile QR `app`.

**android** `string | null`

URL-ul de destinație pentru vizitatorii de pe Android, la codurile QR `app`.

**title** `string | null`

Titlul previzualizării linkului (`og:title`), stocat pe linkul scurt. Diferit de `title` al codului QR. Deocamdată nu este afișat nicăieri.

**description** `string | null`

Descrierea previzualizării linkului (`og:description`), stocată pe linkul scurt. Deocamdată nu este afișată nicăieri.

**expiresAt, expiredUrl** `—`

Nu sunt disponibile în acest API: trimiterea oricăruia dintre ele primește `422`. Folosiți `access.pauseAt` pentru a opri codul QR la un anumit moment.

**title** `string`

Numele codului QR, afișat în panou. Fără spații la capete, între 1 și 40 de caractere. Dacă este omis, codul QR nu are titlu.

**description** `string`

Notă liberă despre codul QR. Până la 280 de caractere.

**fileId** `string`

Fișierul unui cod QR `pdf`, `image` sau `video`, încărcat cu targetul corespunzător. Pentru `vcard`, `social` și `multilink`, o imagine de profil opțională, încărcată cu targetul `logo`. `event` îl acceptă și el, dar pagina sa citește coperta din `data.fileId`. Alte tipuri primesc `422`. Încărcați mai întâi fișierul cu [Fișiere](https://docs.getqr.com/ro/api/endpoints/files.md). Consultați [Fișiere în codurile QR](https://docs.getqr.com/ro/api/guides/qr-types.md#fișiere-în-codurile-qr).

**templateId** `string`

[Șablonul](https://docs.getqr.com/ro/api/endpoints/templates.md) al cărui design se aplică noului cod QR. Câmpurile de design pe care le trimiteți sunt aplicate peste el. Un șablon cu design Branded sau design AI primește `422` (`art_template_unsupported`). Un șablon necunoscut sau unul din alt spațiu de lucru primește `404`.

**styles** `object`

Forma punctelor și a colțurilor și culorile. Consultați [Personalizare](https://docs.getqr.com/ro/api/guides/customization.md).

**frameOptions** `object`

Cadrul desenat în jurul codului QR și textul îndemnului la acțiune. Consultați [Personalizare](https://docs.getqr.com/ro/api/guides/customization.md).

**logoOptions** `object`

Logoul din centru: un logo sugerat sau propriul fișier, încărcat cu targetul `logo`. Un fișier necunoscut, o încărcare nefinalizată sau un fișier de la alt target sunt respinse. Consultați [Personalizare](https://docs.getqr.com/ro/api/guides/customization.md).

**access** `object`

Programare, limită de scanări și protecție cu parolă. Consultați [Reguli de acces](https://docs.getqr.com/ro/api/guides/access-rules.md).

**properties**

**activeAt** `string | null`

Început programat, ISO 8601.

**pauseAt** `string | null`

Sfârșit programat, ISO 8601.

**scanLimit** `integer | null`

Numărul maxim de scanări, un număr întreg pozitiv.

**password** `string | null`

Parola pe care trebuie să o introducă vizitatorii. Trimiterea ei activează protecția.

**passwordProtected** `boolean`

Dezactivează sau reactivează protecția, păstrând parola stocată.

**archived** `boolean`

Dacă codul QR este pus în pauză. `true` îl creează pus în pauză: scanările afișează pagina de pauză în locul destinației.

Câmpurile necunoscute sunt eliminate fără eroare. Consultați [Nu este acceptat prin API](https://docs.getqr.com/ro/api/guides/qr-types.md#nu-este-acceptat-prin-api).

```bash cURL theme={null}
curl -X POST "https://getqr.com/api/v1/qrs" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: landing-page-2026-08" \
  -d '{
    "qrType": "website",
    "data": "https://example.com",
    "title": "Landing page",
    "access": { "scanLimit": 500 }
  }'
```

```json 201 theme={null}
{
  "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
  "qrType": "website",
  "title": "Landing page",
  "data": "https://getqr.sh/x7Kd2p1",
  "shortLink": "https://getqr.sh/x7Kd2p1",
  "url": "https://example.com",
  "scans": 0,
  "access": { "passwordProtected": false, "activeAt": null, "pauseAt": null, "scanLimit": 500 },
  "…": "…"
}
```

### Reîncercări și duplicate

* **Cu cheie.** Cu un antet `Idempotency-Key`, răspunsul este reluat timp de 24 de ore.
* **Fără cheie.** Un corp identic trimis în decurs de 30 de secunde este tratat ca duplicat.
* **Reluări.** O reluare returnează răspunsul stocat cu `x-idempotent-replay: true`. Un cod QR nou returnează `false`.
* **În curs.** O a doua cerere trimisă cât timp prima încă rulează primește `409 conflict`.
* **Eșecuri.** O creare eșuată eliberează imediat cheia, așa că puteți reîncerca cu aceeași cheie.
* **Fără garanții.** Dacă mecanismul de protecție nu este disponibil, creările trec neprotejate.

Consultați și [Idempotență](https://docs.getqr.com/ro/api/introduction.md#idempotență).

## Obținerea unui cod QR

`GET /api/v1/qrs/{qrId}`

Returnează un [cod QR](#obiectul-cod-qr) cu linkul său scurt, regulile de acces, designul și, pentru tipurile bazate pe fișiere, fișierul.

**qrId** `string` *required*

ID-ul codului QR, din răspunsul listei sau al creării.

```bash cURL theme={null}
curl "https://getqr.com/api/v1/qrs/qr_1EPcVfeHZAY2iNoVLsgW2Aqf" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

Răspunsul este [obiectul cod QR](#obiectul-cod-qr) complet.

## Actualizarea unui cod QR

`PATCH /api/v1/qrs/{qrId}`

Modifică conținutul, destinația, designul sau regulile de acces ale unui cod QR. Trimiteți doar câmpurile pe care vreți să le modificați. Răspunde cu [codul QR](#obiectul-cod-qr) actualizat.

**qrId** `string` *required*

ID-ul codului QR.

Corpul primește aceleași câmpuri ca la [Crearea unui cod QR](#crearea-unui-cod-qr), toate opționale, cu aceste diferențe:

* **`templateId`.** Nu este acceptat.
* **`link`.** Parțial. Destinația actuală este păstrată când omiteți `link.url`. `link.domain` și `link.key` primesc `422`: linkul scurt este ceea ce codifică codul tipărit, așa că pentru a folosi altul creați un cod QR nou.
* **`data`.** Verificat în funcție de tipul rezultat doar când se schimbă `data` sau `qrType`. Schimbarea `qrType` fără un `data` corespunzător este respinsă. Consultați [Schimbarea tipului](https://docs.getqr.com/ro/api/guides/qr-types.md#schimbarea-tipului).
* **Design.** `styles`, `frameOptions` și `logoOptions` sunt combinate cu designul stocat, așa că un obiect parțial modifică doar ce menționează. Alegerea altui logo îl înlocuiește, dar îi păstrează dimensiunea.
* **`access`.** Fiecare cheie se aplică atunci când este prezentă. `null` șterge o regulă. Regulile de acces se trimit în `access`: trimiterea lor în `link` primește `422`.
* **`archived`.** Pune în pauză sau reactivează împreună codul QR și linkul său scurt, la fel ca [Punerea în pauză](#punerea-în-pauză-a-unui-cod-qr) și [Reactivarea](#reactivarea-unui-cod-qr).

```bash cURL theme={null}
curl -X PATCH "https://getqr.com/api/v1/qrs/qr_1EPcVfeHZAY2iNoVLsgW2Aqf" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Autumn campaign",
    "access": { "password": "s3cr3t", "passwordProtected": true }
  }'
```

```json 200 theme={null}
{
  "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
  "title": "Autumn campaign",
  "access": { "passwordProtected": true, "activeAt": null, "pauseAt": null, "scanLimit": null },
  "…": "…"
}
```

Ce vă permite fiecare tip să modificați după tipărire este descris în [Datele codurilor QR pe tipuri](https://docs.getqr.com/ro/api/guides/qr-types.md).

## Setarea stării de pauză

`PUT /api/v1/qrs/{qrId}`

Setează direct starea de pauză. [Punerea în pauză](#punerea-în-pauză-a-unui-cod-qr) și [Reactivarea](#reactivarea-unui-cod-qr) fac același lucru și sunt mai ușor de citit.

**qrId** `string` *required*

ID-ul codului QR.

**archived** `boolean` *required*

`true` pentru a pune codul QR în pauză, `false` pentru a-l reactiva.

```bash cURL theme={null}
curl -X PUT "https://getqr.com/api/v1/qrs/qr_1EPcVfeHZAY2iNoVLsgW2Aqf" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "archived": true }'
```

```json 200 theme={null}
{
  "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
  "archived": true,
  "…": "…"
}
```

## Punerea în pauză a unui cod QR

`POST /api/v1/qrs/{qrId}/pause`

Oprește rezolvarea codului QR către destinația sa: scanările afișează în schimb pagina de pauză. Codul tipărit și linkul său scurt rămân valabile. Fără corp de cerere.

**qrId** `string` *required*

ID-ul codului QR.

```bash cURL theme={null}
curl -X POST "https://getqr.com/api/v1/qrs/qr_1EPcVfeHZAY2iNoVLsgW2Aqf/pause" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 200 theme={null}
{
  "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
  "archived": true,
  "…": "…"
}
```

## Reactivarea unui cod QR

`POST /api/v1/qrs/{qrId}/activate`

Face ca un cod QR pus în pauză să se rezolve din nou către destinația sa. Programarea și limita de scanări, dacă există, se aplică în continuare. Fără corp de cerere.

**qrId** `string` *required*

ID-ul codului QR.

```bash cURL theme={null}
curl -X POST "https://getqr.com/api/v1/qrs/qr_1EPcVfeHZAY2iNoVLsgW2Aqf/activate" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 200 theme={null}
{
  "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
  "archived": false,
  "…": "…"
}
```

## Duplicarea unui cod QR

`POST /api/v1/qrs/{qrId}/duplicate`

Creează o copie cu același conținut și același design. Fără corp de cerere. Răspunde cu `201 Created` și noul [cod QR](#obiectul-cod-qr).

**qrId** `string` *required*

ID-ul codului QR care se copiază.

* **Link scurt.** Copia primește propriul link scurt, cu un slug aleatoriu pe domeniul implicit al spațiului de lucru, nu pe domeniul sursei. Scanările ei sunt numărate separat.
* **Titlu.** Titlul primește sufixul ` (Copy)`. Rezultatul rămâne în limita a 40 de caractere: un titlu lung este mai întâi scurtat. Un cod QR fără titlu rămâne fără titlu.
* **Nu se copiază.** Regulile de acces (parolă, programare, limită de scanări) și starea de pauză. Copia este întotdeauna activă.
* **Fișiere.** Fișierele PDF și imaginile, inclusiv cele din pachete și galerii, sunt copiate, așa că aparțin copiei. Fișierele video și fișierele de design, cum ar fi logourile, sunt partajate cu sursa.

```bash cURL theme={null}
curl -X POST "https://getqr.com/api/v1/qrs/qr_1EPcVfeHZAY2iNoVLsgW2Aqf/duplicate" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 201 theme={null}
{
  "id": "qr_7Hk2PqWmX9cTnV4sLbR8YdZe",
  "title": "Landing page (Copy)",
  "shortLink": "https://getqr.sh/p2Wq9dL",
  "url": "https://example.com",
  "archived": false,
  "scans": 0,
  "…": "…"
}
```

## Ștergerea unui cod QR

`DELETE /api/v1/qrs/{qrId}`

Șterge codul QR și linkul său scurt. Răspunde cu ID-ul șters.

> [!WARNING]
>
> Ștergerea este definitivă. Codul tipărit și linkul său scurt nu mai funcționează, iar istoricul scanărilor nu mai este accesibil. [Puneți în pauză](#punerea-în-pauză-a-unui-cod-qr) codul QR dacă s-ar putea să aveți nevoie de el din nou.

**qrId** `string` *required*

ID-ul codului QR.

**id** `string`

ID-ul codului QR șters.

**deleted** `boolean`

Întotdeauna `true`.

```bash cURL theme={null}
curl -X DELETE "https://getqr.com/api/v1/qrs/qr_1EPcVfeHZAY2iNoVLsgW2Aqf" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 200 theme={null}
{ "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf", "deleted": true }
```

## Descărcarea imaginii unui cod QR

`GET /api/v1/qrs/{qrId}/download`

Randează codul QR cu designul său și returnează fișierul.

**qrId** `string` *required*

ID-ul codului QR care se randează, din răspunsul listei sau al creării.

**format** `string` (default: jpg)

Formatul de ieșire: `jpg`, `png`, `svg`, `pdf` (o pagină A4) sau `eps`. Un design Branded sau un design AI se descarcă doar ca `jpg`, `png` sau `pdf`.

**resolution** `integer` (default: 1024)

Dimensiunea imaginii în pixeli: `1024`, `2048` sau `4096`. `svg` și `pdf` o ignoră. Un design Branded sau un design AI se descarcă doar la `1024`.

| `format` | `Content-Type` | Numele fișierului |
| - | - | - |
| `jpg` | `image/jpeg` | `<title>-<resolution>px.jpg` |
| `png` | `image/png` | `<title>-<resolution>px.png` |
| `svg` | `image/svg+xml` | `<title>.svg` |
| `pdf` | `application/pdf` | `<title>.pdf` |
| `eps` | `application/postscript` | `<title>-<resolution>px.eps` |

* **Corp.** Corpul răspunsului este fișierul. Numele de fișier sugerat se află în antetul `Content-Disposition`, construit din titlu sau `qr-code` pentru un cod QR fără titlu.
* **Cache.** Răspunsurile includ un `ETag` și `Cache-Control: private, max-age=3600, must-revalidate`. Trimiteți `ETag` înapoi în `If-None-Match` pentru a primi `304 Not Modified` când codul QR nu s-a schimbat.
* **Erori.** Un format sau o rezoluție neacceptată primește `400 bad_request`. Mesajul de eroare indică motivul: `qr_download_invalid_format`, `qr_download_invalid_resolution`, `qr_download_art_format_unsupported` sau `qr_download_art_resolution_unsupported`.

```bash cURL theme={null}
curl "https://getqr.com/api/v1/qrs/qr_1EPcVfeHZAY2iNoVLsgW2Aqf/download?format=png&resolution=1024" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  --output qr-code.png
```

```http 200 theme={null}
HTTP/1.1 200 OK
Content-Type: image/png
Content-Disposition: attachment; filename="landing-page-1024px.png"
ETag: "9f2c0e1b5a7d43c8b016e2f4a9d5c3718be40f92"
Cache-Control: private, max-age=3600, must-revalidate

<binary image data>
```

## Reguli de acces

Trimiteți un obiect `access` la creare sau la actualizare pentru a programa un început și un sfârșit, a limita numărul de scanări sau a cere o parolă. Regulile omise rămân neschimbate, iar `null` șterge o regulă. Comportamentul complet, cu exemple, este descris în [Reguli de acces](https://docs.getqr.com/ro/api/guides/access-rules.md).

## Obiecte de design

`styles`, `frameOptions` și `logoOptions` stabilesc forma punctelor și a colțurilor, culorile, cadrul și logoul. Funcționează la fel pentru coduri QR, [șabloane](https://docs.getqr.com/ro/api/endpoints/templates.md) și [creări în masă](https://docs.getqr.com/ro/api/endpoints/bulk-qr-creations.md). Formele, cadrele sau logourile necunoscute sunt respinse. Toate valorile acceptate și un exemplu complet se găsesc în [Personalizare](https://docs.getqr.com/ro/api/guides/customization.md).

## Probleme frecvente

> [accordion] 422 la setarea unei parole, a unei programări sau a unei limite de scanări
>
> Trimiteți regula în `access`, nu în `link`.

> [accordion] 422 la modificarea link.domain sau link.key
>
> Linkul scurt nu se poate schimba după creare, deoarece codul tipărit îl codifică. Creați în schimb un cod QR nou.

> [accordion] 422 "Expected … for qrType"
>
> `data` nu corespunde formatului lui `qrType`. Verificați tipul în [Datele codurilor QR pe tipuri](https://docs.getqr.com/ro/api/guides/qr-types.md).

> [accordion] 409 conflict la crearea unui cod QR
>
> O creare identică este încă în curs sau `link.key` este deja ocupat. Reîncercați după ce se termină prima cerere. Cu un `Idempotency-Key`, reîncercarea returnează codul QR inițial.

> [accordion] Descărcarea este JPEG, nu PNG
>
> Parametrii sunt `format` și `resolution`, iar `format` are implicit valoarea `jpg`. Trimiteți `format=png`.

> [accordion] 404 pentru un cod QR pe care îl văd în panou
>
> Fiecare cerere rulează în spațiul de lucru al cheii API. Verificați dacă acel cod QR îi aparține. Consultați [Autentificare](https://docs.getqr.com/ro/api/authentication.md).

## Ce urmează

> [card] [Datele codurilor QR pe tipuri](https://docs.getqr.com/ro/api/guides/qr-types.md)

> [card] [Personalizare](https://docs.getqr.com/ro/api/guides/customization.md)

> [card] [Reguli de acces](https://docs.getqr.com/ro/api/guides/access-rules.md)

> [card] [Statistici](https://docs.getqr.com/ro/api/endpoints/analytics.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.