curl --request GET \
--url https://api.phone-harness.com/me \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.phone-harness.com/me"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.phone-harness.com/me', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"uid": "exampleuser1",
"email": "developer@example.com",
"name": "Example developer",
"created": 1800000000,
"balance_cents": 1000,
"price_cents_per_minute": 35,
"environment": "production",
"billing_mode": "metered",
"active_session_billing_mode": null,
"session_create_idempotency": "v1",
"default_provider": "shlut",
"session_limit": 2,
"active_session_count": 0,
"available_session_slots": 2,
"can_rent": true,
"profile": {
"id": "prof-3f9c2a1b7d5e4c6a8b0f1e2d",
"state": "stored",
"session": null,
"exact": true,
"saved_at": 1800000600
}
}{
"error": "<string>",
"code": "<string>",
"state": "<string>",
"unsupported": true,
"outcome": "unknown",
"id": "<string>",
"request_key": "<string>",
"cleanup_complete": true,
"balance_cents": 123,
"session": "<string>",
"session_limit": 123,
"active_session_count": 123,
"available_session_slots": 123
}{
"error": "<string>",
"code": "<string>",
"state": "<string>",
"unsupported": true,
"outcome": "unknown",
"id": "<string>",
"request_key": "<string>",
"cleanup_complete": true,
"balance_cents": 123,
"session": "<string>",
"session_limit": 123,
"active_session_count": 123,
"available_session_slots": 123
}{
"error": "<string>",
"code": "<string>",
"state": "<string>",
"unsupported": true,
"outcome": "unknown",
"id": "<string>",
"request_key": "<string>",
"cleanup_complete": true,
"balance_cents": 123,
"session": "<string>",
"session_limit": 123,
"active_session_count": 123,
"available_session_slots": 123
}Get your account
Read account identity, credits and account capacity. can_rent describes the rental-access gate only; balance and shared capacity are checked separately when creating a session.
curl --request GET \
--url https://api.phone-harness.com/me \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.phone-harness.com/me"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.phone-harness.com/me', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"uid": "exampleuser1",
"email": "developer@example.com",
"name": "Example developer",
"created": 1800000000,
"balance_cents": 1000,
"price_cents_per_minute": 35,
"environment": "production",
"billing_mode": "metered",
"active_session_billing_mode": null,
"session_create_idempotency": "v1",
"default_provider": "shlut",
"session_limit": 2,
"active_session_count": 0,
"available_session_slots": 2,
"can_rent": true,
"profile": {
"id": "prof-3f9c2a1b7d5e4c6a8b0f1e2d",
"state": "stored",
"session": null,
"exact": true,
"saved_at": 1800000600
}
}{
"error": "<string>",
"code": "<string>",
"state": "<string>",
"unsupported": true,
"outcome": "unknown",
"id": "<string>",
"request_key": "<string>",
"cleanup_complete": true,
"balance_cents": 123,
"session": "<string>",
"session_limit": 123,
"active_session_count": 123,
"available_session_slots": 123
}{
"error": "<string>",
"code": "<string>",
"state": "<string>",
"unsupported": true,
"outcome": "unknown",
"id": "<string>",
"request_key": "<string>",
"cleanup_complete": true,
"balance_cents": 123,
"session": "<string>",
"session_limit": 123,
"active_session_count": 123,
"available_session_slots": 123
}{
"error": "<string>",
"code": "<string>",
"state": "<string>",
"unsupported": true,
"outcome": "unknown",
"id": "<string>",
"request_key": "<string>",
"cleanup_complete": true,
"balance_cents": 123,
"session": "<string>",
"session_limit": 123,
"active_session_count": 123,
"available_session_slots": 123
}Authorizations
Phone Harness account API key (pck_…). The dashboard may use a Clerk session JWT with the same header. Never put an account key in a URL.
Response
Account.
Account creation. Unix time in seconds.
US cents of available account credit.
Current metered rate in US cents per minute.
metered, disabled metered, disabled, null v1 Account limit, not a service-wide capacity guarantee.
Includes sessions pending cleanup.
Remaining account slots. Shared capacity is checked separately.
Access gate only; balance and capacity are checked separately at creation.
Your own phone: one per account, kept between sessions.
Show child attributes
Show child attributes
Present if can_rent is false.