# List all addons

```
GET 
https://api.freemius.com/v1/products/{product_id}/addons.json
```

#### Auth:Bearer TokenSCOPE: <!-- -->PRODUCT

Product-scoped API tokens allow you to operate on the product itself. This token usually allows read-only access to the product configuration and write access to several operations on subscriptions, customers, payments, and more. For most SaaS or app integrations, this is the token you will need.

1. Go to the [Freemius Developer Dashboard](https://dashboard.freemius.com/).
2. Open the Settings page of the relevant product.
3. Click the API & Keys tab.
4. Copy the API Bearer Authorization Token from the UI.

***

Retrieve the addons collection.

## Request[​](#request "Direct link to request")

### Path Parameters

* **product\_id**
  <!-- -->
  integer\<int64>[](#param-property-products-list-addons-param-path-product-id "Direct link to product_id")required

  The ID of the product.

  **Possible values:** `>= 1`

  **Example:<!-- -->&#x20;**`1234`

### Query Parameters

* **count**
  <!-- -->
  integer[](#param-property-products-list-addons-param-query-count "Direct link to count")

  **Default value:<!-- -->&#x20;**`25`

  The number of records to return.

  **Possible values:** `>= 1` and `<= 50`

  **Example:<!-- -->&#x20;**`10`

  **offset**
  <!-- -->
  integer[](#param-property-products-list-addons-param-query-offset "Direct link to offset")

  **Default value:<!-- -->&#x20;**`0`

  The number of records to skip before starting to return records. Default is 0.

  **Possible values:** `>= 0`

  **Example:<!-- -->&#x20;**`10`

  **fields**
  <!-- -->
  string[](#param-property-products-list-addons-param-query-fields "Direct link to fields")

  Comma separated list of fields to return in the response. If not specified, all fields are returned.

  **Example:<!-- -->&#x20;**`id,name,slug`

  **show\_pending**
  <!-- -->
  boolean[](#param-property-products-list-addons-param-query-show-pending "Direct link to show_pending")

  **Default value:<!-- -->&#x20;**`false`

  Whether to show released addons only or the hidden as well.

  **enriched**
  <!-- -->
  boolean[](#param-property-products-list-addons-param-query-enriched "Direct link to enriched")

  **Default value:<!-- -->&#x20;**`false`

  If set to `true`, returns marketing info.

<!-- -->

## Responses[​](#responses "Direct link to Responses")

* 200
* 400
* 401
* 402
* 404

The list of all the addons.

application/json

**Schema**

**addons** <!-- -->object\[]

* Array \[

**selling\_unit\_label**string[](#schema-property-products-list-addons-response-schema-selling-unit-label-string "Direct link to selling_unit_label")

The selling unit label of the product. For example, 'site', 'user', 'language', 'credit', etc. This is used in the pricing page and in the license key information to indicate the unit of the license key. If not set, it defaults to 'site' for plugins and themes, 'unit' for SaaS products, and 'activation' for Apps.

**Example:<!-- -->&#x20;**`site`

**enable\_after\_purchase\_email\_login\_link**boolean[](#schema-property-products-list-addons-response-schema-enable-after-purchase-email-login-link-boolean "Direct link to enable_after_purchase_email_login_link")

Indicates whether the customer portal login link is included in the after-purchase emails.

**Example:<!-- -->&#x20;**`true`

**restrict\_single\_subscription\_per\_user**boolean[](#schema-property-products-list-addons-response-schema-restrict-single-subscription-per-user-boolean "Direct link to restrict_single_subscription_per_user")

Indicates whether Freemius will enforce single active susbcription per user. This is available for SaaS products only.

**Example:<!-- -->&#x20;**`false`

**secret\_key**string[](#schema-property-products-list-addons-response-schema-secret-key-string "Direct link to secret_key")

The secret key associated with the entity for authorization.

**Example:<!-- -->&#x20;**`sk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6`

**public\_key**string[](#schema-property-products-list-addons-response-schema-public-key-string "Direct link to public_key")

The public key associated with the entity for authorization.

**Example:<!-- -->&#x20;**`pk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6`

**id**string\<int64>[](#schema-property-products-list-addons-response-schema-id-string-int64 "Direct link to id")

The unique identifier of the entity.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**created**string\<date-time>[](#schema-property-products-list-addons-response-schema-created-string-date-time "Direct link to created")

The date and time the entity was created, under UTC timezone.

**Example:<!-- -->&#x20;**`2025-01-01 00:00:00`

**updated**string\<date-time>[](#schema-property-products-list-addons-response-schema-updated-string-date-time "Direct link to updated")nullable

The date and time the entity was updated, under UTC timezone. If `null` then the entity was never updated since its creation.

**Example:<!-- -->&#x20;**`2025-01-01 00:00:00`

**parent\_plugin\_id**string\<int64>[](#schema-property-products-list-addons-response-schema-parent-plugin-id-string-int64 "Direct link to parent_plugin_id")nullable

If the product is an add-on then this is the ID of the parent product.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**developer\_id**string\<int64>[](#schema-property-products-list-addons-response-schema-developer-id-string-int64 "Direct link to developer_id")

The ID of the developer that owns the product.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**store\_id**string\<int64>[](#schema-property-products-list-addons-response-schema-store-id-string-int64 "Direct link to store_id")

The ID of the store that the product is being sold on.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**slug**string[](#schema-property-products-list-addons-response-schema-slug-string "Direct link to slug")

The `slug` of the product. If your plugin is listed on `WordPress.org` repository, use the exact slug.

**Example:<!-- -->&#x20;**`my-freemius-plugin`

**title**string[](#schema-property-products-list-addons-response-schema-title-string "Direct link to title")

The title of the product.

**Example:<!-- -->&#x20;**`My Freemius Plugin`

**environment**number[](#schema-property-products-list-addons-response-schema-environment-number "Direct link to environment")

The environment the entity belongs to. 0 means it belongs to the production environment, 1 means it belongs to the sandbox environment.

**Possible values:** \[`1`, `0`]

**Example:<!-- -->&#x20;**`0`

**icon**string[](#schema-property-products-list-addons-response-schema-icon-string "Direct link to icon")nullable

Product's icon (profile picture).

**Example:<!-- -->&#x20;**`https://img.freemius.com/plugin-icon-blue.png`

**default\_plan\_id**string\<int64>[](#schema-property-products-list-addons-response-schema-default-plan-id-string-int64 "Direct link to default_plan_id")

Default plan ID of the product.

**plans**string[](#schema-property-products-list-addons-response-schema-plans-string "Direct link to plans")

Comma separated, ordered plans collection.

**Example:<!-- -->&#x20;**`123456,123457,123458`

**features**string[](#schema-property-products-list-addons-response-schema-features-string "Direct link to features")

Comma separated, ordered features collection.

**Example:<!-- -->&#x20;**`123456,123457,123458`

**money\_back\_period**integer[](#schema-property-products-list-addons-response-schema-money-back-period-integer "Direct link to money_back_period")

Money-back guarantee in days.

**refund\_policy**string[](#schema-property-products-list-addons-response-schema-refund-policy-string "Direct link to refund_policy")

**Possible values:** \[`flexible`, `moderate`, `strict`]

**is\_consumptive\_usage**boolean[](#schema-property-products-list-addons-response-schema-is-consumptive-usage-boolean "Direct link to is_consumptive_usage")

Indicates whether the product follows a consumptive usage. Use this if your product includes one-off or consumptive usage like AI credits, API usage etc. It affects how the refund policy is generated for your product. Check our [documentation](https://freemius.com/help/documentation/selling-with-freemius/refund-policy/) to learn more.

> This is applicable for SaaS products only.

**annual\_renewals\_discount**integer[](#schema-property-products-list-addons-response-schema-annual-renewals-discount-integer "Direct link to annual_renewals_discount")nullable

Renewals discount that will be applied to the chosen plan.

**renewals\_discount\_type**string[](#schema-property-products-list-addons-response-schema-renewals-discount-type-string "Direct link to renewals_discount_type")

The type of renewals discount, percentage or dollar.

**Possible values:** \[`percentage`, `dollar`]

**lifetime\_license\_proration\_days**integer[](#schema-property-products-list-addons-response-schema-lifetime-license-proration-days-integer "Direct link to lifetime_license_proration_days")nullable

Number of days to allow proration when upgrading from one lifetime license to another. Can be a number greater than `30` or `null` for unlimited.

**Possible values:** `>= 30` and `<= 65535`

**Example:<!-- -->&#x20;**`30`

**is\_released**boolean[](#schema-property-products-list-addons-response-schema-is-released-boolean "Direct link to is_released")

A flag that controls the visibility of add-ons in the in-dashboard add-ons marketplace. Defaults to true. Only applicable if the product is an add-on.

**is\_sdk\_required**boolean[](#schema-property-products-list-addons-response-schema-is-sdk-required-boolean "Direct link to is_sdk_required")

A flag that controls whether the SDK should be required or not during deployment of a version. It defaults to `true`.

**is\_pricing\_visible**boolean[](#schema-property-products-list-addons-response-schema-is-pricing-visible-boolean "Direct link to is_pricing_visible")

Determines if the pricing should be visible in the in-SDK pricing page. Defaults to true. Turn this off during the development of a new product.

**is\_wp\_org\_compliant**boolean[](#schema-property-products-list-addons-response-schema-is-wp-org-compliant-boolean "Direct link to is_wp_org_compliant")

Set to true if the free version of the module is hosted on WordPress.org. Defaults to true.

**installs\_count**integer[](#schema-property-products-list-addons-response-schema-installs-count-integer "Direct link to installs_count")

Total number of opted in sites which were logged with the SDK.

**active\_installs\_count**integer[](#schema-property-products-list-addons-response-schema-active-installs-count-integer "Direct link to active_installs_count")

Total number of active sites where the SDK is active.

**free\_releases\_count**integer[](#schema-property-products-list-addons-response-schema-free-releases-count-integer "Direct link to free_releases_count")

The number of "free" version of the product that were deployed from Freemius.

**premium\_releases\_count**integer[](#schema-property-products-list-addons-response-schema-premium-releases-count-integer "Direct link to premium_releases_count")

The number of "premium" version of the product that were deployed from Freemius.

**total\_purchases**integer[](#schema-property-products-list-addons-response-schema-total-purchases-integer "Direct link to total_purchases")

Total number of payments recorded for the product.

**total\_subscriptions**integer[](#schema-property-products-list-addons-response-schema-total-subscriptions-integer "Direct link to total_subscriptions")

Total number of subscriptions recorded for the product.

**total\_renewals**integer[](#schema-property-products-list-addons-response-schema-total-renewals-integer "Direct link to total_renewals")

Total number of renewals recorded for the product.

**total\_failed\_purchases**integer[](#schema-property-products-list-addons-response-schema-total-failed-purchases-integer "Direct link to total_failed_purchases")

Total number of failed payments recorded for the product.

**Example:<!-- -->&#x20;**`1234`

**earnings**number\<float>[](#schema-property-products-list-addons-response-schema-earnings-number-float "Direct link to earnings")

Total gross revenues.

**Example:<!-- -->&#x20;**`1234.56`

**type**string[](#schema-property-products-list-addons-response-schema-type-string "Direct link to type")

**Possible values:** \[`plugin`, `theme`, `widget`, `template`]

**type\_alias**string[](#schema-property-products-list-addons-response-schema-type-alias-string "Direct link to type_alias")

The alias type of the product. For example, 'extension', 'chrome extension', 'desktop app'.

**is\_static**boolean[](#schema-property-products-list-addons-response-schema-is-static-boolean "Direct link to is_static")

Determines whether the product is categorized as a static product (for example, a widget or a template).

* ]

Bad request. The request could not be understood by the server due to malformed syntax or arguments.

application/json

**Schema**

**path**string[](#schema-property-products-list-addons-response-schema-path-string "Direct link to path")

The API request path.

**Example:<!-- -->&#x20;**`:/products/product_id/users.json`

**error** <!-- -->object

This object contains the error details.

**type**string[](#schema-property-products-list-addons-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

**Example:<!-- -->&#x20;**`UnauthorizedAccess`

**message**string[](#schema-property-products-list-addons-response-schema-message-string "Direct link to message")

The descriptive error message.

**Example:<!-- -->&#x20;**`Some error has occured.`

**code**string[](#schema-property-products-list-addons-response-schema-code-string "Direct link to code")

The error code.

**Example:<!-- -->&#x20;**`unauthorized_access`

**http**integer[](#schema-property-products-list-addons-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

**Example:<!-- -->&#x20;**`401`

**timestamp**string[](#schema-property-products-list-addons-response-schema-timestamp-string "Direct link to timestamp")

Current timestamp.

**Example:<!-- -->&#x20;**`Thu, 11 May 2023 11:45:30 +0000`

**request** <!-- -->object

This object sends back the request payload as received by the server (both from path and from body or query).

**property name\***&#x61;ny[](#schema-property-products-list-addons-response-schema-property-name-any "Direct link to property name*")

This object sends back the request payload as received by the server (both from path and from body or query).

**Example:<!-- -->&#x20;**`{"beautify":true,"format":"json"}`

Unauthorized access error. The request requires [authentication](https://freemius.com/help/api/#bearer-token-authentication) but was not provided or the provided authentication does not satisfy the required permissions.

application/json

**Schema**

**path**string[](#schema-property-products-list-addons-response-schema-path-string "Direct link to path")

The API request path.

**Example:<!-- -->&#x20;**`:/products/product_id/users.json`

**error** <!-- -->object

This object contains the error details.

**type**string[](#schema-property-products-list-addons-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

**Example:<!-- -->&#x20;**`UnauthorizedAccess`

**message**string[](#schema-property-products-list-addons-response-schema-message-string "Direct link to message")

The descriptive error message.

**Example:<!-- -->&#x20;**`Some error has occured.`

**code**string[](#schema-property-products-list-addons-response-schema-code-string "Direct link to code")

The error code.

**Example:<!-- -->&#x20;**`unauthorized_access`

**http**integer[](#schema-property-products-list-addons-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

**Example:<!-- -->&#x20;**`401`

**timestamp**string[](#schema-property-products-list-addons-response-schema-timestamp-string "Direct link to timestamp")

Current timestamp.

**Example:<!-- -->&#x20;**`Thu, 11 May 2023 11:45:30 +0000`

**request** <!-- -->object

This object sends back the request payload as received by the server (both from path and from body or query).

**property name\***&#x61;ny[](#schema-property-products-list-addons-response-schema-property-name-any "Direct link to property name*")

This object sends back the request payload as received by the server (both from path and from body or query).

**Example:<!-- -->&#x20;**`{"beautify":true,"format":"json"}`

The request is missing the specified argument.

application/json

**Schema**

**path**string[](#schema-property-products-list-addons-response-schema-path-string "Direct link to path")

The API request path.

**Example:<!-- -->&#x20;**`:/products/product_id/users.json`

**error** <!-- -->object

This object contains the error details.

**type**string[](#schema-property-products-list-addons-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

**Example:<!-- -->&#x20;**`UnauthorizedAccess`

**message**string[](#schema-property-products-list-addons-response-schema-message-string "Direct link to message")

The descriptive error message.

**Example:<!-- -->&#x20;**`Some error has occured.`

**code**string[](#schema-property-products-list-addons-response-schema-code-string "Direct link to code")

The error code.

**Example:<!-- -->&#x20;**`unauthorized_access`

**http**integer[](#schema-property-products-list-addons-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

**Example:<!-- -->&#x20;**`401`

**timestamp**string[](#schema-property-products-list-addons-response-schema-timestamp-string "Direct link to timestamp")

Current timestamp.

**Example:<!-- -->&#x20;**`Thu, 11 May 2023 11:45:30 +0000`

**request** <!-- -->object

This object sends back the request payload as received by the server (both from path and from body or query).

**property name\***&#x61;ny[](#schema-property-products-list-addons-response-schema-property-name-any "Direct link to property name*")

This object sends back the request payload as received by the server (both from path and from body or query).

**Example:<!-- -->&#x20;**`{"beautify":true,"format":"json"}`

The requested resource was not found.

application/json

**Schema**

**path**string[](#schema-property-products-list-addons-response-schema-path-string "Direct link to path")

The API request path.

**Example:<!-- -->&#x20;**`:/products/product_id/users.json`

**error** <!-- -->object

This object contains the error details.

**type**string[](#schema-property-products-list-addons-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

**Example:<!-- -->&#x20;**`UnauthorizedAccess`

**message**string[](#schema-property-products-list-addons-response-schema-message-string "Direct link to message")

The descriptive error message.

**Example:<!-- -->&#x20;**`Some error has occured.`

**code**string[](#schema-property-products-list-addons-response-schema-code-string "Direct link to code")

The error code.

**Example:<!-- -->&#x20;**`unauthorized_access`

**http**integer[](#schema-property-products-list-addons-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

**Example:<!-- -->&#x20;**`401`

**timestamp**string[](#schema-property-products-list-addons-response-schema-timestamp-string "Direct link to timestamp")

Current timestamp.

**Example:<!-- -->&#x20;**`Thu, 11 May 2023 11:45:30 +0000`

**request** <!-- -->object

This object sends back the request payload as received by the server (both from path and from body or query).

**property name\***&#x61;ny[](#schema-property-products-list-addons-response-schema-property-name-any "Direct link to property name*")

This object sends back the request payload as received by the server (both from path and from body or query).

**Example:<!-- -->&#x20;**`{"beautify":true,"format":"json"}`
