API Reference
The validation endpoints and the management API for licenses, products, policies, customers, addons, whitelists, access rules and logs.
Your product only needs POST /api/v1/licenses/validate, which is public, and GET /api/v1/public-key to check signatures. POST /api/v1/licenses/activate and POST /api/v1/licenses/deactivate manage device seats with the license key alone. See Checking a Key.
Everything else manages your data and needs an API token from API Tokens in the dashboard, sent as Authorization: Bearer <token>. Set host in the playground to your own API address.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/v1/licenses/validate" \ -H "Content-Type: application/json" \ -d '{ "license_key": "string" }'{ "valid": true, "code": "string", "message": "string", "license": { "key": "string", "status": "string", "product": { "id": 0, "name": "string", "version": "string", "active": true }, "customer": { "id": 0, "name": "string", "email": "string", "discord_id": "string", "blocked": true }, "policy": { "id": 0, "name": "string", "type": "subscription" }, "addons": [ {} ], "expires_at": "string", "whitelists": { "property1": [ "string" ], "property2": [ "string" ] } }, "timestamp": 0}Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/v1/licenses/activate" \ -H "Content-Type: application/json" \ -d '{ "license_key": "string" }'{ "valid": true, "code": "string", "message": "string", "license": { "key": "string", "status": "string", "product": { "id": 0, "name": "string", "version": "string", "active": true }, "customer": { "id": 0, "name": "string", "email": "string", "discord_id": "string", "blocked": true }, "policy": { "id": 0, "name": "string", "type": "subscription" }, "addons": [ {} ], "expires_at": "string", "whitelists": { "property1": [ "string" ], "property2": [ "string" ] } }, "timestamp": 0}Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/v1/licenses/deactivate" \ -H "Content-Type: application/json" \ -d '{ "license_key": "string" }'{ "success": true, "code": "deactivated", "message": "string", "removed": 0, "timestamp": 0}Response Body
application/json
curl -X GET "https://example.com/v1/public-key"{ "algorithm": "string", "publicKey": "string", "raw": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Query Parameters
250Response Body
application/json
application/json
curl -X GET "https://example.com/v1/licenses"{ "total": 0, "rows": [ { "id": 0, "key": "string", "product_id": 0, "customer_id": 0, "policy_id": 0, "policy_name": "string", "max_machines": 0, "status": "string", "expires_at": "string", "addons": [ 0 ], "last_validated_at": "string", "leaked_at": "string", "created_at": "string" } ]}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/v1/licenses" \ -H "Content-Type: application/json" \ -d '{ "product_id": 0, "customer_id": 0 }'{ "id": 0, "key": "string", "product_id": 0, "customer_id": 0, "policy_id": 0, "policy_name": "string", "max_machines": 0, "status": "string", "expires_at": "string", "addons": [ 0 ], "last_validated_at": "string", "leaked_at": "string", "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/licenses/0"{ "id": 0, "key": "string", "product_id": 0, "customer_id": 0, "policy_id": 0, "policy_name": "string", "max_machines": 0, "status": "string", "expires_at": "string", "addons": [ 0 ], "last_validated_at": "string", "leaked_at": "string", "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/v1/licenses/0" \ -H "Content-Type: application/json" \ -d '{ "product_id": 0, "customer_id": 0 }'{ "id": 0, "key": "string", "product_id": 0, "customer_id": 0, "policy_id": 0, "policy_name": "string", "max_machines": 0, "status": "string", "expires_at": "string", "addons": [ 0 ], "last_validated_at": "string", "leaked_at": "string", "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
curl -X DELETE "https://example.com/v1/licenses/0"Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/octet-stream
application/json
curl -X GET "https://example.com/v1/licenses/0/file""string"Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Query Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/licenses/whitelists?license_id=0"[ { "id": 0, "license_id": 0, "group_id": 0, "value": "string", "created_at": "string" }]Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/v1/licenses/whitelists" \ -H "Content-Type: application/json" \ -d '{ "license_id": 0, "group": "string", "value": "string" }'Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
curl -X DELETE "https://example.com/v1/licenses/whitelists/0"Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/v1/licenses/whitelists/reset" \ -H "Content-Type: application/json" \ -d '{ "license_id": 0 }'Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Query Parameters
250Response Body
application/json
application/json
curl -X GET "https://example.com/v1/products"{ "total": 0, "rows": [ { "id": 0, "name": "string", "description": "string", "version": "string", "price": 0, "currency": "string", "duration": 0, "duration_unit": "string", "active": true, "whitelist_groups": [ "string" ], "created_at": "string" } ]}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/v1/products" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "id": 0, "name": "string", "description": "string", "version": "string", "price": 0, "currency": "string", "duration": 0, "duration_unit": "string", "active": true, "whitelist_groups": [ "string" ], "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/products/0"{ "id": 0, "name": "string", "description": "string", "version": "string", "price": 0, "currency": "string", "duration": 0, "duration_unit": "string", "active": true, "whitelist_groups": [ "string" ], "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/v1/products/0" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "id": 0, "name": "string", "description": "string", "version": "string", "price": 0, "currency": "string", "duration": 0, "duration_unit": "string", "active": true, "whitelist_groups": [ "string" ], "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
curl -X DELETE "https://example.com/v1/products/0"Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Query Parameters
250Response Body
application/json
application/json
curl -X GET "https://example.com/v1/customers"{ "total": 0, "rows": [ { "id": 0, "name": "string", "email": "string", "discord_id": "string", "blocked": true, "notes": "string", "created_at": "string" } ]}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/v1/customers" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "id": 0, "name": "string", "email": "string", "discord_id": "string", "blocked": true, "notes": "string", "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/customers/0"{ "id": 0, "name": "string", "email": "string", "discord_id": "string", "blocked": true, "notes": "string", "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/v1/customers/0" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "id": 0, "name": "string", "email": "string", "discord_id": "string", "blocked": true, "notes": "string", "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
curl -X DELETE "https://example.com/v1/customers/0"Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/v1/customers/0/merge" \ -H "Content-Type: application/json" \ -d '{ "customer_id": 0 }'{ "id": 0, "name": "string", "email": "string", "discord_id": "string", "blocked": true, "notes": "string", "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Query Parameters
Value in
- "subscription"
- "perpetual"
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/policies"{ "total": 0, "rows": [ { "id": 0, "product_id": 0, "product_name": "string", "name": "string", "type": "subscription", "max_machines": 0, "duration": 0, "duration_unit": "days", "addons": [ 0 ], "licenses": 0, "created_at": "string" } ]}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/v1/policies" \ -H "Content-Type: application/json" \ -d '{ "product_id": 0, "name": "string" }'{ "id": 0, "product_id": 0, "product_name": "string", "name": "string", "type": "subscription", "max_machines": 0, "duration": 0, "duration_unit": "days", "addons": [ 0 ], "licenses": 0, "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/policies/0"{ "id": 0, "product_id": 0, "product_name": "string", "name": "string", "type": "subscription", "max_machines": 0, "duration": 0, "duration_unit": "days", "addons": [ 0 ], "licenses": 0, "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/v1/policies/0" \ -H "Content-Type: application/json" \ -d '{ "product_id": 0, "name": "string" }'{ "id": 0, "product_id": 0, "product_name": "string", "name": "string", "type": "subscription", "max_machines": 0, "duration": 0, "duration_unit": "days", "addons": [ 0 ], "licenses": 0, "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
curl -X DELETE "https://example.com/v1/policies/0"Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Query Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/addons"{ "total": 0, "rows": [ { "id": 0, "product_id": 0, "name": "string", "price": 0, "currency": "string", "created_at": "string" } ]}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/v1/addons" \ -H "Content-Type: application/json" \ -d '{ "product_id": 0, "name": "string" }'{ "id": 0, "product_id": 0, "name": "string", "price": 0, "currency": "string", "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/addons/0"{ "id": 0, "product_id": 0, "name": "string", "price": 0, "currency": "string", "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/v1/addons/0" \ -H "Content-Type: application/json" \ -d '{ "product_id": 0, "name": "string" }'{ "id": 0, "product_id": 0, "name": "string", "price": 0, "currency": "string", "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
curl -X DELETE "https://example.com/v1/addons/0"Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/whitelists/groups"{ "total": 0, "rows": [ { "id": 0, "name": "string", "type": "ip", "key": "string", "limit": 0, "description": "string", "created_at": "string" } ]}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/v1/whitelists/groups" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "type": "ip" }'{ "id": 0, "name": "string", "type": "ip", "key": "string", "limit": 0, "description": "string", "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/whitelists/groups/0"{ "id": 0, "name": "string", "type": "ip", "key": "string", "limit": 0, "description": "string", "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/v1/whitelists/groups/0" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "type": "ip" }'{ "id": 0, "name": "string", "type": "ip", "key": "string", "limit": 0, "description": "string", "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
curl -X DELETE "https://example.com/v1/whitelists/groups/0"Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/v1/whitelists/attach" \ -H "Content-Type: application/json" \ -d '{ "product_id": 0, "group": "string" }'Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/v1/whitelists/detach" \ -H "Content-Type: application/json" \ -d '{ "product_id": 0, "group": "string" }'Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Query Parameters
Value in
- "block"
- "exclude"
Value in
- "ip"
- "device"
- "country"
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/rules"{ "success": true, "total": 0, "rules": [ { "id": 0, "type": "ip", "mode": "block", "value": "string", "product_id": 0, "product_name": "string", "note": "string", "hits": 0, "created_at": "string" } ]}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/v1/rules" \ -H "Content-Type: application/json" \ -d '{ "type": "ip", "value": "string" }'{ "id": 0, "type": "ip", "mode": "block", "value": "string", "product_id": 0, "product_name": "string", "note": "string", "hits": 0, "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/rules/0"{ "id": 0, "type": "ip", "mode": "block", "value": "string", "product_id": 0, "product_name": "string", "note": "string", "hits": 0, "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/v1/rules/0" \ -H "Content-Type: application/json" \ -d '{ "type": "ip", "value": "string" }'{ "id": 0, "type": "ip", "mode": "block", "value": "string", "product_id": 0, "product_name": "string", "note": "string", "hits": 0, "created_at": "string"}Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Path Parameters
Response Body
application/json
curl -X DELETE "https://example.com/v1/rules/0"Authorization
apiKey API token created in Kora dashboard API Tokens page.
In: header
Query Parameters
250Response Body
application/json
application/json
curl -X GET "https://example.com/v1/validations"{ "total": 0, "rows": [ { "id": 0, "license_id": 0, "product_id": 0, "key": "string", "code": "string", "valid": true, "ip": "string", "hwid": "string", "version": "string", "excluded": true, "created_at": "string" } ]}