Concepts
Slug policy model
A slug is a policy template for future licenses. It defines seat limits and expiration behavior, and those values are copied onto each license at generation time.
What a slug controls
max_activations: maximum concurrent active fingerprints (seats).- Expiration policy via
expiration_type:forever,duration, orfixed_date. - Optional policy fields:
expiration_daysforduration, orfixed_expires_atforfixed_date.
Name rules
Slug names are strict and URL-safe so they can be safely used in API paths and integration code.
- Lower-case only.
- Allowed characters:
a-z,0-9, and-. - Must start with an alphanumeric character.
- Example valid names:
default,pro-annual,team-v2.
Snapshot behavior at issuance
When your backend calls POST /generate, the server resolves slug policy and stores it on the license. Later slug edits affect new licenses, not existing ones.
Example slug policy:
json
{
"name": "pro-annual",
"max_activations": 3,
"expiration_type": "duration",
"expiration_days": 365,
"fixed_expires_at": null
}Example generated license state:
json
{
"license_key": "C1B6DE-39A6E3-DE1529-8559A0-4AF593",
"slug": "pro-annual",
"status": "inactive",
"expires_at": "2027-04-21T12:00:00Z",
"created_at": "2026-04-21T12:00:00Z"
}Management flow
- Create and update slug templates with Management API routes under
/management/slugs. - Generate licenses by sending that slug name to
POST /generate. - Keep stable slug names in integrations; rename intentionally and only when you can update callers.
For endpoint-level request and response payloads, see Management API.