Web Form Extractor - Form Fields, Method & Action from URL
Pricing
from $0.80 / 1,000 scanned pages
Web Form Extractor - Form Fields, Method & Action from URL
Extracts every HTML form from a page URL, one or up to 50 per run: action, method, encoding and each field's name, type, required flag and placeholder. Returns one record per page with password, email and file flags. For penetration testers, QA automation engineers and marketing ops teams.
Pricing
from $0.80 / 1,000 scanned pages
Rating
0.0
(0)
Developer
Broke to Built
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
11 days ago
Last modified
Categories
Features
Share
Web Form Extractor — every form's fields, method & action from a URL
Web Form Extractor lists every HTML form on a page with its action, method, encoding and each field's name, type, required flag and placeholder, at $0.001 per page on the Apify Free plan.
| You give it | You get back | You pay (Free plan) |
|---|---|---|
| One URL or a list of up to 50 (25 by default) | ok, url, status, formCount, and per form: action, method, enctype, fieldCount, fields, hasPassword, hasEmail, hasFile | $0.001 per page |
Pay per result only: no subscription, no start fee. An unreachable URL returns {ok:false, error} and is not charged. Paid Apify plans get Store discounts on the price above.
Example: try it in one click
The input form is already filled in with this example. Press Start and you get the output below.
{"url": "https://httpbin.org/forms/post"}
Real output from that exact input (run on 2026-09-24; long arrays shortened to a few entries and long text cut for display):
[{"ok": true,"url": "https://httpbin.org/forms/post","requestedUrl": "https://httpbin.org/forms/post","status": 200,"formCount": 1,"forms": [{"action": "https://httpbin.org/post","method": "post","enctype": "application/x-www-form-urlencoded","id": "","name": "","fieldCount": 12,"hasPassword": false,"hasEmail": true,"hasFile": false,"fields": [{"name": "custname","type": "text","required": false,"placeholder": "","value": ""},{"name": "custtel","type": "tel","required": false,"placeholder": "","value": ""}]}]}]
Extract all forms on a web page with their action, method, enctype, and every field
(name, type, required, placeholder, value) — plus quick flags for hasPassword, hasEmail, and
hasFile. Built for security review, QA/automation mapping, and lead-form auditing. Single URL or
bulk.
$0.001 per page. Failed fetches are recorded free.
What you get
- One record per page, listing every
<form>. - Per form:
action,method,enctype,id,name,fieldCount, and afieldsarray. - Per field:
name,type,required,placeholder,value(left empty for password and hidden fields, and for fields named like a token, PIN or card number). - Convenience flags:
hasPassword,hasEmail,hasFile. - Fail-soft: an unreachable URL returns
{ok:false, error}and is never charged.
Input
{ "url": "https://github.com/login", "urls": ["https://example.com/contact"], "maxUrls": 25 }
Output (real run, 2026-08-07)
{"ok": true,"url": "https://github.com/login","status": 200,"formCount": 1,"forms": [{"action": "https://github.com/session","method": "post","enctype": "application/x-www-form-urlencoded","fieldCount": 16,"hasPassword": true,"hasEmail": false,"hasFile": false,"fields": [{ "name": "login", "type": "text", "required": true, "placeholder": "", "value": "" },{ "name": "password", "type": "password", "required": true }]}]}
Pricing — $0.001 per page
$0.001 per page scanned on the Apify Free plan, billed as the page-scanned event. Paid Apify
plans pay less ($0.00093 Bronze, $0.00087 Silver, $0.0008 Gold, $0.00073 Platinum, $0.00067
Diamond). No start fee. Failed fetches are recorded free. A page with no forms was scanned
successfully and is charged.
Limits (honest ones)
- Reads the server HTML; forms injected by JavaScript after load are not seen (no headless browser).
- Field
actionis absolutized to the page URL when relative. maxUrlsis capped at 50 per run (25 by default).
FAQ
- Does it submit forms? No — it only reads and describes them.
- Does it run JavaScript? No — server HTML only.
- Can it flag login/upload forms? Yes —
hasPassword,hasEmail, andhasFilemake those easy to filter. - What about a dead URL? You get an
{ok:false, error}record, uncharged. - Does it return what users typed into a form? No. It reads the page's HTML as served, so
valueis only a default value written into the page, and it is left empty for sensitive fields.
Use from code or AI agents
curl -X POST "https://api.apify.com/v2/acts/EliAI~webpage-forms-extractor/runs?token=YOUR_APIFY_TOKEN" \-H 'content-type: application/json' \-d '{"url":"https://github.com/login"}'
Callable as an agent tool through the Apify MCP server (mcp.apify.com).
For AI agents
This Actor is built to be called by software, not just by people.
- Mount it directly as an MCP tool — no Store search, no ranking, just this one tool:
https://mcp.apify.com/?actors=eliai/webpage-forms-extractor - Or call it over HTTP and get the results in the same request:
POST https://api.apify.com/v2/acts/eliai~webpage-forms-extractor/run-sync-get-dataset-items - Costs are predictable before you call. Pricing is pay-per-event (see Pricing above), so an agent can budget a run in advance instead of discovering the bill afterwards.
- Send only the field you mean. If you pass the bulk field, it is used on its own; the single-value field is a fallback, never merged into your request. You are charged for the items you sent and nothing else.
Who uses it
- Penetration testers listing a site's forms, their actions and password or file fields
- QA automation engineers mapping form field names before writing end-to-end tests
- Marketing ops teams auditing lead forms across landing pages for required fields
- Accessibility reviewers finding inputs without names or placeholders
- Scraper developers learning a form's method and fields before automating submissions
Changelog
- 2026-11-01: Page text only: the "Try it" block is now headed Example. Code, output and price are unchanged.
- 2026-09-24: New summary at the top of this page: what you send, what you get, the price, and a real output from the prefilled example.