v1 · REST · JSON

API referencia

Feltöltés, fájlkezelés, megosztási linkek és webhookok egyetlen REST API-n. Minden végpont a https://filemv.com/api alatt érhető el, JSON törzsekkel.

Gyorsindító — első feltöltés három lépésben

A feltöltés két külön hívás. A POST /api/uploads lefoglal egy munkamenetet, és visszaad egy uploadUrl címet. A fájl bájtjait erre a címre kell PUT kéréssel elküldeni. Ehhez a kéréshez nem kell API-kulcs, mert a munkamenet azonosítója hitelesíti. Végül a GET /api/uploads/{sessionId}/status hívással megvárod, hogy az állapot COMPLETE legyen.

A bájtok mindig a https://filemv.com/files/… címre mennek. 100 MiB fölötti fájloknál a folytatható /files/tus protokoll ajánlott.

import { readFile } from "node:fs/promises";

const base = "https://filemv.com";
const auth = { Authorization: `Bearer ${process.env.FILEMV_API_KEY}` };
const bytes = await readFile("video.mp4");

// 1. Reserve an upload session
const res = await fetch(`${base}/api/uploads`, {
  method: "POST",
  headers: { ...auth, "Content-Type": "application/json" },
  body: JSON.stringify({ fileName: "video.mp4", contentType: "video/mp4", fileSizeBytes: bytes.length }),
});
const { sessionId, uploadUrl } = await res.json();

// 2. Send the bytes to uploadUrl (no API key needed: the session id authorizes it)
await fetch(uploadUrl, { method: "PUT", body: bytes, headers: { "Content-Length": String(bytes.length) } });

// 3. Poll until COMPLETE
const status = await fetch(`${base}/api/uploads/${sessionId}/status`, { headers: auth }).then((r) => r.json());
console.log(status.status, status.fileId);

Hitelesítés

Külső alkalmazásokhoz az API-kulcs való: minden kérésen küldd el az Authorization: Bearer fmv_… fejlécben. A FileMv webes felülete bejelentkezési sütivel működik. Ugyanaz a végpont mindkét módon hívható.

API-kulcsajánlott

Authorization: Bearer fmv_…

Kulcsonként 600 kérés/perc. Minden előfizetéssel elérhető, felhasználónként legfeljebb 10 aktív kulcs lehet. Bármikor visszavonható.

Böngészős munkamenet (süti)

auth_token · X-XSRF-TOKEN

A webes felület HttpOnly sütivel lép be. Az adatot módosító kérésekhez X-XSRF-TOKEN fejléc kell. Saját integrációhoz ne ezt használd.

Kulcs létrehozása a felületen

  1. Nyisd meg a Beállítások → API-kulcsok oldalt (/settings/api-keys).
  2. Adj meg egy címkét, ha szeretnél (legfeljebb 80 karakter), majd kattints a Kulcs létrehozása gombra.
  3. A teljes kulcs csak egyszer jelenik meg, ezért azonnal másold ki. Utána a listában csak az eleje (például fmv_AbC12x…), a címke, a létrehozás ideje és az utolsó használat látszik.
  4. Egy kulcsot a sorában vonhatsz vissza. Egyszerre legfeljebb 10 aktív kulcsod lehet, e fölött a létrehozás 409 api_key_limit_reached hibát ad.

Kulcs létrehozása API-n

A POST /api/me/api-keys hívás törzse opcionális, például {"label": "CI szerver"}. A válasz 201 státuszú, és tartalmazza a rawKey mezőt. Ezt soha többé nem kérheted le, mert a szerver csak a kulcs kulcsolt hash-ét tárolja. A GET listázza a kulcsokat, a DELETE /api/me/api-keys/{id} pedig 204-gyel visszavonja.

Formátum és használat

A kulcs a fmv_ előtagból és 40 URL-biztos base64 karakterből áll (~240 bit). A szerver csak a Bearer fmv_ kezdetű tokent tekinti API-kulcsnak. Ismeretlen vagy visszavont kulcs esetén a védett végpontok 401 authentication_required hibát adnak, a nyilvános végpontok pedig úgy futnak le, mintha nem küldtél volna kulcsot. Kérésenként csak egy hitelesítést küldj: vagy kulcsot, vagy sütit.

A kulcs teljes jogkört ad

Nincsenek hatókörök: a kulcs mindent megtehet, amit a tulajdonosa. Hozzáfér a fájlokhoz, a megosztásokhoz, a webhookokhoz, a kulcsok kezeléséhez és a fiókműveletekhez. Ha a tulajdonos admin, akkor az admin végpontokhoz is. Úgy kezeld, mint egy jelszót.

Jó gyakorlat

  • Tárold környezeti változóban vagy titokkezelőben. Soha ne kerüljön kliensoldali vagy mobilkódba, sem repóba.
  • Rotálás: hozz létre új kulcsot, állítsd át rá az integrációt, majd vond vissza a régit.
  • Figyeld a lastUsedAt értéket, hogy észrevedd a váratlan használatot. Minden integráció kapjon saját kulcsot.

Rate limit

SzintLimitKulcs
apikey600 / percAPI-kulcsonként
api60 / percIP-címenként (kulcs nélküli kérések)
auth10 / perc IP-címenként, /api/auth/**

Minden /api válasz tartalmazza az X-RateLimit-Limit (percenkénti keret), X-RateLimit-Remaining (hátralévő kérések) és X-RateLimit-Reset (hány másodperc múlva telik újra a keret) fejlécet. Túllépéskor 429 válasz jön Retry-After fejléccel és rate_limited kóddal.

Egyes funkcióknak saját limitje is van, ezek 429 too_many_requests hibát adnak:

  • Anonim feltöltés: IP-címenként óránként 5 (egy kötegben legfeljebb 10 fájl, fájlonként legfeljebb 100 MiB).
  • Jelszavas megosztás feloldása: megosztásonként és IP-címenként 15 percenként 5 próbálkozás.
  • Megosztás lekérése: IP-címenként percenként 40, letöltési URL frissítése: percenként 30.
  • Webhook létrehozása, tesztelése és titokcseréje: felhasználónként percenként 10.

Hibakódok

Minden hiba ugyanabban a formában érkezik: { "timestamp", "status", "error", "code", "message" }. Validációs hibánál ehhez egy errors lista is jön. A programodban a code mezőre építs.

HTTPcodeMikor
400validation_failed, bad_requestHiányzó vagy hibás mező a kérésben
401authentication_required Nincs, vagy érvénytelen az API-kulcs, illetve a munkamenet
403access_deniedMásik felhasználó erőforrása
404*_not_foundIsmeretlen azonosító vagy token
409 storage_quota_exceeded, api_key_limit_reached, vanity_slug_taken, webhook_limit_reached Tárhelykvóta, kulcs- vagy webhook-limit, foglalt egyedi link
413payload_too_largeA fájl nagyobb a megengedettnél
429rate_limited, too_many_requests Rate limit — várj a Retry-After szerint

Feltöltés

POST/api/uploadsAPI-kulcs vagy munkamenet

Feltöltési munkamenet létrehozása

Feltöltési munkamenetet foglal a hitelesített felhasználónak. A válaszban kapott uploadUrl címre kell PUT-tal elküldeni a fájl bájtjait. parentFolderId megadásakor a mappa tulajdonjoga a foglalás előtt ellenőrzésre kerül. autoShare esetén a válasz azonnal tartalmaz egy link-only megosztási tokent és a rövid linket. autoShare mellett a publicListing: true listázott (PUBLIC) megosztást hoz létre, amelyet a keresőmotorok indexelhetnek.

Kérés törzseapplication/json

  • autoShareboolean Opcionális. true esetén a feltöltéshez azonnal létrejön egy csak linkkel elérhető (SHARED) megosztás, és a válasz már a bájtok feltöltése előtt tartalmazza a tokent és a rövid linket. Alapértelmezés false: a fájl privát marad.
  • contentTypestringkötelező A fájl MIME-típusa, ahogy a kliens felismerte. Kötelező.
  • fileNamestringkötelező A feltöltött fájl megjelenített neve. Kötelező.
  • fileSizeBytesinteger A fájl mérete bájtban. 0-nál nagyobb kell legyen.
  • parentFolderIdstring Opcionális célmappa UUID. Ha nincs megadva, a fájl a gyökérmappába kerül. A szerver a foglalás előtt ellenőrzi, hogy a mappa a hívóé.
  • publicListingboolean Opcionális, csak autoShare=true mellett számít. Ha true, a létrehozott megosztás PUBLIC (listázott) lesz a csak linkkel elérhető SHARED helyett: a megosztás oldalát a keresőmotorok indexelhetik, és a fájl a FileMv saját keresésében is megjelenik. autoShare nélkül figyelmen kívül marad (a feltöltés PRIVATE marad). Alapértelmezés: false.

Válaszok

  • 201A munkamenet létrejött — a törzs tartalmazza a sessionId-t és az uploadUrl-t, autoShare esetén a megosztás adatait is
  • 400Érvénytelen kérés (üres fileName/contentType, vagy nem pozitív méret)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 404A parentFolderId ismeretlen, más felhasználóé, vagy fájlra mutat
  • 409A feltöltés túllépné a felhasználó tárhelykvótáját
  • 413A megadott fileSizeBytes meghaladja a hívó csomagjának fájlonkénti limitjét (freeUserMaxBytes / paidUserMaxBytes a GET /api/public/config válaszában) — code=payload_too_large

POST/api/uploads

const res = await fetch("https://filemv.com/api/uploads", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "contentType": "image/jpeg",
    "fileName": "vacation.jpg",
    "fileSizeBytes": 1048576
  }),
});
const data = await res.json();
Válasz201application/json
{
  "directUrl": null,
  "fileId": "2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091",
  "sessionId": "2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091",
  "shareToken": null,
  "shortUrl": null,
  "uploadUrl": "https://filemv.com/files/2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

GET/api/uploads/{sessionId}/statusAPI-kulcs vagy munkamenet

Munkamenet állapota

Visszaadja a feltöltési munkamenet állapotát ( PENDING , UPLOADING , COMPLETE , FAILED ). COMPLETE után a válasz tartalmazza a fileId értéket. Csak a munkamenetet létrehozó felhasználó kérdezheti le.

Paraméterek

NévHolTípusLeírás
sessionId kötelezőpathstringA POST /api/uploads által visszaadott munkamenet UUID-ja

Válaszok

  • 200A munkamenet aktuális állapota
  • 400Hibás formátumú sessionId
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A munkamenet más felhasználóé
  • 404Ismeretlen sessionId
  • 502Belső hiba a feltöltési szolgáltatással való kommunikációban

GET/api/uploads/{sessionId}/status

const res = await fetch("https://filemv.com/api/uploads/3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77/status", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
const data = await res.json();
Válasz200application/json
{
  "fileId": "2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091",
  "fileName": "vacation.jpg",
  "sessionId": "2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091",
  "status": "COMPLETE"
}
Próbáld ki

Ehhez a híváshoz paraméter kell — futtasd a saját környezetedből a fenti mintával.

POST/api/public/uploadsnyilvános5/óra/IP · captcha kellhet

Anonim feltöltési munkamenet

Bejelentkezés nélküli feltöltési munkamenet. IP-címenként óránként 5 feltöltés, fájlonként legfeljebb 100 MiB. A válasz rögtön tartalmazza a megosztási tokent. Captcha-token kellhet. publicListing: true esetén a megosztás listázott (PUBLIC) lesz, és a keresőmotorok indexelhetik; enélkül link-only (SHARED) marad.

Kérés törzseapplication/json

  • captchaTokenstring Cloudflare Turnstile token. Akkor kötelező, ha a captcha be van kapcsolva.
  • contentTypestringkötelező A fájl MIME-típusa, ahogy a kliens felismerte. Kötelező.
  • fileNamestringkötelező A feltöltött fájl megjelenített neve. Kötelező.
  • publicListingboolean Opcionális. Ha true, a megosztás PUBLIC (listázott) lesz: a megosztás oldalát a keresőmotorok indexelhetik, és a fájl a FileMv saját keresésében is megjelenik. Hiányzó vagy false érték esetén marad az alapértelmezett, csak linkkel elérhető SHARED mód (nem listázott, noindex).
  • sizeBytesinteger A fájl mérete bájtban. 0-nál nagyobb kell legyen.

Válaszok

  • 201A munkamenet létrejött — a törzs tartalmazza a feltöltési URL-t és a megosztási tokent
  • 400Érvénytelen kérés (validation_failed: üres fileName/contentType, nem pozitív méret), vagy hiányzó / elutasított captcha (captcha_failed)
  • 429Elérted az IP-címenkénti anonim feltöltési limitet

POST/api/public/uploads

const res = await fetch("https://filemv.com/api/public/uploads", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "contentType": "image/png",
    "fileName": "screenshot.png",
    "sizeBytes": 524288
  }),
});
const data = await res.json();
Válasz201application/json
{
  "directUrl": null,
  "fileId": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
  "sessionId": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shortUrl": "https://filemv.com/…",
  "uploadUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

POST/api/public/uploads/batchnyilvános5/óra/IP · captcha kellhet

Anonim feltöltés több fájllal

Legfeljebb 10 fájl anonim feltöltése egyetlen kéréssel, egy közös megosztási linkkel. Az egész köteg egy feltöltésnek számít az IP-alapú óránkénti limitben. publicListing: true esetén minden megosztás listázott (PUBLIC) lesz, és a keresőmotorok indexelhetik; enélkül link-only (SHARED) marad.

Kérés törzseapplication/json

  • captchaTokenstring Cloudflare Turnstile token, egyszer ellenőrizve az egész kötegre. Akkor kötelező, ha a captcha be van kapcsolva.
  • object[]kötelező A fájlok, amelyekhez munkamenet kell, megjelenítési sorrendben. Legalább egy, legfeljebb a kötegenkénti korlát (10).
  • publicListingboolean Opcionális. Ha true, minden fájl megosztása PUBLIC (listázott) lesz: a megosztás oldalát a keresőmotorok indexelhetik, és a fájl a FileMv saját keresésében is megjelenik. Hiányzó vagy false érték esetén marad az alapértelmezett, csak linkkel elérhető SHARED mód (nem listázott, noindex).

Válaszok

  • 201A munkamenetek létrejöttek — a törzs fájlonként egy választ tartalmaz, a kérés sorrendjében
  • 400Érvénytelen kérés (üres lista, üres fileName/contentType, nem pozitív méret, túl sok fájl a kötegben), vagy hiányzó / elutasított captcha (captcha_failed)
  • 413Legalább egy fájl nagyobb az anonim feltöltés fájlonkénti korlátjánál — semmi nem lett lefoglalva
  • 429Elérted az IP-címenkénti anonim feltöltési limitet

POST/api/public/uploads/batch

const res = await fetch("https://filemv.com/api/public/uploads/batch", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "files": [
      {
        "contentType": "image/jpeg",
        "fileName": "nyaralas-2026.jpg",
        "sizeBytes": 524288
      }
    ]
  }),
});
const data = await res.json();
Válasz201application/json
{
  "files": [
    {
      "directUrl": null,
      "fileId": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
      "sessionId": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
      "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
      "shortUrl": "https://filemv.com/…",
      "uploadUrl": "https://filemv.com/…"
    }
  ]
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

Fájlok

GET/api/filesAPI-kulcs vagy munkamenet

Mappa tartalmának listázása vagy keresés

Egy mappa közvetlen elemeit adja vissza, parentId nélkül a gyökér elemeit. A sort paraméter a rendezést választja. Nem üres q esetén mappától függetlenül keres a saját, nem törölt fájlok nevében.

Paraméterek

NévHolTípusLeírás
parentId querystringA szülőmappa UUID-ja. Elhagyva (vagy null értékkel) a gyökér elemei listázódnak. `q` megadásakor figyelmen kívül marad.
limit queryintegerOldalméret. A szerver felső korlátot alkalmaz.
page queryintegerOldalszám, 1-től számozva.
sort querystringRendezés. Elfogadott értékek: `type,name` (alapértelmezés — előbb a mappák, aztán ábécérendben); `name` / `-name` (név szerint növekvő / csökkenő, mappák és fájlok vegyesen); `createdAt` / `-createdAt` (létrehozás ideje szerint, vegyesen); `size` / `-size` (csak fájlokra — előbb a mappák név szerint, utánuk a fájlok méret szerint). Ismeretlen érték esetén 400.
q querystringOpcionális keresőkifejezés a fájlnevekben, mappától függetlenül. Ha nem üres, a `parentId` figyelmen kívül marad, és a válasz a hívó összes nem törölt fájlja közül azokat listázza, amelyek neve kis- és nagybetűtől függetlenül tartalmazza ezt az értéket. Üresen vagy elhagyva a mappa tartalma listázódik.

Válaszok

  • 200A fájlok és mappák lapozott listája
  • 400Nem támogatott `sort` érték
  • 401Hiányzó vagy érvénytelen Bearer token
  • 404A parentId ismeretlen, vagy más felhasználóé

GET/api/files

const res = await fetch("https://filemv.com/api/files", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
const data = await res.json();
Válasz200application/json
{
  "files": [
    {
      "commentsCount": 1,
      "contentKind": "FILE",
      "deletedAt": "2026-10-04T09:30:00Z",
      "downloadCount": 1,
      "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
      "likesCount": 1,
      "mimeType": "string",
      "name": "vacation.jpg",
      "parentId": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
      "previewUrl": "https://filemv.com/…",
      "shareMode": "string",
      "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
      "size": 1048576,
      "type": "file",
      "uploadedAt": "2026-10-04T09:30:00Z"
    }
  ],
  "pagination": {
    "currentPage": 1,
    "totalItems": 1,
    "totalPages": 1
  }
}
POST/api/files/foldersAPI-kulcs vagy munkamenet

Mappa létrehozása

Új mappát hoz létre a megadott szülőmappában, parentId nélkül a gyökérben.

Kérés törzseapplication/json

  • namestringkötelező Az új mappa neve. Kötelező, legfeljebb 255 karakter, útvonal-elválasztó nélkül.
  • parentIdstring Opcionális szülőmappa UUID. Nélküle a mappa a gyökérben jön létre.

Válaszok

  • 201A mappa létrejött
  • 400Érvénytelen kérés (üres név)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 404A parentId ismeretlen, más felhasználóé, vagy fájlra mutat
  • 409A célmappában már van ilyen nevű elem

POST/api/files/folders

const res = await fetch("https://filemv.com/api/files/folders", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Holiday 2025",
    "parentId": "2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091"
  }),
});
const data = await res.json();
Válasz201application/json
{
  "commentsCount": 1,
  "contentKind": "FILE",
  "deletedAt": "2026-10-04T09:30:00Z",
  "downloadCount": 1,
  "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
  "likesCount": 1,
  "mimeType": "string",
  "name": "vacation.jpg",
  "parentId": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
  "previewUrl": "https://filemv.com/…",
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "size": 1048576,
  "type": "file",
  "uploadedAt": "2026-10-04T09:30:00Z"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/files/moveAPI-kulcs vagy munkamenet

Több elem áthelyezése

Több fájlt vagy mappát helyez át ugyanabba a célmappába ( parentId ) vagy a gyökérbe ( moveToRoot ) egyetlen kéréssel.

Kérés törzseapplication/json

  • idsstring[]kötelező Az áthelyezendő fájlok és mappák UUID-jai. Legalább egy kell.
  • moveToRootboolean Minden elem a gyökérmappába kerül. A parentId mellett nem adható meg.
  • parentIdstring A célmappa UUID-ja. A moveToRoot mellett nem adható meg.

Válaszok

  • 200Elemenkénti siker / hiba
  • 400Érvénytelen kérés — üres ids, vagy sem parentId, sem moveToRoot nincs megadva
  • 401Hiányzó vagy érvénytelen Bearer token

PATCH/api/files/move

const res = await fetch("https://filemv.com/api/files/move", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "ids": [
      "6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b",
      "9a8b7c6d-5e4f-4321-9876-0fedcba98765"
    ],
    "parentId": "2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091"
  }),
});
const data = await res.json();
Válasz200application/json
{
  "failed": [
    {
      "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
      "message": "string",
      "status": 1
    }
  ],
  "moved": [
    {
      "commentsCount": 1,
      "contentKind": "FILE",
      "deletedAt": "2026-10-04T09:30:00Z",
      "downloadCount": 1,
      "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
      "likesCount": 1,
      "mimeType": "string",
      "name": "vacation.jpg",
      "parentId": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
      "previewUrl": "https://filemv.com/…",
      "shareMode": "string",
      "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
      "size": 1048576,
      "type": "file",
      "uploadedAt": "2026-10-04T09:30:00Z"
    }
  ]
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

GET/api/files/trashAPI-kulcs vagy munkamenet

Kuka listázása

A hívó törölt, még visszaállítható fájljait listázza.

Paraméterek

NévHolTípusLeírás
includeFolders querybooleanA közvetlenül kukába tett mappákat is listázza (`folder` típus, `size` értéke null). Alapértelmezés `false`: csak fájlok.

Válaszok

  • 200A kukában lévő elemek, a legutóbb törölttel kezdve
  • 401Hiányzó vagy érvénytelen Bearer token

GET/api/files/trash

const res = await fetch("https://filemv.com/api/files/trash", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
const data = await res.json();
Válasz200application/json
[
  {
    "commentsCount": 1,
    "contentKind": "FILE",
    "deletedAt": "2026-10-04T09:30:00Z",
    "downloadCount": 1,
    "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
    "likesCount": 1,
    "mimeType": "string",
    "name": "vacation.jpg",
    "parentId": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
    "previewUrl": "https://filemv.com/…",
    "shareMode": "string",
    "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
    "size": 1048576,
    "type": "file",
    "uploadedAt": "2026-10-04T09:30:00Z"
  }
]
PATCH/api/files/{id}API-kulcs vagy munkamenet

Elem áthelyezése vagy átnevezése

Áthelyez és/vagy átnevez egy fájlt vagy mappát.

Paraméterek

NévHolTípusLeírás
id kötelezőpathstringA módosítandó elem UUID-ja

Kérés törzseapplication/json

  • moveToRootboolean Az elem a gyökérmappába kerül. A parentId mellett nem adható meg.
  • namestring Az elem új neve. Legfeljebb 255 karakter, útvonal-elválasztó nélkül. A szerver levágja a széleken lévő szóközöket, és eltávolítja a vezérlőkaraktereket.
  • parentIdstring A célmappa UUID-ja. A moveToRoot mellett nem adható meg.

Válaszok

  • 200A módosított elem
  • 400Érvénytelen kérés (nincs változtatás megadva, vagy túl hosszú a név)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 404Az elem vagy a célmappa ismeretlen, illetve más felhasználóé
  • 409Névütközés a célmappában, vagy az áthelyezés mappakört hozna létre

PATCH/api/files/{id}

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "report-final.pdf",
    "parentId": "2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091"
  }),
});
const data = await res.json();
Válasz200application/json
{
  "commentsCount": 1,
  "contentKind": "FILE",
  "deletedAt": "2026-10-04T09:30:00Z",
  "downloadCount": 1,
  "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
  "likesCount": 1,
  "mimeType": "string",
  "name": "vacation.jpg",
  "parentId": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
  "previewUrl": "https://filemv.com/…",
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "size": 1048576,
  "type": "file",
  "uploadedAt": "2026-10-04T09:30:00Z"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

DELETE/api/files/{id}API-kulcs vagy munkamenet

Elem áthelyezése a kukába

Fájlt vagy mappát helyez a kukába. Onnan visszaállítható, amíg végleg nem törlöd.

Paraméterek

NévHolTípusLeírás
id kötelezőpathstringA kukába helyezendő elem UUID-ja

Válaszok

  • 204Az elem a kukába került
  • 401Hiányzó vagy érvénytelen Bearer token
  • 404Az elem ismeretlen, vagy más felhasználóé

DELETE/api/files/{id}

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
console.log(res.status); // 204
Válasz204

Nincs választörzs.

Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

GET/api/files/{id}/pathAPI-kulcs vagy munkamenet

Elem elérési útja

Visszaadja az elem szülőmappáinak láncát a gyökértől.

Paraméterek

NévHolTípusLeírás
id kötelezőpathstringAz elem UUID-ja, amelynek a szülőmappái kellenek

Válaszok

  • 200A szülőmappák sorrendben, a lista végén maga az elem
  • 401Hiányzó vagy érvénytelen Bearer token
  • 404Az elem ismeretlen, vagy más felhasználóé

GET/api/files/{id}/path

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/path", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
const data = await res.json();
Válasz200application/json
[
  {
    "commentsCount": 1,
    "contentKind": "FILE",
    "deletedAt": "2026-10-04T09:30:00Z",
    "downloadCount": 1,
    "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
    "likesCount": 1,
    "mimeType": "string",
    "name": "vacation.jpg",
    "parentId": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
    "previewUrl": "https://filemv.com/…",
    "shareMode": "string",
    "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
    "size": 1048576,
    "type": "file",
    "uploadedAt": "2026-10-04T09:30:00Z"
  }
]
Próbáld ki

Ehhez a híváshoz paraméter kell — futtasd a saját környezetedből a fenti mintával.

DELETE/api/files/{id}/permanentAPI-kulcs vagy munkamenet

Végleges törlés

Véglegesen törli a kukában lévő elemet. Nem vonható vissza.

Paraméterek

NévHolTípusLeírás
id kötelezőpathstringA véglegesen törlendő, kukában lévő elem UUID-ja

Válaszok

  • 204Az elem véglegesen törölve (vagy már korábban törlődött)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 404Az elem ismeretlen, vagy más felhasználóé
  • 409Az elem létezik, de nincs a kukában — előbb a kukába kell helyezni

DELETE/api/files/{id}/permanent

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/permanent", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
console.log(res.status); // 204
Válasz204

Nincs választörzs.

Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

POST/api/files/{id}/restoreAPI-kulcs vagy munkamenet

Visszaállítás a kukából

Visszaállít egy kukába helyezett elemet az eredeti helyére.

Paraméterek

NévHolTípusLeírás
id kötelezőpathstringA visszaállítandó, kukában lévő elem UUID-ja

Válaszok

  • 200A visszaállított elem
  • 401Hiányzó vagy érvénytelen Bearer token
  • 404Az elem ismeretlen, más felhasználóé, vagy nincs a kukában
  • 409A visszaállítás helyén már van ilyen nevű elem, ezért a visszaállítás nem lehetséges

POST/api/files/{id}/restore

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/restore", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
const data = await res.json();
Válasz200application/json
{
  "commentsCount": 1,
  "contentKind": "FILE",
  "deletedAt": "2026-10-04T09:30:00Z",
  "downloadCount": 1,
  "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
  "likesCount": 1,
  "mimeType": "string",
  "name": "vacation.jpg",
  "parentId": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
  "previewUrl": "https://filemv.com/…",
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "size": 1048576,
  "type": "file",
  "uploadedAt": "2026-10-04T09:30:00Z"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

GET/api/files/{fileId}/download-urlAPI-kulcs vagy munkamenet

Letöltési URL egy saját fájlhoz

Rövid ideig érvényes, aláírt letöltési URL-t ad a hívó saját fájljához.

Paraméterek

NévHolTípusLeírás
fileId kötelezőpathstring
inline querybooleantrue = megtekintési (inline) URL; false (alapértelmezés) = letöltési URL.

Válaszok

  • 200A törzs tartalmazza az aláírt letöltési URL-t
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A fájl nem a hívóé
  • 404A fájl nem található
  • 410file_purged — a fájl tartalma törölve lett; URL nem készül

GET/api/files/{fileId}/download-url

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/download-url", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
const data = await res.json();
Válasz200application/json
{
  "downloadUrl": "https://filemv.com/…"
}
Próbáld ki

Ehhez a híváshoz paraméter kell — futtasd a saját környezetedből a fenti mintával.

POST/api/files/archiveAPI-kulcs vagy munkamenet

ZIP készítése kiválasztott fájlokból

Egyszeri ZIP-archívumot készít a hívó 1–200 saját fájljából, és letöltési URL-t ad vissza hozzá.

Kérés törzseapplication/json

  • fileIdsstring[]kötelező A ZIP-be kerülő saját fájlok UUID-jai, 1–200 darab. A határokon kívül 400 a válasz.

Válaszok

  • 200Elfogadva — a törzs tartalmazza a ZIP letöltési URL-jét
  • 400Érvénytelen kérés (üres vagy túl hosszú fileIds lista)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403Egy vagy több azonosító ismeretlen, törölt, vagy más felhasználóé
  • 413A kiválasztott fájlok együtt nagyobbak a ZIP méretkorlátjánál — a hiba kódja archive_size_exceeded, mellette az actual_bytes és a cap_bytes érték
  • 502A ZIP-kérés a méretkorláton kívüli okból nem teljesíthető

POST/api/files/archive

const res = await fetch("https://filemv.com/api/files/archive", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "fileIds": [
      "6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b",
      "9a8b7c6d-5e4f-4321-9876-0fedcba98765"
    ]
  }),
});
const data = await res.json();
Válasz200application/json
{}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

Megosztás

POST/api/files/share-multiAPI-kulcs vagy munkamenet

Közös megosztás több fájlhoz

Egyetlen megosztási tokent hoz létre 2–50 saját fájlhoz, közös lejárattal, jelszóval és értesítési beállításokkal.

Kérés törzseapplication/json

  • expiresInDaysinteger Opcionális lejárat napokban, a csoport minden fájljára. null vagy 0 = soha; 1–365 = ennyi nap múlva jár le.
  • fileIdsstring[]kötelező Egy megosztási token alá kerülő saját fájlok UUID-jai, 2–50 darab. Egyetlen fájlhoz a POST /api/files/{id}/share végpontot használd.
  • notifyOnDownloadboolean true esetén a tulajdonos e-mailt kap, amikor egy e-mailben értesített címzett letölti a csoport bármelyik fájlját. Elhagyva vagy false értékkel ki van kapcsolva.
  • notifyOnViewboolean Opcionális. true esetén a tulajdonos e-mailt kap, amikor egy e-mailben értesített címzett először megnyitja a csoport bármelyik fájlját. A notifyOnDownload-tól eltérően megnyitáskor szól.
  • notifyPerRecipientboolean Opcionális. true esetén címzettenkénti értesítés: a tulajdonos minden címzett letöltéséről e-mailt kap, nem csak az elsőről. Csak notifyOnDownload=true mellett van hatása.
  • passwordstring Opcionális jelszó (4 karaktertől 72 bájtig UTF-8-ban), a csoport minden fájljára érvényes. null vagy elhagyva = nincs jelszó.
  • shareModestring Opcionális megosztási mód (SHARED | PUBLIC). Alapértelmezés: SHARED — csak linkkel, nem listázott. PRIVATE · PUBLIC · SHARED

Válaszok

  • 201A megosztási token, a link és a fájlok száma
  • 400Érvénytelen kérés (2–50 fájlon kívül, ismétlődő azonosító, vagy hibás shareMode)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403Egy vagy több fájl nem a hívóé
  • 404Egy vagy több fájl nem található
  • 409Egy vagy több fájl anonim feltöltés

POST/api/files/share-multi

const res = await fetch("https://filemv.com/api/files/share-multi", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "expiresInDays": 7,
    "fileIds": [
      "6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b",
      "9a8b7c6d-5e4f-4321-9876-0fedcba98765"
    ],
    "notifyOnDownload": true,
    "shareMode": "SHARED"
  }),
});
const data = await res.json();
Válasz201application/json
{
  "fileCount": 1,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/files/visibilityAPI-kulcs vagy munkamenet

Láthatóság beállítása több elemre

Fájlokat és mappákat állít PUBLIC vagy PRIVATE láthatóságúra egyszerre (legfeljebb 200 azonosító). Mappánál a közvetlen fájlokra is érvényes.

Kérés törzseapplication/json

  • idsstring[]kötelező Fájl- és mappaazonosítók vegyesen. Mappánál a beállítás a mappa közvetlen fájljaira is érvényes (csak egy szint mélyen). 1–200 azonosító kérésenként.
  • modestringkötelező A cél-láthatóság: PUBLIC (megosztási token + nyilvános listázás) vagy PRIVATE (a token törlése + listázás megszüntetése). SHARED-hez a fájlonkénti PATCH végpontot használd. PRIVATE · PUBLIC · SHARED

Válaszok

  • 200Minden elem sikerült — az `updated` kitöltve, a `failed` üres
  • 207Részleges hiba — a `failed` nem üres (azonosítónként 404 / 409 / 410), az `updated` a sikeres elemeket tartalmazza
  • 400Érvénytelen kérés (üres ids, vagy érvénytelen mód)
  • 401Hiányzó vagy érvénytelen Bearer token

PATCH/api/files/visibility

const res = await fetch("https://filemv.com/api/files/visibility", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "ids": [
      "6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b",
      "9a8b7c6d-5e4f-4321-9876-0fedcba98765"
    ],
    "mode": "PUBLIC"
  }),
});
const data = await res.json();
Válasz200application/json
{
  "failed": [
    {
      "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
      "message": "string",
      "status": 1
    }
  ],
  "updated": [
    {
      "commentsCount": 1,
      "contentKind": "FILE",
      "deletedAt": "2026-10-04T09:30:00Z",
      "downloadCount": 1,
      "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
      "likesCount": 1,
      "mimeType": "string",
      "name": "vacation.jpg",
      "parentId": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
      "previewUrl": "https://filemv.com/…",
      "shareMode": "string",
      "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
      "size": 1048576,
      "type": "file",
      "uploadedAt": "2026-10-04T09:30:00Z"
    }
  ]
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

POST/api/files/{fileId}/shareAPI-kulcs vagy munkamenet

Fájlmegosztás létrehozása

Megosztási linket hoz létre a hívó saját fájljához. Idempotens: ha már van aktív megosztás, azt adja vissza.

Paraméterek

NévHolTípusLeírás
fileId kötelezőpathstring

Kérés törzseapplication/json

  • expiresInDaysinteger Opcionális lejárat napokban. 0 = soha; 1–365 = ennyi nap múlva jár le. Elhagyva: új megosztásnál soha, meglévőnél nem változik (a már lejárt határidő törlődik).
  • notifyOnDownloadboolean true esetén a tulajdonos e-mailt kap, amikor egy e-mailben értesített címzett letölti a megosztást. Elhagyva: új megosztásnál false, meglévőnél nem változik.
  • notifyOnViewboolean Opcionális. true esetén a tulajdonos e-mailt kap, amikor egy e-mailben értesített címzett először megnyitja a linket. A notifyOnDownload-tól eltérően megnyitáskor szól, nem letöltéskor. Elhagyva: új megosztásnál false, meglévőnél nem változik.
  • notifyPerRecipientboolean Opcionális. true esetén címzettenkénti értesítés: a tulajdonos minden címzett letöltéséről e-mailt kap, nem csak az elsőről. Csak notifyOnDownload=true mellett van hatása. Elhagyva: új megosztásnál false, meglévőnél nem változik.
  • passwordstring Opcionális jelszó (4 karaktertől 72 bájtig UTF-8-ban). null vagy elhagyva: új megosztásnál nincs jelszó, meglévőnél nem változik (törlés: PATCH …/share/password); üres, 1–3 karakter vagy 72 bájt fölött = 400.
  • shareModestring Opcionális megosztási mód (SHARED | PUBLIC). Elhagyva: új megosztásnál SHARED (csak linkkel, nem listázott), meglévőnél nem változik. PRIVATE · PUBLIC · SHARED

Válaszok

  • 200Az aktív megosztási token és a megosztás oldalának útvonala
  • 400Érvénytelen kérés (hibás shareMode)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A fájl nem a hívóé
  • 404A fájl nem található

POST/api/files/{fileId}/share

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/share", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "expiresInDays": 7,
    "notifyOnDownload": true,
    "password": "correct-horse-42",
    "shareMode": "SHARED"
  }),
});
const data = await res.json();
Válasz200application/json
{
  "expiresAt": "2026-10-04T09:30:00Z",
  "notifyOnView": true,
  "notifyOwnerOnDownload": true,
  "notifyPerRecipient": true,
  "passwordProtected": true,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…",
  "shortUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/files/{fileId}/shareAPI-kulcs vagy munkamenet

Fájlmegosztás módjának módosítása

Módosítja a meglévő megosztás módját ( PRIVATE , SHARED , PUBLIC ). A token nem változik.

Paraméterek

NévHolTípusLeírás
fileId kötelezőpathstring

Kérés törzseapplication/json

  • shareModestringkötelező Az új megosztási mód (PRIVATE | SHARED | PUBLIC). Kötelező. PRIVATE · PUBLIC · SHARED

Válaszok

  • 200A módosított megosztás
  • 400Érvénytelen kérés (hiányzó vagy hibás shareMode)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A fájl nem a hívóé
  • 404A fájl vagy az aktív megosztás nem található

PATCH/api/files/{fileId}/share

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/share", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "shareMode": "SHARED"
  }),
});
const data = await res.json();
Válasz200application/json
{
  "expiresAt": "2026-10-04T09:30:00Z",
  "notifyOnView": true,
  "notifyOwnerOnDownload": true,
  "notifyPerRecipient": true,
  "passwordProtected": true,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…",
  "shortUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

DELETE/api/files/{fileId}/shareAPI-kulcs vagy munkamenet

Fájlmegosztás visszavonása

Visszavonja a fájl aktív megosztását. A link azonnal érvénytelenné válik.

Paraméterek

NévHolTípusLeírás
fileId kötelezőpathstring

Válaszok

  • 204A megosztás visszavonva (vagy nem volt mit visszavonni)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A fájl nem a hívóé
  • 404A fájl nem található (maga a fájl hiányzik, nem a megosztási token)

DELETE/api/files/{fileId}/share

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/share", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
console.log(res.status); // 204
Válasz204

Nincs választörzs.

Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/files/{fileId}/share/expiryAPI-kulcs vagy munkamenet

Fájlmegosztás lejárata

Beállítja vagy törli a meglévő fájlmegosztás lejáratát (0–365 nap). A token nem változik.

Paraméterek

NévHolTípusLeírás
fileId kötelezőpathstring

Kérés törzseapplication/json

  • expiresInDaysinteger Hány nap múlva járjon le a megosztás. 0 vagy null = soha. A szerver a beállított legnagyobb értéket érvényesíti.

Válaszok

  • 200A módosított megosztás az új lejárattal
  • 400Érvénytelen kérés (az expiresInDays 0–365-ön kívül esik, vagy nagyobb a megengedettnél)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A fájl nem a hívóé
  • 404A fájl nem található
  • 409Nincs aktív megosztás — előbb hozz létre egyet POST-tal

PATCH/api/files/{fileId}/share/expiry

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/share/expiry", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "expiresInDays": 30
  }),
});
const data = await res.json();
Válasz200application/json
{
  "expiresAt": "2026-10-04T09:30:00Z",
  "notifyOnView": true,
  "notifyOwnerOnDownload": true,
  "notifyPerRecipient": true,
  "passwordProtected": true,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…",
  "shortUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/files/{fileId}/share/notifyAPI-kulcs vagy munkamenet

Fájlmegosztás értesítései

Be- vagy kikapcsolja az e-mail értesítést, amikor egy e-mailben értesített címzett letölti a fájlt.

Paraméterek

NévHolTípusLeírás
fileId kötelezőpathstring

Kérés törzseapplication/json

  • notifyOnDownloadbooleankötelező true = e-mail, amikor egy e-mailben értesített címzett letölt; false = kikapcsolás.
  • notifyOnViewboolean Opcionális. true = értesítés, amikor egy e-mailben értesített címzett először megnyitja a linket; false = kikapcsolja; null = nem változik.
  • notifyPerRecipientboolean Opcionális. true = értesítés minden címzett letöltéséről; false = megosztásonként egy értesítés (csak az első letöltésről); null = nem változik.

Válaszok

  • 200A módosított megosztás az új értesítési beállítással
  • 400Érvénytelen kérés (a notifyOnDownload értéke null)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A fájl nem a hívóé
  • 404A fájl nem található
  • 409Nincs aktív megosztás — előbb hozz létre egyet POST-tal

PATCH/api/files/{fileId}/share/notify

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/share/notify", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "notifyOnDownload": true
  }),
});
const data = await res.json();
Válasz200application/json
{
  "expiresAt": "2026-10-04T09:30:00Z",
  "notifyOnView": true,
  "notifyOwnerOnDownload": true,
  "notifyPerRecipient": true,
  "passwordProtected": true,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…",
  "shortUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/files/{fileId}/share/passwordAPI-kulcs vagy munkamenet

Fájlmegosztás jelszava

Beállítja, módosítja vagy törli a meglévő fájlmegosztás jelszavát (4–128 karakter).

Paraméterek

NévHolTípusLeírás
fileId kötelezőpathstring

Kérés törzseapplication/json

  • passwordstring A jelszó (4 karaktertől 72 bájtig UTF-8-ban). null = a jelszó törlése (nincs jelszóvédelem).

Válaszok

  • 200A módosított megosztás az új passwordProtected értékkel
  • 400Érvénytelen kérés (a jelszó 4 karakternél rövidebb vagy 128-nál hosszabb)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A fájl nem a hívóé
  • 404A fájl nem található
  • 409Nincs aktív megosztás — előbb hozz létre egyet POST-tal

PATCH/api/files/{fileId}/share/password

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/share/password", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "password": "correct-horse-42"
  }),
});
const data = await res.json();
Válasz200application/json
{
  "expiresAt": "2026-10-04T09:30:00Z",
  "notifyOnView": true,
  "notifyOwnerOnDownload": true,
  "notifyPerRecipient": true,
  "passwordProtected": true,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…",
  "shortUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/files/{fileId}/share/slugAPI-kulcs vagy munkamenet

Fájlmegosztás egyedi linkje

Beállítja vagy törli a megosztás egyedi, olvasható link-azonosítóját (3–30 karakter: kisbetű, számjegy, kötőjel).

Paraméterek

NévHolTípusLeírás
fileId kötelezőpathstring

Kérés törzseapplication/json

  • slugstring Egyedi link-azonosító (3–30 karakter: kisbetű, számjegy, kötőjel). null vagy üres = törlés, vissza az automatikus rövid linkhez.

Válaszok

  • 200A módosított megosztás az új rövid linkkel
  • 400Az egyedi link formátuma hibás, foglalt szó, vagy nem megengedett kifejezés
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A fájl nem a hívóé
  • 404A fájl nem található
  • 409Nincs aktív megosztás, vagy az egyedi link már foglalt

PATCH/api/files/{fileId}/share/slug

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/share/slug", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "slug": "summer-photos"
  }),
});
const data = await res.json();
Válasz200application/json
{
  "expiresAt": "2026-10-04T09:30:00Z",
  "notifyOnView": true,
  "notifyOwnerOnDownload": true,
  "notifyPerRecipient": true,
  "passwordProtected": true,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…",
  "shortUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

GET/api/files/{fileId}/share/unlock-eventsAPI-kulcs vagy munkamenet

Fájlmegosztás feloldási naplója

A jelszóval védett fájlmegosztás feloldási kísérleteit listázza.

Paraméterek

NévHolTípusLeírás
fileId kötelezőpathstring

Válaszok

  • 200A feloldási napló
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A fájl nem a hívóé
  • 404A fájl nem található

GET/api/files/{fileId}/share/unlock-events

const res = await fetch("https://filemv.com/api/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/share/unlock-events", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
const data = await res.json();
Válasz200application/json
{
  "bruteForceAlert": true,
  "failedLast24h": 1,
  "recentEvents": [
    {
      "createdAt": "2026-10-04T09:30:00Z",
      "result": "string"
    }
  ]
}
Próbáld ki

Ehhez a híváshoz paraméter kell — futtasd a saját környezetedből a fenti mintával.

POST/api/folders/{folderId}/shareAPI-kulcs vagy munkamenet

Mappamegosztás létrehozása

Megosztási linket hoz létre a hívó saját mappájához. Idempotens: ha már van aktív megosztás, azt adja vissza.

Paraméterek

NévHolTípusLeírás
folderId kötelezőpathstring

Kérés törzseapplication/json

  • expiresInDaysinteger Opcionális lejárat napokban. 0 = soha; 1–365 = ennyi nap múlva jár le. Elhagyva: új megosztásnál soha, meglévőnél nem változik (a már lejárt határidő törlődik).
  • notifyOnDownloadboolean true esetén a tulajdonos e-mailt kap, amikor egy e-mailben értesített címzett letölti a megosztást. Elhagyva: új megosztásnál false, meglévőnél nem változik.
  • notifyOnViewboolean Opcionális. true esetén a tulajdonos e-mailt kap, amikor egy e-mailben értesített címzett először megnyitja a linket. A notifyOnDownload-tól eltérően megnyitáskor szól, nem letöltéskor. Elhagyva: új megosztásnál false, meglévőnél nem változik.
  • notifyPerRecipientboolean Opcionális. true esetén címzettenkénti értesítés: a tulajdonos minden címzett letöltéséről e-mailt kap, nem csak az elsőről. Csak notifyOnDownload=true mellett van hatása. Elhagyva: új megosztásnál false, meglévőnél nem változik.
  • passwordstring Opcionális jelszó (4 karaktertől 72 bájtig UTF-8-ban). null vagy elhagyva: új megosztásnál nincs jelszó, meglévőnél nem változik (törlés: PATCH …/share/password); üres, 1–3 karakter vagy 72 bájt fölött = 400.
  • shareModestring Opcionális megosztási mód (SHARED | PUBLIC). Elhagyva: új megosztásnál SHARED (csak linkkel, nem listázott), meglévőnél nem változik. PRIVATE · PUBLIC · SHARED

Válaszok

  • 200Az aktív megosztási token és a megosztás oldalának útvonala
  • 400Érvénytelen kérés (hibás shareMode)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A mappa nem a hívóé
  • 404A mappa nem található

POST/api/folders/{folderId}/share

const res = await fetch("https://filemv.com/api/folders/2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091/share", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "expiresInDays": 7,
    "notifyOnDownload": true,
    "password": "correct-horse-42",
    "shareMode": "SHARED"
  }),
});
const data = await res.json();
Válasz200application/json
{
  "expiresAt": "2026-10-04T09:30:00Z",
  "notifyOnView": true,
  "notifyOwnerOnDownload": true,
  "notifyPerRecipient": true,
  "passwordProtected": true,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…",
  "shortUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/folders/{folderId}/shareAPI-kulcs vagy munkamenet

Mappamegosztás módjának módosítása

Módosítja a meglévő mappamegosztás módját. A token nem változik.

Paraméterek

NévHolTípusLeírás
folderId kötelezőpathstring

Kérés törzseapplication/json

  • shareModestringkötelező Az új megosztási mód (PRIVATE | SHARED | PUBLIC). Kötelező. PRIVATE · PUBLIC · SHARED

Válaszok

  • 200A módosított megosztás
  • 400Érvénytelen kérés (hiányzó vagy hibás shareMode)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A mappa nem a hívóé
  • 404A mappa vagy az aktív megosztás nem található

PATCH/api/folders/{folderId}/share

const res = await fetch("https://filemv.com/api/folders/2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091/share", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "shareMode": "SHARED"
  }),
});
const data = await res.json();
Válasz200application/json
{
  "expiresAt": "2026-10-04T09:30:00Z",
  "notifyOnView": true,
  "notifyOwnerOnDownload": true,
  "notifyPerRecipient": true,
  "passwordProtected": true,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…",
  "shortUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

DELETE/api/folders/{folderId}/shareAPI-kulcs vagy munkamenet

Mappamegosztás visszavonása

Visszavonja a mappa aktív megosztását. A link azonnal érvénytelenné válik.

Paraméterek

NévHolTípusLeírás
folderId kötelezőpathstring

Válaszok

  • 204A megosztás visszavonva (vagy nem volt mit visszavonni)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A mappa nem a hívóé
  • 404A mappa nem található (maga a mappa hiányzik, nem a megosztási token)

DELETE/api/folders/{folderId}/share

const res = await fetch("https://filemv.com/api/folders/2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091/share", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
console.log(res.status); // 204
Válasz204

Nincs választörzs.

Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/folders/{folderId}/share/expiryAPI-kulcs vagy munkamenet

Mappamegosztás lejárata

Beállítja vagy törli a meglévő mappamegosztás lejáratát. A token nem változik.

Paraméterek

NévHolTípusLeírás
folderId kötelezőpathstring

Kérés törzseapplication/json

  • expiresInDaysinteger Hány nap múlva járjon le a megosztás. 0 vagy null = soha. A szerver a beállított legnagyobb értéket érvényesíti.

Válaszok

  • 200A módosított megosztás az új lejárattal
  • 400Érvénytelen kérés (az expiresInDays 0–365-ön kívül esik, vagy nagyobb a megengedettnél)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A mappa nem a hívóé
  • 404A mappa nem található
  • 409Nincs aktív megosztás — előbb hozz létre egyet POST-tal

PATCH/api/folders/{folderId}/share/expiry

const res = await fetch("https://filemv.com/api/folders/2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091/share/expiry", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "expiresInDays": 30
  }),
});
const data = await res.json();
Válasz200application/json
{
  "expiresAt": "2026-10-04T09:30:00Z",
  "notifyOnView": true,
  "notifyOwnerOnDownload": true,
  "notifyPerRecipient": true,
  "passwordProtected": true,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…",
  "shortUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/folders/{folderId}/share/notifyAPI-kulcs vagy munkamenet

Mappamegosztás értesítései

Be- vagy kikapcsolja az e-mail értesítést a mappamegosztás letöltéseiről.

Paraméterek

NévHolTípusLeírás
folderId kötelezőpathstring

Kérés törzseapplication/json

  • notifyOnDownloadbooleankötelező true = e-mail, amikor egy e-mailben értesített címzett letölt; false = kikapcsolás.
  • notifyOnViewboolean Opcionális. true = értesítés, amikor egy e-mailben értesített címzett először megnyitja a linket; false = kikapcsolja; null = nem változik.
  • notifyPerRecipientboolean Opcionális. true = értesítés minden címzett letöltéséről; false = megosztásonként egy értesítés (csak az első letöltésről); null = nem változik.

Válaszok

  • 200A módosított megosztás az új értesítési beállítással
  • 400Érvénytelen kérés (a notifyOnDownload értéke null)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A mappa nem a hívóé
  • 404A mappa nem található
  • 409Nincs aktív megosztás — előbb hozz létre egyet POST-tal

PATCH/api/folders/{folderId}/share/notify

const res = await fetch("https://filemv.com/api/folders/2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091/share/notify", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "notifyOnDownload": true
  }),
});
const data = await res.json();
Válasz200application/json
{
  "expiresAt": "2026-10-04T09:30:00Z",
  "notifyOnView": true,
  "notifyOwnerOnDownload": true,
  "notifyPerRecipient": true,
  "passwordProtected": true,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…",
  "shortUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/folders/{folderId}/share/passwordAPI-kulcs vagy munkamenet

Mappamegosztás jelszava

Beállítja, módosítja vagy törli a meglévő mappamegosztás jelszavát.

Paraméterek

NévHolTípusLeírás
folderId kötelezőpathstring

Kérés törzseapplication/json

  • passwordstring A jelszó (4 karaktertől 72 bájtig UTF-8-ban). null = a jelszó törlése (nincs jelszóvédelem).

Válaszok

  • 200A módosított megosztás az új passwordProtected értékkel
  • 400Érvénytelen kérés (a jelszó 4 karakternél rövidebb vagy 128-nál hosszabb)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A mappa nem a hívóé
  • 404A mappa nem található
  • 409Nincs aktív megosztás — előbb hozz létre egyet POST-tal

PATCH/api/folders/{folderId}/share/password

const res = await fetch("https://filemv.com/api/folders/2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091/share/password", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "password": "correct-horse-42"
  }),
});
const data = await res.json();
Válasz200application/json
{
  "expiresAt": "2026-10-04T09:30:00Z",
  "notifyOnView": true,
  "notifyOwnerOnDownload": true,
  "notifyPerRecipient": true,
  "passwordProtected": true,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…",
  "shortUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/folders/{folderId}/share/proofingAPI-kulcs vagy munkamenet

Ügyfél-jóváhagyás (proofing) be- és kikapcsolása

Be- vagy kikapcsolja a mappamegosztáson az ügyfél-jóváhagyást: a címzett megjelölhet képeket és megjegyzést fűzhet hozzájuk.

Paraméterek

NévHolTípusLeírás
folderId kötelezőpathstring

Kérés törzseapplication/json

  • proofingEnabledbooleankötelező true = ügyfél-jóváhagyás bekapcsolása a mappamegosztáson (csillagozás, kiválasztás, megjegyzések); false = kikapcsolás.

Válaszok

  • 200A módosított megosztás
  • 400Érvénytelen kérés (a proofingEnabled értéke null)
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A mappa nem a hívóé
  • 404A mappa nem található
  • 409Nincs aktív megosztás — előbb hozz létre egyet POST-tal

PATCH/api/folders/{folderId}/share/proofing

const res = await fetch("https://filemv.com/api/folders/2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091/share/proofing", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "proofingEnabled": true
  }),
});
const data = await res.json();
Válasz200application/json
{
  "expiresAt": "2026-10-04T09:30:00Z",
  "notifyOnView": true,
  "notifyOwnerOnDownload": true,
  "notifyPerRecipient": true,
  "passwordProtected": true,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…",
  "shortUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/folders/{folderId}/share/slugAPI-kulcs vagy munkamenet

Mappamegosztás egyedi linkje

Beállítja vagy törli a mappamegosztás egyedi, olvasható link-azonosítóját.

Paraméterek

NévHolTípusLeírás
folderId kötelezőpathstring

Kérés törzseapplication/json

  • slugstring Egyedi link-azonosító (3–30 karakter: kisbetű, számjegy, kötőjel). null vagy üres = törlés, vissza az automatikus rövid linkhez.

Válaszok

  • 200A módosított megosztás az új rövid linkkel
  • 400Az egyedi link formátuma hibás, foglalt szó, vagy nem megengedett kifejezés
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A mappa nem a hívóé
  • 404A mappa nem található
  • 409Nincs aktív megosztás, vagy az egyedi link már foglalt

PATCH/api/folders/{folderId}/share/slug

const res = await fetch("https://filemv.com/api/folders/2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091/share/slug", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "slug": "summer-photos"
  }),
});
const data = await res.json();
Válasz200application/json
{
  "expiresAt": "2026-10-04T09:30:00Z",
  "notifyOnView": true,
  "notifyOwnerOnDownload": true,
  "notifyPerRecipient": true,
  "passwordProtected": true,
  "shareMode": "string",
  "shareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "shareUrl": "https://filemv.com/…",
  "shortUrl": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

GET/api/folders/{folderId}/share/unlock-eventsAPI-kulcs vagy munkamenet

Mappamegosztás feloldási naplója

A jelszóval védett mappamegosztás feloldási kísérleteit listázza.

Paraméterek

NévHolTípusLeírás
folderId kötelezőpathstring

Válaszok

  • 200A feloldási napló
  • 401Hiányzó vagy érvénytelen Bearer token
  • 403A mappa nem a hívóé
  • 404A mappa nem található

GET/api/folders/{folderId}/share/unlock-events

const res = await fetch("https://filemv.com/api/folders/2b3c4d5e-6f70-4812-9a3b-4c5d6e7f8091/share/unlock-events", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
const data = await res.json();
Válasz200application/json
{
  "bruteForceAlert": true,
  "failedLast24h": 1,
  "recentEvents": [
    {
      "createdAt": "2026-10-04T09:30:00Z",
      "result": "string"
    }
  ]
}
Próbáld ki

Ehhez a híváshoz paraméter kell — futtasd a saját környezetedből a fenti mintával.

GET/api/share/slug-availableAPI-kulcs vagy munkamenet

Egyedi link szabad-e

Ellenőrzi, hogy egy egyedi link-azonosító (slug) foglalt-e. Minden bejelentkezett felhasználó használhatja.

Paraméterek

NévHolTípusLeírás
slug kötelezőquerystring

Válaszok

  • 200Az ellenőrzés eredménye
  • 401Hiányzó vagy érvénytelen munkamenet

GET/api/share/slug-available

const res = await fetch("https://filemv.com/api/share/slug-available?slug=summer-photos", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
const data = await res.json();
Válasz200*/*

Nincs választörzs.

Próbáld ki

Ehhez a híváshoz paraméter kell — futtasd a saját környezetedből a fenti mintával.

Publikus

GET/api/public/share/{token}nyilvános

Megosztás feloldása

A megosztási token vagy az egyedi link alapján visszaadja a megosztás publikus adatait. Jelszavas megosztásnál előbb a feloldó végpontot kell hívni, különben csak egy zárolt csonk érkezik.

Paraméterek

NévHolTípusLeírás
token kötelezőpathstringA megosztás létrehozásakor kapott megosztási token
folderId querystringOpcionális almappa-azonosító mappamegosztásnál. A megosztott mappán belül kell lennie.
r querystringOpcionális címzett-token egy e-mailben kapott megosztási linkből. Az ismeretlen értékeket a szerver figyelmen kívül hagyja.

Válaszok

  • 200A teljes megosztás, VAGY jelszóval védett megosztásnál érvényes feloldó token nélkül egy zárolt csonk (passwordRequired=true)
  • 400A folderId nem mappára mutat a mappamegosztáson belül
  • 404Nincs ilyen tokenű megosztás, vagy a folderId kívül esik a megosztott mappán
  • 410A token mögötti összes fájl törölve lett vagy lejárt, vagy a megosztási link lejárt
  • 429Túl sok lekérés erről az IP-címről — a Retry-After fejléc mutatja, mennyit kell várni

GET/api/public/share/{token}

const res = await fetch("https://filemv.com/api/public/share/Qm4t7Xz2Lp9Kd3Wf8Rb1Nc", {
  method: "GET",
});
const data = await res.json();
Válasz200application/json
{
  "adsEnabled": true,
  "archiveDownloadUrl": "https://filemv.com/…",
  "canonicalSlug": "string",
  "containingFolderShareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
  "expiresAt": "2026-10-04T09:30:00Z",
  "files": [
    {
      "contentType": "string",
      "displayUrl": "https://filemv.com/…",
      "downloadUrl": "https://filemv.com/…",
      "exif": {
        "gpsPresent": true,
        "groups": [
          null
        ],
        "summary": [
          "1/500 s",
          "2026. 08. 12.",
          "35 mm",
          "6000×4000",
          "ISO 200",
          "Sony α7 IV",
          "ƒ/2.8"
        ]
      },
      "fileName": "vacation.jpg",
      "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
      "inlineUrl": "https://filemv.com/…",
      "paste": {
        "charCount": 1,
        "language": "string",
        "lineCount": 1,
        "rawUrl": "https://filemv.com/…",
        "revision": 1,
        "updatedAt": "2026-10-04T09:30:00Z"
      },
      "sizeBytes": 1048576
    }
  ],
  …
Próbáld ki

Ehhez a híváshoz paraméter kell — futtasd a saját környezetedből a fenti mintával.

GET/api/public/share/{token}/archivenyilvános

Mappamegosztás letöltése ZIP-ben

Egy mappamegosztás teljes tartalmát egyetlen ZIP-folyamként küldi.

Paraméterek

NévHolTípusLeírás
token kötelezőpathstringMegosztási token — mappamegosztáshoz kell tartoznia
folderId querystringOpcionális almappa-azonosító a megosztott mappán belül; csak ennek a tartalma kerül a ZIP-be. Alapértelmezés a megosztás gyökere.
u querystringA feloldó token, amely igazolja a helyes jelszót (query-paraméterként). Böngészős letöltésekhez, ahol egyedi fejléc nem küldhető.

Válaszok

  • 302Átirányítás az egyszer használható ZIP-letöltési URL-re
  • 400A megosztás nem mappamegosztás, a folderId nem mappára mutat, vagy a kérés érvénytelen
  • 404Ismeretlen megosztási token, vagy a folderId kívül esik a megosztott mappán
  • 413A mappa nagyobb a ZIP méretkorlátjánál; a hiba kódja archive_size_exceeded, mellette az actual_bytes és a cap_bytes érték

GET/api/public/share/{token}/archive

const res = await fetch("https://filemv.com/api/public/share/Qm4t7Xz2Lp9Kd3Wf8Rb1Nc/archive", {
  method: "GET",
});
const data = await res.json();
Próbáld ki

Ehhez a híváshoz paraméter kell — futtasd a saját környezetedből a fenti mintával.

GET/api/public/share/{token}/files/{fileId}/urlsnyilvános

Friss letöltési URL-ek egy fájlhoz

Új, rövid ideig érvényes megtekintési és letöltési URL-t ad a megosztás egy fájljához. Hosszú lejátszásnál a lejárt média-URL-ek frissítésére való.

Paraméterek

NévHolTípusLeírás
token kötelezőpathstringA megosztási token vagy az egyedi link-azonosító
fileId kötelezőpathstringA fájl azonosítója, amelynek az URL-jeit frissíteni kell; a megosztáshoz kell tartoznia
r querystringOpcionális címzett-token; a letöltés a címzetthez lesz rendelve. Az ismeretlen értékeket a szerver figyelmen kívül hagyja.

Válaszok

  • 200Friss megtekintési és letöltési URL-ek
  • 401A megosztás jelszóval védett, és nem érkezett érvényes X-Share-Unlock token
  • 404Nincs ilyen tokenű megosztás, vagy a fájl nem tartozik hozzá
  • 410A megosztási link lejárt
  • 429Túl sok frissítés erről az IP-címről — a Retry-After fejléc mutatja, mennyit kell várni

GET/api/public/share/{token}/files/{fileId}/urls

const res = await fetch("https://filemv.com/api/public/share/Qm4t7Xz2Lp9Kd3Wf8Rb1Nc/files/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/urls", {
  method: "GET",
});
const data = await res.json();
Válasz200application/json
{
  "displayUrl": "https://filemv.com/…",
  "downloadUrl": "https://filemv.com/…",
  "inlineUrl": "https://filemv.com/…"
}
Próbáld ki

Ehhez a híváshoz paraméter kell — futtasd a saját környezetedből a fenti mintával.

POST/api/public/share/{token}/unlocknyilvános

Jelszavas megosztás feloldása

Ellenőrzi a megosztás jelszavát, és rövid ideig érvényes feloldó tokent ad. Megosztásonként és IP-címenként 15 percenként 5 próbálkozás engedélyezett.

Paraméterek

NévHolTípusLeírás
token kötelezőpathstringA feloldandó megosztás tokenje

Kérés törzseapplication/json

  • passwordstring A megosztás jelszava
  • recTokenstring Opcionális címzett-token egy e-mailben kapott linkből

Válaszok

  • 200Helyes jelszó — a törzs tartalmazza a feloldó tokent és a teljes megosztást
  • 400A megosztás nincs jelszóval védve
  • 401Hibás jelszó (share_password_invalid)
  • 404A megosztási token nem található
  • 410A megosztás lejárt
  • 429Túl sok sikertelen próbálkozás — a Retry-After fejléc mutatja, mennyit kell várni

POST/api/public/share/{token}/unlock

const res = await fetch("https://filemv.com/api/public/share/Qm4t7Xz2Lp9Kd3Wf8Rb1Nc/unlock", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "password": "correct-horse-42"
  }),
});
const data = await res.json();
Válasz200application/json
{
  "share": {
    "adsEnabled": true,
    "archiveDownloadUrl": "https://filemv.com/…",
    "canonicalSlug": "string",
    "containingFolderShareToken": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
    "expiresAt": "2026-10-04T09:30:00Z",
    "files": [
      {
        "contentType": "string",
        "displayUrl": "https://filemv.com/…",
        "downloadUrl": "https://filemv.com/…",
        "exif": {
          "gpsPresent": true,
          "groups": null,
          "summary": [
            "1/500 s",
            "2026. 08. 12.",
            "35 mm",
            "6000×4000",
            "ISO 200",
            "Sony α7 IV",
            "ƒ/2.8"
          ]
        },
        "fileName": "vacation.jpg",
        "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
        "inlineUrl": "https://filemv.com/…",
        "paste": {
          "charCount": null,
          "language": null,
          "lineCount": null,
          "rawUrl": null,
          "revision": null,
          "updatedAt": null
        },
        "sizeBytes": 1048576
      }
    ],
    "folderName": "vacation.jpg",
  …
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

API-kulcsok

GET/api/me/api-keysAPI-kulcs vagy munkamenet

API-kulcsok listázása

A hívó API-kulcsait listázza a legújabbal kezdve, a visszavontakat is. A válasz csak a prefixet és a metaadatokat tartalmazza, a nyers kulcsot soha. A lastUsedAt legfeljebb percenként frissül.

Válaszok

  • 200A hívó kulcsai
  • 401Nincs hitelesítés (`authentication_required`)

GET/api/me/api-keys

const res = await fetch("https://filemv.com/api/me/api-keys", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
const data = await res.json();
Válasz200*/*

Nincs választörzs.

POST/api/me/api-keysAPI-kulcs vagy munkamenet

API-kulcs létrehozása

Új személyes API-kulcsot hoz létre. A nyers kulcs ( rawKey ) csak ebben a válaszban jelenik meg, utólag nem kérhető le, ezért azonnal mentsd el. A törzs és a label opcionális. Legfeljebb 10 aktív kulcs lehet.

Kérés törzseapplication/json

  • labelstring Opcionális címke (legfeljebb 80 karakter) a kulcsok megkülönböztetéséhez. Üresen nincs címke.

Válaszok

  • 201A kulcs létrejött — a `rawKey` csak ebben a válaszban látható
  • 400A `label` hosszabb 80 karakternél (`validation_failed`)
  • 401Nincs hitelesítés (`authentication_required`)
  • 409A felhasználónak már 10 aktív kulcsa van (`api_key_limit_reached`)

POST/api/me/api-keys

const res = await fetch("https://filemv.com/api/me/api-keys", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "label": "CI server"
  }),
});
const data = await res.json();
Válasz201*/*

Nincs választörzs.

Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

DELETE/api/me/api-keys/{id}API-kulcs vagy munkamenet

API-kulcs visszavonása

Visszavon egy kulcsot, a vele érkező kéréseket ezután elutasítja a szerver. Már visszavont kulcsnál nem történik semmi.

Paraméterek

NévHolTípusLeírás
id kötelezőpathstring

Válaszok

  • 204Visszavonva
  • 401Nincs hitelesítés (`authentication_required`)
  • 404A hívónak nincs ilyen kulcsa (`api_key_not_found`)

DELETE/api/me/api-keys/{id}

const res = await fetch("https://filemv.com/api/me/api-keys/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
console.log(res.status); // 204
Válasz204

Nincs választörzs.

Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

Webhookok

GET/api/users/me/webhooksAPI-kulcs vagy munkamenet

Webhookok listázása

A regisztrált webhookokat listázza. Az aláíró titok maszkolva jelenik meg.

Válaszok

  • 200A webhookok listája (üres is lehet)
  • 401Hiányzó vagy érvénytelen hitelesítés

GET/api/users/me/webhooks

const res = await fetch("https://filemv.com/api/users/me/webhooks", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
const data = await res.json();
Válasz200application/json
[
  {
    "consecutiveFailures": 1,
    "createdAt": "2026-10-04T09:30:00Z",
    "disabledReason": "string",
    "enabled": true,
    "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
    "signingSecretMasked": "string",
    "url": "https://filemv.com/…"
  }
]
POST/api/users/me/webhooksAPI-kulcs vagy munkamenet

Webhook regisztrálása

Új HTTPS végpontot regisztrál. Az aláíró titkot ( signingSecret ) csak ez a válasz tartalmazza. PRO_CREATOR előfizetés kell hozzá, felhasználónként legfeljebb 5 webhook lehet.

Kérés törzseapplication/json

  • urlstringkötelező A kézbesítési végpont HTTPS URL-je. Csak nyilvános címre mutathat.

Válaszok

  • 201A webhook regisztrálva — a válasz egyszer tartalmazza a teljes aláíró titkot
  • 400Érvénytelen kérés (üres vagy túl hosszú URL, vagy nem nyilvános címre mutat)
  • 401Hiányzó vagy érvénytelen hitelesítés
  • 409Elérted a felhasználónkénti webhook-limitet (webhook_limit_reached)
  • 429Túl sok webhook-módosítás — a Retry-After fejléc mutatja, mennyit kell várni

POST/api/users/me/webhooks

const res = await fetch("https://filemv.com/api/users/me/webhooks", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "url": "https://example.com/webhook"
  }),
});
const data = await res.json();
Válasz201application/json
{
  "createdAt": "2026-10-04T09:30:00Z",
  "enabled": true,
  "id": "1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
  "signingSecret": "4f9c2b7e1a6d3c8f0b5e2a9d7c4f1e8b3a6d9c2f5e8b1a4d7c0f3e6b9a2d5c8f",
  "url": "https://example.com/webhook"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

PATCH/api/users/me/webhooks/{id}API-kulcs vagy munkamenet

Webhook módosítása

Módosítja a webhook URL-jét, illetve be- vagy kikapcsolja. Az újbóli bekapcsoláshoz előfizetés kell.

Paraméterek

NévHolTípusLeírás
id kötelezőpathstring

Kérés törzseapplication/json

  • enabledboolean | null Új állapot. true = újra bekapcsolja, false = kikapcsolja, null = nem változik.
  • urlstring | null Új kézbesítési URL. Csak nyilvános címre mutathat. Null esetén az URL nem változik.

Válaszok

  • 200A módosított webhook (a titok maszkolva)
  • 400Érvénytelen kérés (túl hosszú URL, vagy nem nyilvános címre mutat)
  • 401Hiányzó vagy érvénytelen hitelesítés
  • 404A webhook nem található, vagy más felhasználóé

PATCH/api/users/me/webhooks/{id}

const res = await fetch("https://filemv.com/api/users/me/webhooks/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "url": "https://example.com/webhook"
  }),
});
const data = await res.json();
Válasz200application/json
{
  "consecutiveFailures": 1,
  "createdAt": "2026-10-04T09:30:00Z",
  "disabledReason": "string",
  "enabled": true,
  "id": "3f9c1e2a-7b4d-4c1e-9a2f-0d8e6b1c5a77",
  "signingSecretMasked": "string",
  "url": "https://filemv.com/…"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

DELETE/api/users/me/webhooks/{id}API-kulcs vagy munkamenet

Webhook törlése

Törli a webhookot és a kézbesítési előzményeit.

Paraméterek

NévHolTípusLeírás
id kötelezőpathstring

Válaszok

  • 204A webhook törölve
  • 401Hiányzó vagy érvénytelen hitelesítés
  • 404A webhook nem található, vagy más felhasználóé

DELETE/api/users/me/webhooks/{id}

const res = await fetch("https://filemv.com/api/users/me/webhooks/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
console.log(res.status); // 204
Válasz204

Nincs választörzs.

Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

POST/api/users/me/webhooks/{id}/rotate-secretAPI-kulcs vagy munkamenet

Aláíró titok cseréje

Új aláíró titkot generál. A régi titok azonnal érvénytelenné válik, nincs átmeneti időszak.

Paraméterek

NévHolTípusLeírás
id kötelezőpathstring

Válaszok

  • 200Az új aláíró titok (teljes, csak most látható)
  • 401Hiányzó vagy érvénytelen hitelesítés
  • 404A webhook nem található, vagy más felhasználóé
  • 429Túl sok webhook-módosítás — a Retry-After fejléc mutatja, mennyit kell várni

POST/api/users/me/webhooks/{id}/rotate-secret

const res = await fetch("https://filemv.com/api/users/me/webhooks/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/rotate-secret", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
const data = await res.json();
Válasz200application/json
{
  "createdAt": "2026-10-04T09:30:00Z",
  "enabled": true,
  "id": "1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
  "signingSecret": "4f9c2b7e1a6d3c8f0b5e2a9d7c4f1e8b3a6d9c2f5e8b1a4d7c0f3e6b9a2d5c8f",
  "url": "https://example.com/webhook"
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

POST/api/users/me/webhooks/{id}/testAPI-kulcs vagy munkamenet

Teszt-kézbesítés küldése

Egyszeri webhook.test eseményt küld a végpontra, és szinkron visszaadja az eredményt.

Paraméterek

NévHolTípusLeírás
id kötelezőpathstring

Válaszok

  • 200A tesztkézbesítés eredménye (lásd a delivered mezőt)
  • 401Hiányzó vagy érvénytelen hitelesítés
  • 404A webhook nem található, vagy más felhasználóé
  • 429Túl sok webhook-módosítás — a Retry-After fejléc mutatja, mennyit kell várni

POST/api/users/me/webhooks/{id}/test

const res = await fetch("https://filemv.com/api/users/me/webhooks/6f1e2d3c-4b5a-4987-8a6b-5c4d3e2f1a0b/test", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FILEMV_API_KEY}`,
  },
});
const data = await res.json();
Válasz200application/json
{
  "delivered": true,
  "error": "string",
  "statusCode": 1
}
Próbáld ki

Ez a végpont adatot módosít — futtasd a saját környezetedből a fenti mintával.

Webhookok — kézbesítés és aláírás

A POST /api/users/me/webhooks hívással regisztrálhatsz egy HTTPS végpontot. Az eseményeket aláírt JSON POST kérésekként kapod. A webhookok minden csomagban elérhetők. Felhasználónként legfeljebb 5 webhook lehet. Privát, loopback vagy belső hálózati címre mutató URL-re a válasz 400 webhook_url_blocked.

Az aláírás ellenőrzése

Minden kézbesítés tartalmazza az X-FileMV-Signature: t=<unix>,v1=<hex> fejlécet. v1 = HMAC-SHA256(kulcs, "<t>." + nyers törzs), kisbetűs hexában. A kulcs a regisztrációkor kapott 64 karakteres signingSecret szövegként, UTF-8 bájtokként. Ne dekódold hexából. A nyers törzzsel számolj, még a JSON-feldolgozás előtt. A t értéket 5 percnél régebbi kérésnél utasítsd el. A szerver minden kézbesítési kísérletnél friss t értéket küld.

import crypto from "node:crypto";

// rawBody: the request body exactly as received (Buffer), before JSON.parse
export function verifyFileMvSignature(rawBody, header, secret, toleranceSec = 300) {
  const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
  const t = Number(parts.t);
  if (!t || Math.abs(Date.now() / 1000 - t) > toleranceSec) return false;

  const expected = crypto
    .createHmac("sha256", Buffer.from(secret, "utf8"))
    .update(`${t}.`)
    .update(rawBody)
    .digest("hex");
  const a = Buffer.from(expected, "utf8");
  const b = Buffer.from(parts.v1 ?? "", "utf8");
  return a.length === b.length && crypto.timingSafeEqual(a, b);
}

Események

  • share.download — egy e-mailben értesített címzett letöltött
  • share.download.anonymous — névtelen letöltés egy megosztásból
  • collect.uploaded — valaki feltöltött a gyűjtőlinkedre
  • proofing.submitted — az ügyfél beküldte a válogatását
  • webhook.test — a tesztkézbesítés

Kézbesítés

Csak a 2xx válasz számít sikernek, átirányítást nem követünk. Időkorlát: 5 mp csatlakozás, 10 mp válasz. Hiba esetén legfeljebb 6 próbálkozás jön: azonnal, majd 1 perc, 5 perc, 30 perc, 2 óra és 6 óra múlva. Ha 10 kézbesítés egymás után minden próbálkozással elbukik, a webhook letiltódik (disabledReason: auto_disabled_failures), és erről e-mailt kapsz. Az ismétlődéseket az X-FileMV-Delivery fejléc alapján szűrd.

Példa törzs

{
  "id": "evt_5b0f2c1e-8d7a-4e3b-9c6f-1a2b3c4d5e6f",
  "type": "share.download",
  "created": 1791105000,
  "data": {
    "share_token": "Qm4t7Xz2Lp9Kd3Wf8Rb1Nc",
    "share_name": "Holiday 2025",
    "recipient_email_domain": "example.com",
    "occurred_at": "2026-10-04T09:30:00Z"
  }
}

Changelog

  • Jelszavak: legfeljebb 72 bájt

    A megosztási jelszó (POST /api/files/{fileId}/share, POST /api/folders/{folderId}/share, PATCH …/share/password, POST /api/files/share-multi) és a paste jelszava (POST /api/pastes) legfeljebb 72 bájt lehet UTF-8-ban (korábban 128 karakter). Ékezetes betűvel ez 36, emojival 18 karakter. A hosszabb jelszó 400 password_too_long választ kap — korábban egy része 500-as hibát adott.

  • Webhookok minden csomagban

    A /api/users/me/webhooks végpontok (létrehozás, bekapcsolás, tesztküldés, titkos kulcs cseréje) már az ingyenes csomagban is használhatók, és a kézbesítés sem függ a csomagtól: a 403 webhook_paid_required válasz megszűnt.

  • Egyedi link minden csomagban

    A PATCH /api/files/{fileId}/share/slug, a PATCH /api/folders/{folderId}/share/slug és a GET /api/share/slug-available végpont már az ingyenes csomagban is használható: a 403 vanity_slug_paid_required válasz megszűnt. A 403 ezeken a végpontokon mostantól csak azt jelenti, hogy a fájl vagy mappa nem a hívóé.

  • publicListing az egyfájlos anonim feltöltésnél is

    A POST /api/public/uploads kérés is elfogadja az opcionális publicListing mezőt, ugyanazzal a jelentéssel, mint a kötegelt végpont: true esetén a megosztás PUBLIC (listázott) lesz, és a keresőmotorok indexelhetik; hiányzó vagy false érték esetén SHARED marad.

  • Listázott megosztás feltöltéskor: publicListing

    Új, opcionális publicListing mező a POST /api/public/uploads/batch és (autoShare mellett) a POST /api/uploads kérésben. true esetén a megosztás PUBLIC (listázott) lesz, és a keresőmotorok indexelhetik; hiányzó vagy false érték esetén minden marad a régiben (SHARED). A GET /api/public/share/{token} válasz új indexable mezője jelzi, hogy a megosztás oldala indexelhető-e.

  • Megjelent a nyilvános API-referencia

    A feltöltés, fájlkezelés, megosztás, API-kulcs és webhook végpontok dokumentációja, JavaScript, PHP és C# példákkal. Minden /api válasz X-RateLimit-Limit, -Remaining és -Reset fejlécet kap.