Page current customer selling tariffs
Generated from the checked-in source. Do not edit this reference by hand.
GET /api/v1/pricing/organizations/{organization}/workspaces/{project}/tariffs
Explicit platform administration required; ordinary company/workspace roles do not grant access. Configuration only, without usage, balances, statements, content, credentials or procurement. Keyset order is workspace UUID ascending for targets, model alias ascending for tariffs. Pass next_after unchanged as after; null means complete. Limit defaults to 50, maximum 100. Each page is one database snapshot; concurrent inserts before the cursor require refreshing the first page. Missing cursor returns 409. Identifiers are API references, never display labels. Cache-Control no-store. Tariff token rates are exact nanounits per million tokens; minimum and request fees are exact currency nanounits. Empty valid workspace returns an empty page.
Operation: listPlatformCustomerTariffs.
Authentication
Section titled “Authentication”Use the credential and permission scope described above. Each object below is an alternative; schemes within one object are required together.
[ { "bearerAuth": [] }]HTTP request
Section titled “HTTP request”Set NIU_ORIGIN to your installation origin (without /v1). Replace path, query and header placeholders with the required values. Query examples use curl 7.87 or newer to encode values with --url-query. Use the credential scope described above; a bearer token must have the authority required by this operation.
curl --fail-with-body -X GET "$NIU_ORIGIN/api/v1/pricing/organizations/{organization}/workspaces/{project}/tariffs" \ -H "Authorization: Bearer $NIU_BEARER_TOKEN"Parameters
Section titled “Parameters”Location: query. Optional.
{ "type": "string"}Location: query. Optional.
{ "type": "integer", "minimum": 1, "maximum": 100, "default": 50}organization
Section titled “organization”Location: path. Required.
{ "type": "string", "format": "uuid"}project
Section titled “project”Location: path. Required.
{ "type": "string", "format": "uuid"}Request body
Section titled “Request body”No request body is declared.
Responses
Section titled “Responses”HTTP 200
Section titled “HTTP 200”Configuration page
Content type: application/json.
{ "type": "object", "required": [ "data", "next_after" ], "properties": { "data": { "type": "array", "maxItems": 100, "items": { "type": "object", "required": [ "model_alias", "revision", "currency", "created_at", "prompt_rate", "completion_rate", "minimum_charge_nanos", "request_fee_nanos", "cached_prompt_rate", "reasoning_completion_rate", "cache_write_prompt_rate", "context_tiers" ], "properties": { "model_alias": { "type": "string" }, "revision": { "type": "string", "format": "uuid" }, "currency": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "prompt_rate": { "type": "string", "pattern": "^[0-9]+$" }, "completion_rate": { "type": "string", "pattern": "^[0-9]+$" }, "minimum_charge_nanos": { "type": "string", "pattern": "^[0-9]+$" }, "request_fee_nanos": { "type": "string", "pattern": "^[0-9]+$" }, "cached_prompt_rate": { "type": [ "string", "null" ], "pattern": "^[0-9]+$" }, "reasoning_completion_rate": { "type": [ "string", "null" ], "pattern": "^[0-9]+$", "description": "Reported reasoning output is a subset of total completion tokens. A configured rate prices that subset separately; missing quantity remains unresolved." }, "cache_write_prompt_rate": { "type": [ "string", "null" ], "pattern": "^[0-9]+$", "description": "Reported cache-write input is a disjoint subset of aggregate input. A configured rate prices it separately; missing quantity remains unresolved." }, "context_tiers": { "type": "array", "maxItems": 32, "items": { "type": "object", "additionalProperties": false, "required": [ "minimum_input_tokens", "prompt_rate", "completion_rate" ], "properties": { "minimum_input_tokens": { "type": "string", "pattern": "^[0-9]+$", "description": "Positive inclusive aggregate input threshold, at most 9223372036854775807." }, "prompt_rate": { "type": "string", "pattern": "^[0-9]+$", "description": "Integer currency nanounits per million tokens, at most 1000000000000000." }, "completion_rate": { "type": "string", "pattern": "^[0-9]+$", "description": "Integer currency nanounits per million tokens, at most 1000000000000000." }, "cached_prompt_rate": { "type": [ "string", "null" ], "pattern": "^[0-9]+$", "description": "Integer currency nanounits per million tokens, at most 1000000000000000." }, "cache_write_prompt_rate": { "type": [ "string", "null" ], "pattern": "^[0-9]+$", "description": "Integer currency nanounits per million tokens, at most 1000000000000000." }, "reasoning_completion_rate": { "type": [ "string", "null" ], "pattern": "^[0-9]+$", "description": "Integer currency nanounits per million tokens, at most 1000000000000000." } } }, "description": "Complete whole-request schedules; highest inclusive input threshold wins. Null category rates do not inherit the base schedule. Empty array clears tiers; omitting existing tiers conflicts." }, "discount_baseline_revision": { "type": [ "string", "null" ], "format": "uuid", "description": "Original selling-price revision for an explicit discount. API reference only; never a UI label. Resulting rates, currency, category presence and context thresholds are checked against the original. Existing requests retain their pinned revision." }, "pricing_health": { "type": "object", "description": "Confidential platform-only advisory comparison against current Provider quotes; not admission authorization or a realized margin. Refresh after publication.", "required": [ "advisory", "checks" ], "properties": { "advisory": { "type": "boolean" }, "checks": { "type": "array", "items": { "type": "object", "required": [ "status", "dimensions" ], "properties": { "route": { "type": [ "string", "null" ] }, "provider": { "type": [ "string", "null" ] }, "status": { "type": "string", "enum": [ "below_cost", "missing_provider_price", "comparison_unavailable", "no_lower_unit_rates" ] }, "message": { "type": "string" }, "dimensions": { "type": "array", "items": { "type": "object", "required": [ "dimension", "minimum_input_tokens" ], "properties": { "dimension": { "type": "string" }, "minimum_input_tokens": { "type": "string" } } } } } } } } } } } }, "next_after": { "type": [ "string", "null" ] } }}HTTP 400
Section titled “HTTP 400”Invalid query
HTTP 401
Section titled “HTTP 401”Invalid management credential
HTTP 403
Section titled “HTTP 403”Platform administration required
HTTP 404
Section titled “HTTP 404”Company/workspace pair does not exist
HTTP 409
Section titled “HTTP 409”Cursor absent from selected directory
HTTP 503
Section titled “HTTP 503”Storage unavailable
Behavior and supported scope
Section titled “Behavior and supported scope”Explicit platform administration required; ordinary company/workspace roles do not grant access. Configuration only, without usage, balances, statements, content, credentials or procurement. Keyset order is workspace UUID ascending for targets, model alias ascending for tariffs. Pass next_after unchanged as after; null means complete. Limit defaults to 50, maximum 100. Each page is one database snapshot; concurrent inserts before the cursor require refreshing the first page. Missing cursor returns 409. Identifiers are API references, never display labels. Cache-Control no-store. Tariff token rates are exact nanounits per million tokens; minimum and request fees are exact currency nanounits. Empty valid workspace returns an empty page.
Supported scope: implemented