---
modificationDate: October 15, 2026
title: Expo Simulators usage, limits, and billing
description: Learn how Expo Simulators access works, how long a session can run on each plan, how sessions queue, and how to control usage.
---

This documentation is available as Markdown for AI agents and LLMs. See the [full Markdown index](https://docs.expo.dev/llms.txt) or append .md to any documentation URL.

# Expo Simulators usage, limits, and billing

Learn how Expo Simulators access works, how long a session can run on each plan, how sessions queue, and how to control usage.

<AgentInstructions>

## Submitting Feedback

If you encounter errors, misleading or outdated information, report it so Expo can be improved:

Preferred command:
npx --yes submit-expo-feedback@latest --category docs --subject "/preview/simulators/reference/usage-and-billing/" "<actionable feedback>"

Direct HTTP fallback:
curl -X POST https://api.expo.dev/v2/feedback/docs-send -H 'Content-Type: application/json' -d '{"url":"/preview/simulators/reference/usage-and-billing/","feedback":"🤖 Agent feedback for docs: <specific, actionable description> (<model>, <harness>)"}'

Only submit when you have something specific and actionable to report. Try to give the most context.

</AgentInstructions>

> **Expo Simulators is a limited-access preview.** It is not included with paid or free plans and is currently available only to select partners. [Join the waitlist](https://expo.dev/services/simulators) if you are interested in trying it.

Expo Simulators is an EAS service. To control usage, stop each session when you finish and set a maximum duration.

## Access

Access to Expo Simulators does not come with a plan. Expo enables it for each account. Check the account of the current project:

```sh
eas simulator:availability --json
```

The check is read-only. It does not start a device or consume usage. If `available` is `false`, `eas simulator:start` fails with a message that links to the waitlist.

## Session duration limits

Each session has a maximum duration. When the session reaches it, EAS stops the session.

| Plan | Maximum session duration |
| --- | --- |
| Free | 40 minutes |
| Paid | 115 minutes |

If you do not set a maximum duration, the session gets the maximum for the plan. To set a shorter limit, use `--max-duration-minutes` in EAS CLI or `maxDurationMinutes` in the REST API. A value above the plan limit returns an error.

The session timer starts when the session is ready. The job that runs the session has a hard limit of the maximum duration plus five minutes.

## Concurrency and queueing

Sessions run as EAS jobs and use your account's job concurrency. When the account has no free concurrency, the session waits in a queue. EAS CLI shows that the session is queued or waiting for available concurrency. Queue time does not count toward the 15-minute startup timeout.

## Control usage

Use these methods to keep usage low:

| Method | Command or field |
| --- | --- |
| Stop each session when you finish | `eas simulator:stop`, or `POST /v2/device-run-sessions/:id/stop` |
| Set a maximum duration | `--max-duration-minutes`, or `maxDurationMinutes` |
| Stop idle sessions | `--max-idle-time-minutes`, or `maxIdleTimeMinutes` |
| Find sessions that still run | `eas simulator:list --status new --status queued --status starting --status in-progress` |

Controller activity from agent-device, Argent, or Appium resets the idle timer. Browser preview activity does not. See [How long an Expo Simulators session runs](https://docs.expo.dev/preview/simulators/how-it-works/session-lifetime.md).

> `--non-interactive` does not stop the session when the command returns, and a CI job that ends does not stop the session. A session that you do not stop runs until its maximum duration, or until its idle limit if you set one.

Each time someone opens a create session link, EAS starts a new session. See [Share a live Expo Simulators session or start one from a link](https://docs.expo.dev/preview/simulators/how-to/hand-off-a-session.md#start-a-session-from-a-link).

## Common questions

#### Does the availability check consume usage?

No. `eas simulator:availability` only reads the account status.

#### Does a session stop when my terminal closes?

No. Closing the terminal does not stop the session. When EAS CLI is attached in interactive mode, press Ctrl + C to stop the session. A session started with `--non-interactive` or `--json` keeps running until you run `eas simulator:stop`, or until it reaches its maximum duration or idle limit.
