---
title: "Describe Capability"
method: GET
path: "/v1/capabilities/{capability_key}"
tags: ["public_api", "external"]
---

# Describe Capability

`GET /v1/capabilities/{capability_key}`

## Request

- Base URL: `https://api.hydracept.com`
- URL: `https://api.hydracept.com/v1/capabilities/{capability_key}`
- Auth: none required

Describe catalog semantics plus the one workspace access projection.

Funding/readiness is not recomputed from a caller funding snapshot here;
CapabilityAccessDecision already owns whether this workspace can execute.

## Path parameters

- `capability_key` string, required

## Response `200`

Successful response

- PublicCapabilityDescriptor: Anonymous discovery shape — no provider/routing/operator internals.
  - `key` string, required
  - `title` string, required
  - `description` string
  - `modality` 'text' | 'image' | 'video' | 'audio' | 'mesh' | 'embedding' | 'moderation' | 'decision' | 'infrastructure', required
  - `inputSchema` object
  - `outputSchema` object
  - `executionModes` CapabilityExecutionMode[]
  - `idempotencyRequired` boolean
  - `estimateAvailable` boolean
  - `family` string, nullable
  - `category` string, nullable
  - `constraints` object, nullable
  - `features` object
  - `billingModes` CapabilityBillingModes
    - `byok` BillingModeAvailability, required
      - `available` boolean, required
      - `serviceFeeBps` integer, nullable
    - `managed` BillingModeAvailability, required
      - `available` boolean, required
      - `serviceFeeBps` integer, nullable
  - `inputConstraints` object
  - `inputMediaTypes` string[]
  - `pricing` object, nullable
  - `credentialSources` string[], nullable
  - `defaultCredentialSource` string, nullable
  - `execution` CapabilityExecutionFacts: Static invocation facts; authenticated runnability lives in workspaceRunnable.
    - `oneShot` boolean
    - `managedInferenceAvailable` boolean, nullable
    - `inferenceProviderSetupRequired` boolean, nullable
    - `projectLocalRequired` boolean
    - `estimateAvailable` boolean
    - `trialEligible` boolean
    - `selection` string, nullable
    - `supportsExplicitTarget` boolean, nullable
    - `targetsHref` string, nullable
    - `benchmarksHref` string, nullable
  - `output` CapabilityOutputShape: Canonical useful terminal representation for a capability result.
    - `kind` 'artifact' | 'structured' | 'text', required
    - `mediaType` string, nullable
  - `interaction` CapabilityInteractionFacts: Whether an ordinary requested invocation typically interrupts the user.
    - `typicallyRequired` boolean
    - `reason` string, nullable
  - `funding` CapabilityFundingFacts: Catalog funding facts only; authenticated access is a separate authority.
    - `mode` string, required
    - `eligible` boolean
    - `status` string
    - `fundingOptions` string[], nullable
    - `remainingMicros` integer, nullable
  - `readySummary` string, nullable
  - `routingProfiles` object[]

## Other responses

- `401`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `404`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `422`: Validation failure: public envelope plus Pydantic `detail` / `validationErrors`
- `429`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `500`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `502`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `503`: Structured public error envelope (`code`, `message`, `requestId`, …)

---

[API](https://skmtc.dev/hydracept/apis/hydracept-public-api.md) · [All operations](https://skmtc.dev/hydracept/apis/hydracept-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hydracept/apis/hydracept-public-api/revisions/2d41a8069ede?raw)
