Prerequisites
- You have identified the total cost of this API in your billing data.
- You have a usage metric from your internal monitoring tool (e.g., API call counts per team) that can serve as an allocation key to split costs across callers.
What you get: per-team cost attribution
- A per-team cost view based on actual API usage, ready for chargeback or showback.
- A reusable that automatically allocates the shared cost going forward, with no manual updates needed.
How it works
The overall flow is: export a usage metric from your monitoring system, import it into Costory, preview the proportional split, then lock it in with a Virtual Dimension.How to split shared API costs step by step
Create a bucket and share access with Costory
Terraform / Manual setup
Terraform / Manual setup
- Terraform
- Manual
Schedule the metric export
- Output format: A Parquet file with one row per combination of dimensions per day. At minimum, include a
datecolumn, one or more dimension columns (e.g.,team,region), and a numeric value column (e.g.,api_call_count). - S3 prefix: Write files under a consistent prefix, for example
s3://<bucket>/api_cost_allocations/. Costory scans this prefix for new files. - Overwrite strategy: You can safely write a new file each day. Costory applies an incremental overwrite strategy: for a given day, the last data received wins, and existing data for other days is preserved.
Create the metric in Costory
- Terraform
- Manual

The Metrics Datasources page showing the imported API Usage metric as Active
Preview the reallocation
a / b * d gives you: (team’s calls / total calls) * total cost = team’s share.
Explorer showing the reallocation formula: team usage (a) / total usage (b) * total cost (d)
Create the Virtual Dimension
- Add a new rule for those API costs:
- Rely on reallocation based on usage metrics
- Use the metric you just imported
- Choose an allocation strategy:
- Identity mapping: The new label value is the team name
- Regex mapping: The API name contains the team name (extract it with a regex)
- Manual mapping: The API name has no relation to the team name; map each name manually
- Save the virtual dimension

Creating a Virtual Dimension rule that dynamically allocates API costs based on the imported usage metric
Next steps: automate and share
- Set up a weekly Slack report to share the reallocated costs with each team automatically.
- Explore the results in Explorer to validate cost attribution per team.
- Build on this allocation to create a budget tracking workflow per team.
