---
title: "listAvailableCapabilities"
method: GET
path: "/v1/entity/schemas/{slug}/capabilities/available"
tags: ["Schemas"]
---

# listAvailableCapabilities

`GET /v1/entity/schemas/{slug}/capabilities/available`

List available capabilities for schema

## Path parameters

- `slug` string, required — URL-friendly identifier for the entity schema

## Response `200`

Success

- object
  - `results` EntityCapability[]
    - `id` string — ID for the entity capability
    - `name` string, required — Unique name for the capability
    - `title` string — Human readable title of the capability
    - `attributes` Attribute[] — unresolved $ref
    - `overridable_attribute` boolean — Allow conditional variants of the entity to override the values managed by this capability. Only meaningful on schemas that declare `conditions` and on capabilities that render an attribute group (`EntityAttributes:Group` ui hook), e.g. pricing tiers. Attributes carried by the capability opt in individually via their own `overridable_attribute` flag.
    - `_purpose` ClassificationId[]
    - `_manifest` string[], nullable — Manifest ID used to create/update the schema capabilility
    - `app_id` string — ID of the app if the capability is provided by an app
    - `adjust_installment` AdjustInstallmentCapabilityConfig — Configuration for adjusting a contract installment through a Journey.
      - `journey_id` string, required — ID of the Flow Journey to open when adjusting the installment.
    - `ui_config` object
      - `is_filterable` boolean — Whether the capability is filterable
    - `ui_hooks` object[]
      - `hook` string, required — name of the hook to use
      - `render_condition` string
      - `order` integer — render order (ascending)
      - `title` string
      - `group_expanded` boolean — Sets the group expand/collapse default state
      - `import` string — package to be imported
      - `component` string — the component to be dynamically loaded
      - `route` string — route for specified capability
      - `icon` string — Preview icon name(As in Base elements) for the capability
      - `disabled` boolean — Whether capability should be disabled
      - `header` boolean — Specific to Activity pilot
      - `requiredPermission` object — Require a permission to display UI hook
        - `action` string, required
        - `resource` string
      - `default_visible` boolean — Whether this widget is switched on by default for entity types that have the capability. Only meaningful on the `EntityDetailsV2:Widget` hook. Defaults to true when omitted. An admin's explicit choice in the entity builder is stored in the schema's `ui_config.widget_visibility` and wins over this.
      - `default_width` 'one_third_width' | 'half_width' | 'two_third_width' | 'full_width' — How wide this widget is by default in the entity-details widget grid. Only meaningful on the `EntityDetailsV2:Widget` and `EntityDetailsV2:Header` hooks. Defaults to `full_width` when omitted — deliberately unlike the attribute layout default of `half_width`, because a full-width widget can never leave a hole in a row. An admin's explicit choice in the entity builder is stored in the schema's `ui_config.widget_widths` and wins over this.
      - `pricing_tier_setting` string — The pricing-tier settings key an organisation must have enabled to use this widget. Omit for widgets available to everyone. Resolved against `GET /v2/pricing-tiers/me` as `override_settings[key].enabled ?? settings[key].enabled`. Note this is commercial packaging enforced in the UI, not a security control — the key must also be added to the pricing tier settings list in epilot-admin-portal, or it can never be switched on for a tier.
    - `feature_flag` string — This capability should only be active when the feature flag is enabled
    - `settings_flag` SettingFlag[] — This capability should only be active when all the settings have the correct value
      - `name` string — The name of the organization setting to check
      - `enabled` boolean — Whether the setting should be enabled or not
    - `schemas` object[] — Schema-specific configuration for the capability
      - `schema` string, required — Entity schema slug

## Changes

- **2026-08-29** `46c13e283526` — 36 warning, 36 info
  - removed the optional property `results/items/attributes/items/anyOf[#/components/schemas/AddressAttribute]/allOf[#/components/schemas/BaseAttribute]/variant_overridable` from the response with the `200` status
  - removed the optional property `results/items/attributes/items/anyOf[#/components/schemas/AddressRelationAttribute]/allOf[#/components/schemas/BaseAttribute]/variant_overridable` from the response with the `200` status
  - removed the optional property `results/items/attributes/items/anyOf[#/components/schemas/AutomationAttribute]/allOf[#/components/schemas/BaseAttribute]/variant_overridable` from the response with the `200` status
  - removed the optional property `results/items/attributes/items/anyOf[#/components/schemas/BooleanAttribute]/allOf[#/components/schemas/BaseAttribute]/variant_overridable` from the response with the `200` status
  - …68 more
- **2026-08-26** `af9aa63d4420` — 1 info
  - added the optional property `results/items/ui_hooks/items/default_width` to the response with the `200` status
- **2026-08-15** `3020984570dc` — 3 info
  - added the optional property `results/items/ui_hooks/items/default_visible` to the response with the `200` status
  - added the optional property `results/items/ui_hooks/items/pricing_tier_setting` to the response with the `200` status
  - added the optional property `results/items/variant_overridable` to the response with the `200` status
- …earlier changes not shown

[Full history](https://skmtc.dev/epilot/apis/entity-api/changes/v1/entity/schemas/:slug/capabilities/available/get.md)

---

[API](https://skmtc.dev/epilot/apis/entity-api.md) · [All operations](https://skmtc.dev/epilot/apis/entity-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/epilot/entity-api/revisions/46c13e283526/schema)
