16 rute, cu exemplu de cerere pentru fiecare.
Adresa de bază: https://app.ilustromania.com/nucleu. Autentificarea, formatul și erorile sunt în Prezentarea API-ului.
Modulul asistent
GET/v1/asistent/acces
Are omul asistent?
Răspunde doar da/nu dacă shell-ul arată asistentul omului din sesiune.
| Câmp | Tip | Obligatoriu | Detalii |
|---|---|---|---|
acces | boolean | da | — |
curl https://app.ilustromania.com/nucleu/v1/asistent/acces \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE"const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/asistent/acces", {
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
},
});
const date = await raspuns.json();import os
import requests
raspuns = requests.get(
"https://app.ilustromania.com/nucleu/v1/asistent/acces",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
)
date = raspuns.json(){
"acces": true
}GET/v1/asistent/conversatii
Conversațiile mele cu asistentul
Lista conversațiilor omului cu asistentul.
| Câmp | Tip | Obligatoriu | Detalii |
|---|---|---|---|
conversatii | object[] | da | — |
conversatii[].id | string | da | UUID |
conversatii[].titlu | string | da | cel mult 200 caractere |
conversatii[].actualizatLa | string | da | moment ISO 8601 |
curl https://app.ilustromania.com/nucleu/v1/asistent/conversatii \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE"const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/asistent/conversatii", {
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
},
});
const date = await raspuns.json();import os
import requests
raspuns = requests.get(
"https://app.ilustromania.com/nucleu/v1/asistent/conversatii",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
)
date = raspuns.json(){
"conversatii": [
{
"id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
"titlu": "text",
"actualizatLa": "2026-11-12T09:30:00.000Z"
}
]
}DELETE/v1/asistent/conversatii/{id}
Șterge o conversație
Șterge o conversație a omului cu asistentul; 404 negăsită.
| Nume | Tip | Descriere |
|---|---|---|
id | string | identificatorul resursei |
curl -X DELETE https://app.ilustromania.com/nucleu/v1/asistent/conversatii/{id} \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE"const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/asistent/conversatii/{id}", {
method: "DELETE",
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
},
});
const date = await raspuns.json();import os
import requests
raspuns = requests.delete(
"https://app.ilustromania.com/nucleu/v1/asistent/conversatii/{id}",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
)
date = raspuns.json()PATCH/v1/asistent/conversatii/{id}
Redenumește o conversație
Schimbă titlul unei conversații cu asistentul.
| Nume | Tip | Descriere |
|---|---|---|
id | string | identificatorul resursei |
| Câmp | Tip | Obligatoriu | Detalii |
|---|---|---|---|
titlu | string | da | între 1 și 200 caractere |
curl -X PATCH https://app.ilustromania.com/nucleu/v1/asistent/conversatii/{id} \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
-H "Content-Type: application/json" \
-d '{
"titlu": "text"
}'const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/asistent/conversatii/{id}", {
method: "PATCH",
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"titlu": "text"
}),
});
const date = await raspuns.json();import os
import requests
raspuns = requests.patch(
"https://app.ilustromania.com/nucleu/v1/asistent/conversatii/{id}",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
json={
"titlu": "text",
},
)
date = raspuns.json()GET/v1/asistent/conversatii/{id}/mesaje
Mesajele unei conversații
Istoricul mesajelor unei conversații a omului cu asistentul.
| Nume | Tip | Descriere |
|---|---|---|
id | string | identificatorul resursei |
| Câmp | Tip | Obligatoriu | Detalii |
|---|---|---|---|
mesaje | object[] | da | — |
mesaje[].id | integer | da | între 0 și 9007199254740991 |
mesaje[].rol | string | da | una din: utilizator, asistent |
mesaje[].titlu | string | da | cel mult 200 caractere |
mesaje[].text | string | da | cel mult 20000 caractere |
mesaje[].carduri | object[] | da | cel mult 20 elemente |
mesaje[].carduri[].tip | string | da | una din: produs, vanzari, comparatie, recenzie, reducere |
mesaje[].carduri[].titlu | string | da | între 1 și 200 caractere |
mesaje[].carduri[].produsId | string | nu | între 1 și 60 caractere |
mesaje[].carduri[].categorie | string | nu | între 1 și 100 caractere |
mesaje[].carduri[].marcat | string | nu | între 1 și 60 caractere |
mesaje[].carduri[].poza | string | nu | cel mult 500 caractere |
mesaje[].carduri[].etichete | string[] | da | cel mult 4 elemente |
mesaje[].carduri[].cifre | object[] | da | cel mult 4 elemente |
mesaje[].carduri[].stare | object | nu | — |
mesaje[].carduri[].link | object | da | — |
mesaje[].carduri[].actiune | string | nu | între 1 și 40 caractere |
mesaje[].carduri[].motiv | string | nu | cel mult 300 caractere |
mesaje[].urmatorul | string[] | da | cel mult 3 elemente |
curl https://app.ilustromania.com/nucleu/v1/asistent/conversatii/{id}/mesaje \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE"const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/asistent/conversatii/{id}/mesaje", {
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
},
});
const date = await raspuns.json();import os
import requests
raspuns = requests.get(
"https://app.ilustromania.com/nucleu/v1/asistent/conversatii/{id}/mesaje",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
)
date = raspuns.json(){
"mesaje": [
{
"id": 1,
"rol": "utilizator",
"titlu": "text",
"text": "text",
"carduri": [],
"urmatorul": []
}
]
}POST/v1/asistent/feedback
Votează un răspuns
Omul dă vot unui mesaj al asistentului.
| Câmp | Tip | Obligatoriu | Detalii |
|---|---|---|---|
mesajId | integer | da | între 0 și 9007199254740991 |
vot | number | number | da | — |
curl -X POST https://app.ilustromania.com/nucleu/v1/asistent/feedback \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
-H "Content-Type: application/json" \
-d '{
"mesajId": 1,
"vot": 1
}'const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/asistent/feedback", {
method: "POST",
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"mesajId": 1,
"vot": 1
}),
});
const date = await raspuns.json();import os
import requests
raspuns = requests.post(
"https://app.ilustromania.com/nucleu/v1/asistent/feedback",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
json={
"mesajId": 1,
"vot": 1,
},
)
date = raspuns.json()POST/v1/asistent/mesaj
Trimite un mesaj asistentului
Întrebarea omului merge la asistentul AI, cu limită pe utilizator (429); 503 fără furnizor configurat.
curl -X POST https://app.ilustromania.com/nucleu/v1/asistent/mesaj \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
-H "Content-Type: application/json" \
-d '{ … }'const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/asistent/mesaj", {
method: "POST",
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ … }),
});
const date = await raspuns.json();import os
import requests
raspuns = requests.post(
"https://app.ilustromania.com/nucleu/v1/asistent/mesaj",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
json={ … },
)
date = raspuns.json()GET/v1/asistent/stare
Sănătatea asistentului
Ce furnizori AI sunt configurați, cine a răspuns ultima dată și de ce s-a trecut pe rezervă.
curl https://app.ilustromania.com/nucleu/v1/asistent/stare \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE"const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/asistent/stare", {
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
},
});
const date = await raspuns.json();import os
import requests
raspuns = requests.get(
"https://app.ilustromania.com/nucleu/v1/asistent/stare",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
)
date = raspuns.json()POST/v1/asistent/voce/sesiune
Deschide vocea asistentului
Primește oferta SDP a browserului și întoarce răspunsul SDP al sesiunii vocale (OpenAI Realtime prin WebRTC). Aceleași porți ca la mesaj: sesiune, lista asistentului (403), limita pe zi (429); 503 fără cheie, 502 când furnizorul cade.
curl -X POST https://app.ilustromania.com/nucleu/v1/asistent/voce/sesiune \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
-H "Content-Type: application/json" \
-d '{ … }'const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/asistent/voce/sesiune", {
method: "POST",
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ … }),
});
const date = await raspuns.json();import os
import requests
raspuns = requests.post(
"https://app.ilustromania.com/nucleu/v1/asistent/voce/sesiune",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
json={ … },
)
date = raspuns.json()Modulul chat
GET/v1/chat/conversatii
Conversațiile din chat
Conversațiile echipei în care e omul din sesiune.
| Câmp | Tip | Obligatoriu | Detalii |
|---|---|---|---|
conversatii | object[] | da | — |
conversatii[].id | string | da | UUID |
conversatii[].tip | string | da | una din: direct, grup, general |
conversatii[].nume | string | da | — |
conversatii[].membri | string[] | da | — |
conversatii[].ultimulMesaj | object | da | — |
conversatii[].ultimulMesaj.seq | integer | da | între 0 și 9007199254740991 |
conversatii[].ultimulMesaj.id | string | da | UUID |
conversatii[].ultimulMesaj.conversatieId | string | da | UUID |
conversatii[].ultimulMesaj.autorId | string | da | UUID |
conversatii[].ultimulMesaj.text | string | da | între 1 și 4000 caractere |
conversatii[].ultimulMesaj.creatLa | string | da | moment ISO 8601 |
conversatii[].necitite | integer | da | între 0 și 9007199254740991 |
curl https://app.ilustromania.com/nucleu/v1/chat/conversatii \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE"const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/chat/conversatii", {
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
},
});
const date = await raspuns.json();import os
import requests
raspuns = requests.get(
"https://app.ilustromania.com/nucleu/v1/chat/conversatii",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
)
date = raspuns.json(){
"conversatii": [
{
"id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
"tip": "direct",
"nume": "text",
"membri": [],
"ultimulMesaj": {},
"necitite": 1
}
]
}POST/v1/chat/conversatii
Deschide o conversație
Creează o conversație directă sau un grup (201 grup nou).
curl -X POST https://app.ilustromania.com/nucleu/v1/chat/conversatii \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
-H "Content-Type: application/json" \
-d '{ … }'const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/chat/conversatii", {
method: "POST",
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ … }),
});
const date = await raspuns.json();import os
import requests
raspuns = requests.post(
"https://app.ilustromania.com/nucleu/v1/chat/conversatii",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
json={ … },
)
date = raspuns.json()POST/v1/chat/conversatii/{id}/citit
Marchează conversația citită
Marchează mesajele citite până la un punct și întoarce totalul necitit.
| Nume | Tip | Descriere |
|---|---|---|
id | string | identificatorul resursei |
curl -X POST https://app.ilustromania.com/nucleu/v1/chat/conversatii/{id}/citit \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
-H "Content-Type: application/json" \
-d '{ … }'const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/chat/conversatii/{id}/citit", {
method: "POST",
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ … }),
});
const date = await raspuns.json();import os
import requests
raspuns = requests.post(
"https://app.ilustromania.com/nucleu/v1/chat/conversatii/{id}/citit",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
json={ … },
)
date = raspuns.json()GET/v1/chat/conversatii/{id}/mesaje
Mesajele unei conversații
Mesajele conversației, paginate înapoi de la un cursor.
| Nume | Tip | Descriere |
|---|---|---|
id | string | identificatorul resursei |
curl https://app.ilustromania.com/nucleu/v1/chat/conversatii/{id}/mesaje \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE"const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/chat/conversatii/{id}/mesaje", {
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
},
});
const date = await raspuns.json();import os
import requests
raspuns = requests.get(
"https://app.ilustromania.com/nucleu/v1/chat/conversatii/{id}/mesaje",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
)
date = raspuns.json()POST/v1/chat/conversatii/{id}/mesaje
Trimite un mesaj în chat
Adaugă un mesaj în conversație și anunță fluxul live; limită pe cont (429).
| Nume | Tip | Descriere |
|---|---|---|
id | string | identificatorul resursei |
curl -X POST https://app.ilustromania.com/nucleu/v1/chat/conversatii/{id}/mesaje \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
-H "Content-Type: application/json" \
-d '{ … }'const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/chat/conversatii/{id}/mesaje", {
method: "POST",
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ … }),
});
const date = await raspuns.json();import os
import requests
raspuns = requests.post(
"https://app.ilustromania.com/nucleu/v1/chat/conversatii/{id}/mesaje",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
json={ … },
)
date = raspuns.json()GET/v1/chat/flux
Fluxul live al chatului
Flux SSE cu mesajele noi, reluat după Last-Event-ID sau cursor.
curl https://app.ilustromania.com/nucleu/v1/chat/flux \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE"const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/chat/flux", {
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
},
});
const date = await raspuns.json();import os
import requests
raspuns = requests.get(
"https://app.ilustromania.com/nucleu/v1/chat/flux",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
)
date = raspuns.json()GET/v1/chat/necitite
Mesaje necitite
Totalul mesajelor necitite ale omului.
| Câmp | Tip | Obligatoriu | Detalii |
|---|---|---|---|
total | integer | da | între 0 și 9007199254740991 |
curl https://app.ilustromania.com/nucleu/v1/chat/necitite \
-H "Cookie: __Host-sesiune=$JETON_SESIUNE"const raspuns = await fetch("https://app.ilustromania.com/nucleu/v1/chat/necitite", {
headers: {
"Cookie": `__Host-sesiune=${process.env.JETON_SESIUNE}`,
},
});
const date = await raspuns.json();import os
import requests
raspuns = requests.get(
"https://app.ilustromania.com/nucleu/v1/chat/necitite",
headers={"Cookie": "__Host-sesiune=" + os.environ["JETON_SESIUNE"]},
)
date = raspuns.json(){
"total": 1
}