AI Page to JSON: URL + Schema Extractor
Pricing
from $10.00 / 1,000 page extracteds
AI Page to JSON: URL + Schema Extractor
Fetch a public page and extract structured JSON with an LLM using your schema or field list. Schema validation, partial/failed statuses, refuse login walls. Successful extractions only.
Pricing
from $10.00 / 1,000 page extracteds
Rating
0.0
(0)
Developer
SteadyScrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 minutes ago
Last modified
Categories
Security
Limited permissionsShare
Who it's for: Developers and data teams who need structured JSON from public web pages without writing a custom scraper for every site.
What you get: One validated JSON object per URL, matched to your schema or field list. Clear ok / partial / failed statuses. Login walls, captchas and paywalls are refused and free.
Price: $0.010 per extracted page (ok or partial) + $0.001 once per run, charged only if at least one page was extracted. Failed, refused, blocked, JS-only and empty pages are free. 1,000 pages = about $10.
Give it public page URLs plus a JSON Schema (or a simple field list). The Actor fetches each page over plain HTTP (Chrome-like fingerprint, no browser), sends the page text to an LLM (openai/gpt-6-luna via OpenRouter, no web search), validates the result against your schema, and returns structured rows. No login bypass. No captcha solving. No personal-data harvesting features.
Made by SteadyScrape (steady-scrape).
What you can do with it
- Product / listing pages → JSON. Extract title, price, availability, SKU into a stable schema across many sites.
- Docs / blog pages → structured facts. Pull headings, publish date, summary fields for RAG or CMS pipelines.
- Schema-first extraction. Pass a JSON Schema so downstream code always gets the same shape (with
partialwhen required fields are missing). - Batch public URLs. Up to dozens of pages per run; duplicates removed; soft
maxUrlscap.
Input
- urls (required): public
http(s)page URLs. - jsonSchema and/or fields: schema object, or a list like
title,price: Product price in USD. - instructions (optional): extra guidance for the model.
- mock (optional): offline test mode with placeholder values; no real extraction.
Example:
{"urls": ["https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html"],"fields": ["title", "price", "availability"]}
Output
One dataset row per URL:
| status | meaning | charged |
|---|---|---|
ok | schema satisfied (fields not stated on the page come back null and are listed in nullFields) | yes (page-extracted) |
partial | some required fields missing (listed in missingFields) | yes |
failed | could not extract usable JSON, or every field was empty | no |
refused | login / paywall signals | no |
blocked | captcha / bot challenge / 429 | no |
js_required | page needs a browser (v1 is HTTP-only) | no |
fetch_error / skipped | network / daily LLM guard / max charge | no |
Rows also carry truncated: true when a very long page was cut to maxInputChars (later fields or list items may be missing).
The run OUTPUT record has counts and charged event names. Internal LLM costs are never written to the dataset or OUTPUT.
Pricing
Pay per event: page-extracted $0.010 for each ok/partial page + actor-start $0.001 once per run (only when at least one page was extracted), plus Apify's standard tiny per-run start event. Empty, failed, refused, blocked and JS-only pages are free. Example: 100 pages in one run ≈ $1.00. Set Maximum cost per run in Apify run options.
FAQ
Is the extracted data always correct? No AI extractor can promise that. Rows are validated against your schema (shape and required fields), not fact-checked. Spot-check important values such as prices and dates.
What happens on login walls, captchas or JavaScript-only pages? They come back as refused, blocked or js_required and are not charged. This version fetches over HTTP and doesn't run a browser.
Fields or a JSON Schema? A field list is fastest to start with. Use jsonSchema when downstream code needs strict types and required fields; missing required fields give a partial row with missingFields.
Does it invent values a page doesn't state? It is instructed not to. Unstated fields come back null and are listed in nullFields.
Worked cost example: a weekly run over 100 product pages = 100 × $0.010 + $0.001 ≈ $1.00 per run.
Integrations
- Apify API and SDKs: call it from Python, JavaScript or any HTTP client and read results from the run's dataset.
- Schedules and webhooks: run it on a schedule in Apify and trigger your own endpoint when a run finishes.
- Make, Zapier, n8n: use Apify's own integrations for these tools to start runs and pass dataset rows on.
- AI agents (MCP): agents can call it through the Apify MCP server.
Limits (v1)
- HTTP fetch only (no Playwright). JS-heavy SPAs may return
js_required. - Bounded page text and output tokens; schema-repair retries capped.
- Free-plan / uncovered LLM spend is daily-capped per Apify account.
- Does not bypass logins, paywalls or captchas.
More from SteadyScrape
- PDF to Text Markdown Extractor (Digital, No OCR): bulk-convert digital PDFs from URLs to clean text and Markdown with page counts; scanned files are flagged and free.
- YouTube Transcript API: Captions with Timestamps: existing YouTube captions with timestamped segments for up to 200 videos per run; videos without captions are free.
- Company Data Enrichment by Domain: Logo & Socials: company name, logo, social profiles and industry from a list of domains.
- SEO MCP Server: Keyword, SERP & Backlink Data: keyword volume, Google SERPs, backlinks, Trends and YouTube data as MCP tools for Claude, Cursor or any MCP client.
See every SteadyScrape (steady-scrape) Actor on our Apify profile.