Pricing
Pay for the pages you process.
One credit is one page fetch. Heavier work costs more credits, every rate is published below, and cache hits are free.
Free
For trying it out and for side projects.
No credit card
- 1,000 credits / month
- 1,000 page fetches, or 58 /summarize — any mix
- 1 request at a time
- Requests pause when the credits run out
- Cache hits are free and never spend credits
- Unlimited projects and API keys
- Sync and async modes — webhook or fetch by token
- Community support
Starter
For the first real workload you put in front of users.
$190 billed yearly — two months free
- 20,000 credits / month
- 20,000 page fetches, or 1,176 /summarize — any mix
- 3 requests in parallel
- Never cut off: extra credits at $1.50 per 1,000, no cap
- Cache hits are free and never spend credits
- Everything in Free
- Email support
- Cancel any time
Pro
Most popularFor production apps pulling web data on a schedule.
$490 billed yearly — two months free
- 55,000 credits / month
- 55,000 page fetches, or 3,235 /summarize — any mix
- 8 requests in parallel
- Never cut off: extra credits at $1.50 per 1,000, no cap
- Cache hits are free and never spend credits
- Everything in Starter
- Priority email support
- Higher burst rate limits
Scale
For high-volume pipelines and agencies.
$1,490 billed yearly — two months free
- 175,000 credits / month
- 175,000 page fetches, or 10,294 /summarize — any mix
- 20 requests in parallel
- Never cut off: extra credits at $1.50 per 1,000, no cap
- Cache hits are free and never spend credits
- Everything in Pro
- Direct line to the team
- Usage reviews on request
Picking a paid plan takes you through sign-up first, then straight to Stripe's checkout. Cancel any time.
Prices in US dollars, before VAT. EU customers see it added at checkout; a business with an EU VAT number pays none.
Need more than Scale?
Larger volumes run on a contract we size with you, invoiced rather than charged to a card. Tell us what you're planning and we'll work it out.
URLpipe is built and run by Roger Campos. Every email to contact@urlpipe.dev is read by the person who wrote the code.
What each call costs
Every endpoint is priced by what it costs us to run. The five that only render the page cost 1 or 2 credits; the three that call a language model cost more, and among those, summarizing a whole article costs more than reading a page's metadata. These rates are the same ones the API meters with.
/console1 creditThe page's JavaScript console output. Same page visit, no model.
/html1 creditRendered DOM from a real headless Chrome. The baseline: one page visit.
/markdown1 creditThe whole page converted to clean markdown, straight from the rendered DOM. Same page visit, no model.
/screenshot1 creditA PNG of the rendered page. Same page visit, no model.
/lighthouse2 creditsA full Google Lighthouse audit — minutes of CPU, and it runs in its own limited lane.
/meta5 creditsTitle, description, author, dates, images. A small model call over the page's head.
/keywords15 creditsKeywords extracted from the readable text. A model call over the whole article.
/summarize17 creditsA written summary. A model call over the whole article.
A /scrape request spends the sum of the operations it runs — the same as calling them separately, but from a single page visit. Requests served from cache, and requests where the target URL failed, spend nothing at all.
Work out your bill
Put in the calls you expect to make in a month. Everything updates as you type, and nothing is sent anywhere — this runs entirely in your browser.
Calls per month
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
How much of your traffic asks for a URL you've already fetched inside your max_age window. Those come back instantly and spend nothing.
Credits per month
0
- Billable calls
- 0
- Free cache hits
- 0
Smallest plan that fits
Free
$0
0 credits
Put in the calls you expect and this fills in.
Every plan, side by side
| Feature | Free | Starter | Pro | Scale |
|---|---|---|---|---|
| Price / month | $0 | $15.83 | $40.83 | $124.16 |
| Credits / month | 1,000 | 20,000 | 55,000 | 175,000 |
| Parallel requests | 1 | 3 | 8 | 20 |
| /console, /html, /markdown, /screenshot (1 credit) | 1,000 | 20,000 | 55,000 | 175,000 |
| /lighthouse (2 credits) | 500 | 10,000 | 27,500 | 87,500 |
| /meta (5 credits) | 200 | 4,000 | 11,000 | 35,000 |
| /keywords (15 credits) | 66 | 1,333 | 3,666 | 11,666 |
| /summarize (17 credits) | 58 | 1,176 | 3,235 | 10,294 |
| Past the allowance | Requests pause | $1.50 / 1,000, no cap | $1.50 / 1,000, no cap | $1.50 / 1,000, no cap |
| All 8 endpoints | Yes | Yes | Yes | Yes |
| Sync + async modes | Yes | Yes | Yes | Yes |
| Free cache hits | Yes | Yes | Yes | Yes |
| Projects & API keys | Unlimited | Unlimited | Unlimited | Unlimited |
| Support | Community | Priority email | Direct |
Pricing questions
The unit every plan is sold in. One successful, uncached API call against one URL spends credits according to what that call costs us to run: a page fetch (/html, /markdown, /screenshot, /console) is 1 credit, a Lighthouse audit is 2, /meta is 5, /keywords is 15 and /summarize is 17. A /scrape request spends the sum of the operations it runs, exactly as if you'd called them separately.
Because they don't cost us the same, and pricing them as if they did meant charging light users for work they never do. A page fetch runs on hardware we already own, and so does a markdown conversion — it reads the page we already rendered. The three AI endpoints are a bill from a model provider that scales with how much of the page the model reads and writes back: summarizing a long article can cost us more than three times what reading a page's <head> for /meta does. The credit weights are those ratios, rounded.
No. When you ask for the same URL and operation again within your freshness window, we return the cached result — instantly, and without spending a credit. You set the window per request with max_age (default 7 days). It is the cheapest lever you have on your bill.
If the target URL errors — DNS failure, connection refused, timeout, bad certificate — the call spends nothing. You're only billed for work that produced a result.
Every response carries an X-Quota-Cost header saying what that request cost, alongside X-Quota-Remaining, X-Quota-Overage and X-Quota-Reset. In the dashboard, the Billing screen itemises the month by operation — calls, credits each, credits total and share of the bill — so you can always see which endpoint is spending your allowance.
On a paid plan, nothing stops — ever. Your calls keep being served, uncapped, and every credit past the allowance costs $1.50 per 1,000 credits, totalled when the month closes and billed as an invoice of its own. There is no ceiling to hit and no request that gets refused for want of credits. On the Free plan, which has no card on file to bill the extra to, the endpoint returns HTTP 429 with a JSON body naming your limit, what you've used and how many credits the refused request needed.
How many requests you can run at the same time: 1 on Free, 3 on Starter, 8 on Pro, 20 on Scale. Credits are how much work you can do in a month; this is how fast you get through it. A crawl of 5,000 pages costs the same credits however quickly you run it — running 20 in parallel instead of one at a time is the difference between minutes and hours. Go over and the request comes back with a 429 and error concurrency_limit; nothing is spent, and you retry as soon as one of your own finishes. Cache hits don't take a slot at all.
Three ways, none of which need you to go looking. Every API response carries an X-Quota-Overage header counting the credits you've spent past your allowance. We email your organization admins the first time in a month you cross. And the app shows a banner with the running total, for as long as you're over. You should never learn about overage from an invoice.
For a spike, yes; as a habit, no, and deliberately so. Overage is priced above the credits your plan already includes, so a month that goes a little over costs a few dollars, while traffic that has permanently outgrown your plan costs more in overage than the next plan up costs outright. The Billing screen points that out while it is happening.
Any time, in both directions. Upgrades take effect immediately and Stripe prorates the difference; downgrades take effect at the end of the period you've already paid for.
You pay ten months up front and get twelve — two months free. The monthly credit allowance is unchanged; annual is about the price, not the allowance.
No. Your allowance resets on the 1st of each month, UTC. Unused credits don't accumulate — which is also why we don't charge for cache hits, so steady usage costs less than the raw call count suggests.
From Billing in your dashboard, which opens Stripe's billing portal. Cancelling stops the renewal; your plan stays active until the period you've paid for ends, then drops to Free.
No — every price here is in US dollars and before tax. Customers in the EU pay their own country's VAT on top, added at checkout. A business with a valid EU VAT number is reverse-charged and pays none; enter it at checkout. Outside the EU nothing is added. Extra credits past the allowance are taxed the same way.
Cards, via Stripe. We never see or store your card details. If you need to pay by invoice or bank transfer, email us and we'll arrange it.