# ModelDescriptor

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/http-api/schemas/modeldescriptor/
> Summary: OpenAPI request or response schema for ModelDescriptor, including required fields, defaults, constraints, and linked nested types.

[← All HTTP schemas](/http-api/schemas/)

A model's capabilities and limits.

**Shape:** `object`

| Property | Required | Type | Description | Rules |
|---|---|---|---|---|
| `name` | yes | `string` | The model name. `ModelBinding.Model` matches this value. | — |
| `displayName` | no | `string` | The name shown in the UI. | — |
| `contextWindowTokens` | no | `integer (int32)` | The context window's token capacity. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `maxOutputTokens` | no | `integer (int32)` | The maximum number of tokens producible in a single response. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `supportsStreaming` | no | `boolean` | Whether streaming responses are supported. | — |
| `supportsTools` | no | `boolean` | Whether tool calling is supported. | — |
| `supportsReasoning` | no | `boolean` | Whether the reasoning-effort setting is supported. | — |
| `supportsStructuredOutput` | no | `boolean` | Whether output conforming to a JSON schema can be produced. | — |
| `supportsSampling` | no | `boolean` | Whether the model accepts the sampling parameters `temperature` and `topP`; `null` when the catalog does not say. | — |
| `inputCostPerMillionTokens` | no | `number (double)` | The cost per million input tokens. For reporting only. | pattern `^-?(?:0\\|[1-9]\d*)(?:\.\d+)?$` |
| `outputCostPerMillionTokens` | no | `number (double)` | The cost per million output tokens. For reporting only. | pattern `^-?(?:0\\|[1-9]\d*)(?:\.\d+)?$` |
| `cachedInputCostPerMillionTokens` | no | `number (double)` | The cost per million input tokens that were served from the provider's prompt cache. For reporting only. | pattern `^-?(?:0\\|[1-9]\d*)(?:\.\d+)?$` |
