> ## 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 コード

> QR コードの作成、一覧表示、更新、一時停止、複製、削除、ダウンロード。

> [!NOTE]
>
> GetQR API はベータ版で、一部のワークスペースでのみご利用いただけます。正式リリースまでに内容が変更される場合があります。

GetQR の QR コードは、画像と、その画像が経由する短縮リンクの組み合わせです。QR コードを作成すると短縮リンクも作成されるため、コードを印刷し直さなくても後からリンク先を変更できます。

| メソッド | パス | 説明 |
| - | - | - |
| `GET` | `/api/v1/qrs` | [QR コードを一覧表示する](#qr-コードを一覧表示する) |
| `POST` | `/api/v1/qrs` | [QR コードを作成する](#qr-コードを作成する) |
| `GET` | `/api/v1/qrs/{qrId}` | [QR コードを取得する](#qr-コードを取得する) |
| `PATCH` | `/api/v1/qrs/{qrId}` | [QR コードを更新する](#qr-コードを更新する) |
| `PUT` | `/api/v1/qrs/{qrId}` | [一時停止状態を設定する](#一時停止状態を設定する) |
| `POST` | `/api/v1/qrs/{qrId}/pause` | [QR コードを一時停止する](#qr-コードを一時停止する) |
| `POST` | `/api/v1/qrs/{qrId}/activate` | [QR コードを再開する](#qr-コードを再開する) |
| `POST` | `/api/v1/qrs/{qrId}/duplicate` | [QR コードを複製する](#qr-コードを複製する) |
| `DELETE` | `/api/v1/qrs/{qrId}` | [QR コードを削除する](#qr-コードを削除する) |
| `GET` | `/api/v1/qrs/{qrId}/download` | [QR コードの画像をダウンロードする](#qr-コードの画像をダウンロードする) |

> [card] [QR コードの種類別データ](https://docs.getqr.com/ja/api/guides/qr-types.md)
>
> 16 種類それぞれの `data` の形式。

> [card] [カスタマイズ](https://docs.getqr.com/ja/api/guides/customization.md)
>
> ドットのスタイル、色、フレーム、ロゴ。

> [card] [アクセスルール](https://docs.getqr.com/ja/api/guides/access-rules.md)
>
> スケジュール、スキャン上限、パスワード。

QR コードのスキャン統計については、[分析](https://docs.getqr.com/ja/api/endpoints/analytics.md) をご覧ください。

## QR コードオブジェクト

[削除](#qr-コードを削除する) と [ダウンロード](#qr-コードの画像をダウンロードする) を除くすべての QR コードのエンドポイントは、このオブジェクトを返します。一覧ではこのオブジェクトの配列が返ります。

**id** `string`

QR コードの一意な ID。例：`qr_1EPcVfeHZAY2iNoVLsgW2Aqf`。

**qrType** `string`

QR コードの種類。例：`website`。16 個の値すべては [QR コードの種類別データ](https://docs.getqr.com/ja/api/guides/qr-types.md) をご覧ください。

**title** `string | null`

ダッシュボードに表示される QR コードの名前。

**description** `string | null`

QR コードについての自由記述のメモ。

**data** `string`

保存されているペイロード。`wifi`、`vcard`、`social`、`multilink`、`event`、`sms` では、送ったペイロードそのものです。それ以外の種類では短縮リンクなので、リンク先は `url` から読み取ってください。

**archived** `boolean`

QR コードが一時停止中の場合は `true`。

**isStatic** `boolean`

ダッシュボードで作成された、短縮リンクのない静的 QR コードの場合は `true`。API が作成するのは常に動的 QR コードです。

**shortLink** `string | null`

短縮リンクの完全な URL。例：`https://getqr.sh/x7Kd2p1`。

**domain** `string | null`

短縮リンクのドメイン。

**key** `string | null`

短縮リンクのスラッグ。

**keyIsCustom** `boolean`

スラッグが自動生成ではなく指定されたものである場合は `true`。

**url** `string | null`

短縮リンクのリダイレクト先。

**ios** `string | null`

`app` QR コードで、iOS の訪問者向けのリンク先。

**android** `string | null`

`app` QR コードで、Android の訪問者向けのリンク先。

**scans** `integer`

スキャンの総数。

**access** `object`

アクセスルール。パスワード自体は返されません。[アクセスルール](https://docs.getqr.com/ja/api/guides/access-rules.md) をご覧ください。

**properties**

**passwordProtected** `boolean`

訪問者がパスワードを入力する必要があるかどうか。

**activeAt** `string | null`

開始日時（ISO 8601）。

**pauseAt** `string | null`

終了日時（ISO 8601）。

**scanLimit** `integer | null`

スキャン回数の上限。

**designKind** `string`

読み取り専用。`custom` は API で完全に編集できるデザインです。`branded` と `ai` は、ダッシュボードで作成された Branded design または AI design です。API ではその画像を編集できませんが、他のフィールドを変更しても画像は維持されます。

**design** `object`

保存されているデザイン：`styles`、`frameOptions`、`logoOptions`。それぞれオブジェクトまたは `null` です。リクエストのフィールドと同じ形なので、そのまま送り返せます。[カスタマイズ](https://docs.getqr.com/ja/api/guides/customization.md) をご覧ください。

**file** `object | null`

`pdf`、`image`、`video` の QR コードのファイル：`id`、`name`、`size`（バイト）。

**appName** `string | null`

読み取り専用。ダッシュボードで作成された `app` QR コードの表示名。

**pdfBundle** `object | null`

読み取り専用。ダッシュボードで作成された、複数のファイルを持つ `pdf` QR コード：`title`、`layout`、`files`。

**imageGallery** `object | null`

読み取り専用。ダッシュボードで作成された、複数の画像を持つ `image` QR コード：`title`、`layout`、`files`。

**createdAt** `string`

作成日時（ISO 8601）。

**updatedAt** `string`

最終更新日時（ISO 8601）。

機密情報と内部 ID（`password`、`userId`、`workspaceId`、`projectId`）は返されません。

```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 コードを一覧表示する

`GET /api/v1/qrs`

ワークスペースの QR コードを 1 ページずつ返します。

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

返すページ。1 以上。

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

1 ページあたりの QR コードの数。1 から 100 まで。これより大きい値は拒否されます。

**search** `string`

QR コードのタイトルと照合します。2 文字より長いクエリは、保存されている `data` とも照合されます。リンク型の種類では保存されている `data` は短縮リンクなので、リンク先の URL では検索できません。

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

並べ替えに使うフィールド：`createdAt`、`updatedAt`、`clicks`（総スキャン数）、`lastClicked`（最新のスキャン）、`type`。`type` は常に降順で並べ替えられ、`sortOrder` は無視されます。

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

並べ替えの方向：`asc` または `desc`。

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

一時停止中の QR コードも含めます。

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

一時停止中の QR コードだけを返します。`showArchived` より優先されます。

ブール値のパラメータには文字列 `true` または `false` を指定します。`pagination.hasMore` が `true` の間は、次のページをリクエストしてください。[ページネーション](https://docs.getqr.com/ja/api/introduction.md#ページネーション) をご覧ください。

```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 コードを作成する

`POST /api/v1/qrs`

QR コードとその短縮リンクを一緒に作成します。新しい [QR コード](#qr-コードオブジェクト) を `201 Created` で返します。

**Idempotency-Key** `string`

再試行用の独自トークン。24 時間以内に同じキーでリクエストを繰り返すと、2 つ目の QR コードは作成されず、最初のレスポンスが返ります。[再試行と重複](#再試行と重複) をご覧ください。

**qrType** `string` *required*

QR コードに埋め込む内容。`data` の形式もこれで決まります。`website`、`pdf`、`image`、`video`、`whatsapp`、`social`、`wifi`、`app`、`feedback`、`vcard`、`sms`、`payment`、`location`、`multilink`、`email`、`event` のいずれかです。

**data** `string` *required*

その種類のペイロードで、`qrType` に照らして検証されます。空文字列の場合、検証は行われません。各種類の形式は [QR コードの種類別データ](https://docs.getqr.com/ja/api/guides/qr-types.md) をご覧ください。

**link** `object`

QR コードが経由する短縮リンク。任意です。省略すると、`link.url` は `data` に従います。

**properties**

**url** `string`

短縮リンクのリダイレクト先。省略するか空にすると、`data` が使われます。両方を送って値が異なる場合は、`link.url` が優先されます。`vcard`、`social`、`multilink`、`event` の QR コードは常にホストされたページを指し、`fileId` を持つ `pdf`、`image`、`video` の QR コードは常にファイルを指します。使用できるスキーム：`http:`、`https:`、`wifi:`、`mailto:`、`sms:`、`begin:`。

**domain** `string`

短縮リンクのドメイン。ワークスペースの稼働中のドメインである必要があります。他のドメインは `403`、まだ稼働していないドメインは `422` になります。既定値はワークスペースの既定のドメインです。

**key** `string`

短縮リンクのスラッグ。3〜15 文字で、小文字で保存されます。許可されていないスラッグは `422`、使用済みのスラッグは `409` になります。省略すると、ランダムな 7 文字のスラッグが生成されます。

**ios** `string | null`

`app` QR コードで、iOS の訪問者向けのリンク先 URL。

**android** `string | null`

`app` QR コードで、Android の訪問者向けのリンク先 URL。

**title** `string | null`

リンクプレビューのタイトル（`og:title`）。短縮リンクに保存されます。QR コード自体の `title` とは別のものです。現時点では、どこにも表示されません。

**description** `string | null`

リンクプレビューの説明（`og:description`）。短縮リンクに保存されます。現時点では、どこにも表示されません。

**expiresAt, expiredUrl** `—`

この API では利用できません。どちらかを送ると `422` になります。指定した時刻に QR コードを停止するには、`access.pauseAt` を使ってください。

**title** `string`

ダッシュボードに表示される QR コードの名前。前後の空白は除去され、1〜40 文字です。省略すると、QR コードは無題になります。

**description** `string`

QR コードについての自由記述のメモ。最大 280 文字。

**fileId** `string`

`pdf`、`image`、`video` の QR コードのファイル。対応する用途でアップロードします。`vcard`、`social`、`multilink` では、`logo` 用途でアップロードした任意のプロフィール画像です。`event` でも受け付けますが、イベントページはカバー画像を `data.fileId` から読み取ります。それ以外の種類では `422` になります。先に [ファイル](https://docs.getqr.com/ja/api/endpoints/files.md) でファイルをアップロードしてください。[QR コードで使うファイル](https://docs.getqr.com/ja/api/guides/qr-types.md#qr-コードで使うファイル) をご覧ください。

**templateId** `string`

新しい QR コードにデザインを適用する [テンプレート](https://docs.getqr.com/ja/api/endpoints/templates.md)。送ったデザインのフィールドは、その上にマージされます。Branded design または AI design のテンプレートは `422`（`art_template_unsupported`）になります。不明なテンプレートや別のワークスペースのテンプレートは `404` になります。

**styles** `object`

ドットとコーナーの形と色。[カスタマイズ](https://docs.getqr.com/ja/api/guides/customization.md) をご覧ください。

**frameOptions** `object`

QR コードを囲むフレームと、その行動喚起のテキスト。[カスタマイズ](https://docs.getqr.com/ja/api/guides/customization.md) をご覧ください。

**logoOptions** `object`

中央のロゴ。おすすめのロゴ、または `logo` 用途でアップロードした独自のファイルです。不明なファイル、アップロードが完了していないファイル、別の用途のファイルは拒否されます。[カスタマイズ](https://docs.getqr.com/ja/api/guides/customization.md) をご覧ください。

**access** `object`

スケジュール、スキャン上限、パスワード保護。[アクセスルール](https://docs.getqr.com/ja/api/guides/access-rules.md) をご覧ください。

**properties**

**activeAt** `string | null`

開始日時（ISO 8601）。

**pauseAt** `string | null`

終了日時（ISO 8601）。

**scanLimit** `integer | null`

スキャン回数の上限。正の整数。

**password** `string | null`

訪問者が入力する必要があるパスワード。送ると保護が有効になります。

**passwordProtected** `boolean`

保存済みのパスワードを残したまま、保護をオフまたは再びオンにします。

**archived** `boolean`

QR コードが一時停止中かどうか。`true` にすると一時停止した状態で作成され、スキャンするとリンク先ではなく停止ページが表示されます。

不明なフィールドはエラーなしで破棄されます。[API で未対応の機能](https://docs.getqr.com/ja/api/guides/qr-types.md#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 },
  "…": "…"
}
```

### 再試行と重複

* **キーがある場合。** `Idempotency-Key` ヘッダーがあると、24 時間はレスポンスが再送されます。
* **キーがない場合。** 30 秒以内に送られた同一のボディは重複として扱われます。
* **再送。** 再送では、保存済みのレスポンスが `x-idempotent-replay: true` 付きで返ります。新しい QR コードの場合は `false` が返ります。
* **処理中。** 最初のリクエストの処理中に届いた 2 つ目のリクエストには `409 conflict` が返ります。
* **失敗。** 作成に失敗するとキーはすぐに解放されるため、同じキーで再試行できます。
* **ベストエフォート。** この保護が利用できない場合、作成は保護なしで処理されます。

[冪等性](https://docs.getqr.com/ja/api/introduction.md#冪等性) もご覧ください。

## QR コードを取得する

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

[QR コード](#qr-コードオブジェクト) を、短縮リンク、アクセスルール、デザイン、およびファイル型の種類ではそのファイルとともに返します。

**qrId** `string` *required*

QR コードの ID。一覧または作成のレスポンスから取得します。

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

レスポンスは完全な [QR コードオブジェクト](#qr-コードオブジェクト) です。

## QR コードを更新する

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

QR コードのコンテンツ、リンク先、デザイン、アクセスルールを変更します。変更したいフィールドだけを送ってください。更新された [QR コード](#qr-コードオブジェクト) を返します。

**qrId** `string` *required*

QR コードの ID。

ボディには [QR コードを作成する](#qr-コードを作成する) と同じフィールドをすべて任意で指定できます。ただし、次の点が異なります。

* **`templateId`。** 受け付けません。
* **`link`。** 部分的に指定できます。`link.url` を省略すると、現在のリンク先が維持されます。`link.domain` と `link.key` は `422` になります。印刷されたコードに埋め込まれているのは短縮リンクなので、別の短縮リンクを使うには新しい QR コードを作成してください。
* **`data`。** 結果の種類に照らして検証されるのは、`data` または `qrType` が変わる場合だけです。対応する `data` なしで `qrType` を切り替えると拒否されます。[種類の切り替え](https://docs.getqr.com/ja/api/guides/qr-types.md#種類の切り替え) をご覧ください。
* **デザイン。** `styles`、`frameOptions`、`logoOptions` は保存済みのデザインにマージされるため、部分的なオブジェクトは指定した項目だけを変更します。別のロゴを選ぶとロゴは置き換えられますが、サイズは維持されます。
* **`access`。** 各キーは、指定された場合に適用されます。`null` はルールをクリアします。アクセスルールは `access` の下に置きます。`link` の下で送ると `422` になります。
* **`archived`。** [一時停止](#qr-コードを一時停止する) や [再開](#qr-コードを再開する) と同じように、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 },
  "…": "…"
}
```

印刷後に各種類で変更できる内容は、[QR コードの種類別データ](https://docs.getqr.com/ja/api/guides/qr-types.md) に記載しています。

## 一時停止状態を設定する

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

一時停止状態を直接設定します。[一時停止](#qr-コードを一時停止する) と [再開](#qr-コードを再開する) でも同じことができ、そちらのほうがわかりやすく読めます。

**qrId** `string` *required*

QR コードの ID。

**archived** `boolean` *required*

QR コードを一時停止するには `true`、再開するには `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 コードを一時停止する

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

QR コードがリンク先に進まないようにします。スキャンすると、代わりに停止ページが表示されます。印刷されたコードとその短縮リンクは有効なままです。リクエストボディはありません。

**qrId** `string` *required*

QR コードの ID。

```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 コードを再開する

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

一時停止中の QR コードが再びリンク先に進むようにします。スケジュールとスキャン上限は引き続き適用されます。リクエストボディはありません。

**qrId** `string` *required*

QR コードの ID。

```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 コードを複製する

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

同じコンテンツとデザインを持つコピーを作成します。リクエストボディはありません。新しい [QR コード](#qr-コードオブジェクト) を `201 Created` で返します。

**qrId** `string` *required*

コピーする QR コードの ID。

* **短縮リンク。** コピーには独自の短縮リンクが付きます。スラッグはランダムで、ドメインはコピー元のドメインではなく、ワークスペースの既定のドメインです。スキャンは別々にカウントされます。
* **タイトル。** タイトルの末尾に ` (Copy)` が付きます。結果は 40 文字以内に収まり、長いタイトルは先に短縮されます。無題の QR コードは無題のままです。
* **コピーされないもの。** アクセスルール（パスワード、スケジュール、スキャン上限）と一時停止状態。コピーは常に有効な状態です。
* **ファイル。** PDF と画像のファイル（バンドルとギャラリーのファイルを含む）はコピーされ、コピー側が所有します。動画ファイルと、ロゴなどのデザインファイルはコピー元と共有されます。

```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 コードを削除する

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

QR コードとその短縮リンクを削除します。削除された ID を返します。

> [!WARNING]
>
> 削除は元に戻せません。印刷されたコードとその短縮リンクは使えなくなり、スキャン履歴にもアクセスできなくなります。再び必要になる可能性がある場合は、代わりに QR コードを [一時停止](#qr-コードを一時停止する) してください。

**qrId** `string` *required*

QR コードの ID。

**id** `string`

削除された QR コードの ID。

**deleted** `boolean`

常に `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 コードの画像をダウンロードする

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

QR コードをデザインどおりにレンダリングし、ファイルを返します。

**qrId** `string` *required*

レンダリングする QR コードの ID。一覧または作成のレスポンスから取得します。

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

出力形式：`jpg`、`png`、`svg`、`pdf`（A4 ページ）、`eps`。Branded design と AI design は `jpg`、`png`、`pdf` でのみダウンロードできます。

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

画像のサイズ（ピクセル）：`1024`、`2048`、`4096`。`svg` と `pdf` では無視されます。Branded design と AI design は `1024` でのみダウンロードできます。

| `format` | `Content-Type` | ファイル名 |
| - | - | - |
| `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` |

* **ボディ。** レスポンスボディはファイルそのものです。推奨ファイル名は `Content-Disposition` ヘッダーにあり、タイトルから作られます。無題の QR コードの場合は `qr-code` です。
* **キャッシュ。** レスポンスには `ETag` と `Cache-Control: private, max-age=3600, must-revalidate` が付きます。`ETag` を `If-None-Match` で送り返すと、QR コードが変更されていない場合に `304 Not Modified` が返ります。
* **エラー。** サポートされていない形式や解像度は `400 bad_request` になります。エラーメッセージには理由が示されます：`qr_download_invalid_format`、`qr_download_invalid_resolution`、`qr_download_art_format_unsupported`、`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>
```

## アクセスルール

作成時または更新時に `access` オブジェクトを送ると、開始と終了の予約、スキャン数の上限、パスワードの要求を設定できます。省略したルールは変更されず、`null` はルールをクリアします。例を含む詳しい動作は [アクセスルール](https://docs.getqr.com/ja/api/guides/access-rules.md) をご覧ください。

## デザインオブジェクト

`styles`、`frameOptions`、`logoOptions` は、ドットとコーナーの形、色、フレーム、ロゴを設定します。QR コード、[テンプレート](https://docs.getqr.com/ja/api/endpoints/templates.md)、[一括作成](https://docs.getqr.com/ja/api/endpoints/bulk-qr-creations.md) で同じように使えます。不明な形、フレーム、ロゴは拒否されます。受け付けるすべての値と実例は [カスタマイズ](https://docs.getqr.com/ja/api/guides/customization.md) をご覧ください。

## よくある問題

> [accordion] パスワード、スケジュール、スキャン上限の設定時に 422 になる
>
> ルールは `link` の下ではなく、`access` の下で送ってください。

> [accordion] link.domain や link.key を変更すると 422 になる
>
> 印刷されたコードには短縮リンクが埋め込まれているため、作成後に短縮リンクは変更できません。代わりに新しい QR コードを作成してください。

> [accordion] 422 "Expected … for qrType"
>
> `data` が `qrType` の形式と一致していません。[QR コードの種類別データ](https://docs.getqr.com/ja/api/guides/qr-types.md) で種類を確認してください。

> [accordion] QR コードの作成時に 409 conflict になる
>
> 同一の作成リクエストがまだ処理中か、`link.key` が使用済みです。最初のリクエストが終わってから再試行してください。`Idempotency-Key` を付けていれば、再試行で元の QR コードが返ります。

> [accordion] PNG ではなく JPEG でダウンロードされる
>
> パラメータは `format` と `resolution` で、`format` の既定値は `jpg` です。`format=png` を送ってください。

> [accordion] ダッシュボードで見える QR コードで 404 になる
>
> すべてのリクエストは、API キーのワークスペースで実行されます。QR コードがそのワークスペースに属していることを確認してください。[認証](https://docs.getqr.com/ja/api/authentication.md) をご覧ください。

## 次のステップ

> [card] [QR コードの種類別データ](https://docs.getqr.com/ja/api/guides/qr-types.md)

> [card] [カスタマイズ](https://docs.getqr.com/ja/api/guides/customization.md)

> [card] [アクセスルール](https://docs.getqr.com/ja/api/guides/access-rules.md)

> [card] [分析](https://docs.getqr.com/ja/api/endpoints/analytics.md)


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