List license families
Returns a cursor-paginated page of license families for the current organization, each with the version it currently resolves to: the family's default version, or its highest-numbered published version. A family whose versions are all drafts or all archived is still listed, with no current version.
Authorization
bearerAuth read:licensesA JWT verified by the proxy in front of this API, or a Kaiten access token (ksh_...) — send either as Authorization: Bearer <token>. The scopes listed on each operation are the ones the token must carry; write:<module> implies read:<module>, and read:* / write:* are wildcards over every module. x-kaiten-scopes lists every scope such a token can carry, including those enforced by a service in front of this API rather than by one of its operations.
In: header
Scope: read:licenses
Query Parameters
Opaque pagination cursor from a previous response's nextCursor
Maximum number of entries to return (default 50, max 200)
int321 <= value <= 200Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://app.kaiten.sh/api/license-families"{
"hasMore": true,
"items": [
{
"createdAt": "2023-10-01T12:00:00Z",
"currentVersion": {
"createdAt": "2023-10-01T12:00:00Z",
"description": "This license provides access to all enterprise features including advanced analytics, priority support, and unlimited users.",
"familyId": "123e4567-e89b-12d3-a456-426614174000",
"familySlug": "enterprise-license",
"id": "123e4567-e89b-12d3-a456-426614174000",
"isDefault": false,
"lifecycleState": "PUBLISHED",
"name": "Enterprise License",
"slug": "enterprise-license",
"type": "paid",
"updatedAt": "2023-10-02T12:00:00Z",
"version": "1",
"versionName": "Winter 2024 Release"
},
"id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "enterprise-license",
"updatedAt": "2023-10-02T12:00:00Z",
"versionCount": 3,
"versions": [
{
"createdAt": "2023-10-01T12:00:00Z",
"description": "This license provides access to all enterprise features including advanced analytics, priority support, and unlimited users.",
"familyId": "123e4567-e89b-12d3-a456-426614174000",
"familySlug": "enterprise-license",
"id": "123e4567-e89b-12d3-a456-426614174000",
"isDefault": false,
"lifecycleState": "PUBLISHED",
"name": "Enterprise License",
"slug": "enterprise-license",
"type": "paid",
"updatedAt": "2023-10-02T12:00:00Z",
"version": "1",
"versionName": "Winter 2024 Release"
}
]
}
],
"nextCursor": "string"
}{
"code": "License.NotFound",
"detail": "license not found",
"errorId": "3f6b1a2c-7c1e-4d0b-9d5f-2b0a1c4e8d31",
"errors": [
{
"location": "string",
"message": "string",
"value": null
}
],
"instance": "/api/licenses/enterprise",
"status": 404,
"title": "Not Found",
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.4"
}{
"code": "License.NotFound",
"detail": "license not found",
"errorId": "3f6b1a2c-7c1e-4d0b-9d5f-2b0a1c4e8d31",
"errors": [
{
"location": "string",
"message": "string",
"value": null
}
],
"instance": "/api/licenses/enterprise",
"status": 404,
"title": "Not Found",
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.4"
}{
"code": "License.NotFound",
"detail": "license not found",
"errorId": "3f6b1a2c-7c1e-4d0b-9d5f-2b0a1c4e8d31",
"errors": [
{
"location": "string",
"message": "string",
"value": null
}
],
"instance": "/api/licenses/enterprise",
"status": 404,
"title": "Not Found",
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.4"
}{
"code": "License.NotFound",
"detail": "license not found",
"errorId": "3f6b1a2c-7c1e-4d0b-9d5f-2b0a1c4e8d31",
"errors": [
{
"location": "string",
"message": "string",
"value": null
}
],
"instance": "/api/licenses/enterprise",
"status": 404,
"title": "Not Found",
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.4"
}{
"code": "License.NotFound",
"detail": "license not found",
"errorId": "3f6b1a2c-7c1e-4d0b-9d5f-2b0a1c4e8d31",
"errors": [
{
"location": "string",
"message": "string",
"value": null
}
],
"instance": "/api/licenses/enterprise",
"status": 404,
"title": "Not Found",
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.4"
}Upsert an instance by integration external ID
Create or partially update an instance resolved through adapter + external ID. Missing fields are left unchanged.
Get a license family by slug
Resolves a license family to the version it currently serves, returned as currentVersion: the family's default version if it has one, otherwise its highest-numbered PUBLISHED version. This is the stable address for "the current version of this product", so a caller never has to name a version slug. A family with a default keeps serving it when a newer version is published -- the default is what the vendor puts forward, and superseding it is an explicit act (make another version the default, or unset it). A family without a default follows publication: the newest PUBLISHED version wins. Returns 404 GetLicenseFamily.NoPublishedVersion when the family exists but has no PUBLISHED version, since there is nothing to resolve to. Use ?include=versions to read such a family anyway: with the history requested, the family is returned with its versions and no currentVersion. Use ?version=N for explicit access to one version, including draft and archived ones.