LiveKit docs › Administration › Billing

---

# LiveKit Cloud billing

> Guide to LiveKit Cloud invoices and billing cycles.

## Pricing

Refer to the following pages for current pricing information:

- **[LiveKit Cloud pricing](https://livekit.com/pricing)**: Current pricing, limits, and quotas for LiveKit Cloud plans.

- **[LiveKit Inference pricing](https://livekit.com/pricing/inference)**: Current pricing for LiveKit Inference models.

> ⚠️ **Prohibited usage**
> 
> Attempting to manipulate or circumvent billing through any means violates the LiveKit [Terms of Service](https://livekit.io/legal/terms-of-service). If suspicious activity is detected, your account may be suspended or terminated.

## Resource metering

All LiveKit Cloud pricing plans include usage-based pricing, metered by resource consumption. The following sections provide more information about how each specific type of resource is metered. For information on quotas and limits, see the [Quotas and limits](https://docs.livekit.io/deploy/admin/quotas-and-limits.md) guide.

> ℹ️ **Rounding up**
> 
> Each individual resource usage is rounded up to the minimum increment prior to summation. For example, a connection lasting 10 seconds is billed as 1 connection minute, and one lasting 70 seconds is billed as 2 connection minutes.

### Realtime media and data

LiveKit Cloud transport services, including [WebRTC media](https://docs.livekit.io/transport/media.md), [telephony](https://docs.livekit.io/telephony.md), [Stream import](https://docs.livekit.io/transport/media/ingress-egress/ingress.md), and [Recording and export](https://docs.livekit.io/transport/media/ingress-egress/ingress.md), are metered on a combination of **time** and **data transfer**. The following table shows the units and minimum increments for each resource.

| Resource type | Unit | Minimum increment |
| Time | Minute | 1 minute |
| Data transfer | GB | 0.01 GB |

### Agent deployment

Agents deployed to LiveKit Cloud are metered by the **agent session minute**, in increments of 1 minute. This reflects the amount of time the agent is actively connected to a WebRTC or SIP-based session.

Metering starts after the agent connects to the room. Metering stops when either the room ends or the agent disconnects, whichever occurs first. If an agent receives a job but never connects to the room, no metering occurs.

To explicitly end a session and stop metering, call `ctx.shutdown()` in your entrypoint function:

**Python**:

```python
async def entrypoint(ctx: JobContext):
    try:
        await ctx.connect()
        # ... agent logic ...
    except Exception as e:
        logger.error(f"Error: {e}")
        ctx.shutdown()

```

---

**Node.js**:

```typescript
export default defineAgent({
  entry: async (ctx: JobContext) => {
    try {
      await ctx.connect();
      // ... agent logic ...
    } catch (e) {
      logger.error(`Error: ${e}`);
      ctx.shutdown();
    }
  },
});

```

### Agent observability

Agent observability is metered in two ways. First, by [events](https://docs.livekit.io/deploy/observability/insights.md#events), which include individual transcripts, observations, and logs. Second, by [recorded audio](https://docs.livekit.io/deploy/observability/insights.md#audio), in increments of 1 minute.

The following table shows the units and minimum increments for each resource.

| Resource type | Unit | Minimum increment |
| Transcripts, observations, and logs | Event | 1 event |
| Recorded audio | Minute | 1 minute |

### LiveKit Inference

LiveKit Inference usage is metered by **tokens**, **time**, or **characters**, depending on the specific resource, according to the following table.

| Model type | Unit | Minimum increment |
| STT | Seconds (connection time) | 1 second |
| LLM | Tokens (input and output) | 1 token |
| TTS | Characters (text) | 1 character |

### LiveKit Phone Numbers

LiveKit Phone Numbers are metered by the **minute** of inbound call time, plus a small fixed monthly fee per number. The following table shows the units and minimum increments for each resource.

| Resource type | Unit | Minimum increment |
| Inbound call time | Minute | 1 minute |
| Number rental | Monthly rental | 1 number |

## Invoices

LiveKit Cloud invoices are issued at the end of each month. The invoice total is based on resource consumption and the project's selected plan. No invoice is issued for projects with no amount due.

### Downloading invoices

Past monthly invoices are available on the project's [billing page](https://cloud.livekit.io/projects/p_/billing) for project admins. Click the **View Invoices** link in the **Statements** section to download the invoice.

---

This document was rendered at 2026-06-07T11:32:18.571Z.
For the latest version of this document, see [https://docs.livekit.io/deploy/admin/billing.md](https://docs.livekit.io/deploy/admin/billing.md).

To explore all LiveKit documentation, see [llms.txt](https://docs.livekit.io/llms.txt).