Skip to main content

Pricing

Sign-up is open: anyone can create an account at 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 with questions.

Inspect your account

GET /me includes: 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.