Togai Entitlements API

APIs related to entitlements

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/togai-entitlements-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

togai-entitlements-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  version: '1.0'
  title: Togai Apis Accounts Entitlements API
  contact:
    email: engg@togai.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  description: APIs for Togai App
servers:
- description: Api endpoint
  url: https://api.togai.com/
- description: Sandbox api endpoint
  url: https://sandbox-api.togai.com/
security:
- bearerAuth: []
tags:
- name: Entitlements
  description: APIs related to entitlements
paths:
  /entitled:
    post:
      tags:
      - Entitlements
      summary: Ingest Event if a User is Entitled to a Feature
      description: This API let’s you to ingest an event if a user is entitled to a feature
      operationId: ingestEntitledEvent
      requestBody:
        $ref: '#/components/requestBodies/IngestEventRequest'
      responses:
        '200':
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccessResponse'
        '400':
          description: Bad request. Please check the response message for failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Credential is not valid. Please check the response message for failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Credential does not have access to add a license entry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Duplicate Id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unable to process the query parameters provided. Please check our docs for the api limits - https://togai.io/docs/limits.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Request throttled. Please check the response message on the failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/features/{feature_id}/entries:
    get:
      tags:
      - Entitlements
      summary: List Feature Credits Entries of a Feature for an Account
      description: This API let’s you to list the feature credits entries of a feature for an account
      operationId: listFeatureCreditEntries
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/feature_id'
      - $ref: '#/components/parameters/filter_page_size'
      - $ref: '#/components/parameters/filter_next_page_token'
      responses:
        '200':
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetFeatureCreditEntriesPaginatedResponse'
              examples:
                GetFeatureCreditEntriesPaginatedResponse:
                  $ref: '#/components/examples/GetFeatureCreditEntriesPaginatedResponse'
        '400':
          description: Bad request. Please check the response message for failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Credential is not valid. Please check the response message for failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Credential does not have access to add a license entry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unable to process the query parameters provided. Please check our docs for the api limits - https://togai.io/docs/limits.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Request throttled. Please check the response message on the failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/features/{feature_id}/entries/{entry_id}:
    patch:
      tags:
      - Entitlements
      summary: Update a Feature Credits Entry
      description: '#### This API let''s you to update the following attributes: `effectiveUntil` and `granted`


        - **effectiveUntil**: must be in future

        - **granted**: must be greater than the existing usage (previous granted - current balance)

        '
      operationId: UpdateFeatureCreditEntry
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/feature_id'
      - $ref: '#/components/parameters/entry_id'
      requestBody:
        $ref: '#/components/requestBodies/UpdateFeatureCreditsRequest'
      responses:
        '200':
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeatureCreditEntry'
              examples:
                FeatureCreditEntry:
                  $ref: '#/components/examples/FeatureCreditEntry'
        '400':
          description: Bad request. Please check the response message for failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Credential is not valid. Please check the response message for failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Credential does not have access to update a feature credit entry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Entry not found. Please check the response message for failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Request throttled. Please check the response message on the failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/features/{feature_id}/entries/{entry_id}/void:
    post:
      tags:
      - Entitlements
      summary: Void a Feature Credits Entry of a Feature for an Account
      description: This API let’s you to void the feature credits entries of a feature for an account
      operationId: VoidFeatureCreditEntry
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/feature_id'
      - $ref: '#/components/parameters/entry_id'
      responses:
        '200':
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccessResponse'
        '400':
          description: Bad request. Please check the response message for failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Credential is not valid. Please check the response message for failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Credential does not have access to void a feature credit entry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Entry not found. Please check the response message for failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Request throttled. Please check the response message on the failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/features/{feature_id}:
    get:
      tags:
      - Entitlements
      summary: Get Feature Credits Balance
      description: This API let’s you to get the feature credits balance
      operationId: getFeatureCredits
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/feature_id'
      responses:
        '200':
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetFeatureCreditsResponse'
              examples:
                GetFeatureCreditsResponse:
                  $ref: '#/components/examples/GetFeatureCreditsResponse'
        '400':
          description: Bad request. Please check the response message for failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Credential is not valid. Please check the response message for failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Credential does not have access to add a license entry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unable to process the query parameters provided. Please check our docs for the api limits - https://togai.io/docs/limits.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Request throttled. Please check the response message on the failure details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/entitlements/{feature_id}:
    get:
      tags:
      - Entitlements
      summary: Get Entitlement Value for a Account
      description: This API let’s you to get the entitlement value for a account
      operationId: getEntitlementValue
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/feature_id'
      responses:
        '200':
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEntitlementValuesResponse'
              examples:
                GetEntitlementValuesResponse:
                  $ref: '#/components/examples/GetEntitlementValuesResponse'
    post:
      tags:
      - Entitlements
      summary: Check Entitlement Value for a Account
      description: This API let’s you to validate the entitlement value for a account
      operationId: validateEntitlementValue
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/feature_id'
      requestBody:
        $ref: '#/components/requestBodies/ValidateEntitlementValueRequest'
      responses:
        '200':
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccessResponse'
  /accounts/{account_id}/entitlements:
    get:
      tags:
      - Entitlements
      summary: Get Entitlements for a Account
      description: This API let’s you to get the entitlements for a account
      operationId: getEntitlements
      parameters:
      - $ref: '#/components/parameters/account_id'
      responses:
        '200':
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEntitlementValuesResponse'
              examples:
                GetEntitlementValuesResponse:
                  $ref: '#/components/examples/GetEntitlementValuesResponse'
components:
  parameters:
    entry_id:
      in: path
      description: '`entryId` corresponding to a particular entitlement/overage grant entry


        Formats:

        1. If source of entry is an entitlement grant rate card in price plan: `schedule_id#pricing_cycle_start_date$PRICE_PLAN`

        2. If source of entry is an entitlement overage rate card in price plan: `schedule_id#pricing_cycle_start_date$OVERAGE`

        3. If source of entry is a purchase: `purchase_id#int_index$PURCHASE`

        '
      name: entry_id
      required: true
      schema:
        type: string
        maxLength: 50
        example: purchase.21HbazIT3JQ.D90jC#1$PURCHASE
    account_id:
      in: path
      description: account_id corresponding to an account
      name: account_id
      required: true
      schema:
        type: string
        maxLength: 50
        example: ACC00001
    filter_page_size:
      in: query
      description: "Maximum page size expected by client to return the record list. \n\n NOTE: Max page size cannot be more than 50. Also 50 is the default page size if no value is provided."
      name: pageSize
      required: false
      schema:
        type: integer
        example: 10
    feature_id:
      in: path
      description: feature_id corresponding to a feature
      name: feature_id
      required: true
      schema:
        type: string
        maxLength: 50
        example: feat.fdjskl.sdkjl
    filter_next_page_token:
      in: query
      description: Pagination token used as a marker to get records from next page.
      name: nextToken
      required: false
      schema:
        type: string
        example: eyJsYXN0SXRlbUlkIjogInN0cmluZyIsICJwYWdlU2l6ZSI6IDEyMywgInNvcnRPcmRlciI6ICJhc2MifQ==
  schemas:
    GetEntitlementValuesResponse:
      type: object
      additionalProperties: false
      required:
      - data
      properties:
        data:
          type: array
          items:
            type: object
            additionalProperties: false
            required:
            - featureId
            - value
            properties:
              featureId:
                type: string
                description: Feature ID
              value:
                type: string
                description: Value of the feature
    GetFeatureCreditEntriesPaginatedResponse:
      type: object
      additionalProperties: false
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/FeatureCreditEntry'
        nextToken:
          type: string
    ErrorResponse:
      type: object
      additionalProperties: false
      required:
      - message
      properties:
        message:
          type: string
          description: error description
          maxLength: 500
    FeatureCreditEntry:
      description: Get feature credits response
      type: object
      additionalProperties: false
      required:
      - id
      - source
      - status
      - used
      - effectiveFrom
      - effectiveUntil
      properties:
        id:
          type: string
          maxLength: 50
          example: purchase.20rvWRxQcQK.0ZwPG$1
        source:
          type: string
          description: Source of the feature credit
          enum:
          - ENTITLEMENT
          - PRICE_PLAN
          - OVERAGE
          - REFUND
        status:
          type: string
          description: Status of the feature credit entry
          enum:
          - ACTIVE
          - EXPIRED
          - VOIDED
        effectiveFrom:
          type: string
          format: date-time
          example: '2021-03-04T14:25:10Z'
        effectiveUntil:
          type: string
          format: date-time
          example: '2021-05-20T01:00:10Z'
        granted:
          type: number
          example: 15
        balance:
          type: number
          example: 10
        used:
          type: number
          example: 10
    GetFeatureCreditsResponse:
      description: Get feature credits response
      type: object
      additionalProperties: false
      required:
      - accountId
      - featureId
      - granted
      - balance
      - usedOverage
      properties:
        accountId:
          type: string
          maxLength: 50
          example: acc.fdjsl.313
        featureId:
          type: string
          maxLength: 50
          example: feat.fdjsl.313
        granted:
          type: number
          example: 15
        balance:
          type: number
          example: 10
        overageLimit:
          type: number
          example: 15
        usedOverage:
          type: number
          example: 10
    Event:
      description: Contents of the event
      type: object
      additionalProperties: false
      required:
      - schemaName
      - timestamp
      - accountId
      - attributes
      - dimensions
      properties:
        schemaName:
          description: "Name of the Event Schema. \nKnow more about [event schema](https://docs.togai.com/docs/event-schemas)\n"
          type: string
          minLength: 1
          maxLength: 50
        id:
          description: Togai restricts users to ingest events with same id within a period of *45 days*. This restriction is common for [/entitled API](/api-reference/entitlements/ingest-event-if-a-user-is-entitled-to-a-feature), [/ingest API](/api-reference/event-ingestion/ingest-events-to-togai) and [/ingestBatch API](/api-reference/event-ingestion/ingest-events-to-togai-in-batch). i.e, an id used on /ingest API will not be allowed on /ingestBatch or /entitled APIs
          type: string
          maxLength: 512
          example: c0b1306d-f506-43a6-856b-69221efaee6b
        timestamp:
          description: Source time stamp of the event. This timestamp must be in ISO 8601 format.
          type: string
          format: date-time
          example: '2022-06-15T07:30:35.123'
        accountId:
          description: The event will be associated with the provided account
          type: string
          maxLength: 512
          example: 1
        attributes:
          description: Attributes are numeric values. It can be usage metric which you push to Togai
          type: array
          minItems: 0
          maxItems: 10
          items:
            $ref: '#/components/schemas/Attribute'
        dimensions:
          $ref: '#/components/schemas/Dimensions'
    ValidateEntitlementValueRequest:
      type: object
      additionalProperties: false
      required:
      - value
      properties:
        value:
          type: string
          description: Value of the entitlement
    IngestEventRequest:
      description: Payload for ingesting events
      type: object
      additionalProperties: false
      required:
      - event
      properties:
        event:
          $ref: '#/components/schemas/Event'
    UpdateFeatureCreditsRequest:
      type: object
      properties:
        effectiveUntil:
          type: string
          format: date-time
          description: Expiry date-time for a feature credits entry
        granted:
          type: number
          description: Granted units for a feature credits entry
    Attribute:
      description: Metric to be recorded
      type: object
      additionalProperties: false
      required:
      - name
      - value
      properties:
        name:
          description: Name of the event attribute
          type: string
          minLength: 1
          maxLength: 50
          example: message
        value:
          description: Value of the event attribute
          type: string
          pattern: ^-?\d{1,512}(\.\d+)?$
          example: 100
        unit:
          description: Unit with which the attribute value was measured. Natively supported units - "Meters, Miles, Kilometers, Grams, Kilograms, ounces, Pounds, Minutes, Hours, Seconds, Milliseconds, Microseconds, None". Clients are free to add any other custom units.
          type: string
          minLength: 1
          maxLength: 50
          example: characters
    Dimensions:
      description: Dimensions are tags/labels associated with the events.
      type: object
      additionalProperties:
        type: string
        minLength: 1
        maxLength: 200
        example:
          Country: India
    BaseSuccessResponse:
      type: object
      additionalProperties: false
      required:
      - success
      properties:
        success:
          type: boolean
          example: true
  examples:
    FeatureCreditEntry:
      summary: Example Update Feature Credits Response
      value:
        id: purchase.20rvWRxQcQK.0ZwPG$1
        status: ACTIVE
        source: ENTITLEMENT
        effectiveFrom: '2020-01-01T00:00:00Z'
        effectiveUntil: '2025-01-01T00:00:00Z'
        granted: 15
        balance: 10
        used: 5
    GetFeatureCreditEntriesPaginatedResponse:
      summary: Example List Feature Credit Entries Response
      value:
        data:
        - id: purchase.20rvWRxQcQK.0ZwPG
          source: ENTITLEMENT
          status: ACTIVE
          granted: 10
          balance: 5
          used: 5
          effectiveFrom: '2020-01-01T00:00:00Z'
          effectiveUntil: '2021-03-04T14:25:10Z'
        - id: purchase.20rvWRxQcQK.0ZwPG
          source: ENTITLEMENT
          status: ACTIVE
          granted: 10
          balance: 5
          used: 5
          effectiveFrom: '2020-01-01T00:00:00Z'
          effectiveUntil: '2021-03-04T14:25:10Z'
        nextToken: eyJsYXN0SXRlbUlkIjogInN0cmluZyIsICJwYWdlU2l6ZSI6IDEwMCwgInNvcnRPcmRlciI6ICJhc2MifQ==
      description: 'Examples response of list feature entries API. The source id can either be a ''PURCHASE_ID'' incase of entry source being a purchase or ''SCHEDULE_ID#CYCLE_START_DATE'' in case of entry source being a price plan rate card to indicate the schedule_id and its start_date that granted the credits

        '
    GetFeatureCreditsResponse:
      summary: Example Get Feature Credits Response
      value:
        accountId: acc.fdjsl.313
        featureId: feat.fdjsl.313
        granted: 15
        balance: 10
        overageLimit: 20
        usedOverage: 15
    GetEntitlementValuesResponse:
      value:
        data:
        - featureId: feat.fdjsl.313
          value: 'true'
        - featureId: feat.fdjsl.314
          value: custom
  responses:
    ErrorResponse:
      description: Error response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            ErrorResponse:
              summary: Error Message
              value:
                message: <Reason message>
  requestBodies:
    IngestEventRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/IngestEventRequest'
    UpdateFeatureCreditsRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateFeatureCreditsRequest'
          examples:
            UpdateFeatureCreditsRequest:
              value:
                effectiveUntil: '2023-02-23T14:25:10Z'
                granted: 200
    ValidateEntitlementValueRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidateEntitlementValueRequest'
          examples:
            ValidateEntitlementValueRequest:
              value:
                value: enum1
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Bearer <credential>
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
externalDocs:
  description: Find out more about Togai
  url: https://docs.togai.com/docs