Skip to main content
POST
/
license_keys
JavaScript
import DodoPayments from 'dodopayments';

const client = new DodoPayments({
  bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omitted
});

const licenseKey = await client.licenseKeys.create({
  customer_id: 'customer_id',
  key: 'key',
  product_id: 'product_id',
});

console.log(licenseKey.id);
{
  "business_id": "<string>",
  "created_at": "2024-01-01T00:00:00Z",
  "customer_id": "cus_123",
  "id": "lic_123",
  "instances_count": 123,
  "key": "<string>",
  "product_id": "<string>",
  "source": "auto",
  "status": "active",
  "activations_limit": 5,
  "expires_at": "2024-12-31T23:59:59Z",
  "payment_id": "<string>",
  "subscription_id": "<string>"
}
License keys created or updated through the API do not trigger email notifications to customers. If you need to notify customers about their license key, you must handle that separately in your application.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
customer_id
string
required

The customer this license key belongs to.

key
string
required

The license key string to import.

product_id
string
required

The product this license key is for.

activations_limit
integer<int32> | null

Maximum number of activations allowed. Null means unlimited.

expires_at
string<date-time> | null

Expiration timestamp. Null means the key never expires.

Response

License key created

business_id
string
required

The unique identifier of the business associated with the license key.

created_at
string<date-time>
required

The timestamp indicating when the license key was created, in UTC.

Example:

"2024-01-01T00:00:00Z"

customer_id
string
required

The unique identifier of the customer associated with the license key.

Example:

"cus_123"

id
string
required

The unique identifier of the license key.

Example:

"lic_123"

instances_count
integer<int32>
required

The current number of instances activated for this license key.

key
string
required

The license key string.

product_id
string
required

The unique identifier of the product associated with the license key.

source
enum<string>
required

The source of the license key - 'auto' for keys generated by payment/subscription flows, 'import' for merchant-imported keys.

Available options:
auto,
import
status
enum<string>
required

The current status of the license key (e.g., active, inactive, expired).

Available options:
active,
expired,
disabled
activations_limit
integer<int32> | null

The maximum number of activations allowed for this license key.

Example:

5

expires_at
string<date-time> | null

The timestamp indicating when the license key expires, in UTC.

Example:

"2024-12-31T23:59:59Z"

payment_id
string | null

The unique identifier of the payment associated with the license key, if any.

subscription_id
string | null

The unique identifier of the subscription associated with the license key, if any.

Last modified on April 14, 2026