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.
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ésDeletedAt(élő rekordoknálnull). - A lapozható végpontok a
page(alapértelmezés:1) és asize(alapértelmezés:10) paramétert olvassák, a válaszban pedig beállítják azX-Total-Count, azX-Pageés azX-Page-Sizeheadert. Lásd: Hibák, lapozás és kvóták. - A hibák formája
{"error": "message"}. A kvótahibák formája429 {"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ípus | Jelentés |
|---|---|---|
ID | integer | A fájlazonosító, amelyet mellékletként adsz át a beszélgetésekben és a futtatásokban. |
name | string | Az eredeti fájlnév. |
path | string | A 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_path | string | Csak .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_path | string | Nyilvános megosztási slug; üres, ha a fájl nincs megosztva. Lásd: POST /file/:id/public. |
user_id, workspace_id, project_id | integer vagy null | A 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. |
fileType | string | camelCase kulcs. image, file_search, spreadsheet, code_interpreter vagy code_interpreter_output, a kiterjesztés alapján. |
partial | boolean | Csak 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 .svgfile_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 .plspreadsheet:.xlsx .xlsm .xlam .xltm .xltx .xls .csv .tsv .ods .ots .numberscode_interpreter: minden más
POST /file
/api/v1/file 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.
-
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": truemező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 aPOST /xlsx/start-processvégpontnak. Lásd: Modellek és média.
GET /file
/api/v1/file 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.
-
pageinteger hely: query opcionális alapérték1 - Oldalszám.
-
sizeinteger hely: query opcionális alapérték10 - Elemek száma oldalanként.
Válasz. 200, a File objektumok tömbjével.
DELETE /file/:id
/api/v1/file/:id 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).
-
idinteger 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
/api/v1/file/:id/public 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.
-
idinteger 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
/api/v1/file/:id/public Visszavonja a nyilvános linket a public_path mező kiürítésével.
-
idinteger 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) ésproject_management(a projekt szerkesztésePATCHké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. Acolorhexadecimá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 azauto_model_type(best,balanced,cheapest). - Az
ai_model, apin, afiles, aconversations, apromptsés ahas_filesmező hiányzik, ha nincs betöltve. - A
current_user_permissioncsak a megosztásokon keresztül kapott jelzőket tükrözi; a tulajdonosnak teljes jogai vannak, mégis általában csupafalseértéket lát. - A
has_files, acurrent_user_permission, auser_sharesés ateam_sharesmezőt csak aGET /project/:idtölti ki. Máshol ahas_fileshiányzik, a jogosultsági jelzők mindfalseértékűek, a megosztási listák pedignullértékűek.
POST /project
/api/v1/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ó.
-
namestring kötelező - A projekt neve.
-
descriptionstring opcionális - Szabad szöveg.
-
colorstring opcionális - Hexadecimális színkód.
-
iconstring 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
/api/v1/project Listázza a saját projektjeidet és a veled megosztottakat, a legújabbal kezdve.
-
pageinteger hely: query opcionális alapérték1 - Oldalszám.
-
sizeinteger hely: query opcionális alapérték10 - Elemek száma oldalanként.
-
searchstring hely: query opcionális - A névben vagy a leírásban keres, a kis- és nagybetűket nem megkülönböztetve.
-
is_sharedboolean 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
/api/v1/project/pinned 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
/api/v1/project/:id Visszaadja a teljes Project objektumot.
-
idstring hely: path kötelező - Projektazonosító vagy slug.
-
include_filesstring hely: query opcionális trueesetén a projekt fájljai is szerepelnek afilesmezőben (File objektumokként).
Hibák. 404 {"error": "Project not found"}, 403 {"error": "You don't have access to this project"}.
PATCH /project/:id
/api/v1/project/:id 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.
-
idstring hely: path kötelező - Projektazonosító vagy slug.
-
namestring opcionális - Nem lehet üres.
-
descriptionstring opcionális - Szabad szöveg.
-
colorstring opcionális - Hexadecimális színkód.
-
iconstring opcionális - Ikonnév, vagy
""a törléshez. -
instructionsstring 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_idinteger opcionális - Rögzített modellt állít be, és törli az
auto_model_typeértékét. -
auto_model_typestring opcionális best,balancedvagycheapest. Törli azai_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
/api/v1/project/:id 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.
-
idstring 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
/api/v1/project/:id/pin 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.
-
idstring 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
/api/v1/project/:id/share_with_workspace 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.
-
idstring hely: path kötelező - Projektazonosító vagy slug.
-
shareboolean opcionális trueesetén megosztja a munkaterülettel,falseesetén megszünteti a megosztást. Ha elhagyod, semmi sem változik.-
prompt_managementboolean opcionális - Csak a
share: trueértékkel együtt érvényesül. -
file_managementboolean opcionális - Csak a
share: trueértékkel együtt érvényesül. -
project_managementboolean 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
/api/v1/project/:id/share_with_user Megosztja a projektet a munkaterületed egyes felhasználóival. Csak a tulajdonos teheti meg.
-
idstring hely: path kötelező - Projektazonosító vagy slug.
-
sharesarray kötelező - Elemek:
{ "user_id", "share", "prompt_management", "file_management", "project_management" }. Ashare: truemegtekintési hozzáférést ad; ashare: falseteljesen megszünteti a felhasználó megosztását; ha asharehiá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
/api/v1/project/:id/share_with_team Ugyanúgy működik, mint a share_with_user, de az elemekben team_id szerepel. A csapatnak a munkaterületedhez kell tartoznia.
-
idstring hely: path kötelező - Projektazonosító vagy slug.
-
sharesarray 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
/api/v1/project/:id/file 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.
-
idstring hely: path kötelező - Projektazonosító vagy slug.
-
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
/api/v1/project/:id/file 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.
-
idstring 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
/api/v1/project/:id/file/:fileId 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.
-
idstring hely: path kötelező - Projektazonosító vagy slug.
-
fileIdinteger 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ék | Mit tehet |
|---|---|
kb_access | Olvashatja a tudásbázist, és használhatja a chatekben. |
kb_upload | Az előző, valamint fájlokat tölthet fel. |
kb_edit | Az előzőek, valamint átnevezheti a tudásbázist, kezelheti a mappákat, és bármelyik fájlt törölheti. |
none | Nincs 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
/api/v1/knowledge-bases Létrehoz egy tudásbázist.
-
namestring kötelező - A tudásbázis neve.
-
iconstring kötelező - A Projektek résznél felsorolt ikonnevek egyike.
-
descriptionstring opcionális - Szabad szöveg.
-
colorstring 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
/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
/api/v1/knowledge-bases/:id Visszaadja a teljes tudásbázist. Legalább kb_access szint kell hozzá.
-
idinteger 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
/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á.
-
idinteger hely: path kötelező - Tudásbázis-azonosító.
-
namestring kötelező - A tudásbázis neve.
-
iconstring kötelező - Ikonnév.
-
descriptionstring opcionális - Ha elhagyod, törlődik.
-
colorstring 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
/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.
-
idinteger 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
/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.
-
idinteger hely: path kötelező - Tudásbázis-azonosító.
-
sharesarray kötelező - Elemek:
{ "user_id", "access_type" }. Azaccess_typeértékekb_access,kb_uploadvagykb_edit, ha szintet állítasz be (ez felülírja az előző szintet), illetvenull,""vagynone, 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
/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.
-
idinteger hely: path kötelező - Tudásbázis-azonosító.
-
sharesarray kötelező - Elemek:
{ "team_id", "access_type" }.
Válasz. 200 {"message": "Knowledge base sharing with teams updated"}.
GET /knowledge-bases/:id/folders
/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.
-
idinteger hely: path kötelező - Tudásbázis-azonosító.
-
parent_idinteger 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
/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.
-
idinteger hely: path kötelező - Tudásbázis-azonosító.
-
namestring kötelező - A mappa neve.
-
parent_idinteger 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
/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á.
-
idinteger hely: path kötelező - Tudásbázis-azonosító.
-
folderIdinteger 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
/api/v1/knowledge-bases/:id/folders/:folderId Átnevez egy mappát. A mappák nem helyezhetők át. A kb_edit szint kell hozzá.
-
idinteger hely: path kötelező - Tudásbázis-azonosító.
-
folderIdinteger hely: path kötelező - A mappa csomópont-azonosítója.
-
namestring 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
/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á.
-
idinteger hely: path kötelező - Tudásbázis-azonosító.
-
folderIdinteger hely: path kötelező - A mappa csomópont-azonosítója.
Válasz. 204.
POST /knowledge-bases/:id/files
/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.
-
idinteger hely: path kötelező - Tudásbázis-azonosító.
-
filefile hely: form kötelező - A dokumentum. A mező neve
file, nemupload[]. Engedélyezett kiterjesztések (a kis- és nagybetű nem számít):.txt .md .markdown .pdf .docx .xlsx .csv .png .jpg .jpeg. -
folder_idstring 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:
status | status_progress |
|---|---|
uploading | Feltöltési százalék |
processing | 0 |
indexing | Indexelési százalék |
done | 100 |
error | A 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
/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.
-
idinteger hely: path kötelező - Tudásbázis-azonosító.
-
fileIdinteger 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űvelet | Ki teheti meg? |
|---|---|
| Csapat létrehozása | A munkaterület tulajdonosa vagy adminja |
| A munkaterület összes csapatának listázása | A munkaterület tulajdonosa vagy adminja |
| Egy csapat tagjainak megtekintése | A csapat tagjai, a munkaterület tulajdonosa vagy adminja |
| Csapat átnevezése vagy törlése, tagok hozzáadása vagy eltávolítása | A 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ása | A 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
/api/v1/teams Létrehoz egy csapatot, és téged ad hozzá owner szerepkörrel. Csak a munkaterület tulajdonosa vagy adminja teheti meg.
-
namestring kötelező - A csapat neve.
-
descriptionstring opcionális - Szabad szöveg.
-
colorstring 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
/api/v1/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
/api/v1/teams/all 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
/api/v1/teams/:id/members Listázza egy csapat tagjait. Csak a csapat tagjai, illetve a munkaterület tulajdonosai vagy adminjai kérhetik le.
-
idinteger 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
/api/v1/teams/:id 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.
-
idinteger hely: path kötelező - Csapatazonosító.
-
namestring kötelező - A csapat neve.
-
descriptionstring opcionális - Ha elhagyod, törlődik.
-
colorstring 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
/api/v1/teams/:id Töröl egy legfeljebb egytagú csapatot. A csapat tulajdonosa, illetve a munkaterület tulajdonosa vagy adminja teheti meg.
-
idinteger 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
/api/v1/teams/:id/members 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.
-
idinteger hely: path kötelező - Csapatazonosító.
-
user_idinteger kötelező - Egy felhasználó a munkaterületedről.
-
rolestring kötelező - Mindig
membervagyowneré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
/api/v1/teams/:id/members/:memberUserId 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.
-
idinteger hely: path kötelező - Csapatazonosító.
-
memberUserIdinteger hely: path kötelező - A tag felhasználói azonosítója.
-
rolestring kötelező ownervagymember.
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
/api/v1/teams/:id/members/:memberUserId 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.
-
idinteger hely: path kötelező - Csapatazonosító.
-
memberUserIdinteger 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"}.
Kapcsolódó oldalak
- Beszélgetések és üzenetek - fájlok és tudásbázisok csatolása egy üzenethez.
- Modellek és média - táblázatfeldolgozás egy feltöltött fájlon.
- Eszközreferencia - a
list_filesés aget_file, valamint a projektekhez, tudásbázisokhoz és csapatokhoz tartozó MCP-eszközök.