Fájlok, projektek és tudás

Tölts fel fájlokat, rendezd projektekbe a munkát, hozz létre és ossz meg tudásbázisokat, és kezeld a csapatokat a REST API-n keresztül.

18 perc olvasás · Frissítve: 2026. szeptember 28.

Ezek azok az erőforrások, amelyekből a modell dolgozni tud. A fájlok olyan feltöltések, amelyeket egy üzenethez vagy futtatáshoz csatolsz. A projektek közös utasításokkal és alapértelmezett modellel fogják össze a chateket, a promptokat és a fájlokat. A tudásbázisok dokumentumokból álló mappafák: a rendszer indexeli őket, hogy a modell visszakereshesse a tartalmukat, és forrásként hivatkozhasson rájuk a válaszaiban. A csapatok a munkaterületeden belüli csoportok, amelyekkel projekteket, tudásbázisokat és beszélgetéseket oszthatsz meg.

Minden útvonal a https://api.stickyprompts.com/api/v1 címhez képest értendő. Minden kérés annak a felhasználónak a nevében fut, akié az API-kulcs, így minden tulajdonosi, megosztási és munkaterületi szerepkör-ellenőrzés rá vonatkozik.

Konvenciók

  • Az objektumok a snake_case mezők mellett nagybetűvel kezdődő alapmezőket is tartalmaznak: ID, CreatedAt, UpdatedAt és DeletedAt (élő rekordoknál null).
  • A lapozható végpontok a page (alapértelmezés: 1) és a size (alapértelmezés: 10) paramétert olvassák, a válaszban pedig beállítják az X-Total-Count, az X-Page és az X-Page-Size headert. Lásd: Hibák, lapozás és kvóták.
  • A hibák formája {"error": "message"}. A kvótahibák formája 429 {"error": "Quota exceeded", "reason": "<reason>"}.

Fájlok

A File objektum

Minden feltöltési végpont ugyanazt a File objektumot adja vissza.

{
  "ID": 4812,
  "CreatedAt": "2026-09-28T09:14:03.512Z",
  "UpdatedAt": "2026-09-28T09:14:03.512Z",
  "DeletedAt": null,
  "name": "northwind-q3-report.pdf",
  "path": "https://<storage-host>/<bucket>/231/k9Tq2vX8bLmN3pRs7wYz4cDf6gHj1kLm.pdf",
  "preview_path": "",
  "public_path": "",
  "user_id": 231,
  "workspace_id": 17,
  "project_id": null,
  "fileType": "file_search",
  "partial": false
}
MezőTípusJelentés
IDintegerA fájlazonosító, amelyet mellékletként adsz át a beszélgetésekben és a futtatásokban.
namestringAz eredeti fájlnév.
pathstringA tárolt objektum közvetlen URL-je: <storage URI>/<bucket>/<user id>/<32 random chars><extension>. Hogy hitelesítő adatok nélkül olvasható-e, az az API-n kívüli tárhelybeállításoktól függ.
preview_pathstringCsak .docx (PDF-előnézetté alakítva) és .jfif (.jpg-ként kiszolgálva) fájloknál van kitöltve. Egyébként üres.
public_pathstringNyilvános megosztási slug; üres, ha a fájl nincs megosztva. Lásd: POST /file/:id/public.
user_id, workspace_id, project_idinteger vagy nullA feltöltő, a feltöltés idején érvényes munkaterülete, valamint a projekt, ha projektbe töltötték fel a fájlt.
fileTypestringcamelCase kulcs. image, file_search, spreadsheet, code_interpreter vagy code_interpreter_output, a kiterjesztés alapján.
partialbooleanCsak addig true, amíg a generált tartalom írása tart. Feltöltéseknél mindig false.

Így alakul ki a fileType. A kiterjesztés egyeztetése megkülönbözteti a kis- és nagybetűket, ezért a REPORT.PDF a code_interpreter típusba esik.

  • image: .png .jpg .jpeg .gif .webp .bmp .tiff .tif .ico .heic .heif .jfif .avif .svg
  • file_search: .c .cc .cpp .h .hpp .cs .css .scss .less .doc .docx .go .html .java .js .jsx .ts .tsx .vue .json .md .pdf .php .pptx .py .rb .sh .bat .ps1 .tex .txt .xml .yaml .yml .toml .ini .log .rtf .odt .rst .sql .kt .swift .rs .r .m .lua .pl
  • spreadsheet: .xlsx .xlsm .xlam .xltm .xltx .xls .csv .tsv .ods .ots .numbers
  • code_interpreter: minden más

POST /file

POST /api/v1/file
Jogosultság files_manage

Egy vagy több fájlt tölt fel a személyes fájlkönyvtáradba. A feltöltés szinkron: mire a válasz megérkezik, minden fájl tárolva van, és van azonosítója. A feltöltésnek nincs MCP-s megfelelője.

Kérés törzse (multipart/form-data)
upload[] file hely: form kötelező
Fájlonként egy rész; több fájl feltöltéséhez ismételd meg a mezőt. A mező neve szó szerint upload[]: a más néven küldött részeket a szerver figyelmen kívül hagyja, a kérés pedig [] eredménnyel sikeres lesz.

Az API kódja itt nem ír elő sem fájlméret-korlátot, sem kiterjesztés-engedélyezőlistát; ha mégis korlátba ütközöl, az az API előtt álló infrastruktúrából ered.

curl -X POST https://api.stickyprompts.com/api/v1/file \
  -H "Authorization: Bearer $STICKY_API_KEY" \
  -F "upload[]=@northwind-q3-report.pdf" \
  -F "upload[]=@pricing.xlsx"
import os, requests

with open("northwind-q3-report.pdf", "rb") as a, open("pricing.xlsx", "rb") as b:
    r = requests.post(
        "https://api.stickyprompts.com/api/v1/file",
        headers={"Authorization": f"Bearer {os.environ['STICKY_API_KEY']}"},
        files=[("upload[]", a), ("upload[]", b)],
    )
r.raise_for_status()
for f in r.json():
    print(f["ID"], f["name"], f["fileType"])
import { readFile } from "node:fs/promises";

const form = new FormData();
form.append("upload[]", new Blob([await readFile("northwind-q3-report.pdf")]), "northwind-q3-report.pdf");
form.append("upload[]", new Blob([await readFile("pricing.xlsx")]), "pricing.xlsx");

const files = await fetch("https://api.stickyprompts.com/api/v1/file", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.STICKY_API_KEY}` },
  body: form,
}).then((r) => r.json());
console.log(files.map((f) => [f.ID, f.fileType]));

Válasz. 200, a File objektumok tömbjével, feltöltési sorrendben.

Hibák. 500 {"error": "could not upload files"}, ha a törzs nem érvényes multipart, vagy ha a tárolás meghiúsul.

Feltöltött fájl használata

  • Beszélgetésüzenetben vagy futtatásban: "attachments": [{"id": 4812, "type": "file"}]. Ha a fájlt csak az adott hívásra szeretnéd csatolni, add hozzá a "temp": true mezőt. Lásd: Beszélgetések és üzenetek.
  • Prompthoz: POST /prompt/:id/file, a {"file_ids": [4812]} törzzsel. Lásd: Promptok és futtatások.
  • Táblázatfeldolgozáshoz: add át file_id értékként a POST /xlsx/start-process végpontnak. Lásd: Modellek és média.

GET /file

GET /api/v1/file
Jogosultság files_get MCP-eszköz list_files

Listázza az összes általad feltöltött fájlt, a projektekbe és tudásbázisokba feltöltötteket, valamint a generált táblázatkimeneteket is beleértve. Nincs meghatározott rendezési sorrend.

Lekérdezési paraméterek
page integer hely: query opcionális alapérték 1
Oldalszám.
size integer hely: query opcionális alapérték 10
Elemek száma oldalanként.

Válasz. 200, a File objektumok tömbjével.

DELETE /file/:id

DELETE /api/v1/file/:id
Jogosultság files_delete

Töröl egy általad feltöltött fájlt: eltávolítja a tárhelyről (az esetleges előnézettel együtt), a rekordot pedig logikailag törli (soft delete).

Útvonal-paraméterek
id integer hely: path kötelező
Fájlazonosító.

Válasz. 204, törzs nélkül.

Hibák. 400 {"error": "Invalid file ID"}, 404 {"error": "File not found"}, 403 {"error": "You do not have permission to delete this file"} (nem te töltötted fel), 502 {"error": "Failed to delete file"}.

POST /file/:id/public

POST /api/v1/file/:id/public
Jogosultság files_manage

Nyilvános megosztási slugot hoz létre vagy cserél le egy általad feltöltött fájlhoz. Ismételt hívásra új slug készül, a régi pedig érvényét veszti. Aki ismeri a slugot, hitelesítés nélkül meghívhatja a GET /public/file/:slug végpontot; ez visszaadja a File objektumot a path mezővel együtt (visszavonás után pedig 404 {"error": "File not found"} a válasz). Az API a slugon túl nem határoz meg megosztási URL-formátumot.

Útvonal-paraméterek
id integer hely: path kötelező
Fájlazonosító.

Válasz. 200, a File objektummal, amelynek public_path mezője egy új, 32 karakteres slug, például "Qx7_mB2kLr9-TtZwP4nV8cHd3JfG6sYq".

Hibák. 400 Invalid file ID, 404 File not found, 403 {"error": "You do not have permission to share this file"}.

DELETE /file/:id/public

DELETE /api/v1/file/:id/public
Jogosultság files_delete

Visszavonja a nyilvános linket a public_path mező kiürítésével.

Útvonal-paraméterek
id integer hely: path kötelező
Fájlazonosító.

Válasz. 204. Hibák. 400 Invalid file ID, 404 File not found, 403 {"error": "You do not have permission to modify this file"}.

Projektek

A projekt beszélgetéseket, promptokat és fájlokat fog össze, és alapértelmezett utasításokat, valamint alapértelmezett modellt is tartalmaz: ez a Projektek API-oldali megfelelője. Minden :id helyén megadhatod a numerikus ID vagy a slug értéket. A projektbe feltöltött fájlokat a rendszer automatikusan csatolja a projektben indított beszélgetésekhez, mindig csak az adott hívásra (a beszélgetési végpontokon ehhez használd az X-Project-ID headert).

Hozzáférési modell

  • A tulajdonos mindent megtehet. Csak a tulajdonos törölheti a projektet, és csak ő módosíthatja a megosztását.
  • Mások a teljes munkaterülettel, egyes felhasználókkal vagy csapatokkal való megosztás révén kapnak hozzáférést; a ténylegesen érvényes jelzők (flag) a megosztásokból kapott jelzők uniója. A megosztás megtekintési hozzáférést ad (a projekt és a fájljai megtekintése, a projekt kitűzése). További jelzők: prompt_management (a projekt promptjainak kezelése), file_management (fájlok feltöltése és törlése) és project_management (a projekt szerkesztése PATCH kéréssel).

A Project objektum

{
  "ID": 305,
  "CreatedAt": "2026-09-01T12:00:00Z",
  "UpdatedAt": "2026-09-27T16:40:00Z",
  "DeletedAt": null,
  "slug": "k7Tq2vX",
  "name": "Northwind Launch",
  "description": "Everything for the Q4 launch",
  "instructions": "Answer in British English. Keep it short.",
  "color": "#3B82F6",
  "icon": "rocket",
  "ai_model_id": null,
  "auto_model_type": "best",
  "user_id": 231,
  "is_pinned": false,
  "has_files": true,
  "current_user_permission": { "prompt_management": false, "file_management": false, "project_management": false },
  "workspace_share": true,
  "workspace_share_flags": { "prompt_management": true, "file_management": false, "project_management": false },
  "user_shares": [
    { "user_id": 240, "user": { "ID": 240, "first_name": "Dora", "...": "..." },
      "flags": { "prompt_management": true, "file_management": true, "project_management": false } }
  ],
  "team_shares": [
    { "team_id": 12, "team": { "ID": 12, "name": "Marketing", "...": "..." },
      "flags": { "prompt_management": false, "file_management": true, "project_management": false } }
  ]
}
  • Az icon értéke üres, vagy a következők egyike: folder rocket hat-glasses box flask-conical book-open briefcase circle-dollar-sign puzzle cpu plane cross database paw-print headset. A color hexadecimális színkód, amelyet a szerver nem validál.
  • Általában pontosan az egyik van kitöltve: vagy az ai_model_id (rögzített modell), vagy az auto_model_type (best, balanced, cheapest).
  • Az ai_model, a pin, a files, a conversations, a prompts és a has_files mező hiányzik, ha nincs betöltve.
  • A current_user_permission csak a megosztásokon keresztül kapott jelzőket tükrözi; a tulajdonosnak teljes jogai vannak, mégis általában csupa false értéket lát.
  • A has_files, a current_user_permission, a user_shares és a team_shares mezőt csak a GET /project/:id tölti ki. Máshol a has_files hiányzik, a jogosultsági jelzők mind false értékűek, a megosztási listák pedig null értékűek.

POST /project

POST /api/v1/project
Jogosultság projects_manage MCP-eszköz create_project

Létrehoz egy projektet. Az alapértelmezett modell a preferenciáidból származik (a preferált modell vagy az automatikus mód), ennek hiányában a platform alapértelmezése érvényes. Az instructions mezőt itt nem lehet beállítani; erre a PATCH kérés való.

Kérés törzse
name string kötelező
A projekt neve.
description string opcionális
Szabad szöveg.
color string opcionális
Hexadecimális színkód.
icon string opcionális
A fenti ikonnevek egyike.
curl -X POST https://api.stickyprompts.com/api/v1/project \
  -H "Authorization: Bearer $STICKY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Northwind Launch", "description": "Everything for the Q4 launch", "icon": "rocket" }'

Válasz. 201, a Project objektummal.

Hibák. 400 ("Project name is required", kérésfeldolgozási (binding) hiba vagy "Invalid project icon"), 500 {"error": "Failed to create project"}.

GET /project

GET /api/v1/project
Jogosultság projects_get MCP-eszköz list_projects

Listázza a saját projektjeidet és a veled megosztottakat, a legújabbal kezdve.

Lekérdezési paraméterek
page integer hely: query opcionális alapérték 1
Oldalszám.
size integer hely: query opcionális alapérték 10
Elemek száma oldalanként.
search string hely: query opcionális
A névben vagy a leírásban keres, a kis- és nagybetűket nem megkülönböztetve.
is_shared boolean hely: query opcionális
true: csak a veled megosztott projektek. false: csak a saját projektjeid. Ha elhagyod, mindkettő.

Válasz. 200, a Project objektumok tömbjével.

A hozzáférés szerinti szűrés a lapozás után történik, ezért egy oldalon a size értékénél kevesebb elem is lehet, az X-Total-Count pedig nagyobb lehet annál, amit látsz. Ebben a listában az is_pinned mindig false; a kitűzött projektekhez a GET /project/pinned végpontot használd. Hibák. 400 {"error": "Invalid is_shared parameter"}.

GET /project/pinned

GET /api/v1/project/pinned
Jogosultság projects_get

A kitűzött projektjeid, a legrégebbi kitűzéssel kezdve, is_pinned: true értékkel és kitöltött pin mezővel. Nincs lapozás.

GET /project/:id

GET /api/v1/project/:id
Jogosultság projects_get MCP-eszköz get_project

Visszaadja a teljes Project objektumot.

Útvonal-paraméterek
id string hely: path kötelező
Projektazonosító vagy slug.
Lekérdezési paraméterek
include_files string hely: query opcionális
true esetén a projekt fájljai is szerepelnek a files mezőben (File objektumokként).

Hibák. 404 {"error": "Project not found"}, 403 {"error": "You don't have access to this project"}.

PATCH /project/:id

PATCH /api/v1/project/:id
Jogosultság projects_manage

Frissít egy projektet. Ehhez tulajdonosnak kell lenned, vagy rendelkezned kell a project_management jelzővel. Minden mező opcionális, de legalább egyet küldj el.

Útvonal-paraméterek
id string hely: path kötelező
Projektazonosító vagy slug.
Kérés törzse
name string opcionális
Nem lehet üres.
description string opcionális
Szabad szöveg.
color string opcionális
Hexadecimális színkód.
icon string opcionális
Ikonnév, vagy "" a törléshez.
instructions string opcionális
Projektszintű utasítások a modellnek. A munkaterületed érzékeny adatokra vonatkozó szabályai érvényesek: az egyező tartalmat a rendszer kitakarja, vagy elutasítja a kérést.
ai_model_id integer opcionális
Rögzített modellt állít be, és törli az auto_model_type értékét.
auto_model_type string opcionális
best, balanced vagy cheapest. Törli az ai_model_id értékét.

Válasz. 200, a Project objektummal.

Hibák. 400 a következő esetekben: Project name cannot be empty, only one of ai_model_id or auto_model_type may be set, invalid auto_model_type, Invalid project icon, No fields provided for update, vagy ha az érzékeny adatokra vonatkozó szabály blokkolja a kérést ({"error": "...", "code": "..."}); 404 Project not found; 403 You don't have access to this project.

DELETE /project/:id

DELETE /api/v1/project/:id
Jogosultság projects_delete MCP-eszköz delete_project

Törli a projektet a beszélgetéseivel, projektfájljaival, kitűzéseivel, promptjaival és megosztási rekordjaival együtt. Csak a tulajdonos teheti meg.

Útvonal-paraméterek
id string hely: path kötelező
Projektazonosító vagy slug.

Válasz. 204. Hibák. 404 Project not found, 403 You don't have access to this project.

POST /project/:id/pin

POST /api/v1/project/:id/pin
Jogosultság projects_manage

Kitűzi a projektet, vagy ha már ki van tűzve, megszünteti a kitűzést. Csak olyan projekten működik, amelyet megtekinthetsz. Felhasználónként legfeljebb 5 projekt lehet kitűzve.

Útvonal-paraméterek
id string hely: path kötelező
Projektazonosító vagy slug.

Válasz. 200 {"message": "Project pinned", "pinned": true} vagy 200 {"message": "Project unpinned", "pinned": false}.

Hibák. 400 {"error": "Maximum 5 projects can be pinned"}, 404, 403.

PATCH /project/:id/share_with_workspace

PATCH /api/v1/project/:id/share_with_workspace
Jogosultság projects_manage

Megosztja a projektet a teljes munkaterületeddel, vagy megszünteti ezt a megosztást. Csak a tulajdonos teheti meg, és munkaterülethez kell tartoznod. A kihagyott jelzők megtartják a jelenlegi értéküket.

Útvonal-paraméterek
id string hely: path kötelező
Projektazonosító vagy slug.
Kérés törzse
share boolean opcionális
true esetén megosztja a munkaterülettel, false esetén megszünteti a megosztást. Ha elhagyod, semmi sem változik.
prompt_management boolean opcionális
Csak a share: true értékkel együtt érvényesül.
file_management boolean opcionális
Csak a share: true értékkel együtt érvényesül.
project_management boolean opcionális
Csak a share: true értékkel együtt érvényesül.

Válasz. 200 {"message": "Project shared with workspace"}, a megosztás megszüntetésekor is.

Hibák. 403 {"error": "You don't have access to this project's share settings"}, 400 {"error": "User is not in a workspace"}, 404.

PATCH /project/:id/share_with_user

PATCH /api/v1/project/:id/share_with_user
Jogosultság projects_manage

Megosztja a projektet a munkaterületed egyes felhasználóival. Csak a tulajdonos teheti meg.

Útvonal-paraméterek
id string hely: path kötelező
Projektazonosító vagy slug.
Kérés törzse
shares array kötelező
Elemek: { "user_id", "share", "prompt_management", "file_management", "project_management" }. A share: true megtekintési hozzáférést ad; a share: false teljesen megszünteti a felhasználó megosztását; ha a share hiányzik, csak a megadott jelzők módosulnak.
{
  "shares": [
    { "user_id": 240, "share": true, "prompt_management": true, "file_management": true },
    { "user_id": 251, "share": false }
  ]
}

A szerver az elemeket sorban alkalmazza, és az első hibás elemnél leáll; a korábbi elemek módosításai érvényben maradnak.

Válasz. 200 {"message": "Project sharing with users updated"}.

Hibák. 404 {"error": "User not found"}, 400 {"error": "Target user is not in the same workspace"}, valamint a fenti tulajdonosi és munkaterületi hibák.

PATCH /project/:id/share_with_team

PATCH /api/v1/project/:id/share_with_team
Jogosultság projects_manage

Ugyanúgy működik, mint a share_with_user, de az elemekben team_id szerepel. A csapatnak a munkaterületedhez kell tartoznia.

Útvonal-paraméterek
id string hely: path kötelező
Projektazonosító vagy slug.
Kérés törzse
shares array kötelező
Elemek: { "team_id", "share", "prompt_management", "file_management", "project_management" }.

Válasz. 200 {"message": "Project sharing with teams updated"}.

Hibák. 404 {"error": "Team not found"}, 400 {"error": "Target team is not in the same workspace"}.

POST /project/:id/file

POST /api/v1/project/:id/file
Jogosultság projects_manage

Fájlokat tölt fel egy projektbe. Ehhez tulajdonosnak kell lenned, vagy rendelkezned kell a file_management jelzővel. Ugyanúgy működik, mint a POST /file: szinkron, multipart/form-data, és az API kódja nem ír elő méretkorlátot vagy kiterjesztés-engedélyezőlistát. Minden létrejövő File objektumban ki van töltve a project_id.

Útvonal-paraméterek
id string hely: path kötelező
Projektazonosító vagy slug.
Kérés törzse (multipart/form-data)
upload[] file hely: form kötelező
Fájlonként egy rész; több fájlhoz ismételd meg a mezőt.

Válasz. 200, a File objektumok tömbjével.

Hibák. 404 Project not found, 403 {"error": "You don't have access to this project"}, 500 {"error": "could not upload files"}.

GET /project/:id/file

GET /api/v1/project/:id/file
Jogosultság projects_get

Listázza egy projekt fájljait. Mindegyik egy File objektum, kiegészítve a can_delete mezővel (értéke igaz, ha kezelheted a projekt fájljait, vagy te töltötted fel a fájlt). Ha nincs előnézet, a preview_path a path értékét veszi fel.

Útvonal-paraméterek
id string hely: path kötelező
Projektazonosító vagy slug.
[
  {
    "ID": 4820,
    "name": "brand-guidelines.pdf",
    "path": "https://<storage-host>/<bucket>/231/Hq3...pdf",
    "preview_path": "https://<storage-host>/<bucket>/231/Hq3...pdf",
    "project_id": 305,
    "fileType": "file_search",
    "partial": false,
    "can_delete": true
  }
]

DELETE /project/:id/file/:fileId

DELETE /api/v1/project/:id/file/:fileId
Jogosultság projects_manage

Eltávolít egy fájlrekordot a projektből. Ehhez megtekintési hozzáférés kell, továbbá vagy a file_management jelző (illetve a projekt tulajdonjoga), vagy az, hogy te töltötted fel a fájlt.

Útvonal-paraméterek
id string hely: path kötelező
Projektazonosító vagy slug.
fileId integer hely: path kötelező
Fájlazonosító.

Válasz. 200 {"message": "File deleted successfully"}.

Hibák. 400 Invalid file ID, 404 Project not found, 404 {"error": "File not found in project"}, 403 {"error": "You don't have access to delete this file"}.

Tudásbázisok

A tudásbázis dokumentumokból álló mappafa; a dokumentumokat a rendszer részekre bontja és indexeli, hogy visszakereshetők legyenek. Ez a Tudásbázisok API-oldali megfelelője. Beszélgetésben vagy futtatásban a knowledge_base_ids megadásával használhatod, igény szerint a knowledge_base_limit_node_ids mezővel (ha a visszakeresést adott mappákra vagy fájlokra szűkítenéd) és a world_knowledge mezővel együtt. A tudásbázis-azonosítók kizárólag numerikusak (slug nincs).

Hozzáférési szintek (current_user_permission és a megosztások access_type mezője):

ÉrtékMit tehet
kb_accessOlvashatja a tudásbázist, és használhatja a chatekben.
kb_uploadAz előző, valamint fájlokat tölthet fel.
kb_editAz előzőek, valamint átnevezheti a tudásbázist, kezelheti a mappákat, és bármelyik fájlt törölheti.
noneNincs hozzáférése.

A tulajdonos mindig kb_edit szinttel rendelkezik. Csak a tulajdonos törölheti a tudásbázist, és csak ő módosíthatja a megosztását. A feltöltők a saját fájljaikat mindig törölhetik.

A tudásbázis-objektum

{
  "ID": 44,
  "CreatedAt": "2026-09-10T08:30:00Z",
  "UpdatedAt": "2026-09-10T08:30:00Z",
  "DeletedAt": null,
  "user_id": 231,
  "user": { "ID": 0, "email": "", "first_name": "", "...": "zero values" },
  "name": "Northwind Help Center",
  "description": "Policies, onboarding and FAQs",
  "color": "#10B981",
  "icon": "book-open",
  "document_count": 18,
  "member_count": 6,
  "current_user_permission": "kb_edit",
  "user_shares": [
    { "user_id": 240, "user": { "ID": 240, "first_name": "Dora", "...": "..." }, "access_type": "kb_upload", "added_at": "2026-09-11T09:00:00Z" }
  ],
  "team_shares": [
    { "team_id": 12, "team": { "ID": 12, "name": "Customer Support", "...": "..." }, "access_type": "kb_access", "added_at": "2026-09-11T09:05:00Z" }
  ]
}

A tulajdonost leíró user objektumot a szerver sosem tölti be, ezért minden mezője üres alapérték (zero value); helyette a user_id mezőt használd. A document_count a fájlokat számolja, a mappákat nem. A member_count mezőt csak az egyetlen tudásbázisra vonatkozó GET és PUT kérés adja vissza.

POST /knowledge-bases

POST /api/v1/knowledge-bases

Létrehoz egy tudásbázist.

Kérés törzse
name string kötelező
A tudásbázis neve.
icon string kötelező
A Projektek résznél felsorolt ikonnevek egyike.
description string opcionális
Szabad szöveg.
color string opcionális
Hexadecimális színkód (a szerver nem validálja).

Válasz. 201, a tudásbázissal, document_count: 0 és member_count: 0 értékkel, valamint üres megosztási listákkal.

Hibák. 400 {"error": "Knowledge base name is required"}, 400 {"error": "Invalid knowledge base icon"}.

GET /knowledge-bases

GET /api/v1/knowledge-bases

Listázza az összes tudásbázist, amely a tiéd, vagy amelyhez megosztás révén hozzáférsz. Nincs lapozás. Minden elem tartalmazza a tudásbázis mezőit, valamint a document_count és a current_user_permission mezőt (a member_count mezőt és a megosztási listákat nem).

GET /knowledge-bases/:id

GET /api/v1/knowledge-bases/:id

Visszaadja a teljes tudásbázist. Legalább kb_access szint kell hozzá.

Útvonal-paraméterek
id integer hely: path kötelező
Tudásbázis-azonosító.

Hibák. 400 Invalid knowledge base ID, 404 Knowledge base not found, 403 {"error": "You don't have access to this knowledge base"}.

PUT /knowledge-bases/:id

PUT /api/v1/knowledge-bases/:id

Lecseréli a name, a description, a color és az icon értékét, ugyanolyan törzzsel és validálással, mint a POST. Ha a description hiányzik, törlődik. A kb_edit szint kell hozzá.

Útvonal-paraméterek
id integer hely: path kötelező
Tudásbázis-azonosító.
Kérés törzse
name string kötelező
A tudásbázis neve.
icon string kötelező
Ikonnév.
description string opcionális
Ha elhagyod, törlődik.
color string opcionális
Hexadecimális színkód.

Válasz. 200, a teljes tudásbázissal.

Hibák. Ugyanazok, mint a POST esetében, valamint 403 {"error": "You are not authorized to update this knowledge base"} és 404.

DELETE /knowledge-bases/:id

DELETE /api/v1/knowledge-bases/:id

Törli a tudásbázist az összes mappájával, fájljával, tárolt objektumával és indexadatával együtt. Csak a tulajdonos teheti meg.

Útvonal-paraméterek
id integer hely: path kötelező
Tudásbázis-azonosító.

Válasz. 204. Hibák. 404 Knowledge base not found, 403 {"error": "You are not authorized to delete this knowledge base"}.

PATCH /knowledge-bases/:id/share_with_user

PATCH /api/v1/knowledge-bases/:id/share_with_user

Megoszt egy tudásbázist a munkaterületed felhasználóival. Csak a tulajdonos teheti meg, és munkaterülethez kell tartoznod. Egy megosztás megszüntetésekor a rendszer újraellenőrzi azokat az ügynököket, amelyek ezt a tudásbázist használják.

Útvonal-paraméterek
id integer hely: path kötelező
Tudásbázis-azonosító.
Kérés törzse
shares array kötelező
Elemek: { "user_id", "access_type" }. Az access_type értéke kb_access, kb_upload vagy kb_edit, ha szintet állítasz be (ez felülírja az előző szintet), illetve null, "" vagy none, ha megszünteted a megosztást.
{
  "shares": [
    { "user_id": 240, "access_type": "kb_upload" },
    { "user_id": 251, "access_type": null }
  ]
}

A szerver az elemeket sorban alkalmazza, és az első hibás elemnél leáll a feldolgozás.

Válasz. 200 {"message": "Knowledge base sharing with users updated"}.

Hibák. 400 {"error": "User is not in a workspace"}, 403 {"error": "You don't have access to this knowledge base's share settings"}, 404 User not found, 400 Target user is not in the same workspace, 400 {"error": "Invalid access_type"}.

PATCH /knowledge-bases/:id/share_with_team

PATCH /api/v1/knowledge-bases/:id/share_with_team

Ugyanúgy működik, mint a share_with_user, csak user_id helyett team_id szerepel.

Útvonal-paraméterek
id integer hely: path kötelező
Tudásbázis-azonosító.
Kérés törzse
shares array kötelező
Elemek: { "team_id", "access_type" }.

Válasz. 200 {"message": "Knowledge base sharing with teams updated"}.

GET /knowledge-bases/:id/folders

GET /api/v1/knowledge-bases/:id/folders

Listázza a fa egy szintjének közvetlen gyermekelemeit, vagyis a mappákat és a fájlokat. Egy fájl indexelési állapotát is ezen a végponton kérdezheted le.

Útvonal-paraméterek
id integer hely: path kötelező
Tudásbázis-azonosító.
Lekérdezési paraméterek
parent_id integer hely: query opcionális
A listázandó mappa csomópont-azonosítója. A gyökérhez hagyd el (vagy adj meg nem numerikus értéket).
{
  "folders": [
    { "ID": 501, "name": "Policies", "parent_id": null, "size": 2483112,
      "CreatedAt": "2026-09-10T08:31:00Z", "UpdatedAt": "2026-09-10T08:31:00Z" }
  ],
  "files": [
    {
      "ID": 502,
      "name": "Northwind Refund Policy.md",
      "parent_id": null,
      "file_data_id": 4830,
      "file_data": { "ID": 4830, "name": "Northwind Refund Policy.md", "fileType": "file_search", "...": "..." },
      "size": 912334,
      "download_url": "https://<storage-host>/<bucket>/231/Zp8...md",
      "preview_url": "https://<storage-host>/<bucket>/231/Zp8...md",
      "status": "done",
      "status_progress": 100,
      "can_delete": true,
      "CreatedAt": "2026-09-10T08:32:00Z",
      "UpdatedAt": "2026-09-10T08:33:10Z"
    }
  ]
}

POST /knowledge-bases/:id/folders

POST /api/v1/knowledge-bases/:id/folders

Létrehoz egy mappát. A kb_edit szint kell hozzá. A neveknek egyedinek kell lenniük a testvérelemek között; a mappák és a fájlok közös névtéren osztoznak.

Útvonal-paraméterek
id integer hely: path kötelező
Tudásbázis-azonosító.
Kérés törzse
name string kötelező
A mappa neve.
parent_id integer opcionális
Egy mappa ugyanebben a tudásbázisban. A gyökérhez hagyd el, vagy adj meg null értéket.

Válasz. 201. A jelenlegi megvalósítás üres alapértékekkel adja vissza a mappát ("ID": 0, üres name), pedig a mappa létrejött: az új mappa azonosítójához listázd újra a tartalmat a GET /knowledge-bases/:id/folders végponttal.

Hibák. 403 {"error": "You don't have access to create folders in this knowledge base"}, 400 {"error": "Folder name is required"}, 404 {"error": "Parent folder not found"}, 400 {"error": "Folder or document with this name already exists"}.

GET /knowledge-bases/:id/folders/:folderId

GET /api/v1/knowledge-bases/:id/folders/:folderId

Egyetlen mappát ad vissza: ID, name, parent_id, size, CreatedAt, UpdatedAt. A kb_access szint kell hozzá.

Útvonal-paraméterek
id integer hely: path kötelező
Tudásbázis-azonosító.
folderId integer hely: path kötelező
A mappa csomópont-azonosítója.

Hibák. 404 {"error": "Folder not found"}, 403.

PATCH /knowledge-bases/:id/folders/:folderId

PATCH /api/v1/knowledge-bases/:id/folders/:folderId

Átnevez egy mappát. A mappák nem helyezhetők át. A kb_edit szint kell hozzá.

Útvonal-paraméterek
id integer hely: path kötelező
Tudásbázis-azonosító.
folderId integer hely: path kötelező
A mappa csomópont-azonosítója.
Kérés törzse
name string kötelező
Az új név. Üres név esetén a válasz 400 {"error": "No fields provided for update"}.

Válasz. 200, a frissített mappával. Hibák. 400 {"error": "Folder or document with this name already exists"}.

DELETE /knowledge-bases/:id/folders/:folderId

DELETE /api/v1/knowledge-bases/:id/folders/:folderId

Törli a mappát és mindent, ami alatta van, a tárolt fájlokat és az indexadatokat is. A kb_edit szint kell hozzá.

Útvonal-paraméterek
id integer hely: path kötelező
Tudásbázis-azonosító.
folderId integer hely: path kötelező
A mappa csomópont-azonosítója.

Válasz. 204.

POST /knowledge-bases/:id/files

POST /api/v1/knowledge-bases/:id/files

Kérésenként egy dokumentumot tölt fel. Legalább kb_upload szint kell hozzá; a szerver először a kvótát ellenőrzi. A fájlnévnek egyedinek kell lennie a célmappán belül. Az API kódja nem ír elő fájlméret-korlátot.

Útvonal-paraméterek
id integer hely: path kötelező
Tudásbázis-azonosító.
Kérés törzse (multipart/form-data)
file file hely: form kötelező
A dokumentum. A mező neve file, nem upload[]. Engedélyezett kiterjesztések (a kis- és nagybetű nem számít): .txt .md .markdown .pdf .docx .xlsx .csv .png .jpg .jpeg.
folder_id string hely: form opcionális
A célmappa csomópont-azonosítója. A gyökérhez hagyd el.
curl -X POST https://api.stickyprompts.com/api/v1/knowledge-bases/44/files \
  -H "Authorization: Bearer $STICKY_API_KEY" \
  -F "file=@Northwind Refund Policy.md" \
  -F "folder_id=501"
import os, time, requests

BASE = "https://api.stickyprompts.com/api/v1"
H = {"Authorization": f"Bearer {os.environ['STICKY_API_KEY']}"}

with open("Northwind Refund Policy.md", "rb") as f:
    node = requests.post(f"{BASE}/knowledge-bases/44/files", headers=H,
                         files={"file": f}, data={"folder_id": "501"}).json()

# Wait until the document is indexed before relying on it
while True:
    listing = requests.get(f"{BASE}/knowledge-bases/44/folders", headers=H,
                           params={"parent_id": 501}).json()
    status = next(x["status"] for x in listing["files"] if x["ID"] == node["ID"])
    if status in ("done", "error"):
        print(status)
        break
    time.sleep(3)
import { readFile } from "node:fs/promises";

const BASE = "https://api.stickyprompts.com/api/v1";
const headers = { Authorization: `Bearer ${process.env.STICKY_API_KEY}` };

const form = new FormData();
form.append("file", new Blob([await readFile("Northwind Refund Policy.md")]), "Northwind Refund Policy.md");
form.append("folder_id", "501");
const node = await fetch(`${BASE}/knowledge-bases/44/files`, { method: "POST", headers, body: form }).then((r) => r.json());

for (;;) {
  const { files } = await fetch(`${BASE}/knowledge-bases/44/folders?parent_id=501`, { headers }).then((r) => r.json());
  const { status } = files.find((x) => x.ID === node.ID);
  if (status === "done" || status === "error") { console.log(status); break; }
  await new Promise((r) => setTimeout(r, 3000));
}

Válasz. 201, egy fájlcsomóponttal (ugyanolyan szerkezetű, mint a fenti files elemek), status: "uploading" és status_progress: 0 értékkel. A feltöltés, a szövegkinyerés és az indexelés ezután a háttérben fut:

statusstatus_progress
uploadingFeltöltési százalék
processing0
indexingIndexelési százalék
done100
errorA feldolgozás meghiúsult

Mielőtt a visszakeresésben a fájlra támaszkodnál, kérdezd le ismételten a GET /knowledge-bases/:id/folders?parent_id=<folder_id> végpontot, amíg a fájl done állapotba nem kerül.

Hibák. 403 {"error": "You don't have access to upload files to this knowledge base"}, 429 (elfogyott a kvóta), 400 {"error": "File is required"}, 400 {"error": "Invalid folder ID"}, 404 {"error": "Parent folder not found"}, 400 {"error": "File extension not allowed. Allowed extensions: .txt, .md, ..."}, 400 {"error": "Folder or document with this name already exists"}.

DELETE /knowledge-bases/:id/files/:fileId

DELETE /api/v1/knowledge-bases/:id/files/:fileId

Töröl egy dokumentumcsomópontot a tárolt fájljával és az indexadataival együtt. A kb_edit szint kell hozzá, vagy az, hogy te töltötted fel a fájlt.

Útvonal-paraméterek
id integer hely: path kötelező
Tudásbázis-azonosító.
fileId integer hely: path kötelező
A mappalistából származó csomópont-azonosító, nem a File objektum azonosítója.

Válasz. 204. Hibák. 404 {"error": "File not found"}, 403 {"error": "You don't have access to delete this file"}.

Csapatok

A csapatok egy munkaterületen belül léteznek, és projekteket, tudásbázisokat és beszélgetéseket lehet megosztani velük. A csapatszerepkörök: owner és member; a munkaterület egészére kiterjedő listákban a none azt jelenti, hogy nem vagy tagja a csapatnak. Az adminisztrátori nézetet a Felhasználók és csapatok oldal mutatja be.

MűveletKi teheti meg?
Csapat létrehozásaA munkaterület tulajdonosa vagy adminja
A munkaterület összes csapatának listázásaA munkaterület tulajdonosa vagy adminja
Egy csapat tagjainak megtekintéseA csapat tagjai, a munkaterület tulajdonosa vagy adminja
Csapat átnevezése vagy törlése, tagok hozzáadása vagy eltávolításaA csapat tulajdonosa, a munkaterület tulajdonosa vagy adminja
Tag szerepkörének módosítása, tag hozzáadása owner szerepkörrel, tulajdonos eltávolításaA munkaterület tulajdonosa vagy adminja

A Team objektum

{
  "ID": 12,
  "CreatedAt": "2026-09-05T10:00:00Z",
  "UpdatedAt": "2026-09-05T10:00:00Z",
  "DeletedAt": null,
  "workspace_id": 17,
  "workspace": { "ID": 0, "name": "", "...": "zero values" },
  "name": "Marketing",
  "description": "Campaigns and content",
  "color": "#F472B6",
  "member_count": 0
}

A workspace mezőt a szerver sosem tölti be, ezért mindig üres alapértékű objektum. A member_count csak a listázó végpontokban kap értelmes értéket.

A csapattag egy User objektum (ID, email, first_name, last_name, status, workspace_id és további mezők), amelyet a legfelső szinten a tag role mezője egészít ki.

POST /teams

POST /api/v1/teams
Jogosultság teams_manage

Létrehoz egy csapatot, és téged ad hozzá owner szerepkörrel. Csak a munkaterület tulajdonosa vagy adminja teheti meg.

Kérés törzse
name string kötelező
A csapat neve.
description string opcionális
Szabad szöveg.
color string opcionális
Hexadecimális színkód (a szerver nem validálja).

Válasz. 201, a Team objektummal.

Hibák. 403 {"error": "You are not authorized to create a team"}, 400 {"error": "Team name is required"}.

GET /teams

GET /api/v1/teams
Jogosultság teams_get MCP-eszköz list_teams

Azok a csapatok, amelyeknek tagja vagy, mindegyik a member_count és a current_user_role mezővel. Nincs lapozás. Ha egy csapatnak sem vagy tagja, null értéket ad vissza, nem [] értéket.

GET /teams/all

GET /api/v1/teams/all
Jogosultság teams_get

A munkaterületed összes csapata, a member_count és a current_user_role mezővel (ez utóbbi none, ha nem vagy tag). Csak a munkaterület tulajdonosa vagy adminja kérheti le. Ha a munkaterületen nincs csapat, null értéket ad vissza.

Hibák. 404 {"error": "User is not a member of a workspace"}, 403 {"error": "You are not authorized to view all teams in this workspace"}.

GET /teams/:id/members

GET /api/v1/teams/:id/members
Jogosultság teams_get MCP-eszköz list_team_members

Listázza egy csapat tagjait. Csak a csapat tagjai, illetve a munkaterület tulajdonosai vagy adminjai kérhetik le.

Útvonal-paraméterek
id integer hely: path kötelező
Csapatazonosító.

Válasz. 200, a csapattagok tömbjével.

Hibák. 400 Invalid team ID, 404 {"error": "Team not found"}, 403 {"error": "You are not authorized to view the members of this team"}.

PUT /teams/:id

PUT /api/v1/teams/:id
Jogosultság teams_manage

Lecseréli egy csapat name, description és color értékét; a kihagyott description és color törlődik. A csapat tulajdonosa, illetve a munkaterület tulajdonosa vagy adminja teheti meg.

Útvonal-paraméterek
id integer hely: path kötelező
Csapatazonosító.
Kérés törzse
name string kötelező
A csapat neve.
description string opcionális
Ha elhagyod, törlődik.
color string opcionális
Ha elhagyod, törlődik.

Válasz. 200, a frissített Team objektummal.

Hibák. 403 {"error": "You are not authorized to update this team"}, 400 Team name is required, 404 Team not found.

DELETE /teams/:id

DELETE /api/v1/teams/:id
Jogosultság teams_delete

Töröl egy legfeljebb egytagú csapatot. A csapat tulajdonosa, illetve a munkaterület tulajdonosa vagy adminja teheti meg.

Útvonal-paraméterek
id integer hely: path kötelező
Csapatazonosító.

Válasz. 204. Hibák. 409 {"error": "Cannot delete a team with other members"}, 403 {"error": "You are not authorized to delete this team"}.

POST /teams/:id/members

POST /api/v1/teams/:id/members
Jogosultság teams_manage

Hozzáadja a munkaterület egyik tagját egy csapathoz. A csapat tulajdonosa, illetve a munkaterület tulajdonosa vagy adminja teheti meg; ha valakit owner szerepkörrel adsz hozzá, ahhoz a munkaterület tulajdonosának vagy adminjának kell lenned.

Útvonal-paraméterek
id integer hely: path kötelező
Csapatazonosító.
Kérés törzse
user_id integer kötelező
Egy felhasználó a munkaterületedről.
role string kötelező
Mindig member vagy owner értéket küldj; a szerver a tulajdonosi ellenőrzésen túl nem validálja az értéket.

Válasz. 201. A törzs jelenleg csak a role mezőt tartalmazza, a felhasználói mezők mind üres alapértékűek: a tag adatainak lekéréséhez hívd meg a GET /teams/:id/members végpontot.

Hibák. 403 {"error": "You are not authorized to add a team member"}, 403 (ha munkaterületi adminjogok nélkül próbálsz tulajdonost hozzáadni), 409 {"error": "User is already a member of this team"}, 404 {"error": "User not found"}, 403 {"error": "User is not a member of this workspace"}.

PATCH /teams/:id/members/:memberUserId

PATCH /api/v1/teams/:id/members/:memberUserId
Jogosultság teams_manage

Módosítja egy tag szerepkörét. A role módosításához a munkaterület tulajdonosának vagy adminjának kell lenned.

Útvonal-paraméterek
id integer hely: path kötelező
Csapatazonosító.
memberUserId integer hely: path kötelező
A tag felhasználói azonosítója.
Kérés törzse
role string kötelező
owner vagy member.

Válasz. 200, a csapattaggal és az új szerepkörrel.

Hibák. 404 {"error": "Team member not found"}, 403 {"error": "You are not authorized to update this team member"}, 403 {"error": "Updating the role of this team member requires workspace admin permissions"}.

DELETE /teams/:id/members/:memberUserId

DELETE /api/v1/teams/:id/members/:memberUserId
Jogosultság teams_manage

Eltávolít egy tagot. A csapat tulajdonosa, illetve a munkaterület tulajdonosa vagy adminja teheti meg; egy owner szerepkörű tag eltávolításához a munkaterület tulajdonosának vagy adminjának kell lenned. Saját magadat nem távolíthatod el.

Útvonal-paraméterek
id integer hely: path kötelező
Csapatazonosító.
memberUserId integer hely: path kötelező
A tag felhasználói azonosítója.

Válasz. 204.

Hibák. 403 {"error": "You cannot remove yourself from a team"}, 403 {"error": "You are not authorized to remove this team member"}, 404 Team member not found, 403 {"error": "Removing an owner requires workspace admin permissions"}.