Skip to main content

LiveKit Cloud billing

Guide to LiveKit Cloud invoices and billing cycles.

Pricing

Refer to the following pages for current pricing information:

Prohibited usage

Attempting to manipulate or circumvent billing through any means violates the LiveKit 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 guide.

Rounding up

Each invididual 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, telephony, and Stream import, and Recording and export, are metered on a combination of time and data transfer. The following table shows the units and minimum increments for each resource.

Resource typeUnitMinimum increment
TimeMinute1 minute
Data transferGB0.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:

async def entrypoint(ctx: JobContext):
try:
await ctx.connect()
# ... agent logic ...
except Exception as e:
logger.error(f"Error: {e}")
ctx.shutdown()
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, which include individual transcripts, observations, and logs. Second, by recorded audio, in increments of 1 minute.

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

Resource typeUnitMinimum increment
Transcripts, observations, and logsEvent1 event
Recorded audioMinute1 minute

LiveKit Inference

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

Model typeUnitMinimum increment
STTSeconds (connection time)1 second
LLMTokens (input and output)1 token
TTSCharacters (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 typeUnitMinimum increment
Inbound call timeMinute1 minute
Number rentalMonthly rental1 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 for project admins. Click the View Invoices link in the Statements section to download the invoice.