---
title: "Add Hosted Model"
method: POST
path: "/api/v1/hosted-providers/{provider}/models"
tags: ["hosted-providers"]
---

# Add Hosted Model

`POST /api/v1/hosted-providers/{provider}/models`

## Request

- The document declares no server URL.
- Auth: one of:
  - API key in header `Otari-Key`
  - API key in header `x-api-key`

Offer a model on a provider, optionally at a custom price.

## Path parameters

- `provider` string, required

## Request body

- HostedModelCreateRequest: Offer a model on a hosted provider, optionally at a custom price. Omitting the rates means the deployment serves the model at whatever the price ladder already answers: a stored deployment price, else the community default, which the offer stores as the deployment's own rate. ``unit`` is what the rates are per, as on ``POST /pricing``: a request or image rate is still stored per million.
  - `cache_read_price_per_million` number, nullable
  - `cache_write_price_per_million` number, nullable
  - `input_price_per_million` number, nullable
  - `model` string, required
  - `output_price_per_million` number, nullable
  - `unit` 'tokens' | 'requests' | 'images', nullable

## Response `201`

Successful Response

- HostedModelPublic: One offered model, with the price the deployment currently serves it at. ``price_source`` says which rung of the deployment's ladder answered: ``deployment`` for a rate an operator set, ``defaults`` for the community-maintained rate, whether this surface stored it or the fallback supplies it, and None when nothing prices the model yet. ``unit`` says what the rates are per, so a per-request rate is not read as a per-token one. ``enabled`` is the serving switch; a model offered without a discoverable price starts off.
  - `cache_read_price_per_million` number, nullable
  - `cache_write_price_per_million` number, nullable
  - `created_at` string, date-time, required
  - `enabled` boolean, required
  - `id` string, uuid, required
  - `input_price_per_million` number, nullable
  - `model` string, required
  - `output_price_per_million` number, nullable
  - `price_source` 'organization' | 'deployment' | 'defaults', nullable
  - `provider` string, required
  - `unit` string, nullable
  - `updated_at` string, date-time, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-16** `b53c45c6d0fc`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/mozilla-ai/apis/otari/changes/api/v1/hosted-providers/:provider/models/post.md)

---

[API](https://skmtc.dev/mozilla-ai/apis/otari.md) · [All operations](https://skmtc.dev/mozilla-ai/apis/otari/llms.txt) · [OpenAPI document](https://skmtc.dev/mozilla-ai/apis/otari/revisions/2c95b115b0a8?raw)
