Endpoints

Editar um app

Mude um app a partir de uma instrução, do jeito que o editor faz.

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

Plano: Qualquer plano

Executa a mesma edição de escrever uma instrução no editor do Setherion. É a mesma rota por trás da caixa do editor, então valem os mesmos créditos, as mesmas regras de plano e as mesmas verificações de segurança, e o resultado é salvo e acrescentado ao histórico do app como qualquer outra edição.

Você precisa poder editar o app: ele é seu, você é editor ou administrador do espaço de trabalho dele, ou ele foi compartilhado com você como editor.

Os créditos são tirados da conta que paga pelo app, que é a do criador dele, não necessariamente a sua. Se o espaço de trabalho do app limita o quanto você pode gastar, esse limite também vale.

A mudança é salva, mas não fica online até o app ser publicado. Chame Publicar um app quando estiver pronto.

Solicitação

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" }'
CampoTipoSignificado
promptstring, obrigatórioO que mudar, em qualquer idioma. Os espaços ao redor são ignorados. Até 4.000 caracteres.
modelstring, opcionalauto quando omitido: o Setherion escolhe dentro do seu plano, como no editor. Um modelo que o seu plano não inclui é trocado pelo melhor que ele inclui, não recusado.

O app já precisa ter código. Um app que nunca foi criado responde 409.

Ele responde quando a edição termina

Uma edição leva de um a vários minutos, e a solicitação fica aberta até ela terminar. Uma edição que passa de cerca de 13 minutos é cortada pelo servidor.

Enquanto trabalha, o Setherion envia um espaço a cada 10 segundos, para que nada entre você e nós feche uma conexão silenciosa. Espaços antes de um JSON ainda são JSON válido: leia o corpo inteiro e depois faça o parse.

Depois que a edição começou, o status é 200 aconteça o que acontecer, e ok diz como ela foi. O cabeçalho X-Setherion-Run da resposta traz o runId da edição desde o primeiro momento, antes do corpo.

Fechar a conexão não interrompe a edição

Se o seu cliente desistir ou a conexão cair, a edição continua e chega ao app como se você tivesse esperado, e os créditos dela são gastos. Guarde o cabeçalho X-Setherion-Run e pergunte onde a edição está com Acompanhando uma edição. Para interromper uma edição no meio, clique em Stop no editor do Setherion, no cartão que mostra a edição em andamento.

Resposta

Uma edição concluída:

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": []
  }
}
CampoTipoSignificado
okbooleantrue quando a edição terminou e foi salva.
runIdstringO id da edição. Omitido quando o Setherion não soube dizer.
projectIdstringO app que ela mudou. Omitido quando o Setherion não soube dizer.
changedobjectOs arquivos que a edição adicionou, mudou e removeu, cada um uma lista ordenada de caminhos. Omitido quando o Setherion não soube dizer, o que não é o mesmo que nada ter mudado.
buildsfalsePresente só quando o app editado não compila mais. A edição foi escrita, e os créditos dela voltam. A ausência dele não é uma promessa de que o app compila.
refundedCreditsnumberQuantos créditos voltaram, quando alguns voltaram.

Uma edição que quebrou a compilação do 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
}

Uma edição que não aconteceu:

json
{ "ok": false, "error": "This edit costs 10 credits and you have 3.", "outOfCredits": true }

outOfCredits está presente, e é true, só quando a conta que paga pela edição não tem mais créditos. Toda outra recusa tem ok: false e um error e nada mais.

Por que uma edição pode responder ok: false

Estas voltam com o status 200, porque a edição já tinha começado.

  • This edit costs 10 credits and you have 3. com outOfCredits: true. O número é o preço daquela edição e o seu saldo. No app de outra pessoa, a frase é This app's owner has no credits left this month, so this edit cannot run., e nunca diz o saldo dela.
  • 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. com outOfCredits: true, quando o dono de um espaço de trabalho limitou o quanto você pode gastar.
  • You're working faster than our safety limit allows (120 an hour). You can carry on in about 12 minutes. As edições e as criações têm um ritmo de 120 por hora por conta.
  • The edit stopped before it finished. Nothing was charged for it. A execução terminou sem concluir.
  • The edit could not start. ou The edit failed: ... quando algo falhou do nosso lado. Tente de novo.

Acompanhando uma edição

GEThttps://www.setherion.com/api/v1/projects/{id}/edit?run={runId}

Plano: Qualquer plano

Onde uma edição está, para um cliente que parou de esperar ou nunca esperou. Gratuito, e seguro de perguntar mais ou menos a cada minuto.

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"
}
statusokSignificado
runningtrueAinda trabalhando. Pergunte de novo em mais ou menos um minuto.
donetrueTerminada e salva no app. Publique quando estiver pronto. Com cutShort: true, ela foi salva assim que o código foi escrito, sem os retoques finais.
stoppedfalseInterrompida antes de terminar. Nada mudou no app.
failedfalseFalhou. Nada mudou no app.
stalledfalseNão se mexe há vários minutos e provavelmente parou. Abra o app no Setherion para ver até onde chegou.

Uma resposta false também traz uma frase em error, e a edição pode ser enviada de novo. Esta resposta não lista os arquivos que mudaram: só a resposta da própria edição lista.

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

Erros antes de a edição começar

StatusQuando
400prompt está ausente, vazio ou tem mais de 4.000 caracteres.
401A chave está ausente, errada ou foi revogada.
404Não existe tal app, ou a sua chave não pode editá-lo. Isso inclui um app que você só pode ver.
409O app ainda não tem código. Crie-o primeiro no Setherion.
As frases exatas
Statuserror
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.

Esta página foi útil?

Entre na comunidade

Perguntas, ideias e o que outras pessoas estão criando.