---
title: "Register custom model pricing"
method: POST
path: "/marketplace/providers/models"
---

# Register custom model pricing

`POST /marketplace/providers/models`

Register custom token pricing for models you host. Entries are versioned: a price change closes the current row and opens a new one, so historic spend keeps the rate it was billed at.
The returned id is what you attach with the `costgraph.ai/pricing-id.model` label or tag. Each version carries its own id, so read the live entry back after a price change instead of holding on to an earlier one.

## Request body

- HandlerCustomModelPriceRequest
  - `entries` ModelsModelPricing[], required
    - `context_limit` integer
    - `currency` string
    - `effective_from` string
    - `effective_to` string
    - `fetched_at` string
    - `host` string
    - `id` string
    - `modalities_input` string[]
    - `modalities_output` string[]
    - `model` string
    - `model_id` string
    - `open_weights` boolean
    - `output_limit` integer
    - `provider` string
    - `publisher` string
    - `raw_pricing_data` DatatypesJSON
    - `reasoning` boolean
    - `region` string
    - `sku_price_id` string
    - `source` string
    - `source_url` string
    - `structured_output` boolean
    - `tags` DatatypesJSON
    - `token_bucket` string
    - `tool_call` boolean
    - `unit_price_per_mtok` number

## Response `200`

Pricing response for custom model pricing

- HandlerCustomModelPricingResponse
  - `entries` ModelsModelPricing[]
    - `context_limit` integer
    - `currency` string
    - `effective_from` string
    - `effective_to` string
    - `fetched_at` string
    - `host` string
    - `id` string
    - `modalities_input` string[]
    - `modalities_output` string[]
    - `model` string
    - `model_id` string
    - `open_weights` boolean
    - `output_limit` integer
    - `provider` string
    - `publisher` string
    - `raw_pricing_data` DatatypesJSON
    - `reasoning` boolean
    - `region` string
    - `sku_price_id` string
    - `source` string
    - `source_url` string
    - `structured_output` boolean
    - `tags` DatatypesJSON
    - `token_bucket` string
    - `tool_call` boolean
    - `unit_price_per_mtok` number
  - `status` 'Registered' | 'Deleted'

## Other responses

- `400` — Invalid request body
- `401` — Host and organization do not match
- `500` — Internal server error

---

[API](https://skmtc.net/baselinehq/apis/costgraph-pricing-api.md) · [All operations](https://skmtc.net/baselinehq/apis/costgraph-pricing-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/baselinehq/costgraph-pricing-api/revisions/118039137757/schema)
