Endpoint

Modificare un’app

Modifica un’app a partire da un’istruzione, come fa l’editor.

POSThttps://www.setherion.com/api/v1/projects/{id}/edit

Piano: 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

bash
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" }'
CampoTipoSignificato
promptstring, obbligatorioChe cosa modificare, in qualsiasi lingua. Gli spazi attorno vengono ignorati. Fino a 4.000 caratteri.
modelstring, facoltativoauto 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:

json
{
  "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": []
  }
}
CampoTipoSignificato
okbooleantrue quando la modifica è terminata ed è stata salvata.
runIdstringL’id della modifica. Omesso quando Setherion non ha saputo dirlo.
projectIdstringL’app che ha modificato. Omesso quando Setherion non ha saputo dirlo.
changedobjectI 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.
buildsfalsePresente 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.
refundedCreditsnumberQuanti crediti sono tornati indietro, quando alcuni lo hanno fatto.

Una modifica che ha rotto la compilazione dell’app:

json
{
  "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:

json
{ "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. con outOfCredits: 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. con outOfCredits: 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. oppure The edit failed: ... quando qualcosa è andato storto da parte nostra. Riprova.

Seguire una modifica

GEThttps://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.

bash
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"
json
{
  "ok": true,
  "status": "done",
  "runId": "b3f0e2d1-6a47-4c8e-9d15-0f2b7a3c8e61",
  "projectId": "7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14",
  "startedAt": "2026-10-16T15:13:02.118Z"
}
statusokSignificato
runningtrueSta ancora lavorando. Chiedi di nuovo tra un minuto circa.
donetrueTerminata e salvata nell’app. Pubblicala quando sei pronto. Con cutShort: true è stata salvata appena il codice è stato scritto, senza gli ultimi ritocchi.
stoppedfalseFermata prima di finire. Nell’app non è cambiato nulla.
failedfalseFallita. Nell’app non è cambiato nulla.
stalledfalseNon 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.

Statoerror
400Say which edit, in "run": the runId its POST answered.
404No such app on this account. or No such edit on this app.

Errori prima che la modifica inizi

StatoQuando
400prompt manca, è vuoto o è più lungo di 4.000 caratteri.
401La chiave manca, è sbagliata o è stata revocata.
404Non esiste un’app così, oppure la tua chiave non può modificarla. Questo include un’app che puoi solo visualizzare.
409L’app non ha ancora codice. Creala prima in Setherion.
Le frasi esatte
Statoerror
400Say what to change, in "prompt".
400Keep "prompt" under 4,000 characters.
404No such app on this account.
409This app has no code yet. Build it in Setherion first, then edit it here.

Questa pagina ti è stata utile?

Unisciti alla community

Domande, idee e cosa stanno creando gli altri.