Promptok és futtatások
Hozz létre mentett promptokat és változókat, töltsd ki őket, futtasd egy vagy több modellen, kövesd streamelve az eredményt, és oszd meg a promptokat - mindezt a REST API-val.
A mentett prompt egy újrafelhasználható sablon a promptkönyvtáradból. A szövege {{variables}} változókat tartalmaz, amelyeket minden futtatáskor kitöltesz. A REST API-val kódból építhetsz promptokat, friss értékekkel futtathatod őket a választott modellen, és visszaolvashatod az eredményeket. Minden kérés az API-kulcs tulajdonosának nevében fut.
Minden útvonal a https://api.stickyprompts.com/api/v1 címhez képest értendő. A kérések törzse JSON.
Alapfogalmak
A prompt egy névvel ellátott sablon. A szövege egy promptverzióban (prompt version) található: promptonként egy verzió létezik, és ha új tartalmat küldesz be, az felülírja. A verzióhoz változók tartoznak, amelyekre a szövegben {{slug}} formában hivatkozol, például: Write a {{tone}} summary of: {{text}}.
Egy prompt futtatásához kitöltöd a változóit. Ebből jön létre egy példány (instance): a sablon megváltoztathatatlan másolata, behelyettesített értékekkel. A példányt ezután egy vagy több modellen futtatod. Minden futtatás létrehoz egy beszélgetést (az API-ban conversation_context a neve), amelyben a Beszélgetések és üzenetek végpontjaival folytathatod a chatet.
prompt -> prompt_version (content with {{slug}} placeholders) -> variables
|
+-> instance (variable values, parsed content) -> run -> conversation
A /run/prompt/... alatti rövidített végpontok egyetlen hívásban hozzák létre és futtatják a példányt. A POST /run nyers szöveget küld egy modellnek, prompt nélkül.
Konvenciók
- Lapozás. Ahol jelezzük, küldd el a
page(alapértéke1) és asize(alapértéke10) paramétert. Az eredményt azX-Page, azX-Page-Sizeés azX-Total-Countválaszheader írja le. Lásd: Hibák, lapozás és kvóták. - Projekthatókör. Több végpont is olvas egy opcionális
X-Project-ID: <numeric id>headert. A nem numerikus értéket a szerver úgy kezeli, mintha el sem küldted volna. - Mezőnevek írásmódja. Az adatbázis-objektumokban a snake_case mezők mellett nagy kezdőbetűs
ID,CreatedAt,UpdatedAtésDeletedAtszerepel. A RunHistory-objektumokban kisbetűsidéscreated_atszerepel. - Renderelt szöveg. A futtatások
resultésthinkingmezője a modell Markdown-kimenetéből renderelt HTML-t tartalmaz, nem a nyers Markdownt. - Hibák. Formátumuk:
{"error": "..."}. A kvótahibák429 {"error":"Quota exceeded","reason":"..."}alakúak. A védőkorlátok által blokkolt kérések gépi kódot is kapnak, például{"error": "...", "code": "SENSITIVE_DATA_BLOCKED"}. Az adatrezidencia-hibák kódjai:EU_INFERENCE_REQUIRED,ZERO_RETENTION_REQUIRED,NO_PROVIDER_ASSIGNEDésNO_ENDPOINT_AVAILABLE.
A Prompt-objektum
{
"ID": 42,
"CreatedAt": "2026-09-20T10:15:00Z",
"UpdatedAt": "2026-09-20T10:15:00Z",
"DeletedAt": null,
"name": "Renewal check-in email",
"slug": "k3j9x2qa",
"user_id": 7,
"project_id": null,
"shared_with_workspace_id": null,
"current_version_id": 88,
"current_version": null,
"ai_model_id": 12,
"description": "Friendly renewal reminder for a Northwind customer",
"is_favorite": false,
"category_id": 3,
"category": null,
"example_output": "",
"duplicated_from_id": null,
"file_data": [],
"tools": [{ "name": "web_search", "use": true }],
"mcp_servers": [],
"ai_style": "prompty"
}
- A
current_versionbetöltve{ID, ..., prompt_id, content, variables[], current_instance_id, current_instance}alakú; a legtöbb listázó végpontnullértéken hagyja. - A
categorybetöltve{ID, CreatedAt, UpdatedAt, DeletedAt, name}alakú. - A
file_databetöltve File-objektumok tömbje, egyébkéntnull. Egy File felépítése:{ID, CreatedAt, UpdatedAt, DeletedAt, name, path, preview_path, public_path, user_id, workspace_id, project_id, fileType, partial}; figyelj a camelCasefileTypemezőre. - A
toolsértéke[{"name", "use"}]vagynull. Az eszközök nevei:web_search,image_generation,video_generation,speech_generation,music_generation,remote_mcp. - Az
mcp_serverstávoli MCP-szerverek azonosítóinak tömbje.
Promptok
GET /prompt
/api/v1/prompt Listázza a saját, projekten kívüli promptjaidat, a legújabbal kezdve. Az X-Project-ID headerrel helyette az adott projekt promptjait listázza.
-
searchstring hely: query opcionális - A névben és a leírásban keres.
-
pageinteger hely: query opcionális alapérték1 - Oldalszám.
-
sizeinteger hely: query opcionális alapérték10 - Elemek száma oldalanként.
-
X-Project-IDinteger hely: header opcionális - Ennek a projektnek a promptjait listázza.
Válasz. 200, Prompt-objektumok tömbjével (a current_version, a category és a file_data nincs betöltve). X-Project-ID esetén minden elemben "can_delete": bool is szerepel, amely csak akkor igaz, ha kezelheted a projekt promptjait, és az adott prompt a tiéd.
Hibák. 404 {"error":"Project not found"}, 403 {"error":"You don't have access to this project"}.
GET /prompt/all
/api/v1/prompt/all Egyetlen listában adja vissza a saját promptjaidat, a veled megosztott promptokat és a kedvenceid közé tett promptokat, aszerint rendezve, hogy melyiket mikor futtattad utoljára (ennek hiányában a létrehozás ideje szerint). A projekteken belüli promptok kimaradnak.
-
searchstring hely: query opcionális - A névben és a leírásban keres.
-
pageinteger hely: query opcionális alapérték1 - Oldalszám.
-
sizeinteger hely: query opcionális alapérték10 - Elemek száma oldalanként.
-
showWorkspaceSharedstring hely: query opcionális "true"esetén a munkaterületeddel megosztott promptok is bekerülnek.
Válasz. 200, Prompt-objektumok tömbjével, betöltött file_data mezővel, vagy [].
GET /prompt/last_used
/api/v1/prompt/last_used Legfeljebb 8 általad futtatott promptot ad vissza, a legutóbb futtatottal kezdve, betöltött file_data mezővel. Azok a promptok, amelyeket soha nem futtattál, kimaradnak. A lapozási headerek be vannak állítva, de a page és a size paramétert a szerver figyelmen kívül hagyja.
GET /prompt/most_used
/api/v1/prompt/most_used Legfeljebb 8 promptot ad vissza aszerint rendezve, hogy milyen gyakran futtattad őket. Lapozási headereket nem küld.
GET /prompt/recently_added
/api/v1/prompt/recently_added Legfeljebb 8 saját promptodat adja vissza, a legújabbal kezdve, betöltött file_data mezővel.
POST /prompt
/api/v1/prompt Létrehoz egy promptot. Az új prompt verzió nélkül jön létre: utána hívd meg a POST /prompt_version végpontot, hogy tartalmat adj neki. A modell a preferenciáidból származik (ennek hiányában a katalógus első modellje lesz), az ai_style szintén a preferenciáidból (ennek hiányában prompty). Bármelyik módosításához utólag hívd meg a PUT /prompt/:id végpontot.
-
namestring opcionális - Létrehozáskor a szerver nem ellenőrzi, de küldd el.
-
descriptionstring opcionális - A promptkártyán jelenik meg.
-
example_outputstring opcionális - Mintakimenet.
-
category_iduint opcionális - A promptkategória azonosítója vagy null.
-
toolsarray opcionális - Alapértelmezett eszközök,
[{"name", "use"}]. -
mcp_serversuint[] opcionális - Távoli MCP-szerverek azonosítói.
-
X-Project-IDinteger hely: header opcionális - A promptot ebben a projektben hozza létre. Ehhez jogosultság kell a projekt promptjainak kezeléséhez.
Létrehozáskor a szerver figyelmen kívül hagyja az ai_model_id, az ai_style és a slug mezőt; a slug véletlenszerűen generálódik.
curl -X POST https://api.stickyprompts.com/api/v1/prompt \
-H "Authorization: Bearer $STICKY_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Renewal check-in email", "description": "Friendly renewal reminder" }'
Válasz. 201, a Prompt-objektummal.
Hibák. 400 hibás formátumú JSON esetén, 404 {"error":"Project not found"}, 403 {"error":"You don't have access to manage prompts of this project"}, 409 {"error":"Entity already exists"}.
PUT /prompt/:id
/api/v1/prompt/:id Lecseréli egy prompt szerkeszthető mezőit. Csak a saját promptjaidnál működik.
-
idinteger hely: path kötelező - A prompt numerikus azonosítója.
-
namestring kötelező - Nem lehet üres.
-
descriptionstring opcionális - Felülíródik.
-
ai_model_iduint opcionális - Felülíródik. Ha kihagyod, vagy
0értéket küldesz,0tárolódik. -
example_outputstring opcionális - Felülíródik.
-
category_iduint opcionális - Felülíródik.
-
ai_stylestring opcionális - Felülíródik.
-
toolsarray opcionális - Csak akkor változik, ha szerepel a kérésben.
-
mcp_serversuint[] opcionális - Csak akkor változik, ha szerepel a kérésben.
A name, a description, az ai_model_id, az example_output, a category_id és az ai_style mező mindegyike felülíródik, ezért azoknál a mezőknél, amelyeket nem akarsz módosítani, mindig küldd el a jelenlegi értéket.
Válasz. 200, a Prompt-objektummal. Hibák. 404 {"error":"Prompt not found"}, 400 {"error":"Name is required"}.
POST /prompt_version
/api/v1/prompt_version Beállítja egy prompt sablontartalmát. Az első hívás létrehozza a verziót, és aktuálissá teszi; a későbbi hívások ugyanannak a verziónak a content mezőjét írják felül. A változókat a POST /variable végponttal hozd létre, ne ennek a kérésnek a törzsében.
-
prompt_iduint kötelező - Az egyik saját promptod.
-
contentstring kötelező - A sablon szövege. A változókra
{{slug}}formában hivatkozz.
Válasz. Létrehozáskor és frissítéskor is 201:
{
"ID": 88, "CreatedAt": "...", "UpdatedAt": "...", "DeletedAt": null,
"prompt_id": 42,
"content": "Write a renewal check-in email to {{customer_name}} about their {{plan}} plan.",
"variables": null,
"current_instance_id": null,
"current_instance": null
}
Frissítéskor a variables nincs betöltve. Hibák. 400 hibás formátumú JSON esetén, 404 {"error":"Prompt not found"}.
DELETE /prompt/:id
/api/v1/prompt/:id Logikailag törli (soft delete) az egyik saját promptodat, eltávolítja a megosztásait, és mindenkinél kiveszi a kedvencek közül.
-
idinteger hely: path kötelező - A prompt numerikus azonosítója.
Válasz. 204. Üres törzsű 404, ha a prompt nem létezik, vagy nem a tiéd.
POST /prompt/:id/duplicate
/api/v1/prompt/:id/duplicate Lemásol egy saját promptot vagy egy olyat, amelyhez hozzáférsz (a nyilvános katalógus promptjai, a veled vagy a munkaterületeddel megosztott promptok). A másolat tartalmazza a nevet, a leírást, a modellt, a mintakimenetet, az eszközöket, a stílust, a kategóriát, a verzió tartalmát és a változókat (name, slug, description, data_type, default_value, required, sort, is_primary, is_multi_select, options). Nem másolódik: az mcp_servers, a csatolt fájlok, valamint a változók file_types és default_file_id mezője.
-
idstring hely: path kötelező - A prompt numerikus azonosítója vagy slugja.
-
X-Project-IDinteger hely: header opcionális - A másolatot ebben a projektben hozza létre, az eredeti névvel. Nélküle a név végére
" (copy)"kerül.
Válasz. 200, az új Prompt-objektummal, kitöltött current_version.variables mezővel.
Hibák. 404 {"error":"Prompt not found"}, 403 {"error":"You don't have access to this prompt"}, 404 {"error":"Project not found"}, 403 {"error":"You don't have access to manage prompts of this project"}.
PUT /prompt/:id/move-to-project
/api/v1/prompt/:id/move-to-project Projektbe helyez át egy promptot, projektek között mozgatja, vagy kiveszi a projektből. Nincs kéréstörzs. Minden érintett projektben jogosultság kell a promptok kezeléséhez, és a projektbe áthelyezett promptnak a tiédnek kell lennie.
-
idinteger hely: path kötelező - A prompt numerikus azonosítója.
-
X-Project-IDinteger hely: header opcionális - A célprojekt. Hagyd el, ha ki akarod venni a promptot a projektjéből.
Válasz. 200, a Prompt-objektummal, betöltött project mezővel.
Hibák. 404 {"error":"Prompt not found"} vagy {"error":"Prompt not found or you don't have access to it"}, 400 {"error":"Prompt is already not in a project"}, 400 {"error":"Prompt is already in this project"}, 404 {"error":"Project not found"}, illetve 403 projektjogosultságok hiányában.
PUT /prompt/:id/share_with_workspace
/api/v1/prompt/:id/share_with_workspace Láthatóvá teszi az egyik saját promptodat az egész munkaterületed számára, vagy újra priváttá teszi.
-
idinteger hely: path kötelező - A prompt numerikus azonosítója.
-
sharedbool kötelező true: megosztás a munkaterülettel,false: a prompt újra privát lesz.
Válasz. 200, a Prompt-objektummal; a shared_with_workspace_id a munkaterületed azonosítója vagy null. Hibák. 404 {"error":"Prompt not found"}, 400 {"error":"User is not part of a workspace"}.
Kedvencek
GET /prompt/favorite
/api/v1/prompt/favorite Visszaadja a kedvenc promptjaidat abban a sorrendben, ahogy a kedvencek közé tetted őket (a legrégebbivel kezdve). Minden elemben "is_favorite": true szerepel; a verzió, a kategória és a fájlok nincsenek betöltve. Nincs lapozás.
POST /prompt/:id/favorite
/api/v1/prompt/:id/favorite Kedvencnek jelöl egy promptot. A promptnak a tiédnek, közvetlenül veled megosztottnak vagy a nyilvános katalógusból származónak kell lennie. A csak a munkaterületeddel megosztott promptra 403 a válasz.
-
idinteger hely: path kötelező - A prompt numerikus azonosítója.
Válasz. 201. A beágyazott prompt kulcsa valóban nagy kezdőbetűs (Prompt):
{ "ID": 311, "CreatedAt": "2026-09-28T09:00:00Z", "UpdatedAt": "2026-09-28T09:00:00Z", "DeletedAt": null,
"user_id": 7, "prompt_id": 42, "Prompt": null }
Hibák. 404 {"error":"Prompt not found"}, 403 {"error":"You don't have access to this prompt"}, 409 {"error":"This prompt is already marked as favorite"}.
DELETE /prompt/:id/favorite
/api/v1/prompt/:id/favorite Kiveszi a promptot a kedvencek közül.
-
idinteger hely: path kötelező - A prompt numerikus azonosítója.
Válasz. 204. Hibák. 404 {"error":"Prompt not found in favorites"}.
Változók
A változók egy promptverzióhoz tartoznak. A slug értékének egyeznie kell a tartalom egyik {{slug}} helyőrzőjével, és a verzión belül egyedinek kell lennie. Hogy az alkalmazásban hogyan működnek, azt a Promptváltozók oldal írja le.
{
"ID": 301, "CreatedAt": "...", "UpdatedAt": "...", "DeletedAt": null,
"prompt_version_id": 88,
"name": "Customer name",
"slug": "customer_name",
"description": "Who the email is addressed to",
"data_type": "short_text",
"default_value": "",
"required": true,
"sort": 0,
"is_primary": true,
"is_multi_select": false,
"options": null,
"file_types": "",
"default_file_id": null,
"default_file": null
}
- A
data_typeértékeshort_text,long_text,select,number,jsonvagylov. - Az
options(választó típusú változóknál)[{"label": "...", "value": "..."}]alakú. - Az
is_primaryazt a változót jelöli, amelyet a/run/prompt/lastés a/run/prompt/:idrövidített végpont tölt ki.
POST /variable
/api/v1/variable Változót ad egy promptverzióhoz. A promptnak a tiédnek kell lennie. A törzs a Variable-objektum az ID és az időbélyegek nélkül; a szerver az alábbi három kötelező mezőn kívül semmit nem ellenőriz.
-
prompt_version_iduint kötelező - A verzió, amelyhez a változót hozzáadod.
-
namestring kötelező - Megjelenített név.
-
slugstring kötelező - Egyezik a tartalomban lévő
{{slug}}helyőrzővel. -
descriptionstring opcionális - Súgószöveg.
-
data_typestring opcionális short_text,long_text,select,number,jsonvagylov.-
default_valuestring opcionális - Akkor használatos, ha nem küldesz értéket.
-
requiredbool opcionális - A
POST /instancekényszeríti ki. -
sortinteger opcionális - Megjelenítési sorrend.
-
is_primarybool opcionális - Az a változó, amelyet a rövidített végpontok kitöltenek.
-
is_multi_selectbool opcionális - Több opció kiválasztását engedi.
-
optionsarray opcionális [{"label", "value"}].-
file_typesstring opcionális - Elfogadott fájltípusok.
-
default_file_iduint opcionális - Alapértelmezett fájl.
Válasz. 201, a Variable-objektummal.
Hibák. 400 hibás formátumú JSON esetén, 404 {"error":"Prompt version not found"}, 403 {"error":"You are not allowed to add variables to this prompt"}, 409 {"error":"Entity already exists"} (ismétlődő slug).
PUT /variable/:id
/api/v1/variable/:id Lecseréli egy változó mezőit. A frissítés minden mezőt felülír, ezért küldd el az összeset: name, slug, description, data_type, default_value, required, sort, is_primary, is_multi_select, options, file_types és default_file_id.
-
idinteger hely: path kötelező - A változó azonosítója.
Az előzmények megmaradnak: ha egy olyan változó name vagy slug értékét módosítod, amelyhez korábbi futtatásokból már vannak tárolt értékek, a szerver előbb archiválja a régi változót (logikailag törölt másolatként, amelynek a slugja _deleted_<timestamp> utótagot kap), áthelyezi rá ezeket az értékeket, majd helyben frissíti a változót. Ebben az esetben a file_types és a default_file_id nem frissül.
Válasz. 200, a Variable-objektummal. Hibák. 404 {"error":"Variable not found"}, 403 {"error":"You are not allowed to update variables of this prompt"}.
DELETE /variable/:id
/api/v1/variable/:id Töröl egy változót.
-
idinteger hely: path kötelező - A változó azonosítója.
Válasz. 204. Hibák. 404 {"error":"Variable not found"}, 403 {"error":"You are not allowed to delete variables of this prompt"}.
Példányok
A példány a kitöltött értékekkel ellátott sablon. Minden {{slug}} helyére az általad küldött érték kerül, vagy ha az üres vagy hiányzik, a változó default_value értéke. Azok a helyőrzők, amelyekhez nem tartozik változó, változatlanok maradnak. Ha a munkaterületeden védőkorlátok vannak érvényben, a rendszer még a tárolás előtt alkalmazza őket az értékekre és a feldolgozott tartalomra, így az értékek kitakarva is visszajöhetnek.
{
"ID": 5120, "CreatedAt": "...", "UpdatedAt": "...", "DeletedAt": null,
"prompt_version_id": 88,
"content": "Write a renewal check-in email to Northwind Traders about their Business plan.",
"variable_values": [
{ "ID": 9001, "variable_id": 301, "prompt_version_instance_id": 5120, "value": "Northwind Traders", "file_id": null, "file": null }
]
}
POST /instance
/api/v1/instance Kitölti egy verzió változóit, és az eredményt új példányként tárolja, amely egyben a verzió aktuális példánya is lesz.
-
prompt_version_iduint kötelező - A kitöltendő verzió.
-
variable_valuesarray opcionális - Elemei:
{"variable_id": uint, "value": string, "file_id": uint | null}. Kötelező, ha a verziónak vannak kötelező változói.
curl -X POST https://api.stickyprompts.com/api/v1/instance \
-H "Authorization: Bearer $STICKY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt_version_id":88,"variable_values":[{"variable_id":301,"value":"Northwind Traders"},{"variable_id":302,"value":"Business"}]}'
Válasz. 201, a példányobjektummal.
Hibák. 404 {"error":"Prompt version not found"}, 400 {"error":"Invalid instance request"}, ha egy kötelező változónak nincs nem üres értéke, illetve 400 {"error":"...","code":"SENSITIVE_DATA_BLOCKED"}, ha egy védőkorlát blokkolja a bemenetet.
GET /instance/:id
/api/v1/instance/:id Visszaad egy példányt a variable_values értékeivel együtt. Ha a példány nem létezik, üres törzsű 404 a válasz.
-
idinteger hely: path kötelező - A példány azonosítója.
Promptok futtatása
A modell kiválasztása
| Végpont | Használt modell |
|---|---|
POST /instance/:id/run és /run/stream | Az ai_model_ids összes azonosítója. Nincs alapértelmezés és nincs "auto" érték: ha nem küldesz azonosítót, semmi nem fut. agent_id megadásakor, vagy ha ügynökhöz kötött beszélgetést folytatsz, az ai_model_ids helyett az ügynök modellje fut. |
POST /run/prompt/last és POST /run/prompt/:id | Az újrajátszott futtatás modellje. Ha a /run/prompt/:id hívásnál nincs korábbi futtatás, a prompt saját ai_model_id értéke. |
POST /run/prompt/:id/variables | A prompt ai_model_id értéke. |
POST /run | Az ai_model_id, vagy az a modell, amelynek a version értéke (a szolgáltató modellazonosítója) megegyezik az ai_model_name értékével. |
Egyikük sem használ automatikus modellválasztást; az a beszélgetésvégpontok sajátja. Minden futtató végpont ellenőrzi a választott modellt a munkaterületed modellhozzáférési szabályai (400 {"error":"The selected AI model has been restricted by your organization"}, a rövidített végpontokon kissé eltérő megfogalmazással) és adatrezidencia-szabályai alapján (400, rezidenciával kapcsolatos code értékkel).
A RunHistory-objektum
{
"id": 7781,
"created_at": "2026-09-28T09:12:03Z",
"result": "<p>Hi Northwind team, your Business plan renews on ...</p>\n",
"raw_text": null,
"thinking": "",
"runtime": 4210,
"ai_model_id": 12,
"input_prompt": "Write a renewal check-in email to {{customer_name}} about their {{plan}} plan.",
"variables": [],
"conversation_context_id": 16044,
"conversation_context_slug": "q8w2m1zc",
"conversation_context_name": "",
"is_interactive": true,
"input_file_data": [],
"output_file_data": [],
"error_text": null,
"error_id": null,
"run_status": "success"
}
| Mező | Jelentés |
|---|---|
result | A modell válasza Markdownból HTML-re renderelve. A <think> blokkokat a rendszer eltávolítja. |
raw_text | Itt mindig null. A nyers Markdownért olvasd ki a beszélgetést (GET /conversation/:id) vagy a stream raw_text mezőjét. |
thinking | HTML-re renderelt gondolatmenet, vagy "". |
runtime | A kezdettől a befejezésig eltelt idő ezredmásodpercben. Amíg a futtatás nem fejeződik be, 0, például a streamelő válaszban. |
input_prompt | A feldolgozatlan sablon. A behelyettesített szöveg a példány content mezőjében van. |
variables | {id, variable_id, name, slug, value} elemek. A futtató végpontokon üres; a GET /prompt/:id/run_history tölti ki. |
conversation_context_id, _slug, _name | A futtatás által létrehozott vagy folytatott beszélgetés. |
is_interactive | Folytatható-e a beszélgetés. Összehasonlító módú futtatásoknál false. |
input_file_data, output_file_data | {id, name, path} alakú fájlok: a felhasználói üzenethez csatoltak, illetve a modell által generáltak. |
run_status | pending, majd generating, végül success vagy error. |
error_text, error_id | Akkor kapnak értéket, ha a szolgáltatói hívás sikertelen volt. |
A felhasználás és a kreditek egyik futtatási válaszban sem szerepelnek.
POST /instance/:id/run
/api/v1/instance/:id/run Lefuttat egy példányt, és megvárja, amíg a modell végez. Létrejön egy új beszélgetés a felhasználói üzenettel (a példány feldolgozott tartalmával) és az AI válaszával, hacsak nem adsz meg conversation_context_id értéket. Ha abban a beszélgetésben aktív modell-összehasonlítás fut, a példány minden szálban egyszer lefut, és az összes eredményt visszakapod.
-
idinteger hely: path kötelező - A példány azonosítója a
POST /instanceválaszából.
-
comparison_modestring hely: query opcionális alapértékfalse "true"esetén a beszélgetés nem interaktív lesz; korlátozott modellnél ilyenkor ez a hibaüzenet érkezik: „One of the selected AI models has been restricted by your organization”.-
X-Project-IDinteger hely: header opcionális - A projekt fájljai bekerülnek a futtatás mellékletei közé, a beszélgetés pedig a projekthez kerül.
-
ai_model_idsuint[] kötelező - Modellazonosítónként egy futtatás. A gyakorlatban kötelező: üres tömb esetén semmi nem fut, és a válasz
200 null. Az azonosítók számát a szerver konfigurációja korlátozza (alapértéke 1); ennek túllépésekor a válasz503 {"error":"cannot run this many models in parallel"}. Az ingyenes csomagban legfeljebb egy azonosító küldhető:503 {"error":"free tier does not support comparison mode"}. -
ai_stylestring opcionális - Válaszstílus, például
prompty. A szerver nem veszi át automatikusan a promptból, ezért küldd el a promptai_styleértékét. -
attachmentsarray opcionális - Elemei:
{"id": uint, "type": "file" | "transcription", "temp": bool}. Azokat a fájlokat, amelyeknek a kiterjesztését a modell nem támogatja, a rendszer szó nélkül kihagyja. -
conversation_context_iduint opcionális - Ezt a beszélgetést folytatja, ahelyett hogy újat hozna létre.
-
is_prompt_studiobool opcionális - Prompt Studio-futtatásként jelöli meg a beszélgetést (forrás:
studio). AGET /prompt/:id/run_historycsak a Prompt Studióban indított futtatásokat mutatja. -
flash_modebool opcionális - A szerver továbbítja a modellfuttatónak.
-
reasoning_effortstring opcionális - Gondolkodó modellekhez, például
low,mediumvagyhigh. Az engedélyezett értékek modellenként eltérnek; ismeretlen érték esetén a modell alapértéke lép életbe. -
knowledge_base_idsuint[] opcionális - A tudásbázisok, amelyekből a rendszer kontextust keres elő. Csak azokat használja, amelyekhez hozzáférésed van.
-
knowledge_base_limit_node_idsuint[] opcionális - A keresést ezekre a csomópontokra szűkíti.
-
world_knowledgebool opcionális - Tudásbázisok mellett: használhatja-e a modell az általános tudását is.
-
agent_iduint opcionális - Ügynökként futtat. Az ügynök modellje, rendszerpromptja, fájljai, eszközei, MCP-szerverei és tudásbázisai felülírják a kérés mezőit.
-
toolsarray opcionális - Elemei:
{"name", "use", "mcp_tool_id"}. Azmcp_tool_idcsak aremote_mcpeszközhöz kell.
curl -X POST https://api.stickyprompts.com/api/v1/instance/5120/run \
-H "Authorization: Bearer $STICKY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ai_model_ids":[12],"ai_style":"prompty","tools":[{"name":"web_search","use":true}]}'import os, requests
r = requests.post(
"https://api.stickyprompts.com/api/v1/instance/5120/run",
headers={"Authorization": f"Bearer {os.environ['STICKY_API_KEY']}"},
json={"ai_model_ids": [12], "ai_style": "prompty",
"tools": [{"name": "web_search", "use": True}]},
timeout=300,
)
r.raise_for_status()
for run in r.json():
if run["run_status"] == "error":
print("Failed:", run["error_text"], run["error_id"])
else:
print(run["conversation_context_id"], run["result"]) # result is HTMLconst res = await fetch("https://api.stickyprompts.com/api/v1/instance/5120/run", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.STICKY_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
ai_model_ids: [12],
ai_style: "prompty",
tools: [{ name: "web_search", use: true }],
}),
});
const runs = await res.json(); // one RunHistory per model
for (const run of runs) console.log(run.run_status, run.error_id ?? run.result);Válasz. 200, RunHistory-objektumok tömbjével, modellenként eggyel.
Hibák
| Státusz | Mikor |
|---|---|
400 | Érvénytelen JSON; korlátozott modell; rezidenciaszabály megsértése (code értékkel); nem található tudásbázis; érvénytelen projekt ({"error":"Invalid project ID"}); érzékenyadat-blokkolás (code: SENSITIVE_DATA_BLOCKED); MCP-hibák ({"error": "...", "error_code": "..."}). |
404 | Nem található példány (üres törzs), {"error":"ConversationContext not found"}, {"error":"Agent not found"}, {"error":"Project not found"}. |
429 | Elfogyott a kvóta. |
503 | Egyéb hibák a modellhívás előtt, például a modellszám-korlát vagy az ingyenes csomag korlátozása. |
POST /instance/:id/run/stream
/api/v1/instance/:id/run/stream Ugyanazt az útvonalat, ugyanazokat a query-paramétereket, headert és törzset fogadja, mint a /run, és ugyanazt az ellenőrzést végzi el, de nem ebben a HTTP-válaszban streamel. Ehelyett:
- A szerver létrehozza a futtatásokat és a beszélgetést, a háttérben elindítja a generálást, és azonnal 200-as kóddal válaszol: RunHistory-objektumok tömbjével,
run_status: "pending",result: "",runtime: 0értékekkel, mindegyikben érvényesconversation_context_idazonosítóval. - A tokeneket a szerver a beszélgetés WebSocketjére küldi:
GET /conversation/{conversation_context_id}/ws. Ez ugyanazt azAuthorization: Bearerheadert fogadja, ésconversations_getjogosultságot igényel. Szerveroldali kliensek el tudják küldeni ezt a headert, böngészők nem. - Minden frame egy
{"type": ..., "data": ...}alakú JSON-szövegüzenet:
type | data | Megjegyzés |
|---|---|---|
message | Message-objektum | Az AI-üzenet eddigi állapotának teljes pillanatképe, nem delta. A text a HTML-renderelés, a raw_text a Markdown; emellett parts, thinking, citations, status (thinking, generating, finished) és ai_model_id is szerepel benne. Minden frame-nél cseréld le a saját másolatodat. |
run_data | RunHistory | Az üzenetfrissítésekkel együtt érkezik. A result az eddigi HTML-t, a run_status az aktuális állapotot tartalmazza. |
ai_message_end | nincs | A generálás sikeresen befejeződött. |
error_message | Message-objektum | A generálás sikertelen; lásd az error_text, az error_id és az error_code mezőt. Lezáró esemény. |
ai_model_change | {ai_model_id, ai_style, auto_model_type, reasoning_effort} | Megváltoztak a beszélgetés beállításai. Nem csak promptfuttatásoknál fordul elő. |
- Az
ai_message_endután a végleges állapotot aGET /conversation/:idhívással olvasd ki.
A kliens csatlakozása előtt küldött eseményeket a szerver puffereli, és az első kapcsolatnak visszajátssza, így a socketet nyugodtan megnyithatod közvetlenül azután, hogy a POST visszatért. A saját felhasználói üzenetedet nem kapod vissza. Miután a POST 200-zal visszatért, a szolgáltatói hibák már csak error_message frame-ként érkeznek; a generálás előtti hibák (modellszám-korlát, ingyenes csomag, adatrezidencia) a /run végpontnál felsorolt, nem 200-as státuszokkal jönnek vissza. A régi GET /conversation/:id/stream SSE-végpont ezeknél a futtatásoknál nem továbbít üzenet-pillanatképeket, ezért a WebSocketet használd. A WebSocket részletes leírását és klienspéldákat a Beszélgetések és üzenetek oldalon találod.
POST /run/prompt/last
/api/v1/run/prompt/last Újrajátssza a legutóbbi promptfuttatásodat új „elsődleges adattal”. Gyors újrafuttatásokra készült, például egy böngészőbővítményből. Kiválasztja a legújabb futtatást az összes saját vagy veled megosztott prompt közül, és új példányt épít, amelyben az elsődleges változó (vagy az egyetlen változó) a data értékét kapja, a többi változó pedig megtartja az abban a futtatásban használt értékét (vagy az alapértékét). Ezt ugyanazzal a modellel és ugyanazokkal az eszközökkel, valamint a prompt ai_style stílusával futtatja. Egy új interaktív beszélgetés jön létre (forrás: extension).
-
datastring kötelező - Új szöveg az elsődleges változóhoz.
Válasz. 200, egyetlen RunHistory-objektummal, nem tömbbel.
Hibák. 404 {"error":"No runs found"}, 400 {"error":"Invalid instance request"}, ha egy kötelező változó üres marad, 400 korlátozott modellnél, illetve rezidencia- vagy érzékenyadat-blokkolásnál, 429 kvótatúllépésnél. Ha a modellhívás még a futtatás rögzítése előtt meghiúsul, a kérés 500-as hibával elbukik.
POST /run/prompt/:id
/api/v1/run/prompt/:id Ugyanaz, mint a /run/prompt/last, de egy adott promptra. A prompt legutóbbi futtatását játssza újra, az elsődleges változóban a data értékével. Ha a promptot még soha nem futtatták, és a saját promptod, az első futtatás a változók alapértékeiből és a prompt ai_model_id értékéből épül fel. Az újrajátszott futtatás a prompt összes futtatása közül a legutóbbi, nem csak a tieid közül, így megosztott promptnál a nem elsődleges értékek egy másik felhasználó legutóbbi futtatásából is származhatnak.
-
idinteger hely: path kötelező - A prompt numerikus azonosítója.
-
datastring kötelező - Új szöveg az elsődleges változóhoz.
curl -X POST https://api.stickyprompts.com/api/v1/run/prompt/42 \
-H "Authorization: Bearer $STICKY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"data":"Northwind Traders"}'
Válasz. 200, egyetlen RunHistory-objektummal. Hibák. 404 {"error":"Prompt not found"}, valamint a /run/prompt/last hibái.
POST /run/prompt/:id/variables
/api/v1/run/prompt/:id/variables Lefuttatja egy prompt aktuális verzióját a változóértékek teljes készletével: a példány létrehozása és a futtatás egyetlen hívásban történik. A prompt ai_model_id és ai_style értékét használja. Az új példány lesz a verzió aktuális példánya, és egy új interaktív beszélgetés jön létre (forrás: extension).
-
idinteger hely: path kötelező - A prompt numerikus azonosítója. A promptnak a tiédnek vagy veled megosztottnak kell lennie.
-
variable_valuesarray opcionális - Elemei:
{"variable_id": uint, "value": string, "file_id": uint | null}. A kihagyott vagy üres értékek helyett az alapérték lép életbe. Arequiredmegkötést itt a szerver nem kényszeríti ki. -
web_contextstring opcionális - Kiegészítő szöveg, amely egy üres sorral elválasztva a feldolgozott prompt elé kerül. A védőkorlátok erre is vonatkoznak.
-
toolsarray opcionális - Ugyanolyan formátumú, mint a
POST /instance/:id/runesetén.
curl -X POST https://api.stickyprompts.com/api/v1/run/prompt/42/variables \
-H "Authorization: Bearer $STICKY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"variable_values":[{"variable_id":301,"value":"Northwind Traders"},{"variable_id":302,"value":"Business"}]}'import os, requests
r = requests.post(
"https://api.stickyprompts.com/api/v1/run/prompt/42/variables",
headers={"Authorization": f"Bearer {os.environ['STICKY_API_KEY']}"},
json={"variable_values": [
{"variable_id": 301, "value": "Northwind Traders"},
{"variable_id": 302, "value": "Business"},
]},
timeout=300,
)
run = r.json()
print(run["run_status"], run["result"])const run = await fetch("https://api.stickyprompts.com/api/v1/run/prompt/42/variables", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.STICKY_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
variable_values: [
{ variable_id: 301, value: "Northwind Traders" },
{ variable_id: 302, value: "Business" },
],
}),
}).then((r) => r.json());
console.log(run.run_status, run.result);Válasz. 200, egyetlen RunHistory-objektummal.
Hibák. 404 {"error":"Prompt not found"}, 400 korlátozott modellnél, illetve rezidencia- vagy érzékenyadat-blokkolásnál, 429 kvótatúllépésnél, 503 {"error":"..."} sikertelen futtatásnál.
A run_prompt MCP-eszköz ugyanezt végzi el egy olyan objektummal, amely a változók slugjait értékekhez rendeli; csak a szöveget adja vissza, és nem hoz létre interaktív beszélgetést.
POST /run
/api/v1/run Szabad szöveget küld egy modellnek, és visszaadja a választ - prompt, változók és beszélgetés nélkül. A hívás szinkron. A rendszer nem fűz hozzá rendszerpromptot, munkaterületi promptot vagy projektutasításokat, a stílus fixen prompty, és semmi nem mentődik beszélgetésként. A felhasználást viszont ilyenkor is rögzíti a rendszer.
-
promptstring kötelező - Az egyetlen felhasználói üzenetként elküldött szöveg.
-
ai_model_iduint opcionális - Modellazonosító. Ezt vagy az
ai_model_namemezőt küldd el. -
ai_model_namestring opcionális - A szerver a modell
versionmezőjével, azaz a szolgáltatói szintű modellazonosítóval veti össze. Ezt vagy azai_model_idmezőt küldd el.
curl -X POST https://api.stickyprompts.com/api/v1/run \
-H "Authorization: Bearer $STICKY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"Suggest a subject line for a Northwind renewal email.","ai_model_id":12}'import os, requests
r = requests.post(
"https://api.stickyprompts.com/api/v1/run",
headers={"Authorization": f"Bearer {os.environ['STICKY_API_KEY']}"},
json={"prompt": "Suggest a subject line for a Northwind renewal email.", "ai_model_id": 12},
timeout=300,
)
r.raise_for_status()
print(r.json()["text"]) # raw Markdownconst msg = await fetch("https://api.stickyprompts.com/api/v1/run", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.STICKY_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ prompt: "Suggest a subject line for a Northwind renewal email.", ai_model_id: 12 }),
}).then((r) => r.json());
console.log(msg.text); // raw MarkdownVálasz. 200, egy nem mentett Message-objektummal: az ID értéke 0, az időbélyegei pedig nullértékűek. A text a modell nyers Markdown kimenetét tartalmazza, ellentétben a futtató végpontokkal, amelyek HTML-t adnak vissza.
{
"ID": 0, "CreatedAt": "0001-01-01T00:00:00Z", "UpdatedAt": "0001-01-01T00:00:00Z", "DeletedAt": null,
"conversation_context_id": null,
"ai_model_id": 12,
"text": "Your Northwind plan renews soon - here is what is new",
"isUser": false,
"error_text": null, "error_id": null,
"ai_style": "prompty",
"status": "finished",
"type": "normal"
}
Hibák. 404 {"error":"AI model not found"}, 400 korlátozott modellnél, illetve rezidencia- vagy érzékenyadat-blokkolásnál, 429 kvótatúllépésnél, 500 {"error":"..."}, ha a modellhívás meghiúsul (ez a végpont 500-as kódot használ, nem 503-ast).
GET /prompt/:id/run_history
/api/v1/prompt/:id/run_history Visszaadja egy prompt Prompt Studióban végzett futtatásainak előzményeit, a legújabb beszélgetéssel kezdve. Csak azok a beszélgetések szerepelnek benne, amelyeket te indítottál is_prompt_studio: true beállítással.
-
idinteger hely: path kötelező - A prompt numerikus azonosítója. A promptnak a tiédnek, veled megosztottnak vagy katalógusbeli promptnak kell lennie.
-
pageinteger hely: query opcionális alapérték1 - Oldalszám. A lapozási headerek a beszélgetéseket számolják.
-
sizeinteger hely: query opcionális alapérték10 - Beszélgetések száma oldalanként.
Válasz. 200, RunHistory-objektumok tömbjeinek tömbjével: beszélgetésenként egy belső tömb, amely több elemet tartalmaz, ha az a futtatás modelleket hasonlított össze. Itt a variables ki van töltve. Ha nincs mit visszaadni: [].
Promptfájlok
Magához a prompthoz csatolt fájlok. Az OpenAI-protokollt használó modellek fájlkereséssel érik el őket; a Together szolgáltatón futó modellek külön felhasználói üzenetként kapják meg őket; a többi szolgáltatónál a felhasználásuk módja nincs dokumentálva. A fájlokat előbb töltsd fel a POST /file végponttal.
POST /prompt/:id/file
/api/v1/prompt/:id/file Feltöltött fájlokat kapcsol egy prompthoz. A korábban kapcsolt fájlok is megmaradnak.
-
idinteger hely: path kötelező - A prompt numerikus azonosítója.
-
file_idsuint[] kötelező - A feltöltött fájlok azonosítói.
Válasz. 200, a Prompt-objektummal; a file_data csak az ebben a hívásban hozzáadott fájlokat sorolja fel.
Hibák. 400 {"error":"Invalid request body"}, 400 {"error":"Invalid prompt ID"}, 404 {"error":"Prompt not found"}, 400 {"error":"File not found"}.
GET /prompt/:id/file
/api/v1/prompt/:id/file A prompthoz kapcsolt File-objektumok tömbjét adja vissza. Ha az id nem numerikus, 400 a válasz.
-
idinteger hely: path kötelező - A prompt numerikus azonosítója.
DELETE /prompt/:id/file/:fileId
/api/v1/prompt/:id/file/:fileId Leválaszt egy fájlt az egyik saját promptodról. Ha a fájlt más prompt vagy üzenet nem használja, a tárolt fájl is törlődik.
-
idinteger hely: path kötelező - A prompt numerikus azonosítója.
-
fileIdinteger hely: path kötelező - A fájl azonosítója.
Válasz. 204. Hibák. 404 {"error":"Prompt not found"}, 403 {"error":"You do not have permission to delete this file from the prompt"}, 404 {"error":"File not found"}, 502 {"error":"Failed to delete file"}.
Megosztás egyes felhasználókkal
GET /share
/api/v1/share A veled megosztott promptokat adja vissza, a legújabbal kezdve.
-
scopestring hely: query opcionális alapértékall user(közvetlenül veled megosztva),workspace(a munkaterületeddel megosztva) vagyall.-
searchstring hely: query opcionális - Szöveges szűrés.
-
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, Prompt-objektumok tömbjével, mindegyikben egy shared_by objektummal. Munkaterület nélkül a scope=workspace eredménye []; a többi hatókörben az üres eredmény null, nem [].
[{ "ID": 42, "name": "Renewal check-in email", "...": "...",
"shared_by": { "email": "john.smith@northwind.example", "first_name": "John", "last_name": "Smith" } }]
Hibák. 400 {"error":"Invalid scope parameter"}.
GET /prompt/:id/share
/api/v1/prompt/:id/share Felsorolja azokat a felhasználókat, akikkel egy prompt meg van osztva. Minden Share-elemben teljes user objektum szerepel.
-
idinteger hely: path kötelező - A prompt numerikus azonosítója.
[{ "ID": 55, "CreatedAt": "...", "UpdatedAt": "...", "DeletedAt": null,
"user_id": 19, "user": { "ID": 19, "email": "anna@northwind.example", "first_name": "Anna", "status": "active", "...": "..." },
"prompt_id": 42, "read_only": true }]
POST /share/:id
/api/v1/share/:id Csak olvasásra megosztja az :id azonosítójú promptot egy felhasználóval, e-mail-cím alapján. Ha ehhez az e-mail-címhez nincs fiók, a szerver létrehoz egy meghívott fiókot, és meghívó e-mailt küld; a már meghívott felhasználó újra megkapja a meghívót.
-
idinteger hely: path kötelező - A prompt azonosítója.
-
emailstring kötelező - A címzett e-mail-címe.
Válasz. 200, üres törzzsel. Hibák. 404 {"error":"prompt not found"}, 400 {"error":"invalid email format"}, 400 {"error":"share already exists"}, 400 {"error":"..."}, ha a meghívás sikertelen.
POST /share/:id/resend
/api/v1/share/:id/resend Újraküldi a meghívó e-mailt egy olyan felhasználónak, aki még nem regisztrált.
-
idinteger hely: path kötelező - A prompt azonosítója.
-
emailstring kötelező - A meghívott e-mail-cím.
Válasz. 204. Hibák. 400 {"error":"invalid email format"}, 404 {"error":"prompt not found"}, 404 {"error":"user not found"}, 400 {"error":"user not invited or already registered"}, 404 {"error":"share not found"}.
DELETE /share/:id
/api/v1/share/:id Eltávolít egy megosztást, és visszavonja az adott felhasználó függőben lévő meghívóit.
-
idinteger hely: path kötelező - A megosztás azonosítója (a
GET /prompt/:id/shareválaszában szereplőID), nem a prompté.
Válasz. 204. Hibák. 404 {"error":"share not found"}.
Kapcsolódó oldalak
- Beszélgetések és üzenetek - egy futtatás beszélgetésének folytatása és a válaszok streamelése.
- Promptkönyvtár és Promptváltozók - ugyanezek a funkciók az alkalmazásban.
- Eszközreferencia - a megfelelő MCP-eszközök:
list_prompts,get_prompt,run_prompt,custom_run.