Which AI vendors actually
let you track what you spend?
Nobody should make the two admins at your company doing a second job cobble together usage reports downloaded from a wonky dashboard. Non-aggregated atomic units of spend should be programmatically available to integrate into major cloud cost optimization tools.
This leads us here -- a comparison of cost APIs, usage endpoints, and billing exports across AI providers.
| Vendor | Cost API | Usage API | Billing Export | Granularity | Grade |
|---|---|---|---|---|---|
| Yes | Yes | Yes | Per-model, per-token, per-invocation; plus per-IAM-principal, per-application-inference-profile, per-project/workspace, and per-request-metadata attribution (native dollar grain is per usage type per day) | A+ | |
| Yes | Yes | Yes | Per-model, per-token, per-deployment, subscription-level | A+ | |
| Yes | Yes | Yes | Per-model, per-prediction, SKU-level | A+ | |
| Yes | Yes | Yes | Cost/usage by billing-item, instance, model, API key, workspace, token type; daily or monthly cycle | A+ | |
| Yes | Yes | Yes | per-App, per-day or per-hour cost; optional per-App-tag breakdown | A+ | |
| Yes | Yes | Partial | Per-model, per-request, tokens aggregated to API key* | A- | |
| Yes | Yes | Partial | Per-model, per-workspace, per-API-key, per-service-tier, per-context-window; aggregated in 1m/1h/1d buckets, per-request tokens in the response usage object | A- | |
| Yes | Yes | Partial | Per-request and per-billing-event cost in USD; aggregated usage by timeframe (minute/hour/day/week/month); on-demand FOCUS CSV report | A- | |
| Yes | Yes | Partial | per-request (POST /v1/request-costs, costNanoUsd) and per-model-per-month aggregate (GET /payment/usage) | A- | |
| Yes | Yes | Partial | per-bill line with cycleType (Hour/Day/Week/Month) and productCategory (llm/gpu/storage); monthly bills; USD as 1/10000 USD | A- | |
| Yes | Yes | Partial | per serverless-endpoint / pod / GPU-type, time-bucketed (hour to year) over an arbitrary startTime/endTime range | A- | |
| Yes | No | Yes | SKU and character-transaction level detail | B | |
| Partial | Yes | Partial | Per-model, per-request tokens | B | |
| Partial | Yes | Partial | Per-model, per-request (input tokens, output tokens, search units) | B | |
| Partial | Partial | Partial | per-request token counts in response; per-currency balance via GET /user/balance; manual per-month export | B | |
| Partial | Yes | Yes | per-request response usage; daily buckets (billingUsage) grouped by model/api_key/deployment/tags; per-event export-metrics CSV (tokens-only) | B | |
| Partial | Partial | Partial | per-request token counts in response; account balance in USD; aggregated usage/cost dashboard-only | B | |
| Partial | Yes | Partial | Per-character/credit, per-product, per-voice, per-API-key, per-user, per-model, per-region, per-workspace; USD spend via fiat_units_spent metric | B | |
| Partial | Partial | Yes | hourly FOCUS 1.2 line items with per-resource attribution over a billing-period range; Token Factory per-request token counts | B | |
| Partial | Partial | No | per-request token usage in response; dashboard aggregates by model | B- | |
| Yes | Yes | No | per-request response usage (cost_in_usd_ticks, 1 USD = 1e10 ticks) plus aggregated history via Management API /usage with time buckets, group_by, and aggregations | B- | |
| Partial | Partial | No | Per-model, per-request tokens | B- | |
| Partial | Partial | No | Compute seconds per run; multiply by hardware rate for USD | B- | |
| Yes | Yes | No | Per-deployment / per-model / per-training-job; daily; tokens and billable minutes | B- | |
| Partial | Yes | No | Per-generation cost object (amount plus unit, dollars or credits) in response; USD account balance under PAYG; credit balance via GET /me | B- | |
| Partial | Yes | No | Credit balance and 90-day usage history by model and day | B- | |
| Yes | Yes | No | Per-request USD cost in response (opt-in); account balance and aggregated usage (credits/requests) via accountManagement getDetails for today/7d/30d/lifetime | B- | |
| Partial | Partial | No | Credit balance via API, per-operation dollar costs | B- | |
| Partial | Partial | No | Credit balance via billing endpoint; credits require rate conversion | B- | |
| Yes | Yes | No | Credit balance via API (returned in USD cents); per-generation credit costs; queryable generations list endpoint | B- | |
| Partial | Partial | No | Per-request cost in response, credit balance via API | B- | |
| Partial | Yes | No | Per-request, per-model, per-user token and cost data | B- | |
| No | Yes | No | Per-request token counts in API response; aggregated token usage queryable by day/hour via GetUsage API, by project/endpoint | C | |
| No | Partial | Partial | Per-request token counts in response only | C | |
| No | Partial | Partial | per-request token usage in response; Prometheus per-minute metrics; Console cost by model/token type per month | C | |
| No | Partial | No | Per-request token counts; current-window quota-remaining endpoint | D | |
| No | Partial | No | Index-level metrics; ecommerce event analytics (search/click/conversion) | D | |
| No | No | No | None | F | |
| No | No | No | None | F |
Per-model, per-token, per-invocation; plus per-IAM-principal, per-application-inference-profile, per-project/workspace, and per-request-metadata attribution (native dollar grain is per usage type per day)
Per-model, per-token, per-deployment, subscription-level
Cost/usage by billing-item, instance, model, API key, workspace, token type; daily or monthly cycle
per-App, per-day or per-hour cost; optional per-App-tag breakdown
Per-model, per-request, tokens aggregated to API key*
Per-model, per-workspace, per-API-key, per-service-tier, per-context-window; aggregated in 1m/1h/1d buckets, per-request tokens in the response usage object
Per-request and per-billing-event cost in USD; aggregated usage by timeframe (minute/hour/day/week/month); on-demand FOCUS CSV report
per-request (POST /v1/request-costs, costNanoUsd) and per-model-per-month aggregate (GET /payment/usage)
per-bill line with cycleType (Hour/Day/Week/Month) and productCategory (llm/gpu/storage); monthly bills; USD as 1/10000 USD
per serverless-endpoint / pod / GPU-type, time-bucketed (hour to year) over an arbitrary startTime/endTime range
Per-model, per-request (input tokens, output tokens, search units)
per-request token counts in response; per-currency balance via GET /user/balance; manual per-month export
per-request response usage; daily buckets (billingUsage) grouped by model/api_key/deployment/tags; per-event export-metrics CSV (tokens-only)
per-request token counts in response; account balance in USD; aggregated usage/cost dashboard-only
Per-character/credit, per-product, per-voice, per-API-key, per-user, per-model, per-region, per-workspace; USD spend via fiat_units_spent metric
hourly FOCUS 1.2 line items with per-resource attribution over a billing-period range; Token Factory per-request token counts
per-request token usage in response; dashboard aggregates by model
per-request response usage (cost_in_usd_ticks, 1 USD = 1e10 ticks) plus aggregated history via Management API /usage with time buckets, group_by, and aggregations
Compute seconds per run; multiply by hardware rate for USD
Per-deployment / per-model / per-training-job; daily; tokens and billable minutes
Per-generation cost object (amount plus unit, dollars or credits) in response; USD account balance under PAYG; credit balance via GET /me
Credit balance and 90-day usage history by model and day
Per-request USD cost in response (opt-in); account balance and aggregated usage (credits/requests) via accountManagement getDetails for today/7d/30d/lifetime
Credit balance via API, per-operation dollar costs
Credit balance via billing endpoint; credits require rate conversion
Credit balance via API (returned in USD cents); per-generation credit costs; queryable generations list endpoint
Per-request cost in response, credit balance via API
Per-request, per-model, per-user token and cost data
Per-request token counts in API response; aggregated token usage queryable by day/hour via GetUsage API, by project/endpoint
Per-request token counts in response only
per-request token usage in response; Prometheus per-minute metrics; Console cost by model/token type per month
Per-request token counts; current-window quota-remaining endpoint
Index-level metrics; ecommerce event analytics (search/click/conversion)
Methodology
Grades
Grades are based on whether a vendor provides programmatic access to cost data, usage metrics, and billing exports.