Preskočiť na obsah

Files API

Prehľad

Files API hostuje súbory na qr3 a poskytuje pre ne stabilnú URL adresu. QR kód odkazuje na túto URL adresu — súbor za ňou môžete kedykoľvek vymeniť bez toho, aby ste museli kód znova tlačiť.

Základná URL: https://qr3.app/v1/files

Voliteľne môžete súbor prepojiť s kódom pomocou code_id. To je základ pre vstupnú stránku pre kód, ktorá zobrazuje zoznam všetkých verejných súborov daného kódu.

Podporované typy sa kontrolujú pomocou Magic-Byte, nie podľa prípony súboru: PDF, PNG, JPEG, WebP, MP4, glTF/GLB, JSON. Súbor .pdf, ktorý nie je skutočným PDF, bude odmietnutý.

Roly

OperáciaVyžaduje saDostane 403
Všetky GETakákoľvek rola
POST /upload, PUT /:idrola na zápisviewer
DELETE /:idrola na mazanieviewer, contributor

Špeciálnym pravidlom je contributor: táto rola môže vytvárať a meniť, ale nemôže nič odstraňovať.

Nahrať súbor

POST /v1/files/upload

Očakáva multipart/form-data.

PolePovinnéPopis
fileÁnoSúbor
code_idNiePrepojenie s kódom (musí patriť do Workspace)
visibilityNieprivate (predvolené) alebo public
Terminal window
curl -X POST https://qr3.app/v1/files/upload \
-H "Authorization: Bearer qr3_sk_..." \
-F "code_id=qr_a1b2c3d4" \
-F "visibility=public"

Odozva (HTTP 201):

{
"data": {
"id": "file_a1b2c3d4",
"code_id": "qr_a1b2c3d4",
"filename": "datenblatt.pdf",
"mime_type": "application/pdf",
"size_bytes": 284913,
"hash_sha256": "9f86d081884c7d65…",
"visibility": "public",
"status": "active",
"created_at": "2026-03-14T12:00:00.000Z",
"download_url": "https://qr3.app/v1/files/file_a1b2c3d4/download",
"public_url": "https://qr3.app/f/file_a1b2c3d4"
},
"meta": { "request_id": "req_abc123" }
}

public_url je nastavená iba pri visibility: "public" a status: "active". Táto adresa nevyžaduje prihlásenie a je priamo vhodná ako cieľová URL adresa QR kódu.

Zoznam súborov

GET /v1/files

Query parametre: code_id a visibility, oba sú voliteľné. Vracia aktívne súbory daného Workspace, najnovšie ako prvé.

Terminal window
curl "https://qr3.app/v1/files?code_id=qr_a1b2c3d4" \
-H "Authorization: Bearer qr3_sk_..."

Odozva (HTTP 200):

{
"data": [ { "id": "file_a1b2c3d4", "…": "" } ],
"meta": {
"request_id": "req_abc123",
"file_count": 3,
"total_size_bytes": 812004
}
}

Získať informácie o súbore

GET /v1/files/:id

Vracia metadáta vrátane download_url (a public_url pri verejných súboroch). Čitateľné pre všetky roly.

Stiahnuť súbor

GET /v1/files/:id/download

Streamuje obsah ako Content-Disposition: attachment s hlavičkou Cache-Control: private, no-store — odpoveď je teda vždy v aktuálnom stave, na rozdiel od cachovanej verejnej /f/:id URL adresy.

404 môže nastať v dvoch prípadoch: súbor vo Workspace neexistuje (alebo je vymazaný), alebo existuje, ale chýba uložený objekt.

Nahradiť súbor

PUT /v1/files/:id

Nahradí obsah a zachová id — a tým aj verejnú /f/:id a download_url adresu. Už vytlačený QR kód zostáva platný.

Terminal window
curl -X PUT https://qr3.app/v1/files/file_a1b2c3d4 \
-H "Authorization: Bearer qr3_sk_..." \

visibility, code_id a created_at zostávajú zachované; filename, mime_type, size_bytes a hash_sha256 sa aktualizujú. Limit programu (Plan) na súbor platí rovnako ako pri nahrávaní, limit úložiska Workspace sa kontroluje voči rozdielu veľkostí. Limit „súborov na kód“ neplatí, keďže nepribúda žiadny nový súbor.

Vymazať súbor

DELETE /v1/files/:id

Soft-Delete: Súbor okamžite zmizne zo zoznamu, už nie je dostupný a — ak je verejný — prestane sa poskytovať na adrese /f/:id.

Odozva (HTTP 200):

{
"data": { "id": "file_a1b2c3d4", "deleted": true },
"meta": { "request_id": "req_abc123" }
}

Limity

ProgramMax. na súbor
Free5 MB
Pro25 MB
Business100 MB
Agency100 MB
Enterprise250 MB

Okrem toho platí pre každý program maximálny počet súborov na kód a celkové úložisko pre Workspace. Rýchlostný limit (Rate limit) pre nahrávanie je 100 nahraní za hodinu na jeden Workspace.

Chyby

StatusKedy
400Neznámy alebo nezhodujúci sa podpis súboru, neplatné telo multipart
401Chýbajúci alebo neplatný API kľúč
403Rola nemá oprávnenie na zápis, resp. na mazanie
404code_id alebo súbor sa nenachádza vo Workspace; pri sťahovaní tiež: objekt chýba v úložisku
413Súbor je väčší ako limit programu
422Súbor chýba, neplatná visibility, dosiahnutý limit „súborov na kód“, prekročený limit úložiska Workspace
429Rýchlostný limit nahrávania (100/hodina/Workspace) oder allgemeines rýchlostný limit

Súvisiace