---
title: "GET /user/services/{service_id}/addons"
method: GET
path: "/user/services/{service_id}/addons"
---

# GET /user/services/{service_id}/addons

`GET /user/services/{service_id}/addons`

## Request

- Base URL: `https://developers.whmcs.com/api/v2`
- URL: `https://developers.whmcs.com/api/v2/user/services/{service_id}/addons`
- Auth: none declared

Retrieve purchased addons for a specific service.

## Path parameters

- `service_id` integer, required

## Query parameters

- `page` integer
- `page_size` integer

## Response `200`

A list of all addons of a specific service.

- object
  - `data` ServiceAddon[], required
    - `id` integer, required
    - `addon` Addon
      - `id` integer, required
      - `name` string, nullable
      - `description` string, nullable
    - `service` object
      - `id` integer, required
    - `quantity` integer, nullable
    - `status` string
    - `registration_date` string, date
    - `billing` ServiceBilling, nullable, required
      - `cycle` 'free' | 'onetime' | 'monthly' | 'quarterly' | 'semiannually' | 'annually' | 'biennially' | 'triennially', nullable: Billing cycle's frequency.
      - `price` ServicePrice
        - `first_payment` ServiceFirstPaymentPrice
          - `amount` Amount, required
            - `value` string, required
            - `code` string, required
            - `display_value` string, required
            - `prefix` string, required: Optional currency prefix
            - `suffix` string, required: Optional currency prefix
        - `recurring` ServiceRecurringPrice
          - `amount` Amount, required
            - `value` string, required
            - `code` string, required
            - `display_value` string, required
            - `prefix` string, required: Optional currency prefix
            - `suffix` string, required: Optional currency prefix
      - `payment_gateway` PaymentGateway
        - `name` string, required: Name of the payment gateway module.
        - `description` string: The friendly name of the payment gateway module.
        - `supports_headless_payment_session` boolean: Whether this gateway can return a `payment_session` value for a checkout that includes a `payment.mode` value of `headless`. - An integration that cannot follow a redirect should present only gateways where this value is true. - Sending `headless` to a gateway where it is false returns the hand-off redirect instead, or, when the `payment.mode` value is `headless`, a `422` error status.
      - `next_due_date` string, date, nullable
    - `renewal` ServiceAddonRenewal
      - `id` integer, required
      - `type` 'addon', required
      - `is_renewable` boolean, required
      - `non_renewable_reason` string, nullable
      - `renewal_period` object
        - `start` string, date
        - `end` string, date
      - `price` Amount, required
        - `value` string, required
        - `code` string, required
        - `display_value` string, required
        - `prefix` string, required: Optional currency prefix
        - `suffix` string, required: Optional currency prefix

## Other responses

- `401`: Access Not Authorized
- `default`: General Error

---

[API](https://skmtc.dev/whmcs/apis/whmcs-api.md) - [All operations](https://skmtc.dev/whmcs/apis/whmcs-api/llms.txt) - [OpenAPI document](https://skmtc.dev/whmcs/apis/whmcs-api/revisions/bd3848ddbc3f?raw)
