For builders

Credits and going live

Your plan carries a daily allowance of credits. Runs draw from it, the dashboard shows what you have used today, and it resets daily at 23:55 UTC.

Check what 23:55 UTC means for your users. If they are in a different timezone, their allowance may reset in the middle of their working day, or run out in the afternoon.

Before you launch

  • Watch the daily usage. The dashboard shows what you have used against your allowance, which is the number that tells you whether your estimate was right.
  • Handle running out. Decide now what your product does when a run is refused. Failing quietly is the worst option, and the one you get by default.
  • Separate your keys from your users' work. Every run through your credentials counts as yours, including the ones somebody is abusing.
  • Pin the version. Take the version index deliberately, so a toolchain update does not change output your tests depend on.

Failure is not one thing

A program that does not compile, a program that runs too long, and a request that was refused are three different outcomes, and users read them very differently.

Worth separating in your product:

  • The program was wrong. Show the compiler output. This is the user's to fix, and the most common case by far.
  • The program ran too long or used too much. Say so plainly. Users assume a crash otherwise.
  • The request was refused. That is yours, not theirs. Tell the user the service is unavailable.

What next

The API reference has the field-by-field detail: every parameter, the language list, and what each error means.

This website uses cookies to ensure you get the best experience on our website.