All postsPricing

How to Bill Clients for AI API Costs: Pass-Through vs. Markup

Duncan RogoffDuncan Rogoff August 5, 2026 7 min read
A brass balance scale on a wooden desk weighing a small server rack model against a stack of coins, warm lamp light
Original image, Claude Code Profit Room
TL;DR
  • You have two honest ways to bill a client for the AI API usage your build runs on: pass it through at cost as a separate line item, or roll it into a flat fee with a markup baked in. Most builders should default to pass-through until volume makes a flat fee worth the risk.
  • Pass-through keeps you out of the business of predicting someone else's usage. Markup lets you earn on infrastructure, but only works once you have enough real usage data to price the risk instead of guessing at it.
  • Whichever you choose, put it in writing before the build starts. The single worst version of this conversation is explaining a surprise API bill after the client has already seen the number.

The Two Honest Ways to Bill for API Usage

When you build something for a client that runs on a paid API - Claude, OpenAI, or any usage-billed model - you have exactly two honest options for how the client pays for that usage. Pass it through at cost, itemized and separate from your fee. Or fold an estimate of it into a flat fee, with a markup that covers the risk of guessing wrong. Everything else is a variation on these two, and most billing disputes with clients come from picking one without saying so clearly upfront.

Neither option is more honest than the other as long as the client knows which one they are getting before they sign. The dishonest version is the third, unofficial option some builders slide into: an unstated markup buried in an unclear number, discovered by the client later when they compare notes with someone else. That erodes trust faster than almost anything else in a client relationship, because it reads as billing them for something they did not know they were being charged for.

When to Pass API Costs Through at Cost

Pass-through billing means the client pays their own API bill directly, or reimburses you exactly what the usage cost with a copy of the invoice. Your fee for building and maintaining the system is entirely separate and does not move with usage.

  • It is the right default when usage volume is genuinely unpredictable - a new build with no history to estimate from, or a client whose usage could spike based on their own growth.
  • It removes an entire category of risk from your side. You are not exposed if the client's usage triples unexpectedly, and you never have an awkward conversation about a markup that turned out to be too thin.
  • It is simpler to defend. 'You pay Anthropic directly for what you use, and you pay me for the system I built and maintain' is a sentence any client understands immediately, with nothing to negotiate.
  • The tradeoff: you give up a real revenue line. Infrastructure margin is standard practice in software, and pass-through means you are the only party in the chain not earning anything on the usage itself.
The cleanest version of pass-through: have the client create their own API account and add you as a team member or give you the key for setup, rather than usage running through your account and getting reimbursed. It removes you from the billing chain entirely and removes any appearance of markup.

When a Markup Actually Makes Sense

A markup on API costs makes sense once you have enough real usage history to price the risk instead of guessing at it, and once you are willing to own that risk in exchange for the margin. This is not a default - it is something you earn the right to do by having the data.

SituationBetter fit
New build, no usage historyPass-through - you have nothing reliable to price a markup against
Recurring client, 3+ months of stable usage dataMarkup - you can price the risk with real numbers
Client wants one predictable flat invoice, no surprisesMarkup, folded into a flat monthly fee
Usage could spike with the client's own growth (new feature, new customers)Pass-through, or a markup with a stated usage cap

Pass-through vs. markup - which fits the situation

If you do markup, price it off your actual historical usage for that client, not a guess, and add a buffer - 15 to 30 percent over your best estimate is a reasonable range depending on how volatile the client's usage has been. State the cap in writing: 'This fee covers up to $X in usage; anything beyond that is billed at cost.' Without a cap, one usage spike from the client's own growth turns your margin into a loss.

Put It in Writing Before the Build Starts

Whichever model you use, the client needs to see it in writing before you start, not discover it when the first invoice or the first surprise API bill arrives. One short paragraph in your proposal or agreement does the job: which model you are using, what the client can expect to pay and when, and what happens if usage runs higher than expected.

The single worst version of this conversation happens after the fact - a client sees an unexpectedly large API bill, does not understand why, and now questions everything else about your pricing. That conversation is entirely avoidable with two sentences in the agreement before anything ships.

Decide Your Model Before Your Next Proposal

Before you send your next proposal for a build with real API usage attached, decide which model you are using and write the sentence that explains it to the client. Default to pass-through if you do not yet have real usage history for this kind of build. Move to a capped markup once you do, and only once you are comfortable pricing the risk instead of guessing at it.

Inside the Claude Code Profit Room, members compare real markup percentages and pass-through structures across their actual client builds. Bring your current API billing setup and we will help you figure out which model fits it.
Free builder-to-paid drops, straight to your inbox

Short, practical drops on offers, outreach, pricing, and closing clients with Claude Code. No spam, unsubscribe anytime.

Frequently asked

Should I markup API costs when billing AI clients?

Only once you have real usage history for that kind of build - enough data to price the risk instead of guessing. Without that history, pass-through billing at cost is the safer default, because a markup priced on a guess can easily turn into a loss if usage runs higher than expected.

What is pass-through billing for AI API costs?

Pass-through means the client pays their own API usage directly, or reimburses you exactly what it cost with a copy of the invoice, completely separate from your build fee. It removes the risk of a usage spike from your side and is the simplest model to explain to a client.

How much should I markup API costs if I choose to?

Price it off your actual historical usage for that specific client, not a guess, and add a buffer of roughly 15 to 30 percent depending on how volatile their usage has been. State a usage cap in writing so a spike in their own growth does not turn your margin into a loss.

Should I put API billing terms in the client contract?

Yes, always, before the build starts. One short paragraph stating which billing model you are using, what the client can expect to pay, and what happens if usage exceeds an estimate prevents the worst version of this conversation - a client discovering a surprise bill after the fact.

Where can I learn more about pricing AI builds for clients?

The Claude Code Profit Room covers real pricing structures, including how members bill for API usage across their actual client work. Join at claudecodeprofitroom.ai for $9/month.

Last reviewed August 5, 2026.

Duncan Rogoff
Co-founder, agency operator

Co-founder of the Claude Code Profit Room. Built and sold AI services to real clients; writes about offers, pricing, outreach, and closing with receipts.

More from Duncan Rogoff →

Ready to sell what you build?

Take the Profit Quiz and find your fastest path to your next client.