Papalily renders React, Vue, and JS-heavy sites with a real browser, then uses AI to extract exactly the data you need โ returned as structured JSON.
Enter any URL and describe what you want. Get back structured JSON โ powered by a real browser and AI extraction.
POST api.papalily.com/scrape
x-api-key: โขโขโขโขโข
// Your extracted data appears here...
โก ms response
How It Works
Three steps to clean data
No selectors. No XPath. No maintenance when sites change.
1
Send your request
POST a URL and a plain-English description of what you want. That's the entire API surface โ no complex configuration needed.
2
Browser renders the page
A real Chromium instance loads the URL, executes all JavaScript, waits for React/Vue to hydrate, and captures the final rendered state โ exactly what a human would see.
3
AI extracts & returns JSON
Gemini AI reads the page content and screenshot, extracts precisely what you asked for, and returns clean structured JSON โ ready to use directly in your application.
Features
Built for modern web
Everything you need to extract data reliably from any website โ including the hard ones.
๐
Full JS Rendering
Real Chromium executes JavaScript, React, Vue, Angular โ gets the exact page users see, not the raw HTML skeleton.
๐ค
AI Extraction
Describe what you want in plain English. No CSS selectors, no XPath. The AI figures it out โ and keeps working when the page changes.
๐ฆ
Batch Scraping
Scrape up to 5 URLs in a single request with parallel processing. POST /batch runs all jobs simultaneously โ faster and more efficient.
โก
Smart Caching
Repeated requests for the same URL + prompt are served from a 10-minute cache. Instant response with meta.cached: true โ no browser launch needed.
๐ธ
Visual + Text Mode
Combines page screenshot with text content for maximum accuracy. Catches data hidden in visual layouts that text parsers miss.
๐
Simple API
One endpoint. Two fields. API key auth. No SDK, no client libraries, no configuration. Start extracting in minutes.
Integration
Up and running in minutes
No SDK needed. Works with any HTTP client in any language.