---
title: "List phone rentals"
method: GET
path: "/billing/phone-rental-subscriptions"
tags: ["billing"]
---

# List phone rentals

`GET /billing/phone-rental-subscriptions`

Returns every phone rental subscription owned by the caller's organization, in any lifecycle state (active or canceled) - canceled rentals are included so past rentals stay visible. Each item's status field tells them apart. The summary block (active_count, combined monthly cost) counts only active rentals.

## Response `200`

OK

- PhoneRentalSubscriptionListResponse — An org's device rental subscriptions, plus an org-wide summary. The summary counts only active rentals regardless of which statuses the subscriptions list contains.
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `subscriptions` PhoneRentalSubscriptionResponse[], nullable, required — Current page of subscription records.
    - `cancel_at_period_end` boolean, required — Whether the subscription cancels at period end.
    - `canceled_at` string, date-time — Timestamp when the subscription was canceled.
    - `current_period_end` string, date-time, required — End of the current billing period.
    - `current_period_start` string, date-time, required — Start of the current billing period.
    - `id` string, required — Subscription identifier.
    - `organization_id` string, required — Subscribing organization's identifier.
    - `payment_status` 'healthy' | 'past_due', required — Billing health ('healthy' or 'past_due'). Orthogonal to status: a past_due rental stays active while payment is retried.
    - `phone_id` string — Rented phone's public identifier (matches PhoneSummary.phone_id), if a phone is assigned.
    - `phone_name` string — Display name of the rented device.
    - `phone_nickname` string — Organization-assigned nickname of the rented device.
    - `plan_id` string, required — Rented plan's identifier.
    - `plan_interval` string, required — Billing interval of the plan.
    - `plan_name` string, required — Human-readable name of the plan.
    - `plan_price_cents` integer, required — Plan price in cents per interval.
    - `status` 'active' | 'canceled', required — Current subscription lifecycle state.
  - `summary` PhoneRentalSummary, required — Org-wide rollup shown above the rentals table.
    - `active_count` integer, required — Number of active rentals for the org.
    - `combined_monthly_cents` integer, required — Total monthly-equivalent spend across all active rentals (daily/weekly prices normalised to a monthly figure).
    - `per_interval` PhoneRentalIntervalSummary[], nullable, required — Count + monthly-equivalent spend grouped by plan interval.
      - `count` integer, required — Number of active rentals on this interval.
      - `interval` string, required — Plan interval ('day' | 'week' | 'month').
      - `monthly_cents` integer, required — Monthly-equivalent spend for this interval's rentals.
    - `upcoming_charges` PhoneRentalUpcomingCharge[], nullable, required — Next 30 days of renewals bucketed by day.
      - `amount_cents` integer, required — Summed unit price of the renewals on this day.
      - `count` integer, required — Number of rentals renewing on this day.
      - `date` string, date-time, required — UTC day the renewals fall on; the client formats it locally.
  - `total` integer, required — Count of rentals matching the request (for pagination; has_more is derivable as offset+len(subscriptions) < total).

## Other responses

- `default` — Error

---

[API](https://skmtc.net/axilioai/apis/axilio-api.md) · [All operations](https://skmtc.net/axilioai/apis/axilio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/axilioai/axilio-api/revisions/108ab4b41051/schema)
