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.

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

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éke 1) és a size (alapértéke 10) paramétert. Az eredményt az X-Page, az X-Page-Size és az X-Total-Count vá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 és DeletedAt szerepel. A RunHistory-objektumokban kisbetűs id és created_at szerepel.
  • Renderelt szöveg. A futtatások result és thinking mezője a modell Markdown-kimenetéből renderelt HTML-t tartalmaz, nem a nyers Markdownt.
  • Hibák. Formátumuk: {"error": "..."}. A kvótahibák 429 {"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 és NO_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_version betöltve {ID, ..., prompt_id, content, variables[], current_instance_id, current_instance} alakú; a legtöbb listázó végpont null értéken hagyja.
  • A category betöltve {ID, CreatedAt, UpdatedAt, DeletedAt, name} alakú.
  • A file_data betöltve File-objektumok tömbje, egyébként null. 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 camelCase fileType mezőre.
  • A tools értéke [{"name", "use"}] vagy null. Az eszközök nevei: web_search, image_generation, video_generation, speech_generation, music_generation, remote_mcp.
  • Az mcp_servers távoli MCP-szerverek azonosítóinak tömbje.

Promptok

GET /prompt

GET /api/v1/prompt
Jogosultság prompts_get MCP-eszköz list_prompts

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.

Query-paraméterek
search string hely: query opcionális
A névben és a leírásban keres.
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.
X-Project-ID integer 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

GET /api/v1/prompt/all
Jogosultság prompts_get

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.

Query-paraméterek
search string hely: query opcionális
A névben és a leírásban keres.
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.
showWorkspaceShared string 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

GET /api/v1/prompt/last_used
Jogosultság prompts_get

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

GET /api/v1/prompt/most_used
Jogosultság prompts_get

Legfeljebb 8 promptot ad vissza aszerint rendezve, hogy milyen gyakran futtattad őket. Lapozási headereket nem küld.

GET /prompt/recently_added

GET /api/v1/prompt/recently_added
Jogosultság prompts_get

Legfeljebb 8 saját promptodat adja vissza, a legújabbal kezdve, betöltött file_data mezővel.

POST /prompt

POST /api/v1/prompt
Jogosultság prompts_manage

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.

Kéréstörzs
name string opcionális
Létrehozáskor a szerver nem ellenőrzi, de küldd el.
description string opcionális
A promptkártyán jelenik meg.
example_output string opcionális
Mintakimenet.
category_id uint opcionális
A promptkategória azonosítója vagy null.
tools array opcionális
Alapértelmezett eszközök, [{"name", "use"}].
mcp_servers uint[] opcionális
Távoli MCP-szerverek azonosítói.
X-Project-ID integer 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

PUT /api/v1/prompt/:id
Jogosultság prompts_manage

Lecseréli egy prompt szerkeszthető mezőit. Csak a saját promptjaidnál működik.

Útvonal-paraméterek
id integer hely: path kötelező
A prompt numerikus azonosítója.
Kéréstörzs
name string kötelező
Nem lehet üres.
description string opcionális
Felülíródik.
ai_model_id uint opcionális
Felülíródik. Ha kihagyod, vagy 0 értéket küldesz, 0 tárolódik.
example_output string opcionális
Felülíródik.
category_id uint opcionális
Felülíródik.
ai_style string opcionális
Felülíródik.
tools array opcionális
Csak akkor változik, ha szerepel a kérésben.
mcp_servers uint[] 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

POST /api/v1/prompt_version
Jogosultság prompts_manage

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.

Kéréstörzs
prompt_id uint kötelező
Az egyik saját promptod.
content string 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

DELETE /api/v1/prompt/:id
Jogosultság prompts_delete

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.

Útvonal-paraméterek
id integer 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

POST /api/v1/prompt/:id/duplicate
Jogosultság prompts_manage

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.

Útvonal-paraméterek
id string hely: path kötelező
A prompt numerikus azonosítója vagy slugja.
Headerek
X-Project-ID integer 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

PUT /api/v1/prompt/:id/move-to-project
Jogosultság prompts_manage

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.

Útvonal-paraméterek
id integer hely: path kötelező
A prompt numerikus azonosítója.
Headerek
X-Project-ID integer 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

PUT /api/v1/prompt/:id/share_with_workspace
Jogosultság prompts_manage

Láthatóvá teszi az egyik saját promptodat az egész munkaterületed számára, vagy újra priváttá teszi.

Útvonal-paraméterek
id integer hely: path kötelező
A prompt numerikus azonosítója.
Kéréstörzs
shared bool 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

GET /api/v1/prompt/favorite
Jogosultság prompts_get

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

POST /api/v1/prompt/:id/favorite
Jogosultság prompts_manage

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.

Útvonal-paraméterek
id integer 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

DELETE /api/v1/prompt/:id/favorite
Jogosultság prompts_manage

Kiveszi a promptot a kedvencek közül.

Útvonal-paraméterek
id integer 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éke short_text, long_text, select, number, json vagy lov.
  • Az options (választó típusú változóknál) [{"label": "...", "value": "..."}] alakú.
  • Az is_primary azt a változót jelöli, amelyet a /run/prompt/last és a /run/prompt/:id rövidített végpont tölt ki.

POST /variable

POST /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.

Kéréstörzs
prompt_version_id uint kötelező
A verzió, amelyhez a változót hozzáadod.
name string kötelező
Megjelenített név.
slug string kötelező
Egyezik a tartalomban lévő {{slug}} helyőrzővel.
description string opcionális
Súgószöveg.
data_type string opcionális
short_text, long_text, select, number, json vagy lov.
default_value string opcionális
Akkor használatos, ha nem küldesz értéket.
required bool opcionális
A POST /instance kényszeríti ki.
sort integer opcionális
Megjelenítési sorrend.
is_primary bool opcionális
Az a változó, amelyet a rövidített végpontok kitöltenek.
is_multi_select bool opcionális
Több opció kiválasztását engedi.
options array opcionális
[{"label", "value"}].
file_types string opcionális
Elfogadott fájltípusok.
default_file_id uint 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

PUT /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.

Útvonal-paraméterek
id integer 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

DELETE /api/v1/variable/:id

Töröl egy változót.

Útvonal-paraméterek
id integer 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

POST /api/v1/instance
Jogosultság prompts_manage

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.

Kéréstörzs
prompt_version_id uint kötelező
A kitöltendő verzió.
variable_values array 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

GET /api/v1/instance/:id
Jogosultság prompts_get

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.

Útvonal-paraméterek
id integer hely: path kötelező
A példány azonosítója.

Promptok futtatása

A modell kiválasztása

VégpontHasznált modell
POST /instance/:id/run és /run/streamAz 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/:idAz ú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/variablesA prompt ai_model_id értéke.
POST /runAz 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
resultA modell válasza Markdownból HTML-re renderelve. A <think> blokkokat a rendszer eltávolítja.
raw_textItt mindig null. A nyers Markdownért olvasd ki a beszélgetést (GET /conversation/:id) vagy a stream raw_text mezőjét.
thinkingHTML-re renderelt gondolatmenet, vagy "".
runtimeA 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_promptA 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, _nameA futtatás által létrehozott vagy folytatott beszélgetés.
is_interactiveFolytatható-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_statuspending, majd generating, végül success vagy error.
error_text, error_idAkkor 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

POST /api/v1/instance/:id/run
Jogosultság run_prompt

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.

Útvonal-paraméterek
id integer hely: path kötelező
A példány azonosítója a POST /instance válaszából.
Query-paraméterek
comparison_mode string hely: query opcionális alapérték false
"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-ID integer 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.
Kéréstörzs
ai_model_ids uint[] 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álasz 503 {"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_style string opcionális
Válaszstílus, például prompty. A szerver nem veszi át automatikusan a promptból, ezért küldd el a prompt ai_style értékét.
attachments array 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_id uint opcionális
Ezt a beszélgetést folytatja, ahelyett hogy újat hozna létre.
is_prompt_studio bool opcionális
Prompt Studio-futtatásként jelöli meg a beszélgetést (forrás: studio). A GET /prompt/:id/run_history csak a Prompt Studióban indított futtatásokat mutatja.
flash_mode bool opcionális
A szerver továbbítja a modellfuttatónak.
reasoning_effort string opcionális
Gondolkodó modellekhez, például low, medium vagy high. Az engedélyezett értékek modellenként eltérnek; ismeretlen érték esetén a modell alapértéke lép életbe.
knowledge_base_ids uint[] 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_ids uint[] opcionális
A keresést ezekre a csomópontokra szűkíti.
world_knowledge bool opcionális
Tudásbázisok mellett: használhatja-e a modell az általános tudását is.
agent_id uint 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.
tools array opcionális
Elemei: {"name", "use", "mcp_tool_id"}. Az mcp_tool_id csak a remote_mcp eszkö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 HTML
const 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átuszMikor
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": "..."}).
404Nem található példány (üres törzs), {"error":"ConversationContext not found"}, {"error":"Agent not found"}, {"error":"Project not found"}.
429Elfogyott a kvóta.
503Egyé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

POST /api/v1/instance/:id/run/stream
Jogosultság run_prompt

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:

  1. 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ényes conversation_context_id azonosítóval.
  2. A tokeneket a szerver a beszélgetés WebSocketjére küldi: GET /conversation/{conversation_context_id}/ws. Ez ugyanazt az Authorization: Bearer headert fogadja, és conversations_get jogosultságot igényel. Szerveroldali kliensek el tudják küldeni ezt a headert, böngészők nem.
  3. Minden frame egy {"type": ..., "data": ...} alakú JSON-szövegüzenet:
typedataMegjegyzés
messageMessage-objektumAz 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_dataRunHistoryAz üzenetfrissítésekkel együtt érkezik. A result az eddigi HTML-t, a run_status az aktuális állapotot tartalmazza.
ai_message_endnincsA generálás sikeresen befejeződött.
error_messageMessage-objektumA 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ő.
  1. Az ai_message_end után a végleges állapotot a GET /conversation/:id hí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

POST /api/v1/run/prompt/last
Jogosultság run_prompt

Ú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).

Kéréstörzs
data string 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

POST /api/v1/run/prompt/:id
Jogosultság run_prompt

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.

Útvonal-paraméterek
id integer hely: path kötelező
A prompt numerikus azonosítója.
Kéréstörzs
data string 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

POST /api/v1/run/prompt/:id/variables
Jogosultság run_prompt MCP-eszköz run_prompt

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).

Útvonal-paraméterek
id integer hely: path kötelező
A prompt numerikus azonosítója. A promptnak a tiédnek vagy veled megosztottnak kell lennie.
Kéréstörzs
variable_values array 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. A required megkötést itt a szerver nem kényszeríti ki.
web_context string 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.
tools array opcionális
Ugyanolyan formátumú, mint a POST /instance/:id/run eseté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

POST /api/v1/run
Jogosultság custom_run MCP-eszköz custom_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.

Kéréstörzs
prompt string kötelező
Az egyetlen felhasználói üzenetként elküldött szöveg.
ai_model_id uint opcionális
Modellazonosító. Ezt vagy az ai_model_name mezőt küldd el.
ai_model_name string opcionális
A szerver a modell version mezőjével, azaz a szolgáltatói szintű modellazonosítóval veti össze. Ezt vagy az ai_model_id mező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 Markdown
const 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 Markdown

Vá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

GET /api/v1/prompt/:id/run_history
Jogosultság prompts_get

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.

Útvonal-paraméterek
id integer hely: path kötelező
A prompt numerikus azonosítója. A promptnak a tiédnek, veled megosztottnak vagy katalógusbeli promptnak kell lennie.
Query-paraméterek
page integer hely: query opcionális alapérték 1
Oldalszám. A lapozási headerek a beszélgetéseket számolják.
size integer hely: query opcionális alapérték 10
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

POST /api/v1/prompt/:id/file
Jogosultság prompts_manage

Feltöltött fájlokat kapcsol egy prompthoz. A korábban kapcsolt fájlok is megmaradnak.

Útvonal-paraméterek
id integer hely: path kötelező
A prompt numerikus azonosítója.
Kéréstörzs
file_ids uint[] 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

GET /api/v1/prompt/:id/file
Jogosultság prompts_get

A prompthoz kapcsolt File-objektumok tömbjét adja vissza. Ha az id nem numerikus, 400 a válasz.

Útvonal-paraméterek
id integer hely: path kötelező
A prompt numerikus azonosítója.

DELETE /prompt/:id/file/:fileId

DELETE /api/v1/prompt/:id/file/:fileId
Jogosultság prompts_manage

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.

Útvonal-paraméterek
id integer hely: path kötelező
A prompt numerikus azonosítója.
fileId integer 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

GET /api/v1/share
Jogosultság prompts_get

A veled megosztott promptokat adja vissza, a legújabbal kezdve.

Query-paraméterek
scope string hely: query opcionális alapérték all
user (közvetlenül veled megosztva), workspace (a munkaterületeddel megosztva) vagy all.
search string hely: query opcionális
Szöveges szűrés.
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, 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

GET /api/v1/prompt/:id/share
Jogosultság prompts_get

Felsorolja azokat a felhasználókat, akikkel egy prompt meg van osztva. Minden Share-elemben teljes user objektum szerepel.

Útvonal-paraméterek
id integer 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

POST /api/v1/share/:id
Jogosultság prompts_manage

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.

Útvonal-paraméterek
id integer hely: path kötelező
A prompt azonosítója.
Kéréstörzs
email string 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

POST /api/v1/share/:id/resend
Jogosultság prompts_manage

Újraküldi a meghívó e-mailt egy olyan felhasználónak, aki még nem regisztrált.

Útvonal-paraméterek
id integer hely: path kötelező
A prompt azonosítója.
Kéréstörzs
email string 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

DELETE /api/v1/share/:id
Jogosultság prompts_manage

Eltávolít egy megosztást, és visszavonja az adott felhasználó függőben lévő meghívóit.

Útvonal-paraméterek
id integer hely: path kötelező
A megosztás azonosítója (a GET /prompt/:id/share válaszában szereplő ID), nem a prompté.

Válasz. 204. Hibák. 404 {"error":"share not found"}.