Developer tools
For API products: how long from an API key to the first paid invoice, and which docs got them there.
An API is sold to developers who sign up, get a key, make test calls and pay once requests run past the free allowance or a prepaid balance. Tally ties each invoice and top-up to the visits behind it, from the docs page that answered the first question to the pricing page read just before paying.
14 days free, no card needed.
01How they sell
- UsageMetered billing per request, record or credit, invoiced monthly in arrears; a customer's invoices grow with their traffic.
- One-offPrepaid credit packs bought up front and topped up when the balance runs low.
- SubscriptionMonthly tiers with a request allowance and overage above it.
02Payments it reads
- StripeMetered subscriptions and credit top-ups through Stripe; each usage invoice is read and follows the first payment's link.
- PolarAPI products bill metered usage through Polar, whose metered subscription cycles and orders are read.
- PaddleChosen by APIs sold to companies worldwide with tax handled; transactions and renewals are read.
What Tally can't read
- Requests, latency and errors on your API aren't read; only what they are billed as is.
- Subscriptions sold through an API marketplace that bills developers itself aren't read.
- Usage within a free allowance produces no payment, so it never shows as revenue.
03Where buyers come from
- Docs and reference pagesDevelopers searching how to make one specific call land on a reference page, which can be the first page they see.
- SDK repositoriesYour SDKs' READMEs send developers from GitHub to the docs and sign-up.
- Tutorials and sample appsPosts that build something real with your API send developers who copy the code.
- AI assistantsCoding assistants suggest APIs by name, and those developers arrive in the AI channel.
- Developer forumsThreads asking which API to use for a task send developers who compare pricing pages.
04What Tally answers
How many developers who create a key go on to pay?
Send tally('key_created') when a key is made; the goals view counts the visitors who did it, how many converted and their revenue, which is the activation rate in money.
Goals and funnelsWhich docs pages do paying developers read?
What they read sets buyers' engaged time and scroll depth per page against everyone else's, so the reference pages paying developers dwell on stand out from the ones only skimmed.
What they readDo prepaid top-ups come back from the same channels?
Lifetime value by first source counts each customer's top-ups and invoices with the repeat rate, so channels whose developers keep topping up rank by it.
Lifetime valueWhich SDK's page brings customers?
The page breakdown lists each SDK and quickstart page with visitors and the revenue credited to the developers who landed there.
Sources with revenueAre AI crawlers fetching our API reference?
Requests from AI crawlers are counted per page, crawler and operator in a view of their own; a server snippet for Express, Next.js middleware or Cloudflare Workers reports them, since they rarely execute the tag.
AI crawlers
05Numbers worth watching
- Repeat rate
- The share of customers who paid more than once, which top-ups and monthly invoices both raise.
- Lifetime value by first source
- Lifetime revenue by first source; the first invoice of a metered API says little about the account.
- Goal conversion
- The share of visitors who create a key, the step before any usage is billed.
- AI crawler requests
- AI crawler requests on reference pages, a sign of which docs assistants are learning your API from.
06An example
Reading time
38s
median per pageview
Scroll depth
59%
average depth, of 27,216 views measured
Read to the end
27%
of measured views reached 90% or more
What they read
29,264 pageviews · last 30 days
Open a page to see how far down people read it, and how buyers read it before paying.
- /8,756 views52% scrolled on average21s reading time, median
- /pricing5,526 views78% scrolled on average58s reading time, median
58s
reading time, median per view
78%
scrolled, on average
5,526 views · 5,194 with a measured depth
How far down they read
Share of measured views that scrolled at least this far
- 25% — reached a quarter of the page:95%
- 50% — reached half of the page:84%
- 75% — reached three quarters of the page:69%
- 90%+ — reached the end of the page:48%
Buyers before paying vs didn't buy
- Buyers, before paying149 views · 107 buyers96% scrolled on average,1m 41s reading time, median
- Didn't buy5,342 views · 3,815 visitors61% scrolled on average,44s reading time, median
35 views by buyers after paying are left out of both.
Buyers are visitors whose first sale came after viewing this page; only their views before that payment count.
- /docs2,727 views47% scrolled on average1m 12s reading time, median
- /blog/stripe-fees2,237 views64% scrolled on average2m 34s reading time, median
- /compare1,184 views71% scrolled on average49s reading time, median
- /changelog861 views38% scrolled on average33s reading time, median
Reading time runs only while the tab is visible and the visitor is active; it's the median per view. A view with no engagement report counts as 0s of reading. Its scroll depth is unknown, so it's left out of every scroll figure rather than counted as 0%. 27,216 of 29,264 pageviews have a measured depth.
07Setting up
- Next.jsIf the docs are a Next.js app, put the tag in the root layout and add the middleware snippet, so AI crawlers on reference pages are counted.
- StripePass tally_visitor_id in the metadata of the Checkout Session that saves the card or buys the first credit pack.
- Call tally('identify', { email }) when a developer signs up, so a first invoice generated weeks later by usage can link by email.
08Questions
Our first invoice comes a month after sign-up. Is it still linked?
Yes, if the checkout that saved the card carried the visitor's id, or the email matches an identified visitor. Credit goes to the last visit that didn't come direct before that payment.
Are developers on the free allowance counted?
As visitors, yes; as customers, only once they pay. Their goals, such as a key created, still show in the goals view.
Can our billing scripts read these numbers?
The REST API serves them to scripts, the command line to a terminal, and the MCP server to an AI assistant.