Private beta is open · 500 free credits every month ›

The web, cleaned and ready for your agents

Pagewise turns any URL into clean markdown or schema-valid JSON, through a simple API or straight inside your agent.

Page · just now

Cleaned 1 page. Removed the menu, a promo and the cookie banner.

PagewisePlaygroundUsageAPI keys4,812 credits
Scrapehttps://acme-robotics.example/blog/arm-7Run
MarkdownJSONMetadata200 · 1 credit · 412 ms
# Introducing Arm-7, our fastest picker yet

Arm-7 sorts up to 1,400 parcels an hour and ships to
customers in November.

| Spec       | Arm-7           |
|------------|-----------------|
| Throughput | 1,400 parcels/h |
| Payload    | 7 kg            |
Title
Introducing Arm-7
Language
en
Rendered
No, plain HTTP
Removed
Navigation, ad, cookie banner, footer
Links
12

Three ways to read the web

One API key for scraping, searching and extracting. Every response tells you what it cost.

Page · Pagewise agent · just now

Done. I cleaned up the Arm-7 launch post: removed the menu, a promo and the cookie banner, and kept the specs table.

Introducing Arm-7, our fastest picker yet

acme-robotics.example/blog/arm-7

Markdown · 1 credit

Scrape

Keep the content. Drop everything else.

Navigation, footers, cookie banners and ads are removed. Tables, code blocks and links survive as clean markdown.

This page needed JavaScript

Rendered

Rendering

JavaScript pages, handled.

Headless Chromium when a page needs it, at the same 1 credit.

warehouse picking robots

Introducing Arm-7, our fastest picker yet

acme-robotics.example

markdown

The state of warehouse picking in 2026

logistics-weekly.example

markdown

Choosing a robot for small warehouses

parcelhub.example

markdown

Search

Results with the pages attached.

Turn on scrape_results and every result comes back as markdown.

Extracted from acme-robotics.exampleValid JSON
  • productArm-7
  • parcels_per_hour1,400
  • payload_kg7
  • shipsNovember

Extract

Describe the fields. Get valid JSON back.

Send a URL and a JSON Schema. The response validates against your schema, so your code gets data instead of prose.

Your first 500 credits are on us.

Request access

Failed requests are never billed. Every call shows up in your usage log.

The unglamorous parts, handled

The things you would otherwise build, debug and babysit yourself. Pick one to see it from your side of the API.

POST/v1/scrape400
// request
{ "url": "http://169.254.169.254/latest/meta-data" }

// response
{ "error": {
    "code": "url_not_allowed",
    "message": "Private and reserved IP addresses are not allowed"
} }
Checked again on every redirectNot billed
POST/v1/scrape403
// request
{ "url": "https://acme-robotics.example/private/",
  "respect_robots": true }

// response
{ "error": {
    "code": "blocked_by_robots",
    "message": "The site's robots.txt disallows fetching this URL"
} }
Per-domain limits are shared by all customersNot billed
GET/v1/usage200
  1. 12:04:31extractCredits reserved−5
  2. 12:04:33extractUpstream returned 502failed
  3. 12:04:33extractCredits refunded+5
  4. 12:04:40scrape200 · 412 ms−1
Net cost of the failed call0 credits
KEYpw_live_••••3f9aRESTMCP
# REST
curl https://{{API_HOST}}/v1/scrape \
  -H "Authorization: Bearer pw_live_••••3f9a" \
  -d '{"url": "https://acme-robotics.example"}'

# MCP, in Claude Code
claude mcp add --transport http pagewise \
  https://{{API_HOST}}/mcp \
  --header "Authorization: Bearer pw_live_••••3f9a"
Same credits, limits and usage log1 key
POST/v1/scrape200
"metadata": {
  "title": "Introducing Arm-7",
  "site_name": "Acme Robotics",
  "language": "en",
  "author": "Maya Chen",
  "published_time": "2026-09-14T09:00:00Z",
  "canonical_url": "https://acme-robotics.example/blog/arm-7"
}
Included with every scrapeNo extra credits
PADDLECheckout summarypaid
  1. Pagewise Hobby, monthly$16.00
  2. Sales tax or VATCalculated by Paddle
  3. Payment methodCardPayPal
  4. InvoiceEmailed after payment
Paddle is the merchant of recordCancel anytime

Usage log

Every call, accounted for

Each request lands in your log with its status and its cost. When one fails, the credits come straight back.

Usage Today7 days30 days Live
Balance4,812credits left
Calls today1,284REST and MCP
Refunded today35credits from failed calls

Calls per hour

00:00now
  1. 200scrapeacme-robotics.example/blog/arm-7−1
  2. 200search“warehouse robot pricing”−4
  3. 200extractshop.northwind.example/p/arm-7−5
  4. 502extractslow-store.example/item/88refunded
  5. 200scrapedocs.fabrikam.example/api−1
  • Reserved first. The maximum cost is held before the call starts.
  • Refunded on failure. Errors and unused credits go straight back.
  • Logged with its cost. Every call, from REST or MCP, in one log.

Simple pricing that grows with you

Start free. Upgrade when your agents need more pages. Cancel anytime.

2,500

About 2,500 credits a month. Hobby covers it.

Free

Fits your estimate

$0 /month

500 credits every month

No card required

Request access
  • Scrape, search and extract
  • Hosted MCP server
  • Usage log and refunds on failure

Hobby

Fits your estimate

$16 /month

5,000 credits every month

$3.20 per 1,000 credits

Request access
  • Everything in Free
  • JavaScript rendering included
  • Billing portal for invoices

What a credit buys

/v1/scrape1 credit per page
/v1/search2 credits, +1 per scraped result
/v1/extract5 credits per page
/v1/usage0 always free

Need more than 100,000 credits a month? We'll set up a custom plan with volume pricing.

Talk to us

Questions

The short answers to what developers ask us most.

Didn't find your answer? Write to {{CONTACT_EMAIL}}

What happens when a request fails?

The credits reserved for it go back to your balance automatically, and the failure appears in your usage log with its error code.

Do unused credits roll over?

Your balance is topped up to your plan's amount each month. Unused credits stay, but the top-up never takes you above the plan amount.

Can it read JavaScript-heavy sites?

Yes. Pages that need JavaScript are rendered in headless Chromium automatically, or you can force rendering on any request.

How do you treat the sites you fetch?

Requests to each domain are rate-limited across all customers, robots.txt can be enforced per request, and site owners can opt out. See PagewiseBot.

Which agents work with the MCP server?

Any MCP client that supports remote or local stdio servers, including Claude Desktop, Claude Code and Cursor.

Who processes payments?

Paddle is our merchant of record. It handles checkout, invoices, sales tax and VAT, and accepts cards and PayPal.

Give your agent the web

We're onboarding developers in small batches. Request access and we'll send your API key with 500 free credits.

  • 500 free credits
  • REST and MCP
  • No card required