Welcome to the Freemius API Documentation!
You can use our API to access Freemius API endpoints, which can get information on various aspects of Freemius.
If you're using Freemius for a WordPress product, please check out our official SDK.
Freemius API supports Bearer Token authentication for product-specific operations.
To retrieve your API token:
Use this token by including it in the Authorization
header of your API requests:
Authorization: Bearer {api_token}
Bearer tokens are scoped to a specific product. This means they can only be used with endpoints under the /products/{product_id}/
namespace. For example:
GET /products/12345/users.json
Authorization Bearer {api_token}
Requests to endpoints outside the product scope will result in an authorization error.
The Freemius API is organized around different scopes, based on the top-level entity of the operation:
For example, let's say you want to list all payments of a product. This operation can be done in several scopes:
/products/{product_id}/payments.json
./developers/{developer_id}/products/{product_id}/payments.json
.On the other hand, if a user would want to list their payment, then endpoint will be scoped to the user:
/users/{user_id}/payments.json
.Some operations can be done from a particular scope only. For example only a developer can update a plan of a product or create a new plan. So the following operations will work:
/developers/{developer_id}/products/{product_id}/plans/{plan_id}.json
/developers/{developer_id}/products/{product_id}/plans.json
If you try to perform the same operation on a product scope, it will return an error. The scopes provides a way to control access and permissions for different entities in the Freemius ecosystem.
Currently, Bearer Token authentication is supported for product scope only. If you need access to endpoints in others scopes, use the secret-key based authentication with the following SDKs:
For most use cases, managing your products, licenses, and customers through the Developer Dashboard or Customer Portal provides all the necessary capabilities.
https://api.freemius.com/v1/
https://docs.freemius.com/_mock/api/
https://api.freemius.com/v1/products/{product_id}/installs/{install_id}/plans.json
https://docs.freemius.com/_mock/api/products/{product_id}/installs/{install_id}/plans.json
curl -i -X GET \
'https://api.freemius.com/v1/products/1234/installs/1234/plans.json?fields=id%2Cname%2Cslug&show_pending=false' \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>'
{ "plans": [ { … } ] }
Whether to block features after expiration of the license. If set to false
, this would not block features, would only block updates.
The billing cycle of the subscription in number of months. 1 means monthly, 12 means annually, 0 means lifetime usually when subscriptions are created for lifetime trials.
The expiration date of the license. If null
then it's a lifetime license.
https://api.freemius.com/v1/products/{product_id}/installs/{install_id}/plans/{plan_id}/pricing/{pricing_id}/licenses.json
https://docs.freemius.com/_mock/api/products/{product_id}/installs/{install_id}/plans/{plan_id}/pricing/{pricing_id}/licenses.json
curl -i -X POST \
'https://api.freemius.com/v1/products/1234/installs/1234/plans/1234/pricing/1234/licenses.json?fields=id%2Cname%2Cslug' \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>' \
-H 'Content-Type: application/json' \
-d '{}'
License created successfully.
The date and time the entity was created, under UTC timezone.
The date and time the entity was updated, under UTC timezone. If null
then the entity was never updated since its creation.
The ID of the user the entity belongs to. If NULL then still not associated to any user.
The ID of the pricing associated with the entity.
The maximum number of license activations. If null
then the license will support unlimited activations.
The total number of production activation the license has. This does not count local or staging environment activations.
The number of times the license is activated on local or staging environments.
The expiration date of the license. If null
then it's a lifetime license.
The license key. This is used for activating the license on the user's site.
Whether the license offers unlimited local or staging environment activations.
Whether to block features after expiration of the license. If set to false
, this would not block features, would only block updates.
Guide the Freemius WP SDK when the product should be running in a white-label mode.
The environment the entity belongs to. 0 means it belongs to the production environment, 1 means it belongs to the sandbox environment.
The source of the migration data. To get support migrating from other platform please see our documentation.
0
- Freemius1
- Other2
- Easy Digital Downloads (EDD)3
- WooCommerce (WC)4
- Rating Widget5
- Gumroad6
- CodeCanyon7
- ThemeForest8
- AppSumo9
- SendOwl10
- WHMCS11
- Lemon Squeezy{ "id": "123456", "created": "2025-01-01 00:00:00", "updated": "2025-01-01 00:00:00", "plugin_id": "123456", "user_id": "123456", "plan_id": "123456", "pricing_id": "123456", "quota": 10, "activated": 1, "activated_local": 1, "expiration": "2025-12-31 23:59:59", "secret_key": "sk_123FGqM456Pa786WtOp%^+67Y+;sXXz", "is_free_localhost": true, "is_block_features": true, "is_cancelled": true, "is_whitelabeled": true, "environment": 0, "source": 0 }
The expiry date of the trial. If set, will set the trial expiration based on that parameter. Note: Trial expiration date cannot exceed the maximum trial period days based on the plan configuration.
Whether emails will be sent to users or log events. If true
, no emails will be sent nor events logged.
https://api.freemius.com/v1/products/{product_id}/installs/{install_id}/plans/{plan_id}/trials.json
https://docs.freemius.com/_mock/api/products/{product_id}/installs/{install_id}/plans/{plan_id}/trials.json
curl -i -X POST \
'https://api.freemius.com/v1/products/1234/installs/1234/plans/1234/trials.json?fields=id%2Cname%2Cslug' \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>' \
-H 'Content-Type: application/json' \
-d '{}'
Started Trial
A trial represents a user's trial period for a product. Please read our documentation to learn more about trials.
{ "trial": { "id": "123456", "created": "2025-01-01 00:00:00", "updated": "2025-01-01 00:00:00", "plugin_id": "123456", "user_id": "123456", "payment_id": "123456", "subscription_id": "123456", "license_id": "123456", "trial_ends_at": "2025-01-01 00:00:00", "with_payment_method": true, "canceled_at": "2025-01-01 00:00:00", "converted_at": "2025-01-01 00:00:00", "environment": 0 } }