> ## 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.

# QR kodları

> QR kodlarını oluşturun, listeleyin, güncelleyin, duraklatın, çoğaltın, silin ve indirin.

> [!NOTE]
>
> GetQR API'si beta aşamasındadır ve seçili çalışma alanlarında kullanılabilir. Ayrıntılar genel sürümden önce değişebilir.

GetQR'da bir QR kodu, görsel ile çözümlendiği kısa bağlantıdan oluşur. QR kodu oluşturmak kısa bağlantısını da oluşturur; böylece kodu yeniden basmadan hedefi daha sonra değiştirebilirsiniz.

| Yöntem | Yol | Açıklama |
| - | - | - |
| `GET` | `/api/v1/qrs` | [QR kodlarını listeleme](#qr-kodlarını-listeleme) |
| `POST` | `/api/v1/qrs` | [QR kodu oluşturma](#qr-kodu-oluşturma) |
| `GET` | `/api/v1/qrs/{qrId}` | [QR kodunu alma](#qr-kodunu-alma) |
| `PATCH` | `/api/v1/qrs/{qrId}` | [QR kodunu güncelleme](#qr-kodunu-güncelleme) |
| `PUT` | `/api/v1/qrs/{qrId}` | [Duraklatma durumunu ayarlama](#duraklatma-durumunu-ayarlama) |
| `POST` | `/api/v1/qrs/{qrId}/pause` | [QR kodunu duraklatma](#qr-kodunu-duraklatma) |
| `POST` | `/api/v1/qrs/{qrId}/activate` | [QR kodunu yeniden etkinleştirme](#qr-kodunu-yeniden-etkinleştirme) |
| `POST` | `/api/v1/qrs/{qrId}/duplicate` | [QR kodunu çoğaltma](#qr-kodunu-çoğaltma) |
| `DELETE` | `/api/v1/qrs/{qrId}` | [QR kodunu silme](#qr-kodunu-silme) |
| `GET` | `/api/v1/qrs/{qrId}/download` | [QR kodu görselini indirme](#qr-kodu-görselini-indirme) |

> [card] [Türe göre QR kodu verileri](https://docs.getqr.com/tr/api/guides/qr-types.md)
>
> 16 türün her biri için `data` biçimi.

> [card] [Özelleştirme](https://docs.getqr.com/tr/api/guides/customization.md)
>
> Nokta stilleri, renkler, çerçeveler ve logolar.

> [card] [Erişim kuralları](https://docs.getqr.com/tr/api/guides/access-rules.md)
>
> Zamanlama, tarama sınırı ve parola.

Bir QR kodunun tarama istatistikleri için bkz. [Analizler](https://docs.getqr.com/tr/api/endpoints/analytics.md).

## QR kodu nesnesi

[Silme](#qr-kodunu-silme) ve [İndirme](#qr-kodu-görselini-indirme) dışındaki her QR kodu uç noktası bu nesneyle yanıt verir. Listeleme bunların bir dizisini döndürür.

**id** `string`

QR kodunun benzersiz kimliği; örneğin `qr_1EPcVfeHZAY2iNoVLsgW2Aqf`.

**qrType** `string`

QR kodu türü; örneğin `website`. 16 değerin tamamı için bkz. [Türe göre QR kodu verileri](https://docs.getqr.com/tr/api/guides/qr-types.md).

**title** `string | null`

Panelde gösterilen QR kodu adı.

**description** `string | null`

QR kodu hakkında serbest metin not.

**data** `string`

Saklanan veri yükü. `wifi`, `vcard`, `social`, `multilink`, `event` ve `sms` için gönderdiğiniz veri yüküdür. Diğer tüm türlerde kısa bağlantıdır; bu nedenle hedefi `url` alanından okuyun.

**archived** `boolean`

QR kodu duraklatıldığında `true`.

**isStatic** `boolean`

Panelde oluşturulmuş, kısa bağlantısı olmayan statik bir QR kodu için `true`. API her zaman dinamik QR kodları oluşturur.

**shortLink** `string | null`

Tam kısa bağlantı; örneğin `https://getqr.sh/x7Kd2p1`.

**domain** `string | null`

Kısa bağlantının alan adı.

**key** `string | null`

Kısa bağlantının slug'ı.

**keyIsCustom** `boolean`

Slug otomatik oluşturulmak yerine seçildiyse `true`.

**url** `string | null`

Kısa bağlantının yönlendirdiği hedef.

**ios** `string | null`

`app` QR kodları için iOS ziyaretçilerinin hedefi.

**android** `string | null`

`app` QR kodları için Android ziyaretçilerinin hedefi.

**scans** `integer`

Toplam tarama sayısı.

**access** `object`

Erişim kuralları. Parolanın kendisi hiçbir zaman döndürülmez. Bkz. [Erişim kuralları](https://docs.getqr.com/tr/api/guides/access-rules.md).

**properties**

**passwordProtected** `boolean`

Ziyaretçilerin parola girmesi gerekip gerekmediği.

**activeAt** `string | null`

Zamanlanmış başlangıç, ISO 8601.

**pauseAt** `string | null`

Zamanlanmış bitiş, ISO 8601.

**scanLimit** `integer | null`

En fazla tarama sayısı.

**designKind** `string`

Salt okunur. `custom`, API'nin tamamen düzenleyebildiği bir tasarımdır. `branded` ve `ai`, panelde oluşturulmuş bir markalı tasarım veya yapay zeka tasarımıdır. API bunun görselini düzenleyemez ancak diğer alanları değiştirdiğinizde görseli korur.

**design** `object`

Kayıtlı tasarım: `styles`, `frameOptions` ve `logoOptions`; her biri bir nesne veya `null`. İstek alanlarıyla aynı yapıya sahiptirler; böylece geri gönderebilirsiniz. Bkz. [Özelleştirme](https://docs.getqr.com/tr/api/guides/customization.md).

**file** `object | null`

Bir `pdf`, `image` veya `video` QR kodunun dosyası: `id`, `name` ve bayt cinsinden `size`.

**appName** `string | null`

Salt okunur. Panelde oluşturulmuş bir `app` QR kodunun görünen adı.

**pdfBundle** `object | null`

Salt okunur. Panelde oluşturulmuş, birden fazla dosya içeren bir `pdf` QR kodu: `title`, `layout` ve `files`.

**imageGallery** `object | null`

Salt okunur. Panelde oluşturulmuş, birden fazla görsel içeren bir `image` QR kodu: `title`, `layout` ve `files`.

**createdAt** `string`

Oluşturulma tarihi, ISO 8601.

**updatedAt** `string`

Son güncelleme tarihi, ISO 8601.

Gizli bilgiler ve dahili kimlikler (`password`, `userId`, `workspaceId`, `projectId`) hiçbir zaman döndürülmez.

```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"
}
```

## QR kodlarını listeleme

`GET /api/v1/qrs`

Çalışma alanınızdaki QR kodlarını sayfa sayfa döndürür.

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

Döndürülecek sayfa; 1 veya daha büyük.

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

Sayfa başına QR kodu; 1 ile 100 arası. Daha büyük bir değer reddedilir.

**search** `string`

QR kodunun başlığıyla eşleşir. 2 karakterden uzun sorgular saklanan `data` ile de eşleşir. Bağlantı türlerinde saklanan `data` kısa bağlantıdır; bu nedenle hedef URL'ler aranamaz.

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

Sıralama alanı: `createdAt`, `updatedAt`, `clicks` (toplam tarama), `lastClicked` (son tarama) veya `type`. `type` her zaman azalan sırada sıralar ve `sortOrder` değerini yok sayar.

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

Sıralama yönü: `asc` veya `desc`.

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

Duraklatılmış QR kodlarını dahil eder.

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

Yalnızca duraklatılmış QR kodlarını döndürür. `showArchived` değerini geçersiz kılar.

Boolean parametreler `true` veya `false` dizelerini alır. `pagination.hasMore` değeri `true` olduğu sürece sonraki sayfayı isteyin. Bkz. [Sayfalama](https://docs.getqr.com/tr/api/introduction.md#sayfalama).

```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 }
}
```

## QR kodu oluşturma

`POST /api/v1/qrs`

Bir QR kodunu ve kısa bağlantısını birlikte oluşturur. Yeni [QR koduyla](#qr-kodu-nesnesi) birlikte `201 Created` yanıtı verir.

**Idempotency-Key** `string`

Kendi yeniden deneme belirteciniz. İsteği 24 saat içinde aynı anahtarla tekrarlamak, ikinci bir QR kodu oluşturmak yerine ilk yanıtı döndürür. Bkz. [Yeniden denemeler ve kopyalar](#yeniden-denemeler-ve-kopyalar).

**qrType** `string` *required*

QR kodunun neyi kodladığı. `data` alanının hangi biçimde olması gerektiğini de belirler. Şunlardan biri: `website`, `pdf`, `image`, `video`, `whatsapp`, `social`, `wifi`, `app`, `feedback`, `vcard`, `sms`, `payment`, `location`, `multilink`, `email`, `event`.

**data** `string` *required*

Türün veri yükü; `qrType` değerine göre kontrol edilir. Boş bir dize kontrolü atlar. Her türün biçimi [Türe göre QR kodu verileri](https://docs.getqr.com/tr/api/guides/qr-types.md) sayfasındadır.

**link** `object`

QR kodunun çözümlendiği kısa bağlantı. İsteğe bağlıdır: gönderilmezse `link.url`, `data` değerini izler.

**properties**

**url** `string`

Kısa bağlantının yönlendirdiği hedef. Gönderilmezse veya boşsa varsayılanı `data` olur. İkisi de gönderilir ve farklı olursa `link.url` önceliklidir. `vcard`, `social`, `multilink` ve `event` QR kodları her zaman barındırılan sayfalarına, `fileId` içeren `pdf`, `image` ve `video` QR kodları ise dosyaya yönlendirir. Kabul edilen şemalar: `http:`, `https:`, `wifi:`, `mailto:`, `sms:`, `begin:`.

**domain** `string`

Kısa bağlantının alan adı. Çalışma alanınızın yayında olan bir alan adı olmalıdır: başka bir alan adı `403`, henüz yayında olmayan bir alan adı `422` alır. Varsayılanı çalışma alanının varsayılan alan adıdır.

**key** `string`

Kısa bağlantı slug'ı; 3 ile 15 karakter arası, küçük harfle saklanır. İzin verilmeyen bir slug `422`, alınmış bir slug `409` alır. Gönderilmezse 7 karakterlik rastgele bir slug oluşturulur.

**ios** `string | null`

`app` QR kodları için iOS ziyaretçilerinin hedef URL'si.

**android** `string | null`

`app` QR kodları için Android ziyaretçilerinin hedef URL'si.

**title** `string | null`

Kısa bağlantıda saklanan bağlantı önizleme başlığı (`og:title`). QR kodunun kendi `title` değerinden farklıdır. Henüz hiçbir yerde gösterilmez.

**description** `string | null`

Kısa bağlantıda saklanan bağlantı önizleme açıklaması (`og:description`). Henüz hiçbir yerde gösterilmez.

**expiresAt, expiredUrl** `—`

Bu API'de kullanılamaz: ikisinden birini göndermek `422` alır. QR kodunu belirli bir zamanda durdurmak için `access.pauseAt` kullanın.

**title** `string`

Panelde gösterilen QR kodu adı. Baştaki ve sondaki boşluklar kırpılır; 1 ile 40 karakter arası. Gönderilmezse QR kodu başlıksız olur.

**description** `string`

QR kodu hakkında serbest metin not. En fazla 280 karakter.

**fileId** `string`

Eşleşen hedefle yüklenmiş bir `pdf`, `image` veya `video` QR kodunun dosyası. `vcard`, `social` ve `multilink` için `logo` hedefiyle yüklenmiş isteğe bağlı bir profil görseli. `event` de bunu kabul eder, ancak sayfası kapak görselini `data.fileId` alanından okur. Diğer türler `422` alır. Önce dosyayı [Dosyalar](https://docs.getqr.com/tr/api/endpoints/files.md) ile yükleyin. Bkz. [QR kodlarında dosyalar](https://docs.getqr.com/tr/api/guides/qr-types.md#qr-kodlarında-dosyalar).

**templateId** `string`

Tasarımı yeni QR koduna uygulanan [şablon](https://docs.getqr.com/tr/api/endpoints/templates.md). Gönderdiğiniz tasarım alanları bunun üzerine birleştirilir. Markalı tasarım veya yapay zeka tasarımı içeren bir şablon `422` (`art_template_unsupported`) alır. Bilinmeyen veya başka bir çalışma alanına ait bir şablon `404` alır.

**styles** `object`

Nokta ve köşe şekilleri ve renkleri. Bkz. [Özelleştirme](https://docs.getqr.com/tr/api/guides/customization.md).

**frameOptions** `object`

QR kodunun çevresine çizilen çerçeve ve harekete geçirici mesaj metni. Bkz. [Özelleştirme](https://docs.getqr.com/tr/api/guides/customization.md).

**logoOptions** `object`

Ortadaki logo: önerilen bir logo veya `logo` hedefiyle yüklenmiş kendi dosyanız. Bilinmeyen bir dosya, tamamlanmamış bir yükleme veya başka bir hedefe ait bir dosya reddedilir. Bkz. [Özelleştirme](https://docs.getqr.com/tr/api/guides/customization.md).

**access** `object`

Zamanlama, tarama sınırı ve parola koruması. Bkz. [Erişim kuralları](https://docs.getqr.com/tr/api/guides/access-rules.md).

**properties**

**activeAt** `string | null`

Zamanlanmış başlangıç, ISO 8601.

**pauseAt** `string | null`

Zamanlanmış bitiş, ISO 8601.

**scanLimit** `integer | null`

En fazla tarama sayısı; pozitif bir tam sayı.

**password** `string | null`

Ziyaretçilerin girmesi gereken parola. Gönderilmesi korumayı açar.

**passwordProtected** `boolean`

Kayıtlı parolayı koruyarak korumayı kapatır veya yeniden açar.

**archived** `boolean`

QR kodunun duraklatılmış olup olmadığı. `true`, kodu duraklatılmış olarak oluşturur: taramalar hedef yerine duraklatma sayfasını gösterir.

Bilinmeyen alanlar hata verilmeden atılır. Bkz. [API üzerinden desteklenmeyenler](https://docs.getqr.com/tr/api/guides/qr-types.md#api-üzerinden-desteklenmeyenler).

```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 },
  "…": "…"
}
```

### Yeniden denemeler ve kopyalar

* **Anahtarla.** Bir `Idempotency-Key` başlığıyla yanıt 24 saat boyunca tekrarlanır.
* **Anahtarsız.** 30 saniye içinde gönderilen aynı gövde kopya olarak değerlendirilir.
* **Tekrarlar.** Bir tekrar, saklanan yanıtı `x-idempotent-replay: true` ile döndürür. Yeni bir QR kodu `false` döndürür.
* **İşlenirken.** İlki hâlâ çalışırken gönderilen ikinci istek `409 conflict` alır.
* **Başarısızlıklar.** Başarısız bir oluşturma anahtarı hemen serbest bırakır; böylece aynı anahtarla yeniden deneyebilirsiniz.
* **En iyi çaba.** Koruma mekanizması kullanılamıyorsa oluşturma istekleri korumasız olarak işlenir.

Ayrıca bkz. [Idempotency](https://docs.getqr.com/tr/api/introduction.md#idempotency).

## QR kodunu alma

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

Bir [QR kodunu](#qr-kodu-nesnesi) kısa bağlantısı, erişim kuralları, tasarımı ve dosya tabanlı türler için dosyasıyla birlikte döndürür.

**qrId** `string` *required*

Liste veya oluşturma yanıtından alınan QR kodu kimliği.

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

Yanıt, tam [QR kodu nesnesidir](#qr-kodu-nesnesi).

## QR kodunu güncelleme

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

Bir QR kodunun içeriğini, hedefini, tasarımını veya erişim kurallarını değiştirir. Yalnızca değiştirmek istediğiniz alanları gönderin. Güncellenmiş [QR koduyla](#qr-kodu-nesnesi) yanıt verir.

**qrId** `string` *required*

QR kodunun kimliği.

Gövde, [QR kodu oluşturma](#qr-kodu-oluşturma) ile aynı alanları alır; hepsi isteğe bağlıdır ve şu farklar vardır:

* **`templateId`.** Kabul edilmez.
* **`link`.** Kısmidir. `link.url` göndermediğinizde mevcut hedef korunur. `link.domain` ve `link.key` `422` alır: basılı kodun kodladığı şey kısa bağlantıdır, bu yüzden farklı bir kısa bağlantı kullanmak için yeni bir QR kodu oluşturun.
* **`data`.** Yalnızca `data` veya `qrType` değiştiğinde sonuçtaki türe göre kontrol edilir. Eşleşen `data` olmadan `qrType` değiştirmek reddedilir. Bkz. [Tür değiştirme](https://docs.getqr.com/tr/api/guides/qr-types.md#tür-değiştirme).
* **Tasarım.** `styles`, `frameOptions` ve `logoOptions` kayıtlı tasarımla birleştirilir; bu nedenle kısmi bir nesne yalnızca belirttiği şeyleri değiştirir. Başka bir logo seçmek logonun yerini alır ancak boyutunu korur.
* **`access`.** Her anahtar mevcut olduğunda uygulanır. `null` bir kuralı temizler. Erişim kuralları `access` altına aittir: bunları `link` altında göndermek `422` alır.
* **`archived`.** [Duraklatma](#qr-kodunu-duraklatma) ve [Yeniden etkinleştirme](#qr-kodunu-yeniden-etkinleştirme) gibi, QR kodunu ve kısa bağlantısını birlikte duraklatır veya yeniden etkinleştirir.

```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 },
  "…": "…"
}
```

Her türün baskıdan sonra neleri değiştirmenize izin verdiği [Türe göre QR kodu verileri](https://docs.getqr.com/tr/api/guides/qr-types.md) sayfasında listelenir.

## Duraklatma durumunu ayarlama

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

Duraklatma durumunu doğrudan ayarlar. [Duraklatma](#qr-kodunu-duraklatma) ve [Yeniden etkinleştirme](#qr-kodunu-yeniden-etkinleştirme) aynı işi yapar ve daha anlaşılırdır.

**qrId** `string` *required*

QR kodunun kimliği.

**archived** `boolean` *required*

QR kodunu duraklatmak için `true`, yeniden etkinleştirmek için `false`.

```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,
  "…": "…"
}
```

## QR kodunu duraklatma

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

QR kodunun hedefine yönlendirmesini durdurur: taramalar bunun yerine duraklatma sayfasını gösterir. Basılı kod ve kısa bağlantısı geçerli kalır. İstek gövdesi yoktur.

**qrId** `string` *required*

QR kodunun kimliği.

```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,
  "…": "…"
}
```

## QR kodunu yeniden etkinleştirme

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

Duraklatılmış bir QR kodunun yeniden hedefine yönlendirmesini sağlar. Varsa zamanlama ve tarama sınırı geçerli olmaya devam eder. İstek gövdesi yoktur.

**qrId** `string` *required*

QR kodunun kimliği.

```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,
  "…": "…"
}
```

## QR kodunu çoğaltma

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

Aynı içerik ve tasarıma sahip bir kopya oluşturur. İstek gövdesi yoktur. Yeni [QR koduyla](#qr-kodu-nesnesi) birlikte `201 Created` yanıtı verir.

**qrId** `string` *required*

Kopyalanacak QR kodunun kimliği.

* **Kısa bağlantı.** Kopya, kaynağın alan adında değil, çalışma alanının varsayılan alan adında rastgele bir slug ile kendi kısa bağlantısını alır. Taramaları ayrı sayılır.
* **Başlık.** Başlığa ` (Copy)` soneki eklenir. Sonuç 40 karakteri aşmaz: uzun bir başlık önce kısaltılır. Başlıksız bir QR kodu başlıksız kalır.
* **Kopyalanmayanlar.** Erişim kuralları (parola, zamanlama, tarama sınırı) ve duraklatma durumu. Kopya her zaman aktiftir.
* **Dosyalar.** Paket ve galeri dosyaları dahil PDF ve görsel dosyaları kopyalanır; böylece bunlar kopyaya ait olur. Video dosyaları ve logolar gibi tasarım dosyaları kaynakla paylaşılır.

```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,
  "…": "…"
}
```

## QR kodunu silme

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

QR kodunu ve kısa bağlantısını siler. Silinen kimlikle yanıt verir.

> [!WARNING]
>
> Silme işlemi kalıcıdır. Basılı kod ve kısa bağlantısı çalışmayı durdurur ve tarama geçmişine artık erişilemez. QR koduna yeniden ihtiyaç duyabilecekseniz silmek yerine [duraklatın](#qr-kodunu-duraklatma).

**qrId** `string` *required*

QR kodunun kimliği.

**id** `string`

Silinen QR kodunun kimliği.

**deleted** `boolean`

Her zaman `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 }
```

## QR kodu görselini indirme

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

QR kodunu tasarımıyla birlikte oluşturur ve dosyayı döndürür.

**qrId** `string` *required*

Liste veya oluşturma yanıtından alınan, oluşturulacak QR kodunun kimliği.

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

Çıktı biçimi: `jpg`, `png`, `svg`, `pdf` (A4 sayfa) veya `eps`. Markalı tasarım veya yapay zeka tasarımı yalnızca `jpg`, `png` veya `pdf` olarak indirilir.

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

Piksel cinsinden görsel boyutu: `1024`, `2048` veya `4096`. `svg` ve `pdf` bunu yok sayar. Markalı tasarım veya yapay zeka tasarımı yalnızca `1024` boyutunda indirilir.

| `format` | `Content-Type` | Dosya adı |
| - | - | - |
| `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` |

* **Gövde.** Yanıt gövdesi dosyanın kendisidir. Önerilen dosya adı `Content-Disposition` başlığındadır; başlıktan, başlıksız bir QR kodu içinse `qr-code` değerinden oluşturulur.
* **Önbellek.** Yanıtlar bir `ETag` ve `Cache-Control: private, max-age=3600, must-revalidate` içerir. QR kodu değişmediğinde `304 Not Modified` almak için `ETag` değerini `If-None-Match` içinde geri gönderin.
* **Hatalar.** Desteklenmeyen bir biçim veya çözünürlük `400 bad_request` alır. Hata mesajı nedeni belirtir: `qr_download_invalid_format`, `qr_download_invalid_resolution`, `qr_download_art_format_unsupported` veya `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>
```

## Erişim kuralları

Bir başlangıç ve bitiş zamanlamak, tarama sayısını sınırlamak veya parola istemek için oluştururken ya da güncellerken bir `access` nesnesi gönderin. Gönderilmeyen kurallar değişmeden kalır ve `null` bir kuralı temizler. Örneklerle birlikte tam davranış [Erişim kuralları](https://docs.getqr.com/tr/api/guides/access-rules.md) sayfasındadır.

## Tasarım nesneleri

`styles`, `frameOptions` ve `logoOptions`; nokta ve köşe şekillerini, renkleri, çerçeveyi ve logoyu belirler. QR kodlarında, [şablonlarda](https://docs.getqr.com/tr/api/endpoints/templates.md) ve [toplu oluşturmalarda](https://docs.getqr.com/tr/api/endpoints/bulk-qr-creations.md) aynı şekilde çalışırlar. Bilinmeyen şekiller, çerçeveler veya logolar reddedilir. Kabul edilen tüm değerler ve uygulamalı bir örnek [Özelleştirme](https://docs.getqr.com/tr/api/guides/customization.md) sayfasındadır.

## Sık karşılaşılan sorunlar

> [accordion] Parola, zamanlama veya tarama sınırı ayarlarken 422
>
> Kuralı `link` altında değil, `access` altında gönderin.

> [accordion] link.domain veya link.key değiştirirken 422
>
> Basılı kod kısa bağlantıyı kodladığı için kısa bağlantı oluşturulduktan sonra değiştirilemez. Bunun yerine yeni bir QR kodu oluşturun.

> [accordion] 422 "Expected … for qrType"
>
> `data`, `qrType` biçimiyle eşleşmiyor. Türü [Türe göre QR kodu verileri](https://docs.getqr.com/tr/api/guides/qr-types.md) sayfasında kontrol edin.

> [accordion] QR kodu oluştururken 409 conflict
>
> Aynı oluşturma isteği hâlâ çalışıyor veya `link.key` alınmış. İlk istek tamamlandığında yeniden deneyin. Bir `Idempotency-Key` ile yeniden deneme ilk QR kodunu döndürür.

> [accordion] İndirilen dosya PNG değil, JPEG
>
> Parametreler `format` ve `resolution` şeklindedir ve `format` varsayılan olarak `jpg` olur. `format=png` gönderin.

> [accordion] Panelde gördüğüm bir QR kodu için 404
>
> Her istek, API anahtarınızın çalışma alanında çalışır. QR kodunun bu çalışma alanına ait olduğunu kontrol edin. Bkz. [Kimlik doğrulama](https://docs.getqr.com/tr/api/authentication.md).

## Sırada ne var

> [card] [Türe göre QR kodu verileri](https://docs.getqr.com/tr/api/guides/qr-types.md)

> [card] [Özelleştirme](https://docs.getqr.com/tr/api/guides/customization.md)

> [card] [Erişim kuralları](https://docs.getqr.com/tr/api/guides/access-rules.md)

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


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