Errori
L’API REST utilizza codici di stato HTTP convenzionali e una forma di errore JSON coerente.
# Forma dell’errore
Gli endpoint JSON restituiscono:
{ "error": "templateId is required." }
(Il percorso signed render URL restituisce invece un corpo breve text/plain, poiché serve il binario in caso di successo.)
# Codici di stato
| Stato | Significato | Causa tipica |
|---|---|---|
200 |
OK | Rendering/screenshot completato. |
202 |
Accepted | Job asincrono accodato — polling GET /v1/renders/{id}. |
400 |
Bad request | Template mancante, batch oltre 50, o URL screenshot non consentito. |
401 |
Unauthorized | API key mancante, non valida o revocata. |
402 |
Payment required | Quota del piano gratuito esaurita — esegui l’upgrade per continuare il rendering. |
403 |
Forbidden | Firma assente o non valida su un URL di rendering firmato. |
404 |
Not found | Template, job o percorso sconosciuto. |
405 |
Method not allowed | Metodo HTTP errato per l’endpoint. |
500 |
Server error | Un errore imprevisto (riprovare; contattare il supporto se persiste). |
# Quote
Nel piano gratuito, il rendering si ferma con 402 al tuo limite mensile. I piani a pagamento non bloccano mai il rendering a metà — l’eccedenza viene misurata e fatturata (quindi i tuoi rendering non si interromperanno mai). Controlla il tuo utilizzo attuale con GET /v1/account o la pagina Usage nell’app.
# Gestione degli errori
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…" }
In un batch, gli errori per singolo elemento non causano il fallimento dell’intera richiesta — ogni elemento non riuscito è una voce { "error": … } in results.