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/
http://api.freemius-local.com:8080/v1/
https://docs.freemius.com/_mock/api/
https://api.freemius.com/v1/developers/{developer_id}/bank_account/{bank_account_id}.json
http://api.freemius-local.com:8080/v1/developers/{developer_id}/bank_account/{bank_account_id}.json
https://docs.freemius.com/_mock/api/developers/{developer_id}/bank_account/{bank_account_id}.json
curl -i -X GET \
https://api.freemius.com/v1/developers/1234/bank_account/1234.json \
-b fsa_access_token=YOUR_API_KEY_HERE
OK
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 type of the person. A developer is a person who sells software through the Freemius platform, a user is a person who buys software through the Freemius platform.
The ISO 3166-1 alpha 2 two-letter country code associated with the entity.
The ISO 3166-1 alpha 2 two-letter country code associated with the entity.
{ "id": "123456", "created": "2025-01-01 00:00:00", "updated": "2025-01-01 00:00:00", "person_id": 0, "person_type": "developer", "account_last4": "string", "name": "string", "phone": "string", "address_street": "string", "address_apt": "string", "address_city": "string", "address_state": "string", "address_zip": "string", "address_country_code": "us", "bank_name": "string", "bank_city_state": "string", "bank_country_code": "us", "swift": "string", "ifsc": "string", "sort_code": "string", "aba_rtn": "string", "wise_account_email": "string" }
Call this endpoint with your developer email and password and optionally 2FA auth code to login and set the authorization cookie.
This is a public endpoint and does not require any authentication.
Please note that this endpoint is not meant for public use and should only be used by the Freemius Developer Dashboard. The login can expect a reCAPTCHA token and it will only work if the reCAPTCHA widget is initialized from the Developer Dashboard itself. To get API tokens for a product or a store, please do it from the Developer Dashboard app itself.
reCAPTCHA token. One must use the Developer Dashboard to get the reCAPTCHA token if the login asks for it.
Will set the cookie expiration day to 7 days from the successful login if set to true
. Otherwise, the cookie will expire in 12 hours.
https://api.freemius.com/v1/developers/{developer_id}/login.json
http://api.freemius-local.com:8080/v1/developers/{developer_id}/login.json
https://docs.freemius.com/_mock/api/developers/{developer_id}/login.json
curl -i -X POST \
https://api.freemius.com/v1/developers/1234/login.json \
-H 'Content-Type: application/json' \
-d '{}'
{ "person": { "email": "jane@example.com", "first": "Jane", "last": "Doe", "picture": "https://example.com/profile-pic.jpg", "ip": "127.0.0.1", "is_verified": "true", "auth": "app2fa", "secret_key": "sk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "public_key": "pk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "id": "123456", "created": "2025-01-01 00:00:00", "updated": "2025-01-01 00:00:00", "paypal_email": "payout@example.com", "security_email": "security@example.com", "is_trusted": true, "earnings": "1000.00", "last_cycle_earnings": "100.00", "commission": "{\"above\":0.1}" }, "expires": 0, "is_new": true }
The user role assigned to the team member.
https://api.freemius.com/v1/developer/{developer_id}/products/{product_id}/installs/{install_id}/members.json
http://api.freemius-local.com:8080/v1/developer/{developer_id}/products/{product_id}/installs/{install_id}/members.json
https://docs.freemius.com/_mock/api/developer/{developer_id}/products/{product_id}/installs/{install_id}/members.json
curl -i -X POST \
'https://api.freemius.com/v1/developer/{developer_id}/products/1234/installs/1234/members.json' \
-H 'Authorization: Bearer <YOUR_AccessToken_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"role": "admin"
}'
{ "id": 1234, "email": "foo@example.com", "first": "John", "last": "Doe", "picture": "string", "role": "admin", "plugin_id": "123456" }