ccusage / pricing-fetcher / PricingFetcher
Class: PricingFetcher
Fetches and caches model pricing information from LiteLLM Implements Disposable pattern for automatic resource cleanup
Implements
Disposable
Constructors
Constructor
new PricingFetcher(offline): PricingFetcher;
Creates a new PricingFetcher instance
Parameters
Parameter | Type | Default value | Description |
---|---|---|---|
offline | boolean | false | Whether to use pre-fetched pricing data instead of fetching from API |
Returns
PricingFetcher
Methods
[dispose]()
dispose: void;
Implements Disposable interface for automatic cleanup
Returns
void
Implementation of
Disposable.[dispose]
clearCache()
clearCache(): void;
Clears the cached pricing data
Returns
void
fetchModelPricing()
fetchModelPricing(): Promise<Map<string, {
input_cost_per_token?: number;
output_cost_per_token?: number;
cache_creation_input_token_cost?: number;
cache_read_input_token_cost?: number;
}>>;
Fetches all available model pricing data
Returns
Promise
<Map
<string
, { input_cost_per_token?
: number
; output_cost_per_token?
: number
; cache_creation_input_token_cost?
: number
; cache_read_input_token_cost?
: number
; }>>
Map of model names to pricing information
getModelPricing()
getModelPricing(modelName): Promise<
| null
| {
input_cost_per_token?: number;
output_cost_per_token?: number;
cache_creation_input_token_cost?: number;
cache_read_input_token_cost?: number;
}>;
Gets pricing information for a specific model with fallback matching Tries exact match first, then provider prefixes, then partial matches
Parameters
Parameter | Type | Description |
---|---|---|
modelName | string | Name of the model to get pricing for |
Returns
Promise
< | null
| { input_cost_per_token?
: number
; output_cost_per_token?
: number
; cache_creation_input_token_cost?
: number
; cache_read_input_token_cost?
: number
; }>
Model pricing information or null if not found
calculateCostFromTokens()
calculateCostFromTokens(tokens, modelName): Promise<number>;
Calculates the cost for given token usage and model
Parameters
Parameter | Type | Description |
---|---|---|
tokens | { input_tokens : number ; output_tokens : number ; cache_creation_input_tokens? : number ; cache_read_input_tokens? : number ; } | Token usage breakdown |
tokens.input_tokens | number | Number of input tokens |
tokens.output_tokens | number | Number of output tokens |
tokens.cache_creation_input_tokens? | number | Number of cache creation tokens |
tokens.cache_read_input_tokens? | number | Number of cache read tokens |
modelName | string | Name of the model used |
Returns
Promise
<number
>
Total cost in USD
calculateCostFromPricing()
calculateCostFromPricing(tokens, pricing): number;
Calculates cost from token usage and pricing information
Parameters
Parameter | Type | Description |
---|---|---|
tokens | { input_tokens : number ; output_tokens : number ; cache_creation_input_tokens? : number ; cache_read_input_tokens? : number ; } | Token usage breakdown |
tokens.input_tokens | number | Number of input tokens |
tokens.output_tokens | number | Number of output tokens |
tokens.cache_creation_input_tokens? | number | Number of cache creation tokens |
tokens.cache_read_input_tokens? | number | Number of cache read tokens |
pricing | { input_cost_per_token? : number ; output_cost_per_token? : number ; cache_creation_input_token_cost? : number ; cache_read_input_token_cost? : number ; } | Model pricing rates |
pricing.input_cost_per_token? | number | - |
pricing.output_cost_per_token? | number | - |
pricing.cache_creation_input_token_cost? | number | - |
pricing.cache_read_input_token_cost? | number | - |
Returns
number
Total cost in USD