Skip to content

Understand usage and limits

Who this is for: admins who keep an eye on cost and limits, and anyone whose runs stopped because of a limit.

Before you start: to read usage you need the View usage permission (view_usage). Every human role has it. To export invoice data you need the Manage billing permission (manage_billing), which only admins have.

Liitora counts what your workflows use and compares it with your plan’s limits. This page explains what is counted, which limits are enforced, and how to get the numbers.

In Monitor, select Usage to see the numbers for the current month, per workflow and per day. See the Usage page.

Quantity What counts
Runs Production runs that started in the month, however they were started. Test runs, runs in the test environment and dry runs are counted separately and do not use your run limit.
Compute units (CU) The work your runs did: run time, CPU and memory together. See What is a compute unit.
Emails Emails sent by workflows.
Webhook requests Webhook deliveries Liitora accepted.
Storage Files (artifacts), large payloads and stored run logs, right now.

A billing period is one calendar month in UTC. For example, September 2026 runs from 1 September 00:00 UTC to 1 October 00:00 UTC.

In the app, Usage shows each quantity with its limit, a status and a forecast. With the REST API, GET /api/v1/usage returns the current month (or ?period=2026-09). For each quantity you get:

  • used, the limit and a percent,
  • a status: ok, warning (at 80% or past a soft limit), exceeded (at or over the hard limit) or not_set (your plan has no such limit),
  • a forecast for the whole month, from the use so far.

More detail:

  • GET /api/v1/usage/workflows: runs, failures, test runs and compute per workflow.
  • GET /api/v1/usage/daily?from=2026-09-01&to=2026-09-30: one entry per UTC day.

A read-only API token is enough for these.

The weekly health digest email also shows compute used against your plan.

Limit Where it applies What happens
Runs per month (hard) When any production run would start: a schedule, a workflow_run chain, a webhook delivery, Run now, the API or an AI assistant, a replay or a retry The run is not started. A schedule or chain skips it. Run now, the API and your AI assistant get run_limit_reached, which says when runs start again. A webhook sender gets 429 quota_exceeded and can retry later. An admin alert quota_exceeded is sent once per month.
Runs per month (soft) Same At 80% and 100%, a quota_warning alert, once each per month. Runs still start.
Minimum time between scheduled runs When you save a workflow, and when a schedule fires A schedule that runs more often than your plan allows cannot be saved. An older one is not started, with an alert.
Runs at the same time When a queued run is picked up Extra runs wait in the queue until a slot is free. Nothing is dropped.
Run time, memory and output size per step While a step runs The step stops with timeout, memory_limit, cpu_limit or output_too_large.
Webhook requests per minute At the webhook address The sender gets 429 with Retry-After. By default an endpoint takes 60 per minute, and your company 600 per minute.
Retention Every hour Logs, files and webhook events older than your plan allows are deleted.
Compute units per month When a run would use more compute New production runs end at once with quota_exceeded until the next month. Test runs don’t count.
Emails per month When an email.send step would send The step fails with quota_exceeded and the email is not sent.
Webhook requests per month At the webhook address The sender gets 429 quota_exceeded with Retry-After and can retry later.
Storage per month When a step would store a file The step fails with quota_exceeded until older files expire or are removed.

At 80% and 100% of each of these limits, admins get a quota_warning alert, and at the limit a quota_exceeded alert, once per month each.

The limits of each plan are on Limits per plan.

  • Runs are refused, never lost without a trace. A refused scheduled run is recorded in an alert, and you get an email.
  • Refused slots are not started later. After the limit is lifted, the schedule goes on from the next slot.
  • Nothing is deleted when you reach a limit.

If your company’s account is suspended or unpaid, active workflows are paused. They resume by themselves when the account is in order again. A workflow paused this way shows Paused because of billing, and you cannot resume it by hand. The error code is paused_by_system.

On the Usage page, pick the Month and select Download invoice data (CSV). With the REST API, GET /api/v1/usage/invoice?period=2026-09&format=csv returns one line per day and kind of use, with totals per kind and a grand total. Leave out format or use format=json for JSON. Compute units are given exactly, in micro-CU and as a decimal number.

This needs Manage billing. An API token for it must be created by an admin with Read-only turned off.

See the cost of a workflow before you approve it

Section titled “See the cost of a workflow before you approve it”

GET /api/v1/workflows/{id}/cost-preview estimates the compute a version uses per month, from its schedule and from recent or test runs. It says what share of your plan that is.

The approval page shows the same estimate under Expected cost, in one sentence, and says whether the number of runs comes from the schedule or from the last 30 days of runs.