Schematic · Capability

Schematic API — entitlements

Schematic API — entitlements. 22 operations. Lead operation: List company overrides. Self-contained Naftiko capability covering one Schematic business surface.

Run with Naftiko Schematicentitlements

What You Can Do

GET
Listcompanyoverrides — List company overrides
/v1/company-overrides
POST
Createcompanyoverride — Create company override
/v1/company-overrides
GET
Countcompanyoverrides — Count company overrides
/v1/company-overrides/count
GET
Getcompanyoverride — Get company override
/v1/company-overrides/{company-override-id}
PUT
Updatecompanyoverride — Update company override
/v1/company-overrides/{company-override-id}
DELETE
Deletecompanyoverride — Delete company override
/v1/company-overrides/{company-override-id}
GET
Listfeaturecompanies — List feature companies
/v1/feature-companies
GET
Countfeaturecompanies — Count feature companies
/v1/feature-companies/count
GET
Listfeatureusage — List feature usage
/v1/feature-usage
GET
Getfeatureusagetimeseries — Get feature usage time series
/v1/feature-usage-timeseries
GET
Countfeatureusage — Count feature usage
/v1/feature-usage/count
GET
Listfeatureusers — List feature users
/v1/feature-users
GET
Countfeatureusers — Count feature users
/v1/feature-users/count
GET
Listplanentitlements — List plan entitlements
/v1/plan-entitlements
POST
Createplanentitlement — Create plan entitlement
/v1/plan-entitlements
POST
Upsertplanentitlementforbillingproduct — Upsert plan entitlement for billing product
/v1/plan-entitlements/billing-linked
GET
Countplanentitlements — Count plan entitlements
/v1/plan-entitlements/count
POST
Duplicateplanentitlements — Duplicate plan entitlements
/v1/plan-entitlements/duplicate
GET
Getplanentitlement — Get plan entitlement
/v1/plan-entitlements/{plan-entitlement-id}
PUT
Updateplanentitlement — Update plan entitlement
/v1/plan-entitlements/{plan-entitlement-id}
DELETE
Deleteplanentitlement — Delete plan entitlement
/v1/plan-entitlements/{plan-entitlement-id}
GET
Getfeatureusagebycompany — Get feature usage by company
/v1/usage-by-company

MCP Tools

list-company-overrides

List company overrides

read-only idempotent
create-company-override

Create company override

count-company-overrides

Count company overrides

read-only idempotent
get-company-override

Get company override

read-only idempotent
update-company-override

Update company override

idempotent
delete-company-override

Delete company override

idempotent
list-feature-companies

List feature companies

read-only idempotent
count-feature-companies

Count feature companies

read-only idempotent
list-feature-usage

List feature usage

read-only idempotent
get-feature-usage-time-series

Get feature usage time series

read-only idempotent
count-feature-usage

Count feature usage

read-only idempotent
list-feature-users

List feature users

read-only idempotent
count-feature-users

Count feature users

read-only idempotent
list-plan-entitlements

List plan entitlements

read-only idempotent
create-plan-entitlement

Create plan entitlement

upsert-plan-entitlement-billing-product

Upsert plan entitlement for billing product

count-plan-entitlements

Count plan entitlements

read-only idempotent
duplicate-plan-entitlements

Duplicate plan entitlements

get-plan-entitlement

Get plan entitlement

read-only idempotent
update-plan-entitlement

Update plan entitlement

idempotent
delete-plan-entitlement

Delete plan entitlement

idempotent
get-feature-usage-company

Get feature usage by company

read-only idempotent

Capability Spec

schematic-entitlements.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Schematic API — entitlements
  description: 'Schematic API — entitlements. 22 operations. Lead operation: List company overrides. Self-contained Naftiko
    capability covering one Schematic business surface.'
  tags:
  - Schematic
  - entitlements
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SCHEMATIC_API_KEY: SCHEMATIC_API_KEY
capability:
  consumes:
  - type: http
    namespace: schematic-entitlements
    baseUri: https://api.schematichq.com
    description: Schematic API — entitlements business capability. Self-contained, no shared references.
    resources:
    - name: company-overrides
      path: /company-overrides
      operations:
      - name: listcompanyoverrides
        method: GET
        description: List company overrides
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: company_id
          in: query
          type: string
          description: Filter company overrides by a single company ID (starting with comp_)
        - name: company_ids
          in: query
          type: array
          description: Filter company overrides by multiple company IDs (starting with comp_)
        - name: feature_id
          in: query
          type: string
          description: Filter company overrides by a single feature ID (starting with feat_)
        - name: feature_ids
          in: query
          type: array
          description: Filter company overrides by multiple feature IDs (starting with feat_)
        - name: ids
          in: query
          type: array
          description: Filter company overrides by multiple company override IDs (starting with cmov_)
        - name: without_expired
          in: query
          type: boolean
          description: Filter company overrides by whether they have not expired
        - name: q
          in: query
          type: string
          description: Search for company overrides by feature or company name
        - name: limit
          in: query
          type: integer
          description: Page limit (default 100)
        - name: offset
          in: query
          type: integer
          description: Page offset (default 0)
      - name: createcompanyoverride
        method: POST
        description: Create company override
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: company-overrides-count
      path: /company-overrides/count
      operations:
      - name: countcompanyoverrides
        method: GET
        description: Count company overrides
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: company_id
          in: query
          type: string
          description: Filter company overrides by a single company ID (starting with comp_)
        - name: company_ids
          in: query
          type: array
          description: Filter company overrides by multiple company IDs (starting with comp_)
        - name: feature_id
          in: query
          type: string
          description: Filter company overrides by a single feature ID (starting with feat_)
        - name: feature_ids
          in: query
          type: array
          description: Filter company overrides by multiple feature IDs (starting with feat_)
        - name: ids
          in: query
          type: array
          description: Filter company overrides by multiple company override IDs (starting with cmov_)
        - name: without_expired
          in: query
          type: boolean
          description: Filter company overrides by whether they have not expired
        - name: q
          in: query
          type: string
          description: Search for company overrides by feature or company name
        - name: limit
          in: query
          type: integer
          description: Page limit (default 100)
        - name: offset
          in: query
          type: integer
          description: Page offset (default 0)
    - name: company-overrides-company_override_id
      path: /company-overrides/{company_override_id}
      operations:
      - name: getcompanyoverride
        method: GET
        description: Get company override
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: company_override_id
          in: path
          type: string
          description: company_override_id
          required: true
      - name: updatecompanyoverride
        method: PUT
        description: Update company override
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: company_override_id
          in: path
          type: string
          description: company_override_id
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletecompanyoverride
        method: DELETE
        description: Delete company override
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: company_override_id
          in: path
          type: string
          description: company_override_id
          required: true
    - name: feature-companies
      path: /feature-companies
      operations:
      - name: listfeaturecompanies
        method: GET
        description: List feature companies
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: feature_id
          in: query
          type: string
          required: true
        - name: q
          in: query
          type: string
        - name: limit
          in: query
          type: integer
          description: Page limit (default 100)
        - name: offset
          in: query
          type: integer
          description: Page offset (default 0)
    - name: feature-companies-count
      path: /feature-companies/count
      operations:
      - name: countfeaturecompanies
        method: GET
        description: Count feature companies
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: feature_id
          in: query
          type: string
          required: true
        - name: q
          in: query
          type: string
        - name: limit
          in: query
          type: integer
          description: Page limit (default 100)
        - name: offset
          in: query
          type: integer
          description: Page offset (default 0)
    - name: feature-usage
      path: /feature-usage
      operations:
      - name: listfeatureusage
        method: GET
        description: List feature usage
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: company_id
          in: query
          type: string
        - name: company_keys
          in: query
          type: object
        - name: feature_ids
          in: query
          type: array
        - name: include_usage_aggregation
          in: query
          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
          type: string
        - name: without_negative_entitlements
          in: query
          type: boolean
        - name: limit
          in: query
          type: integer
          description: Page limit (default 100)
        - name: offset
          in: query
          type: integer
          description: Page offset (default 0)
    - name: feature-usage-timeseries
      path: /feature-usage-timeseries
      operations:
      - name: getfeatureusagetimeseries
        method: GET
        description: Get feature usage time series
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: company_id
          in: query
          type: string
          required: true
        - name: end_time
          in: query
          type: string
          required: true
        - name: feature_id
          in: query
          type: string
          required: true
        - name: granularity
          in: query
          type: string
        - name: start_time
          in: query
          type: string
          required: true
    - name: feature-usage-count
      path: /feature-usage/count
      operations:
      - name: countfeatureusage
        method: GET
        description: Count feature usage
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: company_id
          in: query
          type: string
        - name: company_keys
          in: query
          type: object
        - name: feature_ids
          in: query
          type: array
        - name: include_usage_aggregation
          in: query
          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
          type: string
        - name: without_negative_entitlements
          in: query
          type: boolean
        - name: limit
          in: query
          type: integer
          description: Page limit (default 100)
        - name: offset
          in: query
          type: integer
          description: Page offset (default 0)
    - name: feature-users
      path: /feature-users
      operations:
      - name: listfeatureusers
        method: GET
        description: List feature users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: feature_id
          in: query
          type: string
          required: true
        - name: q
          in: query
          type: string
        - name: limit
          in: query
          type: integer
          description: Page limit (default 100)
        - name: offset
          in: query
          type: integer
          description: Page offset (default 0)
    - name: feature-users-count
      path: /feature-users/count
      operations:
      - name: countfeatureusers
        method: GET
        description: Count feature users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: feature_id
          in: query
          type: string
          required: true
        - name: q
          in: query
          type: string
        - name: limit
          in: query
          type: integer
          description: Page limit (default 100)
        - name: offset
          in: query
          type: integer
          description: Page offset (default 0)
    - name: plan-entitlements
      path: /plan-entitlements
      operations:
      - name: listplanentitlements
        method: GET
        description: List plan entitlements
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: feature_id
          in: query
          type: string
          description: Filter plan entitlements by a single feature ID (starting with feat_)
        - name: feature_ids
          in: query
          type: array
          description: Filter plan entitlements by multiple feature IDs (starting with feat_)
        - name: ids
          in: query
          type: array
          description: Filter plan entitlements by multiple plan entitlement IDs (starting with pltl_)
        - name: plan_id
          in: query
          type: string
          description: Filter plan entitlements by a single plan ID (starting with plan_)
        - name: plan_ids
          in: query
          type: array
          description: Filter plan entitlements by multiple plan IDs (starting with plan_)
        - name: plan_version_id
          in: query
          type: string
          description: Filter plan entitlements by a single plan version ID (starting with plvr_)
        - name: plan_version_ids
          in: query
          type: array
          description: Filter plan entitlements by multiple plan version IDs (starting with plvr_)
        - name: q
          in: query
          type: string
          description: Search for plan entitlements by feature or company name
        - name: with_metered_products
          in: query
          type: boolean
          description: Filter plan entitlements only with metered products
        - name: limit
          in: query
          type: integer
          description: Page limit (default 100)
        - name: offset
          in: query
          type: integer
          description: Page offset (default 0)
      - name: createplanentitlement
        method: POST
        description: Create plan entitlement
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: plan-entitlements-billing-linked
      path: /plan-entitlements/billing-linked
      operations:
      - name: upsertplanentitlementforbillingproduct
        method: POST
        description: Upsert plan entitlement for billing product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: plan-entitlements-count
      path: /plan-entitlements/count
      operations:
      - name: countplanentitlements
        method: GET
        description: Count plan entitlements
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: feature_id
          in: query
          type: string
          description: Filter plan entitlements by a single feature ID (starting with feat_)
        - name: feature_ids
          in: query
          type: array
          description: Filter plan entitlements by multiple feature IDs (starting with feat_)
        - name: ids
          in: query
          type: array
          description: Filter plan entitlements by multiple plan entitlement IDs (starting with pltl_)
        - name: plan_id
          in: query
          type: string
          description: Filter plan entitlements by a single plan ID (starting with plan_)
        - name: plan_ids
          in: query
          type: array
          description: Filter plan entitlements by multiple plan IDs (starting with plan_)
        - name: plan_version_id
          in: query
          type: string
          description: Filter plan entitlements by a single plan version ID (starting with plvr_)
        - name: plan_version_ids
          in: query
          type: array
          description: Filter plan entitlements by multiple plan version IDs (starting with plvr_)
        - name: q
          in: query
          type: string
          description: Search for plan entitlements by feature or company name
        - name: with_metered_products
          in: query
          type: boolean
          description: Filter plan entitlements only with metered products
        - name: limit
          in: query
          type: integer
          description: Page limit (default 100)
        - name: offset
          in: query
          type: integer
          description: Page offset (default 0)
    - name: plan-entitlements-duplicate
      path: /plan-entitlements/duplicate
      operations:
      - name: duplicateplanentitlements
        method: POST
        description: Duplicate plan entitlements
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: plan-entitlements-plan_entitlement_id
      path: /plan-entitlements/{plan_entitlement_id}
      operations:
      - name: getplanentitlement
        method: GET
        description: Get plan entitlement
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: plan_entitlement_id
          in: path
          type: string
          description: plan_entitlement_id
          required: true
      - name: updateplanentitlement
        method: PUT
        description: Update plan entitlement
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: plan_entitlement_id
          in: path
          type: string
          description: plan_entitlement_id
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deleteplanentitlement
        method: DELETE
        description: Delete plan entitlement
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: plan_entitlement_id
          in: path
          type: string
          description: plan_entitlement_id
          required: true
    - name: usage-by-company
      path: /usage-by-company
      operations:
      - name: getfeatureusagebycompany
        method: GET
        description: Get feature usage by company
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: keys
          in: query
          type: object
          description: Key/value pairs
          required: true
    authentication:
      type: apikey
      key: X-Schematic-Api-Key
      value: '{{env.SCHEMATIC_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: schematic-entitlements-rest
    port: 8080
    description: REST adapter for Schematic API — entitlements. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/company-overrides
      name: company-overrides
      description: REST surface for company-overrides.
      operations:
      - method: GET
        name: listcompanyoverrides
        description: List company overrides
        call: schematic-entitlements.listcompanyoverrides
        with:
          company_id: rest.company_id
          company_ids: rest.company_ids
          feature_id: rest.feature_id
          feature_ids: rest.feature_ids
          ids: rest.ids
          without_expired: rest.without_expired
          q: rest.q
          limit: rest.limit
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createcompanyoverride
        description: Create company override
        call: schematic-entitlements.createcompanyoverride
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/company-overrides/count
      name: company-overrides-count
      description: REST surface for company-overrides-count.
      operations:
      - method: GET
        name: countcompanyoverrides
        description: Count company overrides
        call: schematic-entitlements.countcompanyoverrides
        with:
          company_id: rest.company_id
          company_ids: rest.company_ids
          feature_id: rest.feature_id
          feature_ids: rest.feature_ids
          ids: rest.ids
          without_expired: rest.without_expired
          q: rest.q
          limit: rest.limit
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/company-overrides/{company-override-id}
      name: company-overrides-company-override-id
      description: REST surface for company-overrides-company_override_id.
      operations:
      - method: GET
        name: getcompanyoverride
        description: Get company override
        call: schematic-entitlements.getcompanyoverride
        with:
          company_override_id: rest.company_override_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatecompanyoverride
        description: Update company override
        call: schematic-entitlements.updatecompanyoverride
        with:
          company_override_id: rest.company_override_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletecompanyoverride
        description: Delete company override
        call: schematic-entitlements.deletecompanyoverride
        with:
          company_override_id: rest.company_override_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/feature-companies
      name: feature-companies
      description: REST surface for feature-companies.
      operations:
      - method: GET
        name: listfeaturecompanies
        description: List feature companies
        call: schematic-entitlements.listfeaturecompanies
        with:
          feature_id: rest.feature_id
          q: rest.q
          limit: rest.limit
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/feature-companies/count
      name: feature-companies-count
      description: REST surface for feature-companies-count.
      operations:
      - method: GET
        name: countfeaturecompanies
        description: Count feature companies
        call: schematic-entitlements.countfeaturecompanies
        with:
          feature_id: rest.feature_id
          q: rest.q
          limit: rest.limit
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/feature-usage
      name: feature-usage
      description: REST surface for feature-usage.
      operations:
      - method: GET
        name: listfeatureusage
        description: List feature usage
        call: schematic-entitlements.listfeatureusage
        with:
          company_id: rest.company_id
          company_keys: rest.company_keys
          feature_ids: rest.feature_ids
          include_usage_aggregation: rest.include_usage_aggregation
          q: rest.q
          without_negative_entitlements: rest.without_negative_entitlements
          limit: rest.limit
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/feature-usage-timeseries
      name: feature-usage-timeseries
      description: REST surface for feature-usage-timeseries.
      operations:
      - method: GET
        name: getfeatureusagetimeseries
        description: Get feature usage time series
        call: schematic-entitlements.getfeatureusagetimeseries
        with:
          company_id: rest.company_id
          end_time: rest.end_time
          feature_id: rest.feature_id
          granularity: rest.granularity
          start_time: rest.start_time
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/feature-usage/count
      name: feature-usage-count
      description: REST surface for feature-usage-count.
      operations:
      - method: GET
        name: countfeatureusage
        description: Count feature usage
        call: schematic-entitlements.countfeatureusage
        with:
          company_id: rest.company_id
          company_keys: rest.company_keys
          feature_ids: rest.feature_ids
          include_usage_aggregation: rest.include_usage_aggregation
          q: rest.q
          without_negative_entitlements: rest.without_negative_entitlements
          limit: rest.limit
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/feature-users
      name: feature-users
      description: REST surface for feature-users.
      operations:
      - method: GET
        name: listfeatureusers
        description: List feature users
        call: schematic-entitlements.listfeatureusers
        with:
          feature_id: rest.feature_id
          q: rest.q
          limit: rest.limit
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/feature-users/count
      name: feature-users-count
      description: REST surface for feature-users-count.
      operations:
      - method: GET
        name: countfeatureusers
        description: Count feature users
        call: schematic-entitlements.countfeatureusers
        with:
          feature_id: rest.feature_id
          q: rest.q
          limit: rest.limit
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/plan-entitlements
      name: plan-entitlements
      description: REST surface for plan-entitlements.
      operations:
      - method: GET
        name: listplanentitlements
        description: List plan entitlements
        call: schematic-entitlements.listplanentitlements
        with:
          feature_id: rest.feature_id
          feature_ids: rest.feature_ids
          ids: rest.ids
          plan_id: rest.plan_id
          plan_ids: rest.plan_ids
          plan_version_id: rest.plan_version_id
          plan_version_ids: rest.plan_version_ids
          q: rest.q
          with_metered_products: rest.with_metered_products
          limit: rest.limit
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createplanentitlement
        description: Create plan entitlement
        call: schematic-entitlements.createplanentitlement
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/plan-entitlements/billing-linked
      name: plan-entitlements-billing-linked
      description: REST surface for plan-entitlements-billing-linked.
      operations:
      - method: POST
        name: upsertplanentitlementforbillingproduct
        description: Upsert plan entitlement for billing product
        call: schematic-entitlements.upsertplanentitlementforbillingproduct
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/plan-entitlements/count
      name: plan-entitlements-count
      description: REST surface for plan-entitlements-count.
      operations:
      - method: GET
        name: countplanentitlements
        description: Count plan entitlements
        call: schematic-entitlements.countplanentitlements
        with:
          feature_id: rest.feature_id
          feature_ids: rest.feature_ids
          ids: rest.ids
          plan_id: rest.plan_id
          plan_ids: rest.plan_ids
          plan_version_id: rest.plan_version_id
          plan_version_ids: rest.plan_version_ids
          q: rest.q
          with_metered_products: rest.with_metered_products
          limit: rest.limit
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/plan-entitlements/duplicate
      name: plan-entitlements-duplicate
      description: REST surface for plan-entitlements-duplicate.
      operations:
      - method: POST
        name: duplicateplanentitlements
        description: Duplicate plan entitlements
        call: schematic-entitlements.duplicateplanentitlements
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/plan-entitlements/{plan-entitlement-id}
      name: plan-entitlements-plan-entitlement-id
      description: REST surface for plan-entitlements-plan_entitlement_id.
      operations:
      - method: GET
        name: getplanentitlement
        description: Get plan entitlement
        call: schematic-entitlements.getplanentitlement
        with:
          plan_entitlement_id: rest.plan_entitlement_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updateplanentitlement
        description: Update plan entitlement
        call: schematic-entitlements.updateplanentitlement
        with:
          plan_entitlement_id: rest.plan_entitlement_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteplanentitlement
        description: Delete plan entitlement
        call: schematic-entitlements.deleteplanentitlement
        with:
          plan_entitlement_id: rest.plan_entitlement_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/usage-by-company
      name: usage-by-company
      description: REST surface for usage-by-company.
      operations:
      - method: GET
        name: getfeatureusagebycompany
        description: Get feature usage by company
        call: schematic-entitlements.getfeatureusagebycompany
        with:
          keys: rest.keys
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: schematic-entitlements-mcp
    port: 9090
    transport: http
    description: MCP adapter for Schematic API — entitlements. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: list-company-overrides
      description: List company overrides
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: schematic-entitlements.listcompanyoverrides
      with:
        company_id: tools.company_id
        company_ids: tools.company_ids
        feature_id: tools.feature_id
        feature_ids: tools.feature_ids
        ids: tools.ids
        without_expired: tools.without_expired
        q: tools.q
        limit: tools.limit
        offset: tools.offset
      outputParameters:
      - type: object
        mapping: $.
    - name: create-company-override
      description: Create company override
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: schematic-entitlements.createcompanyoverride
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: count-company-overrides
      description: Count company overrides
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: schematic-entitlements.countcompanyoverrides
      with:
        company_id: tools.company_id
        company_ids: tools.company_ids
        feature_id: tools.feature_id
        feature_ids: tools.feature_ids
        ids: tools.ids
        without_expired: tools.without_expired
        q: tools.q
        limit: tools.limit
        offset: tools.offset
      outputParameters:
      - type: object
        mapping: $.
    - name: get-company-override
      description: Get company override
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: schematic-entitlements.getcompanyoverride
      with:
        company_override_id: tools.company_override_id
      outputParameters:
      - type: object
        mapping: $.


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