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.
We support Bearer authentication. You can get the API Key from the Freemius Developer Dashboard for a product.
More information can be found under the Security section of every endpoint.
https://api.freemius.com/v1/
https://docs.freemius.com/_mock/api/
https://api.freemius.com/v1/products/{product_id}/installs/{install_id}/licenses/{license_id}/subscriptions.json
https://docs.freemius.com/_mock/api/products/{product_id}/installs/{install_id}/licenses/{license_id}/subscriptions.json
curl -i -X GET \
'https://api.freemius.com/v1/products/1234/installs/1234/licenses/1234/subscriptions.json?count=10&fields=id%2Cname%2Cslug&offset=10' \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>'
{ "subscriptions": [ { … } ] }
Activate a license and if needed, create an install with the given properties.
No Authorization header is required. If the provided license doesn't have an associated user, the endpoint will require the
first_name
,last_name
, anduser_email
parameters to create a new user and associate it with the license.
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.
Whether or not the user has given their consent for marketing materials. A null
value indicates that the user has not made a decision yet.
Install ID when activating on an already existing install. If provided must belong to the same user as the license owner and must have the same UID. The new license will be activated for the install and existing one will be deactivated.
https://api.freemius.com/v1/products/{product_id}/licenses/activate.json
https://docs.freemius.com/_mock/api/products/{product_id}/licenses/activate.json
curl -i -X POST \
https://api.freemius.com/v1/products/1234/licenses/activate.json \
-H 'Content-Type: application/json' \
-d '{
"uid": "7W131pej6bJYV8WYM9KgGoBNB9bCiSrY",
"license_key": "sk_123FGqM456Pa786WtOp%^+67Y+;sXXz"
}'
License activated successfully.
The secret key associated with the entity for authorization.
The public key associated with the entity for authorization.
The name of the plan. Only lowercase characters allowed.
Whether or not the user has given their consent for marketing materials. A null
value indicates that the user has not made a decision yet.
The secret key associated with the entity for authorization.
The public key associated with the entity for authorization.
The API access token with which authenticated requests can be made for this install
entity. You need to set this token as the Bearer
token in the Authorization
header. For example:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
{ "user_id": "123456", "user_secret_key": "sk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "user_public_key": "pk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "plugin_id": "123456", "license_plan_name": "professional", "is_marketing_allowed": true, "install_id": "123456", "install_secret_key": "sk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "install_public_key": "pk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "install_api_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" }
The quota to use. Can be a number or the string 'unlimited'.
The quota to use. Can be a number or the string 'unlimited'.
The quota to use. Can be a number or the string 'unlimited'.
Whether to update the payment method. If true, the link will be generated for the current plan and billing cycle of the license and other parameters will be ignored. If the license is not associated with a subscription, or is lifetime, an exception will be thrown.
https://api.freemius.com/v1/products/{product_id}/licenses/{license_id}/checkout/link.json
https://docs.freemius.com/_mock/api/products/{product_id}/licenses/{license_id}/checkout/link.json
curl -i -X POST \
https://api.freemius.com/v1/products/1234/licenses/1234/checkout/link.json \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>' \
-H 'Content-Type: application/json' \
-d '{}'
Upgrade link generated successfully.
The settings used to generate the link. This can be fed as-is to the Freemius Checkout JS SDK if you're using modals in your website.
{ "url": "http://example.com", "settings": { "plugin_id": 1, "plan_id": 2, "licenses": "unlimited" }, "expires": "2019-08-24T14:15:22Z" }
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.
Install ID from which the license should be deactivated. The license must be active on the install.
https://api.freemius.com/v1/products/{product_id}/licenses/deactivate.json
https://docs.freemius.com/_mock/api/products/{product_id}/licenses/deactivate.json
curl -i -X POST \
'https://api.freemius.com/v1/products/1234/licenses/deactivate.json?fields=id%2Cname%2Cslug' \
-H 'Content-Type: application/json' \
-d '{
"uid": "7W131pej6bJYV8WYM9KgGoBNB9bCiSrY",
"install_id": 0,
"license_key": "sk_123FGqM456Pa786WtOp%^+67Y+;sXXz"
}'
License deactivated.
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" }
Filter licenses by status.
If true
, returns the associated user information.
The number of records to skip before starting to return records. Default is 0.
Comma separated list of fields to return in the response. If not specified, all fields are returned.
https://api.freemius.com/v1/products/{product_id}/licenses.json
https://docs.freemius.com/_mock/api/products/{product_id}/licenses.json
curl -i -X GET \
'https://api.freemius.com/v1/products/1234/licenses.json?count=10&enriched=true&fields=id%2Cname%2Cslug&filter=active&offset=10&plan_id=123&search=123&source=123' \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>'
{ "licenses": [ { … } ] }
The license key. This is used for activating the license on the user's site.
https://api.freemius.com/v1/products/{product_id}/licenses.json
https://docs.freemius.com/_mock/api/products/{product_id}/licenses.json
curl -i -X PUT \
'https://api.freemius.com/v1/products/1234/licenses.json?fields=id%2Cname%2Cslug' \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"email": "foo@example.com",
"license_key": "sk_123FGqM456Pa786WtOp%^+67Y+;sXXz"
}'
The license is assigned.
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 }
https://api.freemius.com/v1/products/{product_id}/licenses/{license_id}/installs.json
https://docs.freemius.com/_mock/api/products/{product_id}/licenses/{license_id}/installs.json
curl -i -X DELETE \
'https://api.freemius.com/v1/products/1234/licenses/1234/installs.json?fields=id%2Cname%2Cslug' \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>'
Licenses deactivated from all installs.
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 }
https://api.freemius.com/v1/products/{product_id}/licenses/{license_id}/renewals.json
https://docs.freemius.com/_mock/api/products/{product_id}/licenses/{license_id}/renewals.json
curl -i -X POST \
https://api.freemius.com/v1/products/1234/licenses/1234/renewals.json \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>'
{ "sent": true }
https://api.freemius.com/v1/products/{product_id}/licenses/{license_id}/resend.json
https://docs.freemius.com/_mock/api/products/{product_id}/licenses/{license_id}/resend.json
curl -i -X POST \
https://api.freemius.com/v1/products/1234/licenses/1234/resend.json \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>'