---
title: "Get the field-level contract for one capability"
method: GET
path: "/domains/{domainKey}/capabilities/{capabilityId}/contract"
tags: ["contracts"]
---

# Get the field-level contract for one capability

`GET /domains/{domainKey}/capabilities/{capabilityId}/contract`

## Path parameters

- `domainKey` string, required
- `capabilityId` string, required

## Response `200`

Capability contract for recommend and execute

- CapabilityContract
  - `domainKey` string, required
  - `capabilityKey` string, required
  - `capabilityId` string, required
  - `docsUrl` string, uri
  - `contractStatus` 'available' | 'partial' | 'unavailable', required
  - `recommend` CapabilityOperationContract
    - `status` 'available' | 'partial' | 'unavailable', required
    - `dtoName` string
    - `requiredFields` string[], required
    - `optionalFields` string[], required
    - `conditionallyRequiredFields` string[], required
    - `fields` CapabilityFieldContract[], required
      - `name` string, required
      - `type` 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object' | 'unknown', required
      - `required` boolean, required
      - `conditionallyRequired` boolean
      - `enumValues` string[]
      - `maxLength` integer
      - `min` number, double
      - `max` number, double
      - `itemsType` string
      - `fields` CapabilityFieldContract[]
      - `notes` string[]
    - `requestExample` CapabilityInput — Capability-specific request body. Use the contract endpoint for exact fields.
    - `responseExample` object
    - `notes` string[], required
  - `execute` CapabilityOperationContract
    - `status` 'available' | 'partial' | 'unavailable', required
    - `dtoName` string
    - `requiredFields` string[], required
    - `optionalFields` string[], required
    - `conditionallyRequiredFields` string[], required
    - `fields` CapabilityFieldContract[], required
      - `name` string, required
      - `type` 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object' | 'unknown', required
      - `required` boolean, required
      - `conditionallyRequired` boolean
      - `enumValues` string[]
      - `maxLength` integer
      - `min` number, double
      - `max` number, double
      - `itemsType` string
      - `fields` CapabilityFieldContract[]
      - `notes` string[]
    - `requestExample` CapabilityInput — Capability-specific request body. Use the contract endpoint for exact fields.
    - `responseExample` object
    - `notes` string[], required
  - `notes` string[], required

## Other responses

- `404` — Requested resource was not found

---

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