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

# Soubory

> Nahrávejte PDF, obrázky, videa a loga pro své QR kódy.

> [!NOTE]
>
> GetQR API je v beta verzi a je dostupné pro vybrané pracovní prostory. Do obecného vydání se podrobnosti mohou změnit.

QR kódy typu PDF, Image a Video vedou na soubor a vlastní logo je také soubor. Nahrání má dva kroky: soubor zaregistrujete a získáte URL, pak na tuto URL pošlete jeho obsah.

| Metoda | Cesta | Popis |
| - | - | - |
| `POST` | `/api/v1/files` | [Registrace nahrání souboru](#registrace-nahrání-souboru) |

## Nahrání souboru

**1. Zaregistrujte soubor**

Zavolejte [registraci nahrání souboru](#registrace-nahrání-souboru) s hodnotami `target`, `contentType` a `size` souboru. `target` určuje povolené typy obsahu a limit velikosti. Dostanete `fileId` a `uploadUrl`.

**2. Pošlete soubor**

Pošlete soubor požadavkem `PUT` na `uploadUrl`. Jeho `Content-Type` a `Content-Length` musí přesně odpovídat zaregistrovaným hodnotám `contentType` a `size`: cokoli jiného se odmítne. URL je předem podepsaná, takže API klíč nepřidávejte. Platnost vyprší po 10 minutách.

```bash theme={null}
curl -X PUT "$UPLOAD_URL" \
  -H "Content-Type: application/pdf" \
  --data-binary @menu.pdf
```

**3. Použijte ID souboru**

Předejte `fileId`, když [vytváříte QR kód](https://docs.getqr.com/cs/api/endpoints/qr-codes.md):

* Jako `fileId` pro QR kód `pdf`, `image` nebo `video`. Nahrávejte s odpovídajícím cílem.
* Jako `fileId` pro profilový obrázek QR kódu `vcard`, `social`, `multilink` nebo `event`. Nahrávejte s cílem `logo`.
* Jako `logoOptions.fileId` s `logoOptions.type` nastaveným na `uploaded` pro vlastní logo. Nahrávejte s cílem `logo`. Viz [Přizpůsobení](https://docs.getqr.com/cs/api/guides/customization.md).

## Limity

| `target` | Povolené typy obsahu | Maximální velikost |
| - | - | - |
| `pdf` | `application/pdf` | 20 MB (20 971 520 bajtů) |
| `image` | `image/*` | 5 MB (5 242 880 bajtů) |
| `video` | `video/*` | 50 MB (52 428 800 bajtů) |
| `logo` | `image/*` | 5 MB (5 242 880 bajtů) |

* **Samotný MIME typ.** Pošlete jeden typ a podtyp malými písmeny, například `image/png`. Parametry jako `;charset=` a seznamy se odmítnou.
* **Bez SVG.** Typy založené na XML, například `image/svg+xml`, se nepřijímají. Nahrajte rastrový obrázek, například `image/png` nebo `image/jpeg`.

## Hlavičky

**Authorization** `string` *required*

`Bearer` následovaný vaším API klíčem. Viz [Ověřování](https://docs.getqr.com/cs/api/authentication.md).

**Content-Type** `string` *required*

`application/json`.

## Registrace nahrání souboru

`POST /api/v1/files`

Zaregistruje soubor a vrátí předem podepsanou URL, na kterou ho nahrajete. Toto volání samotný soubor nenahrává.

**target** `string` *required*

K čemu soubor slouží: `pdf`, `image`, `video` nebo `logo`. Určuje povolené typy obsahu a limit velikosti. Viz [Limity](#limity).

**contentType** `string` *required*

MIME typ souboru, například `application/pdf`, bez parametrů. Požadavek na nahrání musí poslat přesně tento `Content-Type`.

**size** `integer` *required*

Přesná velikost souboru v bajtech, kladné celé číslo. Porovnává se s limitem pro daný cíl. Požadavek na nahrání musí poslat přesně tuto hodnotu `Content-Length`.

**name** `string`

Původní název souboru, nejvýše 255 znaků. Uchovává se pro zobrazení v dashboardu. Cesta s `/` nebo `\` se odmítne.

**fileId** `string`

ID, které předáte jako `fileId` nebo `logoOptions.fileId`.

**uploadUrl** `string`

Předem podepsaná URL, na kterou soubor pošlete metodou `PUT`.

**expiresIn** `integer`

Počet sekund do vypršení `uploadUrl`: `600`.

**method** `string`

Metoda HTTP pro nahrání: `PUT`.

```bash cURL theme={null}
curl -X POST "https://getqr.com/api/v1/files" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "target": "pdf",
    "contentType": "application/pdf",
    "size": 248000,
    "name": "menu.pdf"
  }'
```

```json 200 theme={null}
{
  "fileId": "file_7bQ2xR9mKp",
  "uploadUrl": "https://storage.getqr.com/qrs-content/pdf/file_7bQ2xR9mKp?X-Amz-...",
  "expiresIn": 600,
  "method": "PUT"
}
```

## Časté problémy

> [accordion] 422 "Content type … is not allowed for target"
>
> Typ obsahu neodpovídá cíli. Například `pdf` přijímá jen `application/pdf`. Viz [Limity](#limity).

> [accordion] 422 "must be a single lowercase type/subtype"
>
> Typ obsahu pošlete malými písmeny a bez parametrů: `image/png`, ne `Image/PNG` ani `image/png; charset=utf-8`.

> [accordion] 422 "File is too large for target"
>
> Deklarovaná hodnota `size` překračuje limit pro daný cíl. Před registrací soubor zkomprimujte.

> [accordion] Nahrání na uploadUrl selže
>
> URL vyprší 10 minut po registraci souboru a požadavek musí poslat přesně zaregistrované `Content-Type` a `Content-Length`. Pro novou URL soubor zaregistrujte znovu.

> [accordion] 422 "is registered but its content was never uploaded" při vytváření QR kódu
>
> Soubor jste zaregistrovali, ale `PUT` na `uploadUrl` se nedokončil. Nahrajte soubor a pak vytvořte QR kód.

> [accordion] 422 "was uploaded to …" při vytváření QR kódu
>
> Soubor byl zaregistrován s jiným cílem, například soubor `image` použitý pro QR kód `pdf`. Zaregistrujte nové nahrání s odpovídajícím cílem.

> [accordion] 404 "File … was not found" při vytváření QR kódu
>
> `fileId` neexistuje. Převezměte ho z odpovědi [registrace nahrání souboru](#registrace-nahrání-souboru).

## Co dál

> [card] [QR kódy](https://docs.getqr.com/cs/api/endpoints/qr-codes.md)

> [card] [Typy QR kódů](https://docs.getqr.com/cs/api/guides/qr-types.md)

> [card] [Přizpůsobení](https://docs.getqr.com/cs/api/guides/customization.md)

> [card] [Chyby](https://docs.getqr.com/cs/api/errors.md)


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