Erros
A API REST usa códigos de status HTTP convencionais e um formato de erro JSON consistente.
# Formato de erro
Os endpoints JSON retornam:
{ "error": "templateId is required." }
(O caminho URL de renderização assinada retorna um corpo text/plain curto em vez disso, pois fornece binário em caso de sucesso.)
# Códigos de status
| Status | Significado | Causa típica |
|---|---|---|
200 |
OK | Renderização/captura de tela concluída. |
202 |
Aceito | Trabalho assíncrono enfileirado — faça polling em GET /v1/renders/{id}. |
400 |
Solicitação inválida | template ausente, lote com mais de 50 ou URL de captura de tela não permitida. |
401 |
Não autorizado | Chave de API ausente, inválida ou revogada. |
402 |
Pagamento obrigatório | Cota do plano gratuito esgotada — atualize para continuar renderizando. |
403 |
Proibido | Assinatura inválida ou ausente em uma URL de renderização assinada. |
404 |
Não encontrado | Template, trabalho ou caminho desconhecido. |
405 |
Método não permitido | Método HTTP incorreto para o endpoint. |
500 |
Erro de servidor | Uma falha inesperada (tente novamente; entre em contato com o suporte se persistir). |
# Cotas
No plano gratuito, as renderizações param completamente no seu limite mensal com 402. Planos pagos nunca bloqueiam durante a renderização — o excedente é medido e cobrado (assim suas renderizações nunca param). Verifique seu uso atual com GET /v1/account ou na página Uso no aplicativo.
# Tratando erros
from mostlyrender import MostlyRender, MostlyRenderError
try:
out = mr.render("tpl_abc", modifications={"title": "Hello"})
except MostlyRenderError as e:
print(e.status, e.body) # e.g. 402 { "error": "…quota…" }
Em um lote, falhas por item não causam falha da solicitação inteira — cada item falhado é uma entrada { "error": … } em results.