Cut Agent Browser Hours With a Crawl API
Browser hours bill wall-clock time, so an agent that thinks between steps pays eight times more for the same page than one that does not. The verified August 2026 arithmetic, the 15-second crossover, a sorting table for reads versus actions, and the three cases where migrating loses you money.
By the ClawEngine team
August 2026 · 8 min read
Hit Extract to turn this page into clean, LLM-ready data.
robots.txt respected · public data only
Short answer: Browser hours bill wall-clock time, so a page that takes 6 seconds costs about $0.33 per 1,000 at Browserbase Startup rates, and the same page costs $3.30 per 1,000 if your agent sits on it for a minute waiting on a model. A page-metered crawl API charges the same whichever it is. Sort your agent steps into reads and actions, move the reads to a per-page meter, and keep browser sessions for the steps that genuinely click something. Most agent workloads are mostly reads, and reads are where the overspend lives.
Nobody sets out to pay browser prices for reading. It happens because one step in the agent needed to log in, so the whole loop got built on a cloud browser, and every subsequent step inherited a Chromium session it did not need. The bill grows quietly, because the meter is time and time is exactly the thing a language model in the loop spends a lot of.
The fix is not a rewrite. It is a sorting exercise followed by a small amount of plumbing. Here is the arithmetic that tells you whether it is worth doing, and the three cases where it is not.
How much does a browser hour actually cost per page?
Browserbase publishes Developer at $20 for 100 browser hours and Startup at $99 for 500 hours, which works out to $0.20 and about $0.198 an hour inside the allowance. Divide by 3,600 and a second of browser time costs roughly $0.000055 on Startup. Multiply that by however many seconds a page occupies your session and you get a real cost per page. Verified from Browserbase pricing in August 2026.
That multiplication is the part teams skip, and it is where the surprise lives. The same page costs ten different amounts depending on what your agent does while the tab is open.
| Seconds of browser time per page | What that looks like | Cost per 1,000 pages | Verdict against a per-page meter |
|---|---|---|---|
| 6 seconds | Static docs page, no model call in the loop | About $0.33 | Browser hours win. Leave it alone |
| 15 seconds | Render plus one quick extraction | About $0.83 | Dead level with a 1-credit page API at $83 per 100,000 |
| 30 seconds | Render, one model call, one decision | About $1.65 | Twice the price. Start moving reads |
| 60 seconds | Agent reasoning between actions, retries | About $3.30 | Four times the price. Move them now |
| 120 seconds | Long chain of thought, slow model, waiting | About $6.60 | Eight times the price for identical content |
The crossover sits at 15 seconds a page. Under it, a browser is genuinely cheap and you should stop reading. Over it, you are paying for idle time, and idle time is the default state of an agent that thinks between steps. Time one representative page in your own workload with a stopwatch before you act on any of this, because the number that matters is yours, not the one in this table. The same crossover arithmetic, with both vendors side by side, is laid out on our Firecrawl vs Browserbase pricing comparison.
Which agent steps still need a real browser?
This is the sorting exercise, and it takes about twenty minutes with your trace logs open. Go through the steps your agent actually performs and put each one in a column. The test is simple: does this step change state on the far end, or does it only observe?
| Agent step | Needs a driven browser? | Cheaper home |
|---|---|---|
| Read a public documentation page | No | Per-page crawl or scrape API |
| Pull a pricing or spec table | No | Per-page API with a schema |
| Ingest a whole site on a schedule | No | Crawl endpoint with scope and depth |
| Check whether a page changed | No | Per-page fetch on a cron |
| Log in behind a password | Yes | Stay on the browser |
| Fill and submit a form | Yes | Stay on the browser |
| Click through a multi-step wizard | Yes | Stay on the browser |
| Anything behind serious anti-bot defenses | Yes | Stay on the browser, and read the terms first |
In most agent traces, the top half of that table is the overwhelming majority of calls and a small minority of the perceived value. That is the whole opportunity. The read versus act split is worth understanding properly before you touch anything, and we wrote it up separately in web scraping APIs versus browser automation for AI agents.
What actually changes in the code?
You are deleting a session lifecycle, not learning a new paradigm. The browser version opens a session, connects a driver, navigates, waits for a selector, scrapes the DOM, and closes. The API version is one request whose response is already the content.
| Browser session concept | Crawl API equivalent |
|---|---|
| Create session, connect over CDP | Nothing. One HTTP request |
| page.goto and wait for network idle | A render flag on the request |
| Wait for a selector to appear | Handled server side before the response returns |
| Query the DOM and clean the text | A schema on the request, typed fields in the response |
| Loop over discovered links yourself | A path prefix and a max pages parameter |
| Close the session in a finally block | Nothing to leak |
Concretely, the read step collapses to this:
curl https://api.clawengine.ai/v1/crawl \
-H "Authorization: Bearer $CLAWENGINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/docs",
"path_prefix": "/docs/",
"max_pages": 500,
"render": true,
"schema": { "title": "string", "section": "string", "body": "string" }
}'
One thing to carry across deliberately: whatever comes back is untrusted text that you are about to hand to a model. A page you crawled can contain instructions aimed at your agent rather than at a human reader, and the risk arrives with the content regardless of which meter you paid. Firecrawl charges 4 extra credits a page for a prompt injection check, which tells you how seriously the category takes it. If your pipeline feeds scraped pages into a tool-using agent, it is worth putting a guard between the fetched text and the model rather than trusting the crawl to be clean.
When should you not migrate?
Three cases, and they are common enough to check before you spend a sprint on this.
Your pages are genuinely fast and your concurrency is packed. If your agent reads a static page in six seconds and you keep 100 browsers busy, you are paying about $0.33 per 1,000 pages and no per-page API will beat that. The browser is the cheap option and the migration would lose you money.
The read is inseparable from the session. Sometimes the page you need only exists after three clicks and a login. Fetching that URL cold returns a redirect to a sign-in screen. Those reads are not read-only in any useful sense, and they belong on the browser with the actions that produce them.
Your volume is small. Below a few thousand pages a month the entire argument is worth tens of dollars. Spend the sprint on something else. This becomes a real decision somewhere around the point where a single ingestion job runs into five figures of pages, and it becomes urgent when that job runs nightly.
If you do decide the browser is still the right home for most of your workload, our Browserbase alternatives comparison covers what else is in that category and what each one meters. If you are moving the read half, the shape of that work is described in more detail on scraping data for AI agents.
Does an agent need a browser to read a JavaScript site?
No, though it does need something that runs JavaScript. Rendering and driving are different capabilities that often ship together. A crawl API renders the page server side and returns the finished content, which covers the large majority of JavaScript-heavy sites. What it will not do is let your code decide what to click next based on what appeared. If your only reason for renting a browser was that the site was a single-page app, rendering alone is probably enough.
How do I estimate the saving before committing?
Take one week of agent traces. Count the steps that only read, and sum the browser seconds those steps consumed. Multiply the seconds by $0.000055 for the Startup rate to get what those reads cost you. Then price the same page count on a per-page plan: $83 for 100,000 credits at 1 credit a page is $0.83 per 1,000. The difference is your annualized saving, and if it does not clear a few thousand dollars it is not worth the engineering time.
One caveat that cuts against the per-page side, in fairness. Bundled credit plans only hit their headline rate if you use the allowance, and on most self-serve plans credits do not roll over. An underused plan is worse value than the browser hours you left behind, so size the plan to measured volume rather than to the volume you hope to reach.
See ClawEngine turn pages into clean data
Point ClawEngine at any public or permitted site and get back clean markdown, JSON, or typed structured fields in one call. Crawl at scale, render JavaScript, and feed your RAG pipelines and AI agents, robots.txt and Terms of Service respected.