Schematic entitlements API

The entitlements API from Schematic — 16 operation(s) for entitlements.

Documentation

Specifications

SDKs

Schemas & Data

Other Resources

OpenAPI Specification

schematic-entitlements-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Schematic accesstokens entitlements API
  version: '0.1'
  description: Schematic API
  x-rules-engine-schema-version: v97288f60
servers:
- url: https://api.schematichq.com
security:
- ApiKeyAuth: []
tags:
- name: entitlements
paths:
  /company-overrides:
    get:
      operationId: listCompanyOverrides
      summary: List company overrides
      tags:
      - entitlements
      parameters:
      - name: company_id
        in: query
        description: Filter company overrides by a single company ID (starting with comp_)
        schema:
          type: string
          description: Filter company overrides by a single company ID (starting with comp_)
      - name: company_ids
        in: query
        description: Filter company overrides by multiple company IDs (starting with comp_)
        schema:
          type: array
          description: Filter company overrides by multiple company IDs (starting with comp_)
          items:
            type: string
          maxItems: 100
      - name: feature_id
        in: query
        description: Filter company overrides by a single feature ID (starting with feat_)
        schema:
          type: string
          description: Filter company overrides by a single feature ID (starting with feat_)
      - name: feature_ids
        in: query
        description: Filter company overrides by multiple feature IDs (starting with feat_)
        schema:
          type: array
          description: Filter company overrides by multiple feature IDs (starting with feat_)
          items:
            type: string
          maxItems: 100
      - name: ids
        in: query
        description: Filter company overrides by multiple company override IDs (starting with cmov_)
        schema:
          type: array
          description: Filter company overrides by multiple company override IDs (starting with cmov_)
          items:
            type: string
          maxItems: 100
      - name: without_expired
        in: query
        description: Filter company overrides by whether they have not expired
        schema:
          type: boolean
          description: Filter company overrides by whether they have not expired
      - name: q
        in: query
        description: Search for company overrides by feature or company name
        schema:
          type: string
          description: Search for company overrides by feature or company name
      - name: limit
        in: query
        description: Page limit (default 100)
        schema:
          type: integer
          description: Page limit (default 100)
          format: int64
          example: '100'
      - name: offset
        in: query
        description: Page offset (default 0)
        schema:
          type: integer
          description: Page offset (default 0)
          format: int64
          example: '0'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CompanyOverrideResponseData'
                    title: ListCompanyOverridesResponseData
                    maxItems: 250
                  params:
                    type: object
                    description: Input parameters
                    properties:
                      company_id:
                        type: string
                        description: Filter company overrides by a single company ID (starting with comp_)
                      company_ids:
                        type: array
                        description: Filter company overrides by multiple company IDs (starting with comp_)
                        items:
                          type: string
                        maxItems: 100
                      feature_id:
                        type: string
                        description: Filter company overrides by a single feature ID (starting with feat_)
                      feature_ids:
                        type: array
                        description: Filter company overrides by multiple feature IDs (starting with feat_)
                        items:
                          type: string
                        maxItems: 100
                      ids:
                        type: array
                        description: Filter company overrides by multiple company override IDs (starting with cmov_)
                        items:
                          type: string
                        maxItems: 100
                      limit:
                        type: integer
                        description: Page limit (default 100)
                        format: int64
                        example: '100'
                      offset:
                        type: integer
                        description: Page offset (default 0)
                        format: int64
                        example: '0'
                      q:
                        type: string
                        description: Search for company overrides by feature or company name
                      without_expired:
                        type: boolean
                        description: Filter company overrides by whether they have not expired
                    title: ListCompanyOverridesParams
                required:
                - data
                - params
                title: ListCompanyOverridesResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: createCompanyOverride
      summary: Create company override
      tags:
      - entitlements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCompanyOverrideRequestBody'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CompanyOverrideResponseData'
                  params:
                    type: object
                    description: Input parameters
                    title: CreateCompanyOverrideParams
                required:
                - data
                - params
                title: CreateCompanyOverrideResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /company-overrides/{company_override_id}:
    get:
      operationId: getCompanyOverride
      summary: Get company override
      tags:
      - entitlements
      parameters:
      - name: company_override_id
        in: path
        description: company_override_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CompanyOverrideResponseData'
                  params:
                    type: object
                    description: Input parameters
                    title: GetCompanyOverrideParams
                required:
                - data
                - params
                title: GetCompanyOverrideResponse
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    put:
      operationId: updateCompanyOverride
      summary: Update company override
      tags:
      - entitlements
      parameters:
      - name: company_override_id
        in: path
        description: company_override_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCompanyOverrideRequestBody'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CompanyOverrideResponseData'
                  params:
                    type: object
                    description: Input parameters
                    title: UpdateCompanyOverrideParams
                required:
                - data
                - params
                title: UpdateCompanyOverrideResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    delete:
      operationId: deleteCompanyOverride
      summary: Delete company override
      tags:
      - entitlements
      parameters:
      - name: company_override_id
        in: path
        description: company_override_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/DeleteResponse'
                  params:
                    type: object
                    description: Input parameters
                    title: DeleteCompanyOverrideParams
                required:
                - data
                - params
                title: DeleteCompanyOverrideResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /company-overrides/count:
    get:
      operationId: countCompanyOverrides
      summary: Count company overrides
      tags:
      - entitlements
      parameters:
      - name: company_id
        in: query
        description: Filter company overrides by a single company ID (starting with comp_)
        schema:
          type: string
          description: Filter company overrides by a single company ID (starting with comp_)
      - name: company_ids
        in: query
        description: Filter company overrides by multiple company IDs (starting with comp_)
        schema:
          type: array
          description: Filter company overrides by multiple company IDs (starting with comp_)
          items:
            type: string
          maxItems: 100
      - name: feature_id
        in: query
        description: Filter company overrides by a single feature ID (starting with feat_)
        schema:
          type: string
          description: Filter company overrides by a single feature ID (starting with feat_)
      - name: feature_ids
        in: query
        description: Filter company overrides by multiple feature IDs (starting with feat_)
        schema:
          type: array
          description: Filter company overrides by multiple feature IDs (starting with feat_)
          items:
            type: string
          maxItems: 100
      - name: ids
        in: query
        description: Filter company overrides by multiple company override IDs (starting with cmov_)
        schema:
          type: array
          description: Filter company overrides by multiple company override IDs (starting with cmov_)
          items:
            type: string
          maxItems: 100
      - name: without_expired
        in: query
        description: Filter company overrides by whether they have not expired
        schema:
          type: boolean
          description: Filter company overrides by whether they have not expired
      - name: q
        in: query
        description: Search for company overrides by feature or company name
        schema:
          type: string
          description: Search for company overrides by feature or company name
      - name: limit
        in: query
        description: Page limit (default 100)
        schema:
          type: integer
          description: Page limit (default 100)
          format: int64
          example: '100'
      - name: offset
        in: query
        description: Page offset (default 0)
        schema:
          type: integer
          description: Page offset (default 0)
          format: int64
          example: '0'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CountResponse'
                  params:
                    type: object
                    description: Input parameters
                    properties:
                      company_id:
                        type: string
                        description: Filter company overrides by a single company ID (starting with comp_)
                      company_ids:
                        type: array
                        description: Filter company overrides by multiple company IDs (starting with comp_)
                        items:
                          type: string
                        maxItems: 100
                      feature_id:
                        type: string
                        description: Filter company overrides by a single feature ID (starting with feat_)
                      feature_ids:
                        type: array
                        description: Filter company overrides by multiple feature IDs (starting with feat_)
                        items:
                          type: string
                        maxItems: 100
                      ids:
                        type: array
                        description: Filter company overrides by multiple company override IDs (starting with cmov_)
                        items:
                          type: string
                        maxItems: 100
                      limit:
                        type: integer
                        description: Page limit (default 100)
                        format: int64
                        example: '100'
                      offset:
                        type: integer
                        description: Page offset (default 0)
                        format: int64
                        example: '0'
                      q:
                        type: string
                        description: Search for company overrides by feature or company name
                      without_expired:
                        type: boolean
                        description: Filter company overrides by whether they have not expired
                    title: CountCompanyOverridesParams
                required:
                - data
                - params
                title: CountCompanyOverridesResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /feature-companies:
    get:
      operationId: listFeatureCompanies
      summary: List feature companies
      tags:
      - entitlements
      parameters:
      - name: feature_id
        in: query
        required: true
        schema:
          type: string
      - name: q
        in: query
        schema:
          type: string
      - name: limit
        in: query
        description: Page limit (default 100)
        schema:
          type: integer
          description: Page limit (default 100)
          format: int64
          example: '100'
      - name: offset
        in: query
        description: Page offset (default 0)
        schema:
          type: integer
          description: Page offset (default 0)
          format: int64
          example: '0'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FeatureCompanyResponseData'
                    title: ListFeatureCompaniesResponseData
                    maxItems: 250
                  params:
                    type: object
                    description: Input parameters
                    properties:
                      feature_id:
                        type: string
                      limit:
                        type: integer
                        description: Page limit (default 100)
                        format: int64
                        example: '100'
                      offset:
                        type: integer
                        description: Page offset (default 0)
                        format: int64
                        example: '0'
                      q:
                        type: string
                    title: ListFeatureCompaniesParams
                required:
                - data
                - params
                title: ListFeatureCompaniesResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /feature-companies/count:
    get:
      operationId: countFeatureCompanies
      summary: Count feature companies
      tags:
      - entitlements
      parameters:
      - name: feature_id
        in: query
        required: true
        schema:
          type: string
      - name: q
        in: query
        schema:
          type: string
      - name: limit
        in: query
        description: Page limit (default 100)
        schema:
          type: integer
          description: Page limit (default 100)
          format: int64
          example: '100'
      - name: offset
        in: query
        description: Page offset (default 0)
        schema:
          type: integer
          description: Page offset (default 0)
          format: int64
          example: '0'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CountResponse'
                  params:
                    type: object
                    description: Input parameters
                    properties:
                      feature_id:
                        type: string
                      limit:
                        type: integer
                        description: Page limit (default 100)
                        format: int64
                        example: '100'
                      offset:
                        type: integer
                        description: Page offset (default 0)
                        format: int64
                        example: '0'
                      q:
                        type: string
                    title: CountFeatureCompaniesParams
                required:
                - data
                - params
                title: CountFeatureCompaniesResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /feature-usage:
    get:
      operationId: listFeatureUsage
      summary: List feature usage
      tags:
      - entitlements
      parameters:
      - name: company_id
        in: query
        schema:
          type: string
      - name: company_keys
        in: query
        schema:
          additionalProperties:
            type: string
          type: object
      - name: feature_ids
        in: query
        schema:
          type: array
          items:
            type: string
          maxItems: 100
      - name: include_usage_aggregation
        in: query
        description: Include time-bucketed usage aggregation (today, this week, this month, billing period) for credit-based entitlements. Defaults to false for performance.
        schema:
          type: boolean
          description: Include time-bucketed usage aggregation (today, this week, this month, billing period) for credit-based entitlements. Defaults to false for performance.
      - name: q
        in: query
        schema:
          type: string
      - name: without_negative_entitlements
        in: query
        schema:
          type: boolean
      - name: limit
        in: query
        description: Page limit (default 100)
        schema:
          type: integer
          description: Page limit (default 100)
          format: int64
          example: '100'
      - name: offset
        in: query
        description: Page offset (default 0)
        schema:
          type: integer
          description: Page offset (default 0)
          format: int64
          example: '0'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FeatureUsageResponseData'
                    title: ListFeatureUsageResponseData
                    maxItems: 250
                  params:
                    type: object
                    description: Input parameters
                    properties:
                      company_id:
                        type: string
                      company_keys:
                        additionalProperties:
                          type: string
                        type: object
                      feature_ids:
                        type: array
                        items:
                          type: string
                        maxItems: 100
                      include_usage_aggregation:
                        type: boolean
                        description: Include time-bucketed usage aggregation (today, this week, this month, billing period) for credit-based entitlements. Defaults to false for performance.
                      limit:
                        type: integer
                        description: Page limit (default 100)
                        format: int64
                        example: '100'
                      offset:
                        type: integer
                        description: Page offset (default 0)
                        format: int64
                        example: '0'
                      q:
                        type: string
                      without_negative_entitlements:
                        type: boolean
                    title: ListFeatureUsageParams
                required:
                - data
                - params
                title: ListFeatureUsageResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /feature-usage-timeseries:
    get:
      operationId: getFeatureUsageTimeSeries
      summary: Get feature usage time series
      tags:
      - entitlements
      parameters:
      - name: company_id
        in: query
        required: true
        schema:
          type: string
      - name: end_time
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: feature_id
        in: query
        required: true
        schema:
          type: string
      - name: granularity
        in: query
        schema:
          $ref: '#/components/schemas/TimeSeriesGranularity'
      - name: start_time
        in: query
        required: true
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/FeatureUsageTimeSeriesResponseData'
                  params:
                    type: object
                    description: Input parameters
                    properties:
                      company_id:
                        type: string
                      end_time:
                        type: string
                        format: date-time
                      feature_id:
                        type: string
                      granularity:
                        $ref: '#/components/schemas/TimeSeriesGranularity'
                      start_time:
                        type: string
                        format: date-time
                    title: GetFeatureUsageTimeSeriesParams
                required:
                - data
                - params
                title: GetFeatureUsageTimeSeriesResponse
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /feature-usage/count:
    get:
      operationId: countFeatureUsage
      summary: Count feature usage
      tags:
      - entitlements
      parameters:
      - name: company_id
        in: query
        schema:
          type: string
      - name: company_keys
        in: query
        schema:
          additionalProperties:
            type: string
          type: object
      - name: feature_ids
        in: query
        schema:
          type: array
          items:
            type: string
          maxItems: 100
      - name: include_usage_aggregation
        in: query
        description: Include time-bucketed usage aggregation (today, this week, this month, billing period) for credit-based entitlements. Defaults to false for performance.
        schema:
          type: boolean
          description: Include time-bucketed usage aggregation (today, this week, this month, billing period) for credit-based entitlements. Defaults to false for performance.
      - name: q
        in: query
        schema:
          type: string
      - name: without_negative_entitlements
        in: query
        schema:
          type: boolean
      - name: limit
        in: query
        description: Page limit (default 100)
        schema:
          type: integer
          description: Page limit (default 100)
          format: int64
          example: '100'
      - name: offset
        in: query
        description: Page offset (default 0)
        schema:
          type: integer
          description: Page offset (default 0)
          format: int64
          example: '0'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CountResponse'
                  params:
                    type: object
                    description: Input parameters
                    properties:
                      company_id:
                        type: string
                      company_keys:
                        additionalProperties:
                          type: string
                        type: object
                      feature_ids:
                        type: array
                        items:
                          type: string
                        maxItems: 100
                      include_usage_aggregation:
                        type: boolean
                        description: Include time-bucketed usage aggregation (today, this week, this month, billing period) for credit-based entitlements. Defaults to false for performance.
                      limit:
                        type: integer
                        description: Page limit (default 100)
                        format: int64
                        example: '100'
                      offset:
                        type: integer
                        description: Page offset (default 0)
                        format: int64
                        example: '0'
                      q:
                        type: string
                      without_negative_entitlements:
                        type: boolean
                    title: CountFeatureUsageParams
                required:
                - data
                - params
                title: CountFeatureUsageResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /feature-users:
    get:
      operationId: listFeatureUsers
      summary: List feature users
      tags:
      - entitlements
      parameters:
      - name: feature_id
        in: query
        required: true
        schema:
          type: string
      - name: q
        in: query
        schema:
          type: string
      - name: limit
        in: query
        description: Page limit (default 100)
        schema:
          type: integer
          description: Page limit (default 100)
          format: int64
          example: '100'
      - name: offset
        in: query
        description: Page offset (default 0)
        schema:
          type: integer
          description: Page offset (default 0)
          format: int64
          example: '0'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FeatureCompanyUserResponseData'
                    title: ListFeatureUsersResponseData
                    maxItems: 250
                  params:
                    type: object
                    description: Input parameters
                    properties:
                      feature_id:
                        type: string
                      limit:
                        type: integer
                        description: Page limit (default 100)
                        format: int64
                        example: '100'
                      offset:
                        type: integer
                        description: Page offset (default 0)
                        format: int64
                        example: '0'
               

# --- truncated at 32 KB (148 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/schematic/refs/heads/main/openapi/schematic-entitlements-api-openapi.yml