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.
Plans
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
- One user
- 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
- The MCP server, for AI agents
Starter
For the first real workload you put in front of users.
- 20,000 credits / month
- 20,000 page fetches, or 1,176 /summarize — any mix
- 3 requests in parallel
- Your whole team, as many members as you need
- 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.
- 55,000 credits / month
- 55,000 page fetches, or 3,235 /summarize — any mix
- 8 requests in parallel
- Your whole team, as many members as you need
- 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
Scale
For high-volume pipelines and agencies.
- 175,000 credits / month
- 175,000 page fetches, or 10,294 /summarize — any mix
- 20 requests in parallel
- Your whole team, as many members as you need
- 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 a VAT number in an EU country other than Spain 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.
What each call costs
Every endpoint is priced by what it costs us to run. The six that only read the rendered page cost 1 or 2 credits; the two that call a language model cost more. 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.
/meta1 creditTitle, description, authors, dates, images, feeds. Read from the rendered page, no model.
/pdf1 creditThe whole page printed to a PDF, on the paper you choose or as one long page. Same page visit, no model.
/screenshot1 creditThe whole rendered page as PNG, JPEG or WebP, every option included. Same page visit, no model.
/technologies1 creditThe CMS, frameworks, analytics and CDN a site runs on, matched against open fingerprints. Same page visit, no model.
/lighthouse2 creditsA full Google Lighthouse audit — the heaviest thing we run, in its own lane on its own engine.
/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.
/extract24 creditsYour own schema filled from the whole page, null where it has nothing. A reasoning model call over all of it.
A /scrape request spends the sum of the operations it runs, from a single page visit. Requests served from cache, and requests where the target URL failed, spend nothing at all.
For sites that serve a datacentre differently from a person, add residential: true to any request and the page is fetched from a home broadband address: 25 credits per page visit on top of the operation, charged once per visit — a /scrape pays it once — and nothing when no exit is free. How residential exits work.
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
- 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.
At this volume a contract gets you a better rate than list prices. Email contact@urlpipe.dev with what you're planning and we'll put a price on it.
Every plan, side by side
| Feature | Free | Starter | Pro | Scale |
|---|---|---|---|---|
| Price / month | $0 | $19 | $49 | $149 |
| Credits / month | 1,000 | 20,000 | 55,000 | 175,000 |
| Parallel requests | 1 | 3 | 8 | 20 |
| Team members | 1 | Unlimited | Unlimited | Unlimited |
| /console, /html, /markdown, /meta, /pdf, /screenshot, /technologies (1 credit) | 1,000 | 20,000 | 55,000 | 175,000 |
| /lighthouse (2 credits) | 500 | 10,000 | 27,500 | 87,500 |
| /keywords (15 credits) | 66 | 1,333 | 3,666 | 11,666 |
| /summarize (17 credits) | 58 | 1,176 | 3,235 | 10,294 |
| /extract (24 credits) | 41 | 833 | 2,291 | 7,291 |
| Past the allowance | Requests pause | $1.50 / 1,000, no cap | $1.50 / 1,000, no cap | $1.50 / 1,000, no cap |
| Every endpoint and the MCP server | 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 | Best-effort email | 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, /meta, /screenshot, /console) is 1 credit, a Lighthouse audit is 2, /keywords is 15, /summarize is 17 and /extract is 24. A /scrape request spends the sum of the operations it runs. The one extra is residential: true, which adds 25 credits per page visit — once per visit, so a /scrape pays it once however many operations it runs.
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 do a markdown conversion and a metadata read — they read the page we already rendered. The AI endpoints are a bill from a model provider that scales with how much of the page the model reads and writes back. The credit weights are those costs, 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. A repeat of a request that is still running waits for it, free as well. You set the window per request with max_age (default 7 days). It is the cheapest lever you have on your bill.
They spend nothing. That covers a target that fails — DNS failure, connection refused, timeout, bad certificate, a 404 or a 5xx — a bot check we couldn't get past, a page the site's robots.txt disallows, and a residential request no exit was free for. 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.
Yes, on every paid plan, with as many members as you need. Invite people by email from Organization settings: everyone works on the same projects and draws on the same monthly credits, and admins look after the plan, billing and the team. The Free plan is for one person. One login can also belong to several organizations — one per client or company, each with its own plan and bill — and switch between them from the account menu.
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, from Billing in your dashboard. A change takes effect straight away and Stripe prorates it: moving up charges the difference for the rest of the period, and moving down credits the unused part of the old plan against your next invoice.
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. Everyone on your team keeps their access; inviting anyone new needs a paid plan again.
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 VAT number in an EU country other than Spain 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.