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

# Filer

> Ladda upp PDF-filer, bilder, videor och logotyper till dina QR-koder.

> [!NOTE]
>
> GetQR:s API är i beta och finns för utvalda arbetsytor. Detaljer kan ändras före den allmänna lanseringen.

QR-koder av typen PDF, Image och Video pekar på en fil, och en egen logotyp är också en fil. Uppladdningen sker i två steg: registrera filen för att få en URL och skicka sedan filens innehåll till den URL:en.

| Metod | Sökväg | Beskrivning |
| - | - | - |
| `POST` | `/api/v1/files` | [Registrera en filuppladdning](#registrera-en-filuppladdning) |

## Ladda upp en fil

**1. Registrera filen**

Anropa [Registrera en filuppladdning](#registrera-en-filuppladdning) med filens `target`, `contentType` och `size`. `target` avgör vilka innehållstyper som accepteras och storleksgränsen. Du får ett `fileId` och en `uploadUrl`.

**2. Skicka filen**

Skicka filen med en `PUT`-begäran till `uploadUrl`. Dess `Content-Type` och `Content-Length` måste exakt matcha den `contentType` och `size` som du registrerade: allt annat avvisas. URL:en är försignerad, så lägg inte till din API-nyckel. Den går ut efter 10 minuter.

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

**3. Använd fil-id:t**

Skicka `fileId` när du [skapar en QR-kod](https://docs.getqr.com/sv/api/endpoints/qr-codes.md):

* Som `fileId` för en QR-kod av typen `pdf`, `image` eller `video`. Ladda upp med matchande target.
* Som `fileId` för profilbilden i en QR-kod av typen `vcard`, `social`, `multilink` eller `event`. Ladda upp med target `logo`.
* Som `logoOptions.fileId`, med `logoOptions.type` satt till `uploaded`, för en egen logotyp. Ladda upp med target `logo`. Se [Anpassning](https://docs.getqr.com/sv/api/guides/customization.md).

## Gränser

| `target` | Innehållstyper som accepteras | Max. storlek |
| - | - | - |
| `pdf` | `application/pdf` | 20 MB (20 971 520 byte) |
| `image` | `image/*` | 5 MB (5 242 880 byte) |
| `video` | `video/*` | 50 MB (52 428 800 byte) |
| `logo` | `image/*` | 5 MB (5 242 880 byte) |

* **Enkel MIME-typ.** Skicka en enda typ och undertyp med gemener, som `image/png`. Parametrar som `;charset=` och listor avvisas.
* **Ingen SVG.** XML-baserade typer som `image/svg+xml` accepteras inte. Ladda upp en rasterbild som `image/png` eller `image/jpeg`.

## Huvuden

**Authorization** `string` *required*

`Bearer` följt av din API-nyckel. Se [Autentisering](https://docs.getqr.com/sv/api/authentication.md).

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

`application/json`.

## Registrera en filuppladdning

`POST /api/v1/files`

Registrerar en fil och returnerar en försignerad URL att ladda upp den till. Det här anropet laddar inte upp själva filen.

**target** `string` *required*

Vad filen ska användas till: `pdf`, `image`, `video` eller `logo`. Avgör vilka innehållstyper som accepteras och storleksgränsen. Se [Gränser](#gränser).

**contentType** `string` *required*

Filens MIME-typ, till exempel `application/pdf`, utan parametrar. Uppladdningsbegäran måste skicka exakt den här `Content-Type`.

**size** `integer` *required*

Filens exakta storlek i byte, ett positivt heltal. Kontrolleras mot gränsen för target. Uppladdningsbegäran måste skicka exakt den här `Content-Length`.

**name** `string`

Ursprungligt filnamn, högst 255 tecken. Sparas för visning i instrumentpanelen. En sökväg med `/` eller `\` avvisas.

**fileId** `string`

Id att skicka som `fileId` eller `logoOptions.fileId`.

**uploadUrl** `string`

Försignerad URL som filen skickas till med `PUT`.

**expiresIn** `integer`

Sekunder tills `uploadUrl` går ut: `600`.

**method** `string`

HTTP-metod för uppladdningen: `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"
}
```

## Vanliga problem

> [accordion] 422 "Content type … is not allowed for target"
>
> Innehållstypen matchar inte target. Till exempel accepterar `pdf` bara `application/pdf`. Se [Gränser](#gränser).

> [accordion] 422 "must be a single lowercase type/subtype"
>
> Skicka innehållstypen med gemener och utan parametrar: `image/png`, inte `Image/PNG` eller `image/png; charset=utf-8`.

> [accordion] 422 "File is too large for target"
>
> Den angivna `size` överskrider gränsen för target. Komprimera filen innan du registrerar den.

> [accordion] Uppladdningen till uploadUrl misslyckas
>
> URL:en går ut 10 minuter efter att du registrerat filen, och begäran måste skicka exakt den registrerade `Content-Type` och `Content-Length`. Registrera filen igen för att få en ny URL.

> [accordion] 422 "is registered but its content was never uploaded" när en QR-kod skapas
>
> Du registrerade filen men `PUT` till `uploadUrl` slutfördes inte. Ladda upp filen och skapa sedan QR-koden.

> [accordion] 422 "was uploaded to …" när en QR-kod skapas
>
> Filen registrerades med en annan target, till exempel en `image`-fil som används för en `pdf`-QR-kod. Registrera en ny uppladdning med matchande target.

> [accordion] 404 "File … was not found" när en QR-kod skapas
>
> `fileId` finns inte. Hämta det från svaret på [Registrera en filuppladdning](#registrera-en-filuppladdning).

## Nästa steg

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

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

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

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


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