Team Evoluto AI

API REST v1

Lo stesso motore della console, nei tuoi gestionali, CRM e flussi documentali. Una chiave personale, risposte JSON, router automatico tra modelli e strumenti.

Genera la tua chiave API

Autenticazione

Ogni richiesta porta l'intestazione Authorization: Bearer tea_…. Le chiavi si creano dal profilo, vengono mostrate una sola volta e si possono revocare in qualsiasi momento. Nel database ne conserviamo solo l'impronta SHA-256.

Limiti

LimiteValoreRisposta se superato
Richieste per chiave10 al minuto429 con Retry-After
Messaggi AI per accountquota giornaliera del piano429
Capacità del motoregestita dal governor (limiti Groq per modello)429 con secondi di attesa
Lunghezza del messaggio6.000 caratteri400

POST /v1.php — chat

Il campo mode è facoltativo: con auto il router sceglie tra rapido, profondo, web (ricerca con fonti) e codice (Python in sandbox). Passa conversation per continuare una conversazione: la memoria viene gestita lato server.

curl -X POST https://teamevoluto.it/v1.php \
  -H "Authorization: Bearer tea_LA_TUA_CHIAVE" \
  -H "Content-Type: application/json" \
  -d '{"endpoint":"chat","message":"EBITDA 6,4 M€, PFN 10,8 M€, covenant PFN/EBITDA ≤ 3: simula 20.000 scenari 2027 con perdita del 32% dei ricavi al 35%","mode":"auto"}'

Risposta:

{
  "object": "chat.completion",
  "conversation": "8911caea0ddf6d50e2ba0e3c062caaa4",
  "message_id": 42,
  "mode": "codice",
  "engine": "GPT-OSS 120B",
  "content": "## Sintesi esecutiva\n…",
  "citations": [],
  "code": [{ "code": "…", "output": "breach_probability = 0.511" }],
  "usage": { "prompt": 1850, "cached": 1024, "completion": 420 },
  "latency_ms": 1840,
  "quota_left_today": 57
}

POST /v1.php — redteam

Sottopone una risposta già generata al red team DAVS e restituisce il report strutturato.

{"endpoint":"redteam","message_id":42}

→ { "object":"davs.report", "verdetto":"…", "contradiction_score":0.34,
    "banda_confidenza":"MEDIA", "a_rischio":false,
    "panel":[{"ruolo":"CFO","posizione":"contesta","argomento":"…"}],
    "failure_modes":[{"descrizione":"…","gravita":"critico","probabilita":"media"}],
    "condizioni_falsificazione":["…"], "chi_dissentirebbe":"…" }

GET /v1.php?endpoint=…

  • models: modalità disponibili e motore usato.
  • me: piano e quota residua di oggi.
  • conversations: elenco delle conversazioni (parametro q per cercare).

Esempi

Python

import requests
r = requests.post("https://teamevoluto.it/v1.php",
    headers={"Authorization": "Bearer tea_LA_TUA_CHIAVE"},
    json={"endpoint": "chat", "message": "Rischi principali di un contratto di agenzia", "mode": "profondo"},
    timeout=120)
r.raise_for_status()
print(r.json()["content"])

JavaScript

const r = await fetch("https://teamevoluto.it/v1.php", {
  method: "POST",
  headers: { Authorization: "Bearer tea_LA_TUA_CHIAVE", "Content-Type": "application/json" },
  body: JSON.stringify({ endpoint: "chat", message: "Bandi aperti per PMI in Calabria", mode: "web" }),
});
const data = await r.json();
console.log(data.content, data.citations);

PHP

$ch = curl_init('https://teamevoluto.it/v1.php');
curl_setopt_array($ch, [
    CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 120,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer tea_LA_TUA_CHIAVE', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode(['endpoint' => 'chat', 'message' => 'Sintesi della NIS2 per una PMI']),
]);
$data = json_decode(curl_exec($ch), true);

Errori

Tutti gli errori rispondono con {"ok": false, "error": "messaggio leggibile", "ref": "codice"}. Comunica il codice ref al supporto per l'analisi.

CodiceSignificato
400Richiesta non valida (campo mancante o formato errato)
401Chiave assente, errata o revocata
404Conversazione o messaggio non trovati per il tuo account
413Richiesta troppo grande per il modello
429Limite raggiunto: rispetta Retry-After
503Manutenzione o motore non configurato