Endpoint
Modificare un’app
Modifica un’app a partire da un’istruzione, come fa l’editor.
https://www.setherion.com/api/v1/projects/{id}/editPiano: Ogni piano
Esegue la stessa modifica che si ottiene scrivendo un’istruzione nell’editor di Setherion. È la stessa route che sta dietro al riquadro dell’editor, quindi valgono gli stessi crediti, le stesse regole del piano e gli stessi controlli di sicurezza, e il risultato viene salvato e aggiunto alla cronologia dell’app come qualsiasi altra modifica.
Devi poter modificare l’app: è tua, sei editor o admin del suo spazio di lavoro, oppure è stata condivisa con te come editor.
I crediti vengono presi dall’account che paga l’app, cioè quello del suo creatore, non necessariamente il tuo. Se lo spazio di lavoro dell’app limita quanto puoi spendere, vale anche quel limite.
La modifica è salvata, ma non è online finché l’app non viene pubblicata. Chiama Pubblicare un’app quando sei pronto.
Richiesta
curl -X POST https://www.setherion.com/api/v1/projects/7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14/edit \
-H "Authorization: Bearer $SETHERION_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "prompt": "Make the buttons green and add an opening hours section" }'| Campo | Tipo | Significato |
|---|---|---|
prompt | string, obbligatorio | Che cosa modificare, in qualsiasi lingua. Gli spazi attorno vengono ignorati. Fino a 4.000 caratteri. |
model | string, facoltativo | auto se omesso: Setherion sceglie all’interno del tuo piano, come nell’editor. Un modello che il tuo piano non include viene sostituito dal migliore che include, non rifiutato. |
L’app deve avere già del codice. Un’app che non è mai stata creata risponde 409.
Risponde quando la modifica è finita
Una modifica richiede da uno a diversi minuti, e la richiesta resta aperta finché non è terminata. Una modifica che supera circa 13 minuti viene interrotta dal server.
Mentre lavora, Setherion invia uno spazio ogni 10 secondi, perché nulla tra te e noi chiuda una connessione silenziosa. Gli spazi prima del JSON sono ancora JSON valido: leggi tutto il corpo, poi analizzalo.
Una volta iniziata la modifica lo stato è 200 qualunque cosa accada, e ok dice come è andata. L’header X-Setherion-Run della risposta contiene il runId della modifica fin dal primo momento, prima del corpo.
Chiudere la connessione non ferma la modifica
Se il tuo client rinuncia o la connessione cade, la modifica prosegue e arriva nell’app come se avessi aspettato, e i suoi crediti vengono spesi. Conserva l’header X-Setherion-Run e chiedi a che punto è la modifica con Seguire una modifica. Per fermare una modifica a metà, premi Stop nell’editor di Setherion, sulla scheda che la mostra in corso.
Risposta
Una modifica terminata:
{
"ok": true,
"runId": "b3f0e2d1-6a47-4c8e-9d15-0f2b7a3c8e61",
"projectId": "7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14",
"changed": {
"added": ["src/components/OpeningHours.tsx"],
"modified": ["src/App.tsx", "src/index.css"],
"removed": []
}
}| Campo | Tipo | Significato |
|---|---|---|
ok | boolean | true quando la modifica è terminata ed è stata salvata. |
runId | string | L’id della modifica. Omesso quando Setherion non ha saputo dirlo. |
projectId | string | L’app che ha modificato. Omesso quando Setherion non ha saputo dirlo. |
changed | object | I file che la modifica ha aggiunto, cambiato e rimosso, ciascuno un elenco ordinato di percorsi. Omesso quando Setherion non ha saputo dirlo, il che non è lo stesso che dire che nulla è cambiato. |
builds | false | Presente solo quando l’app modificata non si compila più. La modifica è stata scritta e i suoi crediti tornano indietro. La sua assenza non è una promessa che l’app si compili. |
refundedCredits | number | Quanti crediti sono tornati indietro, quando alcuni lo hanno fatto. |
Una modifica che ha rotto la compilazione dell’app:
{
"ok": true,
"runId": "b3f0e2d1-6a47-4c8e-9d15-0f2b7a3c8e61",
"projectId": "7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14",
"changed": { "added": [], "modified": ["src/App.tsx"], "removed": [] },
"builds": false,
"refundedCredits": 10
}Una modifica che non è avvenuta:
{ "ok": false, "error": "This edit costs 10 credits and you have 3.", "outOfCredits": true }outOfCredits è presente, e true, solo quando l’account che paga la modifica non ha più crediti. Ogni altro rifiuto ha ok: false e un error e nient’altro.
Perché una modifica può rispondere ok: false
Queste risposte arrivano con stato 200, perché la modifica era iniziata.
This edit costs 10 credits and you have 3.conoutOfCredits: true. Il numero è il prezzo di quella modifica e il tuo saldo. Su un’app di qualcun altro la frase èThis app's owner has no credits left this month, so this edit cannot run., e non nomina mai il suo saldo.You have used 40 of the 100 credits a month this workspace allows you on its owner's plan. Ask an admin to raise it.conoutOfCredits: true, quando il proprietario di uno spazio di lavoro ha limitato quanto puoi spendere.You're working faster than our safety limit allows (120 an hour). You can carry on in about 12 minutes.Le modifiche e le creazioni sono limitate a 120 all’ora per account.The edit stopped before it finished. Nothing was charged for it.L’esecuzione si è conclusa senza finire.The edit could not start.oppureThe edit failed: ...quando qualcosa è andato storto da parte nostra. Riprova.
Seguire una modifica
https://www.setherion.com/api/v1/projects/{id}/edit?run={runId}Piano: Ogni piano
A che punto è una modifica, per un client che ha smesso di aspettare o non ha mai aspettato. Gratuito, e puoi chiederlo senza problemi ogni minuto circa.
curl "https://www.setherion.com/api/v1/projects/7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14/edit?run=b3f0e2d1-6a47-4c8e-9d15-0f2b7a3c8e61" \
-H "Authorization: Bearer $SETHERION_API_KEY"{
"ok": true,
"status": "done",
"runId": "b3f0e2d1-6a47-4c8e-9d15-0f2b7a3c8e61",
"projectId": "7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14",
"startedAt": "2026-10-16T15:13:02.118Z"
}status | ok | Significato |
|---|---|---|
running | true | Sta ancora lavorando. Chiedi di nuovo tra un minuto circa. |
done | true | Terminata e salvata nell’app. Pubblicala quando sei pronto. Con cutShort: true è stata salvata appena il codice è stato scritto, senza gli ultimi ritocchi. |
stopped | false | Fermata prima di finire. Nell’app non è cambiato nulla. |
failed | false | Fallita. Nell’app non è cambiato nulla. |
stalled | false | Non si muove da diversi minuti e probabilmente si è fermata. Apri l’app in Setherion per vedere a che punto è arrivata. |
Una risposta con false porta anche una frase error, e la modifica può essere inviata di nuovo. Questa risposta non elenca i file cambiati: lo fa solo la risposta della modifica stessa.
| Stato | error |
|---|---|
400 | Say which edit, in "run": the runId its POST answered. |
404 | No such app on this account. or No such edit on this app. |
Errori prima che la modifica inizi
| Stato | Quando |
|---|---|
400 | prompt manca, è vuoto o è più lungo di 4.000 caratteri. |
401 | La chiave manca, è sbagliata o è stata revocata. |
404 | Non esiste un’app così, oppure la tua chiave non può modificarla. Questo include un’app che puoi solo visualizzare. |
409 | L’app non ha ancora codice. Creala prima in Setherion. |
Le frasi esatte
| Stato | error |
|---|---|
400 | Say what to change, in "prompt". |
400 | Keep "prompt" under 4,000 characters. |
404 | No such app on this account. |
409 | This app has no code yet. Build it in Setherion first, then edit it here. |
Questa pagina ti è stata utile?
