Gyors kezdés
Hozz létre egy API-kulcsot, listázd az elérhető modelleket, kérdezz egy modelltől, folytass beszélgetést, és futtass egy mentett promptot. Nagyjából öt perc az egész.
Ezen az oldalon a nulláról indulva eljutsz az első működő hívásokig a StickyPrompts REST API-jával. Minden példa elérhető cURL, Python (requests) és JavaScript (fetch, Node 18 vagy újabb) változatban. Ugyanez a kulcs az MCP-szerverhez is jó, így ha már megvan, a Claude Code-ot vagy a Cursort is csatlakoztathatod.
Minden REST-útvonal a https://api.stickyprompts.com/api/v1 alapcímhez képest értendő.
1. Hozz létre egy API-kulcsot
- Nyisd meg a Settings > API keys oldalt
Az alkalmazásban lépj a Settings oldalra, és válaszd az API keys menüpontot. Az oldalon mindkét alap-URL és a küldendő header pontos formája is látható.
- Generálj kulcsot a szükséges jogosultságokkal
Kattints a Generate key gombra, adj nevet a kulcsnak (például Quickstart), és jelöld be a jogosultságait. Ehhez az oldalhoz ezekre lesz szükséged:
ai_models_get- modellek listázásacustom_run- közvetlen kérdés egy modellnekconversations_manage- beszélgetések indítása és folytatásaprompts_getésrun_prompt- mentett promptok keresése és futtatása
- Most másold ki a kulcsot
A teljes kulcs (
STICKY-API-, majd 64 karakter) csak egyszer jelenik meg. Másold be azonnal a titokkezelődbe. Ha elveszíted, töröld a kulcsot, és generálj egy újat.
2. Tárold környezeti változóban
A kulcs ne kerüljön a kódodba. Az alábbi példák mind a STICKY_API_KEY változóból olvassák ki.
export STICKY_API_KEY="STICKY-API-..."
Minden kérés Bearer-tokenként küldi el:
Authorization: Bearer STICKY-API-...
3. Listázd az elérhető modelleket
/api/v1/ai_model A modelleket a numerikus ID azonosítja, a többi végpont ezt ai_model_id néven várja. A legacy=false paraméterrel elrejtheted az elavult modelleket. Csak olyan modellt használj, amelynél a selectable értéke true - a false azt jelenti, hogy a munkaterületed modellhozzáférési vagy adatrezidencia-szabályai számodra letiltják.
curl "https://api.stickyprompts.com/api/v1/ai_model?legacy=false" \
-H "Authorization: Bearer $STICKY_API_KEY"import os
import requests
BASE = "https://api.stickyprompts.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['STICKY_API_KEY']}"}
r = requests.get(f"{BASE}/ai_model", params={"legacy": "false"}, headers=HEADERS)
r.raise_for_status()
for m in r.json():
if m["selectable"]:
print(m["ID"], m["name"], m["powered_by"])const BASE = "https://api.stickyprompts.com/api/v1";
const headers = { Authorization: `Bearer ${process.env.STICKY_API_KEY}` };
const res = await fetch(`${BASE}/ai_model?legacy=false`, { headers });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
for (const m of await res.json()) {
if (m.selectable) console.log(m.ID, m.name, m.powered_by);
}A válasz egy JSON-tömb. Itt csak a leghasznosabb mezőket mutatjuk (az értékek csak példák):
[
{
"ID": 42,
"name": "Claude Sonnet 5",
"powered_by": "Anthropic",
"description": "Balanced model for everyday work.",
"flagship": true,
"deprecated": false,
"thinking_model": true,
"reasoning_efforts": ["low", "medium", "high"],
"tools": ["file_upload", "web_search", "remote_mcp"],
"multiplier": "1",
"stream_support": true,
"selectable": true
}
]
Figyelj a vegyes írásmódra: az ID nagybetűs, minden más mező snake_case. A tizedes értékek, például a multiplier, stringként érkeznek. Részletek: Hibák, lapozás és kvóták.
4. Kérdezz egy modelltől
/api/v1/run A POST /run egyetlen szöveget küld el egy modellnek, és visszaadja a válaszát. Beszélgetés nem jön létre, és a rendszer nem fűz hozzá rendszerpromptot, munkaterület-promptot vagy projektutasításokat. A felhasználást ettől még rögzíti.
curl -X POST https://api.stickyprompts.com/api/v1/run \
-H "Authorization: Bearer $STICKY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt": "Write a one-line tagline for Northwind Analytics.", "ai_model_id": 42}'r = requests.post(
f"{BASE}/run",
headers=HEADERS,
json={"prompt": "Write a one-line tagline for Northwind Analytics.", "ai_model_id": 42},
)
r.raise_for_status()
print(r.json()["text"])const res = await fetch(`${BASE}/run`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/json" },
body: JSON.stringify({
prompt: "Write a one-line tagline for Northwind Analytics.",
ai_model_id: 42,
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
console.log((await res.json()).text);Az eredmény egy nem mentett üzenetobjektum (az ID értéke 0). A modell válasza a text mezőben van, nyers Markdown formátumban:
{
"ID": 0,
"ai_model_id": 42,
"text": "Northwind Analytics: see what sells before it sells out.",
"isUser": false,
"status": "finished",
"ai_style": "prompty",
"error_text": null,
"error_id": null
}
5. Indíts egy beszélgetést, és folytasd
/api/v1/conversation A beszélgetést a rendszer elmenti, és ugyanúgy megjelenik az alkalmazás Chat History oldalán, mint egy ott indított chat. A POST /conversation létrehozza a beszélgetést, elküldi az első üzenetet, és megvárja a teljes választ. Mindig adj meg modellt: vagy az ai_model_id mezőt, vagy az auto_model_type mezőt (best, balanced vagy cheapest), ha azt szeretnéd, hogy a StickyPrompts minden üzenethez a feladatra legjobb modellt válassza.
curl -X POST https://api.stickyprompts.com/api/v1/conversation \
-H "Authorization: Bearer $STICKY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"message": "Draft three subject lines for the Northwind Q4 newsletter.",
"ai_model_id": 42
}'r = requests.post(
f"{BASE}/conversation",
headers=HEADERS,
json={
"message": "Draft three subject lines for the Northwind Q4 newsletter.",
"ai_model_id": 42,
},
)
r.raise_for_status()
reply = r.json()
conversation_id = reply["conversation_context_id"]
print(reply["raw_text"])const res = await fetch(`${BASE}/conversation`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/json" },
body: JSON.stringify({
message: "Draft three subject lines for the Northwind Q4 newsletter.",
ai_model_id: 42,
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const reply = await res.json();
const conversationId = reply.conversation_context_id;
console.log(reply.raw_text);A válasz a kész AI-üzenet. A conversation_context_id mezője az új beszélgetés azonosítója (rövidítve):
{
"ID": 90412,
"CreatedAt": "2026-09-28T09:14:03.512Z",
"conversation_context_id": 5120,
"ai_model_id": 42,
"is_auto_model": false,
"text": "Here are three options for the subject line: ...",
"raw_text": "Here are three options for the subject line: ...",
"isUser": false,
"status": "finished",
"error_text": null,
"error_id": null,
"response_duration_ms": 6210,
"attachments": []
}
Ugyanebbe a beszélgetésbe a POST /conversation/{id} hívással küldhetsz újabb üzenetet. A folytató hívás csak az üzenetet várja (és opcionálisan csatolmányokat, tudásbázisokat és eszközöket); a beszélgetés modellje nem változik.
/api/v1/conversation/:id curl -X POST https://api.stickyprompts.com/api/v1/conversation/5120 \
-H "Authorization: Bearer $STICKY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"message": "Make the second one shorter and more playful."}'r = requests.post(
f"{BASE}/conversation/{conversation_id}",
headers=HEADERS,
json={"message": "Make the second one shorter and more playful."},
)
r.raise_for_status()
print(r.json()["raw_text"])const res2 = await fetch(`${BASE}/conversation/${conversationId}`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/json" },
body: JSON.stringify({ message: "Make the second one shorter and more playful." }),
});
if (!res2.ok) throw new Error(`${res2.status} ${await res2.text()}`);
console.log((await res2.json()).raw_text);A válasz ugyanilyen üzenetobjektum. Hosszú válaszokhoz használhatod helyette a POST /conversation/stream végpontot: ez azonnal visszaadja a beszélgetés azonosítóját, a választ pedig WebSocketen keresztül küldi. Részletek: Beszélgetések és üzenetek.
6. Futtass egy mentett promptot változókkal
/api/v1/run/prompt/:id/variables A mentett promptok {{variables}} formájú változókat tartalmaznak. Ez a végpont egyetlen hívással kitölti őket, és lefuttatja a promptot a saját modelljével és válaszstílusával. A futtatás új beszélgetést hoz létre.
Kétféle azonosítóra lesz szükséged:
- A prompt azonosítója. Listázd a promptjaidat a
GET /prompthívással (jogosultság:prompts_get), és olvasd ki az egyes promptokIDmezőjét. - A változók azonosítói. A
variable_valuesminden eleme a numerikusvariable_idalapján hivatkozik egy változóra. API-kulccsal nem kérhetsz le egyetlen promptot a változóival együtt (aGET /prompt/:idkulccsal nem érhető el), ezért az azonosítókat az alábbiak egyikéből vedd: a prompt futtatási előzményeiből (aGET /prompt/:id/run_historyminden futtatás változóit felsorolja avariable_id,slugésvaluemezővel), egy példányból (GET /instance/:id), vagy aPOST /variableválaszából, ha a változót az API-n keresztül hoztad létre. Elég egyszer kikeresned őket, utána tárold el a konfigurációdban. Részletek: Promptok és futtatások.
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": "Bluebird Market"},
{"variable_id": 302, "value": "Growth plan renewal"}
]
}'r = requests.post(
f"{BASE}/run/prompt/42/variables",
headers=HEADERS,
json={
"variable_values": [
{"variable_id": 301, "value": "Bluebird Market"},
{"variable_id": 302, "value": "Growth plan renewal"},
]
},
)
r.raise_for_status()
run = r.json()
print(run["run_status"], run["result"])const res3 = await fetch(`${BASE}/run/prompt/42/variables`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/json" },
body: JSON.stringify({
variable_values: [
{ variable_id: 301, value: "Bluebird Market" },
{ variable_id: 302, value: "Growth plan renewal" },
],
}),
});
if (!res3.ok) throw new Error(`${res3.status} ${await res3.text()}`);
const run = await res3.json();
console.log(run.run_status, run.result);Azok a változók, amelyeket kihagysz vagy üresen küldesz, az alapértelmezett értéküket kapják. A válasz egyetlen futtatási objektum (rövidítve):
{
"id": 7781,
"created_at": "2026-09-28T09:12:03Z",
"result": "<p>Hi Sarah, it has been a great year with Bluebird Market ...</p>\n",
"raw_text": null,
"runtime": 4210,
"ai_model_id": 42,
"conversation_context_id": 16044,
"conversation_context_slug": "q8w2m1zc",
"error_text": null,
"error_id": null,
"run_status": "success"
}
Amit érdemes tudni:
- A
resulta modell Markdown-válaszából renderelt HTML. A nyers Markdownhoz olvasd ki a beszélgetést aGET /conversation/16044hívással. - Szolgáltatói hiba esetén is
200-as választ kapsz,run_status: "error"értékkel és kitöltötterror_text/error_idmezővel. Mindig ellenőrizd arun_statusértékét. - Ha csak egy bemenetet kell módosítanod, a
POST /run/prompt/:idhívás a{"data": "..."}törzzsel újrafuttatja a prompt legutóbbi futtatását, az elsődleges változóban az új szöveggel - ehhez nem kellenek változóazonosítók.
Következő lépések
Minden kulcs csak annyit kapjon, amennyire az integrációjának szüksége van.
Hibák, lapozás és kvótákA 401-es, 403-as és 429-es válaszok kezelése és a listák lapozása.
MCP-kliens csatlakoztatásaUgyanazt a kulcsot használhatod a Claude Code-ból, a Cursorból vagy a VS Code-ból is.
Beszélgetések és üzenetekStreaming, csatolmányok, tudásbázisok és ügynökök a chatekben.