Kaiten

Update a license family

Changes a family's own settings: whether the public catalogue lists it (families are private until made public), its fallback family, what a trial without a payment method becomes at its end, and the trial reminder's lead. An absent member keeps the stored value. 404 .NotFound; 422 .InvalidFallback, .InvalidTrialEndBehavior, .InvalidTrialReminderDays.

PATCH
/license-families/{familySlug}

Authorization

bearerAuth write:licenses
AuthorizationBearer <token>

A 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 checked server-side against current stored user assignments or stored service-token permissions, never JWT claims; 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: write:licenses

Path Parameters

familySlug*string

License family slug

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X PATCH "https://app.kaiten.sh/api/license-families/pro" \  -H "Content-Type: application/json" \  -d '{}'
{
  "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",
    "pricingType": "PAID",
    "requiresPaymentMethod": false,
    "selfServeCtaUrl": "https://example.com/contact-sales",
    "slug": "enterprise-license",
    "trialPeriodDays": 14,
    "type": "paid",
    "updatedAt": "2023-10-02T12:00:00Z",
    "version": "1",
    "versionName": "Winter 2024 Release"
  },
  "fallbackLicenseFamilySlug": "string",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "isPublic": true,
  "slug": "enterprise-license",
  "trialEndWithoutPaymentMethod": "CANCEL",
  "trialReminderDays": 3,
  "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",
      "pricingType": "PAID",
      "requiresPaymentMethod": false,
      "selfServeCtaUrl": "https://example.com/contact-sales",
      "slug": "enterprise-license",
      "trialPeriodDays": 14,
      "type": "paid",
      "updatedAt": "2023-10-02T12:00:00Z",
      "version": "1",
      "versionName": "Winter 2024 Release"
    }
  ]
}
{
  "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"
}
{
  "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"
}