The API changes the number of phones on an existing Phone plan. Your workspace needs an active Phone plan first. Start one from the Phones page in the Lusor app with Add phone. Without a plan, these calls return
409 no_subscription.Add phones
1
Preview
POST /v1/workspaces/{workspaceId}/devices/deploy/previewNothing is charged. The quote is valid for 10 minutes.
2
Confirm
POST /v1/workspaces/{workspaceId}/devices/deploy with { "previewId": "…" } from the quote.The plan’s phone count rises by the quoted number and the quoted amount is charged to your saved card at once.3
Wait for the phones
Each new phone appears in
GET /v1/devices once the payment is confirmed, usually within seconds. It is ready to use once it has been set up, which takes minutes.409 default_workspace_only.
Remove a phone
1
Preview
POST /v1/workspaces/{workspaceId}/devices/{deviceId}/remove/preview with an empty body.The quote shows the plan’s phone count after the removal and the credit for the unused rest of the current period. The credit goes to your account balance and is applied to your next invoice. Nothing changes yet. The quote is valid for 10 minutes.2
Confirm
POST /v1/workspaces/{workspaceId}/devices/{deviceId}/remove with { "previewId": "…" }.That phone, and no other, stops accepting runs at once. The plan’s phone count falls by one, and the phone is then wiped and released.409 device_busy while a session is running on the phone, including a session that started after the preview. The plan’s last phone cannot be removed this way (409 last_phone). Cancel the plan in billing management instead.
The quote
Amounts are in US cents.Payment
- If the charge does not go through, the confirm returns
paymentPending: true. Nothing changed: the phone count stays the same and no phone is added. Complete the payment in billing management. 503 billing_unavailableon a preview means nothing changed. Try again.503 billing_unavailableon a confirm means the outcome is unknown. Retry the confirm with the samepreviewId, which is never applied twice. Do not request a new quote, because confirming it could add a second phone.
Errors
Nothing is charged or removed when a call returns one of these errors.
Wipe-and-reset progress
A Lusor Phone can be wiped back to a fresh state from its settings in the app. The API can follow the progress but cannot start a wipe.
A phone that is not a Lusor Phone returns
409 not_managed_phone.
Only in the app
These changes are made by someone signed in to the Lusor app. They are not part of the API:- Starting a Phone plan, and cancelling it.
- Adding or removing your own iPhone.
- Wiping and resetting a Lusor Phone (admins only).
- Renaming a phone, or moving it to another workspace.
- Changing a Lusor Phone’s Internet location or static IP. See Internet and static IP.

