---
title: "Create Model Spec"
method: POST
path: "/v1/model-specs/"
tags: ["v1", "protected", "model-specs"]
---

# Create Model Spec

`POST /v1/model-specs/`

Create a new model specification.

## Request body

- ModelSpecCreate
  - `context_window` integer, required
  - `default_context_strategy` string, nullable
  - `description` string, nullable
  - `display_name` string, required
  - `input_cost_per_token` number, required
  - `is_active` boolean
  - `max_output_tokens` integer, nullable
  - `model_name` string, required
  - `output_cost_per_token` number, required
  - `provider_spec_id` string, uuid, required

## Response `200`

Successful Response

- AgentareaApiApiV1ModelSpecsModelSpecResponse
  - `context_window` integer, required
  - `created_at` string, required
  - `default_context_strategy` string, nullable, required
  - `description` string, nullable, required
  - `display_name` string, required
  - `id` string, required
  - `input_cost_per_token` number, nullable
  - `is_active` boolean, required
  - `max_output_tokens` integer, nullable
  - `model_name` string, required
  - `output_cost_per_token` number, nullable
  - `provider_key` string, nullable
  - `provider_name` string, nullable
  - `provider_spec_id` string, required
  - `supports_function_calling` boolean, nullable
  - `supports_reasoning` boolean, nullable
  - `supports_vision` boolean, nullable
  - `updated_at` string, required

## Other responses

- `422` — Validation Error

## Changes

> 19 revisions in range; 6 could not be searched.

- **2026-07-30** `ce40e8663ec3` — 3 breaking, 1 warning, 5 info
  - added the new required request property `input_cost_per_token`
  - added the new required request property `output_cost_per_token`
  - the request property `context_window` became required
  - the `context_window` request property's exclusiveMinimum was set to `0.00`
  - …5 more
- **2026-07-08** `8940d7f77282` — 2 breaking
  - the `created_at` response's property type/format changed from `string`/`date-time` to `string`/`` for status `200`
  - the `updated_at` response's property type/format changed from `string`/`date-time` to `string`/`` for status `200`
- **2026-04-29** `e1a530c0a2d5` — 6 info
  - added the optional property `input_cost_per_token` to the response with the `200` status
  - added the optional property `max_output_tokens` to the response with the `200` status
  - added the optional property `output_cost_per_token` to the response with the `200` status
  - added the optional property `supports_function_calling` to the response with the `200` status
  - …2 more
- …earlier changes not shown

[Full history](https://skmtc.dev/agentarea/apis/agentarea-api/changes/v1/model-specs/post.md)

---

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