> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kelviq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Activate License

> Activates a license key for a specific instance.



## OpenAPI

````yaml /api-reference/openapi.json post /license/activate/
openapi: 3.0.0
info:
  title: kelviq API
  version: 1.0.0
  description: >-
    API for interacting with kelviq services, derived from Python SDK
    documentation.
servers:
  - url: https://api.kelviq.com/api/v1
    description: kelviq API Server (General - specific operations might override)
security:
  - bearerAuth: []
tags:
  - name: Products
    description: Catalog products.
  - name: Product Settings
    description: Per-product settings (currency, VPN/Tor/proxy, product URL).
  - name: Product Files
    description: Product images and downloadable assets.
  - name: Features
    description: Catalog features that can be granted as plan entitlements.
  - name: Plans
    description: Catalog plans (CRUD, publish, versions, prices).
  - name: Plan Entitlements
    description: Feature entitlements attached to a plan.
  - name: Plan Files
    description: Files attached to plans, and signed download links.
  - name: Media
    description: Generate presigned S3 upload URLs for product/plan images and files.
  - name: Partner
    description: Partner integration APIs (organization provisioning, lookup).
  - name: Charges
    description: >-
      One-time payments charged immediately against a customer's default payment
      method.
paths:
  /license/activate/:
    post:
      tags:
        - License
      summary: Activate License
      description: Activates a license key for a specific instance.
      operationId: licenseActivate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LicenseActivation'
            example:
              licenseKey: LIC-A8D5F89E-B46B-472C-9BED-66EE2545B85E
              customerId: cfa95cf8c8d24e8b9d3d2d1ada98a94d
              instanceName: Geo's Workstation
              metadata:
                os: macOS
                version: '14.2'
      responses:
        '201':
          description: Activation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LicenseActivationResponse'
              example:
                instanceId: 8f3e2b1a-5c6d-4e9f-8a0b-1c2d3e4f5g6h
                activatedAt: '2026-01-27T10:33:00Z'
                expiresOn: '2026-01-28T10:33:00Z'
                license:
                  id: 7be7a5b6-7a0e-4178-a085-8ef48f0649ab
                  licenseKey: LIC-A8D5F89E-B46B-472C-9BED-66EE2545B85E
                  activatedOn: '2026-01-22T03:26:56Z'
                  expiresOn: '2026-01-23T03:26:56Z'
                  activationUsage: 1
                  activationLimit: 4
                  enabled: true
                  customer:
                    customerId: cfa95cf8c8d24e8b9d3d2d1ada98a94d
                    name: Geo
                    email: geo@kelviq.com
                  plan:
                    identifier: pro-yearly
                    name: Pro Yearly
                    product:
                      id: d970ab2d-834f-4c52-8742-2e6ed7e8a31f
                      identifier: kelviq-engine
                      name: Kelviq Engine
                      taxCode: software
                  subscription:
                    id: 09d706ca-58f3-4fb2-818f-5b8623d67e6e
                    recurrence: 1 month
                    billingPeriodStartTime: '2026-01-22T03:26:56Z'
                    billingPeriodEndTime: '2026-02-22T03:26:56Z'
                    startDate: '2026-01-22'
                    endDate: null
                    status: active
                    amount: '49.00'
                    currency: usd
                    trialDaysRemaining: 0
                    billingType: SUBSCRIPTION
                    recurrenceUnit: 1
                    recurrenceType: MONTH
        '400':
          description: Bad Request - Validation failed (e.g., missing licenseKey).
          content:
            application/json:
              example:
                licenseKey:
                  - This field is required.
        '403':
          description: Forbidden - License expired or activation limit reached.
          content:
            application/json:
              examples:
                expired:
                  value:
                    error: This license has expired.
                limit_reached:
                  value:
                    error: Activation limit reached (10/10).
        '404':
          description: Not Found - Invalid license key or customer ID mapping.
          content:
            application/json:
              example:
                error: Invalid license key or customer ID.
        '500':
          description: >-
            Internal Server Error - Processing error during database
            transaction.
          content:
            application/json:
              example:
                error: An error occurred during activation processing.
components:
  schemas:
    LicenseActivation:
      type: object
      properties:
        licenseKey:
          type: string
        customerId:
          type: string
        instanceName:
          type: string
        metadata:
          type: object
          additionalProperties: {}
      required:
        - licenseKey
      example:
        licenseKey: KLVQ-PRO-1234-ABCD-9999
        customerId: cust_45678
        instanceName: Geo's MacBook Pro
    LicenseActivationResponse:
      type: object
      properties:
        instanceId:
          type: string
          format: uuid
        activatedAt:
          type: string
          format: date-time
        expiresOn:
          type: string
          format: date-time
          nullable: true
        license:
          $ref: '#/components/schemas/LicenseDetails'
      example:
        instanceId: 8f3e2b1a-5c6d-4e9f-8a0b-1c2d3e4f5g6h
        activatedAt: '2026-01-27T10:33:00Z'
        expiresOn: '2027-01-27T10:33:00Z'
        license:
          id: 7be7a5b6-7a0e-4178-a085-8ef48f0649ab
          licenseKey: LIC-A8D5F89E-B46B-472C-9BED-66EE2545B85E
          activatedOn: '2026-01-22T03:26:56Z'
          expiresOn: '2026-01-23T03:26:56Z'
          activationUsage: 1
          activationLimit: 4
          enabled: true
          customer:
            customerId: cfa95cf8c8d24e8b9d3d2d1ada98a94d
            name: Geo
            email: geo@kelviq.com
          plan:
            identifier: pro-yearly
            name: Pro Yearly
            product:
              id: d970ab2d-834f-4c52-8742-2e6ed7e8a31f
              identifier: kelviq-engine
              name: Kelviq Engine
              taxCode: software
          subscription:
            id: 09d706ca-58f3-4fb2-818f-5b8623d67e6e
            recurrence: 1 month
            billingPeriodStartTime: '2026-01-22T03:26:56Z'
            billingPeriodEndTime: '2026-02-22T03:26:56Z'
            startDate: '2026-01-22'
            endDate: null
            status: active
            amount: '49.00'
            currency: usd
            trialDaysRemaining: 0
            billingType: SUBSCRIPTION
            recurrenceUnit: 1
            recurrenceType: MONTH
    LicenseDetails:
      type: object
      properties:
        id:
          type: string
          format: uuid
        licenseKey:
          type: string
        activatedOn:
          type: string
          format: date-time
          nullable: true
        expiresOn:
          type: string
          format: date-time
          nullable: true
        activationUsage:
          type: integer
        activationLimit:
          type: integer
        enabled:
          type: boolean
        customer:
          type: object
          properties:
            customerId:
              type: string
            name:
              type: string
            email:
              type: string
              format: email
        plan:
          type: object
          properties:
            identifier:
              type: string
            name:
              type: string
            description:
              type: string
            product:
              type: object
              properties:
                id:
                  type: string
                  format: uuid
                identifier:
                  type: string
                name:
                  type: string
                taxCode:
                  type: string
                createdOn:
                  type: string
                  format: date-time
                modifiedOn:
                  type: string
                  format: date-time
            version:
              type: integer
            isLatest:
              type: boolean
        subscription:
          type: object
          nullable: true
          properties:
            id:
              type: string
              format: uuid
            recurrence:
              type: string
              nullable: true
            billingPeriodStartTime:
              type: string
              format: date-time
              nullable: true
            billingPeriodEndTime:
              type: string
              format: date-time
              nullable: true
            startDate:
              type: string
              format: date
            endDate:
              type: string
              format: date
              nullable: true
            status:
              type: string
              nullable: true
            amount:
              type: string
              nullable: true
            currency:
              type: string
              nullable: true
            trialDaysRemaining:
              type: integer
            billingType:
              type: string
              enum:
                - SUBSCRIPTION
                - ONE_TIME
            recurrenceUnit:
              type: integer
              nullable: true
            recurrenceType:
              type: string
              nullable: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        The Server API Key obtained from the kelviq application. Pass as a
        Bearer token in the Authorization header. Example: 'Authorization:
        Bearer __YOUR_API_KEY__'

````