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/
Unique identifier of the caller. The UID must be same when pinging and when activating or deactivating a license. The generation of the UID is a responsibility of the client.
The license key. This is used for activating the license on the user's site.
The Freemius SDK version. Only relevant for WordPress products using the Freemius WP SDK.
The programming language version (e.g PHP version).
The ID of the trial license associated to the product. If this is not a trial, this will be null
.
A flag that controls whether the SDK should be required or not during deployment of a version. It defaults to true
.
Uninstall reason. Possible values:
1
- No longer needed2
- Found a better alternative3
- Only needed for short period4
- Broke the website5
- Suddenly stopped working6
- Cannot continue paying7
- Other8
- Didn't work after installation9
- User doesn't like to share data10
- Didn't understand how it works11
- Missing specific feature12
- Didn't work13
- Expected something else14
- Expected to work differently15
- Temporary deactivationAdditional information gathered from the user for the uninstallation. This is populated when the product user chooses “Other” in contrast to pre-set options.
The ID of the user. This is used for ownership change of the install.
The email of the user. This is used for ownership change of the install.
https://api.freemius.com/v1/products/{product_id}/installs/{install_id}.json
https://docs.freemius.com/_mock/api/products/{product_id}/installs/{install_id}.json
curl -i -X PUT \
https://api.freemius.com/v1/products/1234/installs/1234.json \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>' \
-H 'Content-Type: application/json' \
-d '{}'
Install updated
The secret key associated with the entity for authorization.
The public key associated with the entity for authorization.
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 plan associated with the product that the install has a license activation. If null
it means the install is using the free plan.
The ID of the license associated with the entity.
The ID of the trial license associated to the product. If this is not a trial, this will be null
.
The product trial license expiry date. If this is not a trial, this will be null.
The ID of the subscription associated with the entity.
The gross amount the install has spent on the product. This includes one time purchase, or subscriptions and renewals.
The ISO 3166-1 alpha 2 two-letter country code associated with the entity.
The Freemius SDK version. Only relevant for WordPress products using the Freemius WP SDK.
The programming language version (e.g PHP version).
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 SqueezyTime when the product was upgraded to the current version. If never upgraded since the initial installation, this will be null
.
The last time the product was used on the site.
{ "secret_key": "sk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "public_key": "pk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "id": "123456", "created": "2025-01-01 00:00:00", "updated": "2025-01-01 00:00:00", "site_id": 1234, "plugin_id": "123456", "user_id": "123456", "url": "https://example.com", "title": "Catwalk Designs", "version": "1.0.0", "plan_id": "1234", "license_id": "123456", "trial_plan_id": "1234", "trial_ends": "2025-01-01 00:00:00", "subscription_id": "123456", "gross": 100, "country_code": "us", "language": "en-GB", "platform_version": "1.0.0", "sdk_version": "1.2.2", "programming_language_version": "5.6", "is_active": true, "is_disconnected": true, "is_premium": true, "is_uninstalled": true, "is_locked": true, "source": 0, "upgraded": "2025-01-01 00:00:00", "last_seen_at": "2025-01-01 00:00:00", "last_served_update_version": "1.2.2" }
https://api.freemius.com/v1/products/{product_id}/installs/{install_id}.json
https://docs.freemius.com/_mock/api/products/{product_id}/installs/{install_id}.json
curl -i -X DELETE \
https://api.freemius.com/v1/products/1234/installs/1234.json \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>'
No content
https://api.freemius.com/v1/products/{product_id}/installs.json
https://docs.freemius.com/_mock/api/products/{product_id}/installs.json
curl -i -X GET \
'https://api.freemius.com/v1/products/1234/installs.json?all=false&count=10&fields=id%2Cname%2Cslug&filter=all&ids=1234%2C2478%2C2345&license_id=0&offset=10&plan_id=0&reason_id=string&search=string&title=string&url=string&version=string' \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>'
{ "installs": [ { … } ] }