---
title: "Read the global price book"
method: GET
path: "/v1/admin/usage/prices"
tags: ["Admin"]
---

# Read the global price book

`GET /v1/admin/usage/prices`

## Request

- Base URL: `https://api.naturali.ai`
- URL: `https://api.naturali.ai/v1/admin/usage/prices`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://api.naturali.ai/authorize`, token URL `https://api.naturali.ai/token`, scopes: `mcp:access`)

The upstream runtime's global default prices — the rows carrying neither a provider nor a project, which is all the upstream listing returns, so no tenant's own rates appear here.

These are a cost basis, not a tariff: what a customer pays is the plan they bought plus the multiplier in PRICING.md section 3, applied when spend is reconciled. This is the read behind the storage-rate assertion at boot and the pinned embedding rate.

## Response `200`

The global price book.

- PriceBook
  - `prices` Price[], required
    - `id` string
    - `ai_provider_id` string, nullable: Null on a global default row; set on a per-provider override.
    - `meter_type` string
    - `provider` string: The SKU's vendor slug. Relayed exactly as stored — this is the operator surface, and the value the runtime recorded is the point.
    - `model` string: The model id, or the billable SKU for a platform meter type.
    - `component` string
    - `unit` string
    - `unit_price` number: USD per unit.
    - `effective_from` string, date-time: The row with the latest effective_from at or before now prices a call.
    - `created_at` string, date-time

## Other responses

- `401`: Missing or invalid credentials.
- `403`: The caller does not hold the `admin` role.

---

[API](https://skmtc.dev/naturali/apis/naturali-ai-api.md) · [All operations](https://skmtc.dev/naturali/apis/naturali-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/naturali/apis/naturali-ai-api/revisions/e4905b78f422?raw)
