Over-fetch and large payloads
Fields not read in observed sessions, and responses larger than the page needs — with the evidence to investigate a smaller payload.
How much of your response does your frontend actually use? Find unread fields, repeated calls and slow endpoints with one script. Go from evidence to a concrete next step.
No credit card. 50,000 responses a month free.Move your pointer to explore · Illustrative visualization
A successful response is only half the story. Explore which fields your frontend reads — and what is left behind.
Select the fields your frontend reads. Watch the analysis change.
3 of 8 fields read by the example frontend.
Consider a smaller response for this view. Review usage across real sessions before removing fields.
Every finding comes from real traffic in your app, with the requests behind it and the code that made them.
Fields not read in observed sessions, and responses larger than the page needs — with the evidence to investigate a smaller payload.
Investigate endpoints that cross your project’s latency threshold and elevated error rates, backed by enough samples.
Spot duplicate calls, frequent refetches and retry storms after failed requests.
A thousand-item list downloaded when the page only ever reads the first twenty.
Passwords, tokens and keys sent to the browser, flagged whether or not the page reads them.
The component and line that made each request, resolved through your source maps, and the release a finding first appeared in.
Illustrative product flow · Select a layer to explore
The SDK records the shape, size and timing of JSON responses your app receives. See which page called which endpoint.
Inspect the fields your code reads alongside the response shape. Investigate unread fields and repeated calls with evidence from observed sessions.
Move from a finding to its call site. Review steps for Frontend, Backend, SQL and DevOps, then check new traffic after shipping your change.
Create a free account and add your app’s address. Copy the snippet with your project key from setup, then use your app’s real flows.
Explore the free plan ↗<script
src="https://app.apiheron.com/sdk.js"
data-key="YOUR_PROJECT_KEY"
></script>Replace YOUR_PROJECT_KEY with the key from your project.
The SDK records the shape of responses (field paths, item counts, size, timing) and which fields your code reads. It never records response values, and query values are hashed in the browser.
Don’t just spot the problem. Know your next move.
Use a purpose-built response for the product card. Coordinate the smaller endpoint with your backend; filtering after fetch won’t reduce transferred bytes.
const products = await fetch(
"/api/products?view=card"
).then((response) => response.json());Quotas count captured API responses per calendar month; when one runs out, capture pauses until the next month and nothing extra is billed.
$0/ month
For trying apiheron on a side project or a single app.
$29/ month
$290 per year
For teams profiling their production and staging apps.
$99/ month
$990 per year
For companies watching several busy apps with a longer history.
Custom
For organizations that need high volume, a custom contract or their own infrastructure.
Upgrade from Workspace after signing up. Payments, invoices and taxes are handled by Polar.
A few things to know before your first capture.
No. The SDK records response shapes: field paths, item counts, size and timing, plus which fields your code reads. Response values are not recorded; query values are hashed in the browser.
apiheron observes JSON API traffic with fetch and axios, with a TanStack Query integration. Add the SDK to your app; Next.js, Vite and plain HTML installation snippets are available during setup.
Capture pauses until the next calendar month. There are no automatic overage charges. You can upgrade from your workspace if you need more capacity.
Yes. Create an account, add your project and install the script on the free plan.