---
title: "Create Organization Pricing"
method: POST
path: "/v1/organizations/me/pricing"
tags: ["organization-pricing"]
---

# Create Organization Pricing

`POST /v1/organizations/me/pricing`

Set the organization's rate for a model over a period.

Refused with a 409 when the period overlaps one already stored for that model,
naming the period it collides with, rather than shadowing it.

The key is normalized to its canonical ``instance:model`` form first, the same
call ``POST /v1/pricing`` makes, and that is what makes one model one row
rather than one per spelling. Stored verbatim, ``openai:gpt-4o`` and
``openai/gpt-4o`` are two keys: the overlap rule would not see them as
colliding, and both would resolve, with the canonical one preferred, leaving
the other dormant until the first is deleted. Normalizing on the way in is
what stops that pair existing at all.

## Request body

- OrganizationModelPricingCreate — Create one rate override for a model, for a period.
  - `cache_read_price_per_million` number, nullable — Price per 1M cached-input tokens
  - `cache_write_1h_price_per_million` number, nullable — Price per 1M Anthropic 1-hour cache-write tokens
  - `cache_write_price_per_million` number, nullable — Price per 1M cache-write (creation) tokens
  - `effective_from` string, date-time, nullable — ISO 8601 datetime from which this rate applies, inclusive. Defaults to now.
  - `effective_to` string, date-time, nullable — ISO 8601 datetime at which this rate stops applying, exclusive. Null leaves it open ended. Because the end is exclusive, the next period may begin at exactly this instant without overlapping.
  - `input_price_per_million` number, required — Price per 1M input tokens
  - `model_key` string, required — Model identifier in 'provider:model' form, matching the key the deployment price list uses. A provider instance name is valid here ('home_lab:llama-3'), because pricing keys on the instance a request resolves to.
  - `output_price_per_million` number, required — Price per 1M output tokens
  - `pricing_tiers` PricingTier[], nullable — Whole-request context thresholds. Fields omitted by a tier inherit the base rate.
    - `cache_read_price_per_million` number, nullable
    - `cache_write_1h_price_per_million` number, nullable
    - `cache_write_price_per_million` number, nullable
    - `input_price_per_million` number, nullable
    - `min_input_tokens` integer, required
    - `output_price_per_million` number, nullable

## Response `201`

Successful Response

- OrganizationModelPricingPublic — One stored rate override.
  - `cache_read_price_per_million` number, nullable, required
  - `cache_write_1h_price_per_million` number, nullable, required
  - `cache_write_price_per_million` number, nullable, required
  - `created_at` string, date-time, required
  - `effective_from` string, date-time, required
  - `effective_to` string, date-time, nullable, required
  - `id` string, uuid, required
  - `input_price_per_million` number, required
  - `model_key` string, required
  - `organization_id` string, uuid, required
  - `output_price_per_million` number, required
  - `pricing_tiers` PricingTier[], required
    - `cache_read_price_per_million` number, nullable
    - `cache_write_1h_price_per_million` number, nullable
    - `cache_write_price_per_million` number, nullable
    - `input_price_per_million` number, nullable
    - `min_input_tokens` integer, required
    - `output_price_per_million` number, nullable
  - `updated_at` string, date-time, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/mozilla-ai/apis/otari.md) · [All operations](https://skmtc.net/mozilla-ai/apis/otari/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mozilla-ai/otari/revisions/2d6e4912e230/schema)
