# A phone per user

NoMac Platform gives every user of your product their own iOS Simulator. Your backend starts a phone for a user, shows it to them, and hears when it ends.

## Start a phone for your user

### TypeScript

```typescript
import { NoMacSimulator } from "@nomac/simulator";

const nomac = new NoMacSimulator(); // NOMAC_API_KEY
const phone = await nomac.phones.start({ label: user.id, reuse: true });
await phone.waitUntilReady();
const { url } = await phone.viewLink({ control: true }); // for your user
```

Make the API key at [nomac.app/dash/keys](/content/dash/keys/index.html) and keep it on your server: it starts and stops phones for the whole account. Your user gets a link or a token for their own phone only.

## A label per user

`label` is your own name for the phone, such as your user's id: up to 64 letters, digits and `. _ : @ -`. Everything a phone keeps belongs to its label.

### Workspace
The user's projects and their build cache, so their next build is incremental.

### Saved states
A signed-in app to start their next phone from.

### Phones
`reuse: true` answers the user's running phone instead of starting another, and `GET /sessions?label=` lists theirs.

Phones with another label never reach these, and neither does a token for another user's phone. Billing records keep the label, so use your own user id, not an email.

## The rest of the platform

[Show it to your users](/content/docs/platform/show/index.html) Watch and control links with no sign-in, the embed, and a token for one phone.

[Webhooks and billing](/content/docs/platform/webhooks/index.html) Signed events when a phone is ready and when it ends, with the label and the cost.

[Your users' data](/content/docs/platform/data/index.html) Tokens that are never stored, and one call that deletes a user.

[SDKs](/content/docs/sdks/index.html) TypeScript and Python, over the [REST API](/content/docs/simulator/index.html).

Your users' agents use the phone with the tools in [Run your app and tests](/content/docs/simulator/run/index.html) and [Read and tap the screen](/content/docs/simulator/screen/index.html).

## Price and limits

The phones are NoMac Simulator's, at its price: $0.90 an hour per phone, billed per minute from the account's prepaid credit, one minute at least. Every account runs 2 phones at once.

For more phones at once, reserved capacity or monthly invoicing, [talk to us](/content/contact?topic=sales/index.html) about NoMac Enterprise.
