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

# Faili

> Augšupielādējiet PDF failus, attēlus, video un logotipus saviem QR kodiem.

> [!NOTE]
>
> GetQR API ir beta versijā un pieejams atlasītām darbvietām. Līdz vispārējai izlaišanai detaļas var mainīties.

PDF, Image un Video QR kodi norāda uz failu, un arī pielāgots logotips ir fails. Augšupielāde notiek divos soļos: reģistrējiet failu, lai iegūtu URL, pēc tam nosūtiet baitus uz šo URL.

| Metode | Ceļš | Apraksts |
| - | - | - |
| `POST` | `/api/v1/files` | [Faila augšupielādes reģistrēšana](#faila-augšupielādes-reģistrēšana) |

## Faila augšupielāde

**1. Reģistrējiet failu**

Izsauciet [Faila augšupielādes reģistrēšana](#faila-augšupielādes-reģistrēšana) ar faila `target`, `contentType` un `size`. `target` nosaka pieņemtos satura tipus un izmēra ierobežojumu. Jūs saņemat `fileId` un `uploadUrl`.

**2. Nosūtiet failu**

Nosūtiet failu ar pieprasījumu `PUT` uz `uploadUrl`. Tā `Content-Type` un `Content-Length` precīzi jāatbilst reģistrētajiem `contentType` un `size`: jebkas cits tiek noraidīts. URL ir iepriekš parakstīts, tāpēc nepievienojiet API atslēgu. Tā derīgums beidzas pēc 10 minūtēm.

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

**3. Izmantojiet faila ID**

Nododiet `fileId`, kad [izveidojat QR kodu](https://docs.getqr.com/lv/api/endpoints/qr-codes.md):

* Kā `fileId` `pdf`, `image` vai `video` QR kodam. Augšupielādējiet ar atbilstošo target.
* Kā `fileId` `vcard`, `social`, `multilink` vai `event` QR koda profila attēlam. Augšupielādējiet ar target `logo`.
* Kā `logoOptions.fileId` ar `logoOptions.type` vērtību `uploaded` pielāgotam logotipam. Augšupielādējiet ar target `logo`. Skatiet [Pielāgošana](https://docs.getqr.com/lv/api/guides/customization.md).

## Ierobežojumi

| `target` | Pieņemtie satura tipi | Maksimālais izmērs |
| - | - | - |
| `pdf` | `application/pdf` | 20 MB (20 971 520 baiti) |
| `image` | `image/*` | 5 MB (5 242 880 baiti) |
| `video` | `video/*` | 50 MB (52 428 800 baiti) |
| `logo` | `image/*` | 5 MB (5 242 880 baiti) |

* **Tīrs MIME tips.** Sūtiet vienu tipu un apakštipu mazajiem burtiem, piemēram, `image/png`. Parametri, piemēram, `;charset=`, un saraksti tiek noraidīti.
* **Bez SVG.** Uz XML balstīti tipi, piemēram, `image/svg+xml`, netiek pieņemti. Augšupielādējiet rastra attēlu, piemēram, `image/png` vai `image/jpeg`.

## Galvenes

**Authorization** `string` *required*

`Bearer`, kam seko jūsu API atslēga. Skatiet [Autentifikācija](https://docs.getqr.com/lv/api/authentication.md).

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

`application/json`.

## Faila augšupielādes reģistrēšana

`POST /api/v1/files`

Reģistrē failu un atgriež iepriekš parakstītu URL, uz kuru to augšupielādēt. Šis izsaukums pašu failu neaugšupielādē.

**target** `string` *required*

Kam fails paredzēts: `pdf`, `image`, `video` vai `logo`. Nosaka pieņemtos satura tipus un izmēra ierobežojumu. Skatiet [Ierobežojumi](#ierobežojumi).

**contentType** `string` *required*

Faila MIME tips, piemēram, `application/pdf`, bez parametriem. Augšupielādes pieprasījumam jānosūta tieši šāds `Content-Type`.

**size** `integer` *required*

Precīzs faila izmērs baitos, pozitīvs vesels skaitlis. Tiek pārbaudīts pret target ierobežojumu. Augšupielādes pieprasījumam jānosūta tieši šāds `Content-Length`.

**name** `string`

Sākotnējais faila nosaukums, līdz 255 rakstzīmēm. Tiek saglabāts attēlošanai informācijas panelī. Ceļš ar `/` vai `\` tiek noraidīts.

**fileId** `string`

ID, ko nodot kā `fileId` vai `logoOptions.fileId`.

**uploadUrl** `string`

Iepriekš parakstīts URL, uz kuru failu nosūtīt ar `PUT`.

**expiresIn** `integer`

Sekundes, līdz beidzas `uploadUrl` derīgums: `600`.

**method** `string`

Augšupielādes HTTP metode: `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"
}
```

## Biežākās problēmas

> [accordion] 422 "Content type … is not allowed for target"
>
> Satura tips neatbilst target. Piemēram, `pdf` pieņem tikai `application/pdf`. Skatiet [Ierobežojumi](#ierobežojumi).

> [accordion] 422 "must be a single lowercase type/subtype"
>
> Sūtiet satura tipu mazajiem burtiem un bez parametriem: `image/png`, nevis `Image/PNG` vai `image/png; charset=utf-8`.

> [accordion] 422 "File is too large for target"
>
> Norādītais `size` pārsniedz target ierobežojumu. Pirms reģistrēšanas saspiediet failu.

> [accordion] Augšupielāde uz uploadUrl neizdodas
>
> URL derīgums beidzas 10 minūtes pēc faila reģistrēšanas, un pieprasījumam jānosūta tieši reģistrētie `Content-Type` un `Content-Length`. Reģistrējiet failu vēlreiz, lai iegūtu jaunu URL.

> [accordion] 422 "is registered but its content was never uploaded", izveidojot QR kodu
>
> Jūs reģistrējāt failu, bet `PUT` uz `uploadUrl` netika pabeigts. Augšupielādējiet failu, pēc tam izveidojiet QR kodu.

> [accordion] 422 "was uploaded to …", izveidojot QR kodu
>
> Fails tika reģistrēts ar citu target, piemēram, `image` fails izmantots `pdf` QR kodam. Reģistrējiet jaunu augšupielādi ar atbilstošo target.

> [accordion] 404 "File … was not found", izveidojot QR kodu
>
> `fileId` neeksistē. Ņemiet to no [Faila augšupielādes reģistrēšana](#faila-augšupielādes-reģistrēšana) atbildes.

## Kas tālāk

> [card] [QR kodi](https://docs.getqr.com/lv/api/endpoints/qr-codes.md)

> [card] [QR kodu veidi](https://docs.getqr.com/lv/api/guides/qr-types.md)

> [card] [Pielāgošana](https://docs.getqr.com/lv/api/guides/customization.md)

> [card] [Kļūdas](https://docs.getqr.com/lv/api/errors.md)


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