# Create a user

```
POST 
https://api.freemius.com/v1/products/{product_id}/users.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.

***

Create a new user associated with the product.

The user will be linked to the product if they already exist in Freemius.

> User can only be created for products with elevated permissions or during data migration.

## Migrating users from other platforms[​](#migrating-users-from-other-platforms "Direct link to Migrating users from other platforms")

Freemius allows to migrate your users from other platforms. To do so, you need to set the `is_migration` parameter to `true`. This will prevent any emails from being sent to the users and will not log any events. Once migrated the user can use their existing licenses to activate your product.

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

### Path Parameters

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

  The ID of the product.

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

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

### Query Parameters

* **fields**
  <!-- -->
  string[](#param-property-users-create-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`

application/json

### Body**required**

* **email**string[](#schema-property-users-create-request-body-email-string "Direct link to email")

  Valid email address.

  **password**string[](#schema-property-users-create-request-body-password-string "Direct link to password")

  Valid password. Must have at least 8 characters.

  **ip**string[](#schema-property-users-create-request-body-ip-string "Direct link to ip")

  (optional) IPv4 or IPv6 Address

  **name**string[](#schema-property-users-create-request-body-name-string "Direct link to name")

  (optional) Full name property. If not specified, `first` and `last` must be provided instead.

  **first**string[](#schema-property-users-create-request-body-first-string "Direct link to first")

  (optional) First name. `Required` if no valid `name` was provided.

  **last**string[](#schema-property-users-create-request-body-last-string "Direct link to last")

  (optional) Last name. `Required` if no valid `name` was provided.

  **picture**string[](#schema-property-users-create-request-body-picture-string "Direct link to picture")

  (optional) Profile picture URL.

  **is\_verified**boolean[](#schema-property-users-create-request-body-is-verified-boolean "Direct link to is_verified")

  (optional) Tells if person is already verified, defaults to FALSE.

  **after\_email\_confirm\_url**string[](#schema-property-users-create-request-body-after-email-confirm-url-string "Direct link to after_email_confirm_url")

  (optional) URL address that the user will be auto forwarded to after email confirmation is clicked.

  **send\_verification\_email**boolean[](#schema-property-users-create-request-body-send-verification-email-boolean "Direct link to send_verification_email")

  (optional) Defaults to TRUE. If `false`, email verification message will NOT be sent after registration.

  **is\_marketing\_allowed**boolean[](#schema-property-users-create-request-body-is-marketing-allowed-boolean "Direct link to is_marketing_allowed")nullable

  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.

  **is\_migration**boolean[](#schema-property-users-create-request-body-is-migration-boolean "Direct link to is_migration")

  (optional) If `true`, no emails will be sent to users nor events will be logged.

  **source**string[](#schema-property-users-create-request-body-source-string "Direct link to source")

  The source of the migration data. To get support migrating from other platform please see our [documentation](https://freemius.com/help/documentation/migration/).

  **Possible values:** \[`freemius`, `edd`, `others`, `easydigitaldownloads`, `woo`, `wc`, `woocommerce`, `gumroad`, `cc`, `codecanyon`, `tf`, `themeforest`, `appsumo`, `sendowl`, `whmcs`, `ls`, `lemonsqueezy`]

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

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

* 201
* 400
* 401
* 402

OK

application/json

**Schema**

**note**string[](#schema-property-users-create-response-schema-note-string "Direct link to note")

A note about the user. Only visible to the developer.

**is\_marketing\_allowed**boolean[](#schema-property-users-create-response-schema-is-marketing-allowed-boolean "Direct link to is_marketing_allowed")nullable

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.

**is\_beta**boolean[](#schema-property-users-create-response-schema-is-beta-boolean "Direct link to is_beta")

Whether or not the user has opted-in to beta versions. We do not recommend using this option anymore since it will opt-in the user to all sites/activations. Currently, sites or activations can be managed individually.

**email**string[](#schema-property-users-create-response-schema-email-string "Direct link to email")

Email address of the person.

**Example:<!-- -->&#x20;**`jane@example.com`

**first**string[](#schema-property-users-create-response-schema-first-string "Direct link to first")

First name of the person.

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

**last**string[](#schema-property-users-create-response-schema-last-string "Direct link to last")

Last name of the person.

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

**picture**string[](#schema-property-users-create-response-schema-picture-string "Direct link to picture")

Profile picture URL.

**Example:<!-- -->&#x20;**`https://example.com/profile-pic.jpg`

**ip**string\<ipv4|ipv6>[](#schema-property-users-create-response-schema-ip-string-ipv4-ipv6 "Direct link to ip")nullable

The IP address (v4 or v6).

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

**is\_verified**boolean[](#schema-property-users-create-response-schema-is-verified-boolean "Direct link to is_verified")

Whether the person is trusted or not.

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

**auth**string[](#schema-property-users-create-response-schema-auth-string "Direct link to auth")

The type of authentication. If `app2fa` is set, the person has signed for 2FA authentication.

**Possible values:** \[`app2fa`, `password`]

**secret\_key**string[](#schema-property-users-create-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-users-create-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-users-create-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-users-create-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-users-create-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`

**gross**number\<float>[](#schema-property-users-create-response-schema-gross-number-float "Direct link to gross")

The total amount of money the user has spent on the platform.

**last\_login\_at**string\<date-time>[](#schema-property-users-create-response-schema-last-login-at-string-date-time "Direct link to last_login_at")nullable

Date and time of the last login.

**Example:<!-- -->&#x20;**`2025-07-30 05:56:29`

**email\_status**string[](#schema-property-users-create-response-schema-email-status-string "Direct link to email_status")

The status of the last email sent to the user.

**Possible values:** \[`delivered`, `bounce`, `dropped`]

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

application/json

**Schema**

**path**string[](#schema-property-users-create-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-users-create-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

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

**message**string[](#schema-property-users-create-response-schema-message-string "Direct link to message")

The descriptive error message.

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

**code**string[](#schema-property-users-create-response-schema-code-string "Direct link to code")

The error code.

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

**http**integer[](#schema-property-users-create-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

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

**timestamp**string[](#schema-property-users-create-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-users-create-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-users-create-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-users-create-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

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

**message**string[](#schema-property-users-create-response-schema-message-string "Direct link to message")

The descriptive error message.

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

**code**string[](#schema-property-users-create-response-schema-code-string "Direct link to code")

The error code.

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

**http**integer[](#schema-property-users-create-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

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

**timestamp**string[](#schema-property-users-create-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-users-create-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-users-create-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-users-create-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

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

**message**string[](#schema-property-users-create-response-schema-message-string "Direct link to message")

The descriptive error message.

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

**code**string[](#schema-property-users-create-response-schema-code-string "Direct link to code")

The error code.

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

**http**integer[](#schema-property-users-create-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

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

**timestamp**string[](#schema-property-users-create-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-users-create-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"}`
