---
title: "Create a trial policy"
method: POST
path: "/v3/trial-policies"
tags: ["TrialPolicies"]
---

# Create a trial policy

`POST /v3/trial-policies`

Creates a new trial policy.

## Request body

- TrialPolicyCreateRequestModel
  - `name` string, required — Name of the policy. Any printable characters, including letters from any script, punctuation and emoji. Cannot contain line breaks, tabs, other control characters, invisible formatting characters (zero-width and bidirectional marks), and cannot start or end with whitespace.
  - `fingerprintMatchingStrategy` 'fuzzy' | 'exact' | 'loose', required — Strategy for matching machine fingerprint.
  - `allowVmActivation` boolean, required — Whether to allow an activation inside a virtual machine.
  - `allowContainerActivation` boolean, required — Whether to allow an activation inside a container.
  - `userLocked` boolean, required — Locks the activation to the machine user.
  - `disableGeoLocation` boolean, required — Whether IP address and geo-location should be stored.
  - `allowedIpRanges` string[], nullable — Allowed IP ranges. Leave empty to ignore.
  - `allowedCountries` string[], nullable — List of the allowed countries. Leave empty to ignore.
  - `disallowedCountries` string[], nullable — List of the disallowed countries. Leave empty to ignore.
  - `allowedIpAddresses` string[], nullable — List of the allowed ip addresses. Leave empty to ignore.
  - `disallowedIpAddresses` string[], nullable — List of the disallowed ip addresses. Leave empty to ignore.
  - `trialLength` integer, required — The duration after which the trial will expire.

## Response `201`

Created

- TrialPolicyDto
  - `id` string, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `name` string, required
  - `allowVmActivation` boolean, required
  - `allowContainerActivation` boolean, required
  - `userLocked` boolean, required
  - `disableGeoLocation` boolean, required
  - `allowedIpRange` string, nullable
  - `allowedIpRanges` string[], required
  - `allowedCountries` string[], required
  - `disallowedCountries` string[], required
  - `allowedIpAddresses` string[], required
  - `disallowedIpAddresses` string[], required
  - `trialLength` integer, required
  - `fingerprintMatchingStrategy` 'fuzzy' | 'exact' | 'loose', required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `409` — Conflict
- `429` — Too Many Requests
- `500` — Server Error

---

[API](https://skmtc.net/cryptlex/apis/cryptlex-web-api.md) · [All operations](https://skmtc.net/cryptlex/apis/cryptlex-web-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cryptlex/cryptlex-web-api/revisions/66dcb6293180/schema)
