Agent Ping for SaaS teams

Some of your customers
cost more than they pay.

On a flat plan, inference cost is never evenly distributed. A handful of accounts run ten times the volume of everyone else, and nothing in your billing tells you which ones. Agent Ping attributes every run to the customer and feature behind it, so you can name the unprofitable accounts, price the next feature on real unit cost, and see margin move before the invoice does.

spend · this month↑ on budget
$5,382
spent
$0.094
cost / successful run
content-writer$2,189
research-agent$1,474
support-triage$685
email-classifier$262

Three ways this goes wrong before anyone notices.

01

The account you serve at a loss

One customer, ten times the usage, same monthly price.

→They are enthusiastic, they are a reference customer, and they are the most expensive thing in your infrastructure. Nobody finds out until someone divides the provider bill by account count and the average stops matching anyone.

02

The feature you priced blind

The number came from a demo, not from production.

→Demo prompts are short and clean. Real ones arrive with pasted documents and long histories. Price against the median and the tail eats the margin, and repricing a live feature is far harder than pricing it once.

03

The margin that slid

A prompt change added context to every call.

→Nothing broke. No alert fired. Cost per request rose by a third, gross margin dropped a few points across the quarter, and the whole thing was attributed to growth because there was no per-feature number to check it against.

What that looks like once it is instrumented.

One run event carries the customer, the feature and the cost, so all three failures above become a query instead of an investigation.

Cost per customer, by name

Group spend by account and see the distribution. The heavy tail is usually a handful of names, and naming them is what makes a plan change or a usage component possible.

spend · this month↑ on budget
$5,382
spent
$0.094
cost / successful run
content-writer$2,189
research-agent$1,474
support-triage$685
email-classifier$262

Explore Spend →

Quality your users feel

Churn from a degraded AI feature does not arrive as a bug report. Sampled scoring on live runs catches the drift while it is still a chart and not a cancellation.

summariser · judge score↓ 4.2 to 3.8
  • cites a source pass
  • answers the question pass
  • stays on policy fail

Explore Verify →

Reliability in front of customers

A customer-facing agent that stalls should page you, not generate a support ticket. Freshness alerting closes the gap between failing and finding out.

support-triage · schedulelive
support-triage missed its 14:00 run paged on-call · last ok 13:00 · 247 runs clean before

Explore Pulse →

From per-customer cost to the invoice.

Usage-based pricing for an AI feature needs one figure per customer per billing period, across every model the feature touched. Provider invoices cannot give you that; they are one total per API key. Agent Ping can, and it hands it over without lock-in.

One currency across every model

Each run is priced server side from the model and token counts on its calls, whether that was one OpenAI call or a chain across Anthropic, OpenAI and Bedrock. The run's cost is a single US dollar figure, tagged with the customer and feature it was for.

Get it out for billing

Export the runs for a date range from the dashboard, on every plan: each line of runs.ndjson carries the run's customer_id, feature and cost_usd, so the per-customer total is a sum. For an automated monthly job, page through the read API with a read-scoped key, which returns the same fields.

Your billing system stays in charge

Agent Ping does not send invoices or connect to a billing provider for you. The total goes wherever you already bill from, as a usage line or a metered quantity, with a run-level record behind every number if a customer asks how it was calculated.

example · read api shell
# Every run in the billing period; sum cost_usd by customer_id.
curl "https://agentping.io/v1/runs?from=2026-09-01T00:00:00Z&to=2026-10-01T00:00:00Z&per_page=100" \
  -H "Authorization: Bearer apk_…"

Bulk export is covered in your data.

Can I see AI cost per customer?
Yes, and it is the reason most SaaS teams start. Tag a run with a customer identifier at run start and every token on that run is attributed to them from then on. Group by customer and the distribution is usually lopsided: a small number of accounts account for a large share of inference, and on a flat plan some of them are being served below cost. You cannot act on that until you can name them.
We charge per seat, not per token. Does this still matter?
Especially then. Per-seat pricing decouples what you charge from what you spend, so a heavy account or a chatty new feature erodes gross margin without changing a single line on your revenue reporting. The erosion is invisible by construction. Cost per customer is what makes it visible while you can still do something about it, whether that is a plan change, a usage component or a cap.
We are about to price a new AI feature. What do we need first?
Cost per successful run for that feature, measured on real traffic rather than on a handful of test prompts. Demo inputs are short and clean; production inputs are long and messy, and the gap between the two is where pricing mistakes are made. Run the feature instrumented for a few weeks before committing to a number, and price against the upper end of the distribution rather than the median.
Could we not just log this ourselves?
You can, and plenty of teams start there. A cost column on a runs table gets you a long way, and if that is all you need, do that. What tends to pull people off it is the second lap: per-customer rollups that stay correct when one agent calls another, spend baselines per agent with alerting, retention and export, and a quality signal on the same record. That is a small internal product to build and then to keep working while you are also shipping your actual product.
Can I put AI costs from several models on one customer invoice?
Agent Ping is not a billing system, but it gives your billing system the number it needs. Every run is priced in US dollars across whichever providers and models it called, and carries the customer it was for. Export the runs for the billing period, or pull them from the read API, sum cost per customer, and send that to your invoicing as a usage line or a metered quantity.
How fast can we start?
Minutes for the first run, a few days for the attribution to be worth reading. Send one run event from your backend and you see cost, status and quality immediately. Add the customer and feature tags when convenient; the rollups fill in from there and you do not need to instrument everything before anything is useful.

Find out which account is the expensive one.

Instrument one customer-facing workflow and let it run for a week. The distribution usually answers the question on its own.

For product teams → For platform engineering → All features →