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

# List plugin entitlements

> What the tenant's plan lets it install, per plugin: whether it is enabled,
how many connections it allows and how many are in use, and the plan that
would enable it when it is not. A plugin missing from `entitlements` gets
`fallback`. Drives the plugin store; the install itself checks again.



## OpenAPI

````yaml /api/services-api.yaml get /v1/tenants/{tenantID}/plugins/entitlements
openapi: 3.0.3
info:
  description: >-
    Talqui is an omnichannel customer service platform that unifies
    conversations from WhatsApp, Instagram, Telegram, and many other channels
    into a single attendant panel, alongside a broader ecosystem of plugins and
    integrations. This API gives developers programmatic access to Talqui's
    services layer, exposing the operations needed to read and manage tenants,
    conversations, plugins, and related resources that power that platform.


    Authentication is available on behalf of an Operator (the default for this
    API), a Plugin Connection, or a Plugin — see the [Talqui authentication
    guide](https://docs.talqui.chat/guides/introduction/authentication/) for how
    each token is obtained and when to use it.


    Need help or have questions not covered here? Reach out to
    support@talqui.com.
  license:
    name: ISC
    url: https://opensource.org/license/isc-license-txt
  title: Talqui - Services API
  version: 0.87.1
servers:
  - description: Production
    url: https://services-api.talqui.chat
security: []
tags:
  - name: Tenants
  - name: Settings
  - name: Analytics/Reports
  - name: Analytics
  - name: Campaigns
  - name: Campaigns/Models
  - name: Contacts
  - name: Contacts/Imports
  - name: Handoff links
  - name: Inboxes
  - name: Messages
  - name: Notifications
  - name: Sessions
  - name: Operators/Shortcuts
  - name: Operators
  - name: Plugins
  - name: Setup
paths:
  /v1/tenants/{tenantID}/plugins/entitlements:
    get:
      tags:
        - Plugins
      summary: List plugin entitlements
      description: >-
        What the tenant's plan lets it install, per plugin: whether it is
        enabled,

        how many connections it allows and how many are in use, and the plan
        that

        would enable it when it is not. A plugin missing from `entitlements`
        gets

        `fallback`. Drives the plugin store; the install itself checks again.
      operationId: ListPluginEntitlementsController
      parameters:
        - in: path
          name: tenantID
          required: true
          schema:
            description: The tenant whose plugin entitlements are being listed.
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  data:
                    additionalProperties: false
                    properties:
                      entitlements:
                        additionalProperties:
                          additionalProperties: false
                          properties:
                            enabled:
                              description: >-
                                Whether the plan (or an exception) lets the
                                tenant install this plugin.
                              type: boolean
                            limit:
                              description: Connections allowed; `null` is unlimited.
                              maximum: 9007199254740991
                              minimum: -9007199254740991
                              nullable: true
                              type: integer
                            upgradeTo:
                              description: >-
                                Code of the cheapest plan that would give more
                                (enable the plugin, or allow more connections);
                                `null` when none would.
                              nullable: true
                              type: string
                            used:
                              description: >-
                                Connections of this plugin the tenant already
                                has (not deleted).
                              maximum: 9007199254740991
                              minimum: -9007199254740991
                              type: integer
                          required:
                            - enabled
                            - limit
                            - used
                            - upgradeTo
                          type: object
                        description: By canonical plugin URN.
                        type: object
                      fallback:
                        additionalProperties: false
                        description: What any plugin missing from `entitlements` gets.
                        properties:
                          enabled:
                            description: >-
                              Whether the plan (or an exception) lets the tenant
                              install this plugin.
                            type: boolean
                          limit:
                            description: Connections allowed; `null` is unlimited.
                            maximum: 9007199254740991
                            minimum: -9007199254740991
                            nullable: true
                            type: integer
                          upgradeTo:
                            description: >-
                              Code of the cheapest plan that would give more
                              (enable the plugin, or allow more connections);
                              `null` when none would.
                            nullable: true
                            type: string
                          used:
                            description: >-
                              Connections of this plugin the tenant already has
                              (not deleted).
                            maximum: 9007199254740991
                            minimum: -9007199254740991
                            type: integer
                        required:
                          - enabled
                          - limit
                          - used
                          - upgradeTo
                        type: object
                    required:
                      - fallback
                      - entitlements
                    type: object
                required:
                  - data
                type: object
          description: Response for status 200.
        '400':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      oneOf:
                        - $ref: '#/components/schemas/MissingTenantIDError'
                        - $ref: '#/components/schemas/RequestValidationError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            MissingTenantIDError (error_code 1001): tenantID absent from the
            URL. | RequestValidationError (error_code 1002): params fail schema
            validation.
        '401':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/UnauthorizedError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: 'UnauthorizedError (error_code 1003): missing/invalid operator token.'
        '403':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/ForbiddenError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            ForbiddenError (error_code 1004): operator does not belong to this
            tenant.
        '404':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      oneOf:
                        - $ref: '#/components/schemas/TenantNotFoundError'
                        - $ref: '#/components/schemas/TenantSubscriptionNotFoundError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            TenantNotFoundError (error_code 1062): no live tenant has this
            tenantID. | TenantSubscriptionNotFoundError (error_code 1208): the
            tenant has no subscription yet.
        '500':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/UnknownError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            UnknownError (error_code 5999): Unexpected internal error not
            otherwise documented for this endpoint.
        '502':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/BadGatewayError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            BadGatewayError (error_code 5002): Accounting could not resolve the
            entitlements.
components:
  schemas:
    MissingTenantIDError:
      additionalProperties: false
      properties:
        error:
          enum:
            - MissingTenantIDError
          type: string
        error_code:
          enum:
            - 1001
          type: number
        message:
          example: tenantID is required.
          type: string
        statusCode:
          enum:
            - 400
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    RequestValidationError:
      additionalProperties: false
      properties:
        error:
          enum:
            - RequestValidationError
          type: string
        error_code:
          enum:
            - 1002
          type: number
        fields:
          items:
            additionalProperties: false
            properties:
              allowed:
                type: string
              field:
                type: string
              received:
                type: string
            required:
              - field
              - received
              - allowed
            type: object
          type: array
        message:
          example: Invalid request data.
          type: string
        statusCode:
          enum:
            - 400
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
        - fields
      type: object
    UnauthorizedError:
      additionalProperties: false
      properties:
        error:
          enum:
            - UnauthorizedError
          type: string
        error_code:
          enum:
            - 1003
          type: number
        message:
          example: You are not authorized to perform this request.
          type: string
        statusCode:
          enum:
            - 401
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    ForbiddenError:
      additionalProperties: false
      properties:
        error:
          enum:
            - ForbiddenError
          type: string
        error_code:
          enum:
            - 1004
          type: number
        message:
          example: You do not have access to this resource.
          type: string
        statusCode:
          enum:
            - 403
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    TenantNotFoundError:
      additionalProperties: false
      properties:
        error:
          enum:
            - TenantNotFoundError
          type: string
        error_code:
          enum:
            - 1062
          type: number
        message:
          example: Tenant not found.
          type: string
        statusCode:
          enum:
            - 404
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    TenantSubscriptionNotFoundError:
      additionalProperties: false
      properties:
        error:
          enum:
            - TenantSubscriptionNotFoundError
          type: string
        error_code:
          enum:
            - 1208
          type: number
        message:
          example: Tenant has no subscription.
          type: string
        statusCode:
          enum:
            - 404
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    UnknownError:
      additionalProperties: false
      properties:
        error:
          enum:
            - UnknownError
          type: string
        error_code:
          enum:
            - 5999
          type: number
        message:
          example: For some unknown reason your request has not succeeded.
          type: string
        statusCode:
          enum:
            - 500
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    BadGatewayError:
      additionalProperties: false
      properties:
        error:
          enum:
            - BadGatewayError
          type: string
        error_code:
          enum:
            - 5002
          type: number
        message:
          example: External service returned an invalid response.
          type: string
        statusCode:
          enum:
            - 502
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.