> ## Documentation Index
> Fetch the complete documentation index at: https://phone-harness.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Limits and credits

> What a phone costs, how credits work, and the limits that apply to every account.

## Pricing

|                    |                                                                                                       |
| ------------------ | ----------------------------------------------------------------------------------------------------- |
| Price              | 5¢ per phone-minute (`price_cents_per_minute: 5`)                                                     |
| Billed             | From the moment a session is `ready` until it ends; boot time is free; partial final minutes round up |
| Trial              | New accounts start with \$5 of credit (100 minutes)                                                   |
| Top-ups            | $5 to $200 per checkout, paid by card in the dashboard; credit never expires                          |
| Phones per account | 8 at once                                                                                             |
| Boot time          | About 80 seconds from `POST /sessions` to `ready`                                                     |
| Session length     | You choose `timeout_seconds` at creation (default 5 minutes); there is no unlimited mode              |

Sign-up is open: anyone can create an account at [phone-harness.com/cloud](https://phone-harness.com/cloud), and every new account starts with the trial credit above. Capacity is limited during the beta, so a start may answer `503 phones_busy` with a retry hint when every phone is in use. Write to [support@phone-harness.com](mailto:support@phone-harness.com) with questions.

## Inspect your account

`GET /me` includes:

| Field                     | Meaning                                                                  |
| ------------------------- | ------------------------------------------------------------------------ |
| `balance_cents`           | Your available account credit, in US cents                               |
| `price_cents_per_minute`  | The current per-minute credit rate                                       |
| `session_limit`           | Your account's maximum simultaneous session count                        |
| `active_session_count`    | Sessions currently occupying account capacity, including pending cleanup |
| `available_session_slots` | Remaining account slots; not a reservation of service-wide capacity      |
| `can_rent`                | Whether the account passes the current rental-access gate                |
| `rent_blocked_reason`     | Present when that rental-access gate denies access                       |
| `default_provider`        | The provider selected when you omit it from creation                     |

`can_rent: true` does not guarantee successful creation. Balance, account capacity, and service capacity are checked separately during admission.

## Multiple sessions

An account can create more than one phone when its configured limit and service capacity allow it. Each accepted session has its own ID and temporary data. Use a different idempotency key for each intended phone.

The service may refuse a creation request with `409` when the account or shared provider is full. Queued and closing allocations can occupy capacity. A positive `available_session_slots` value only describes your account's limit.

The service answers `503` with `code: phones_busy` and a `Retry-After` header when every phone is in use. Read limits from the API rather than hardcoding a phone count.

## Credits

Provisioning is not billable. Metered use starts at readiness and ends when closure is recorded; final partial minutes are rounded up. Failed startups that never become ready have zero billable minutes.

Starting a metered phone requires enough balance for at least two minutes at the current rate. A running phone can be closed when credits are exhausted. Use `GET /history/page` for recorded `cost_cents`, `usage_minutes`, and `billable_minutes`.

Add credit from the dashboard (account menu → Add credits). `POST /me/topup` returns a Stripe Checkout URL for the same flow; the balance updates within seconds of payment.

## Request limits

* JSON request bodies are limited to 1 MiB.
* Operations on one phone are serialized. Sending many concurrent operations to the same session does not make its Android workflow parallel.
* History pages accept `limit` from 1 to 100; the default is 40.
* Session durations are positive, finite integers in seconds. Polling and input do not extend the deadline.

The current API does not publish general rate-limit headers or a fixed requests-per-second entitlement. Use bounded concurrency and handle capacity and network errors.
