seed ▸ page pointed at 0

Any site becomes callable JSON.

Point Writ at a page you are authorized to use (even behind a login or heavy JavaScript) and get back clean, structured JSON you can call by API or MCP.

Runs on your own accounts, with your own credentials and data, on sites you are authorized to use.
GET /v1/catalog-extract 200 OK
{ "title": "Item A", "price": 12.50, "url": "…" }
{ "title": "Item B", "price": 19.00, "url": "…" }
8 pages · 184 records · typed to the output manifest
logins + 2FA list · detail · pagination callable by API or MCP
obs ▸ the hard web 1
01
The hard web

The pages ordinary tools can't reach

A recorded browser path plus AI navigation drives the real site the way a person would, so the cases that stop brittle integrations just work. Writ handles these as authorized actions on accounts you control.

  • Login walls
  • TOTP + mailbox-OTP 2FA on your own accounts
  • Verification on your own authenticated accounts
  • Dynamic / JS-heavy pages
  • Pagination & infinite scroll
  • Multi-tab flows
act ▸ list → structured table 3
02
See it work

A list-and-detail page becomes a structured table

Record the path once. An extract step reads the list, a navigate-and-extract pair pulls each detail page, and a click-next loop follows pagination, then the records land in a table you can call by API or MCP.

Recorded workflow

1 Extract the list Read every record on the results page
2 Open each detail Navigate into a record
3 Extract detail fields company · sku · lead time
4 Follow pagination Click "Next" until the data runs out

Structured records

{ "company": "Acme Components Co.", "sku": "AC-2041", "lead_weeks": 3 }
{ "company": "Borealis Optics Ltd.", "sku": "BO-7755", "lead_weeks": 2 }
{ "company": "Cobalt Fasteners Inc.", "sku": "CF-3190", "lead_weeks": 5 }
18 pages · 162 records · typed to the output manifest
See the Data explorer →
api ▸ called as endpoint 42
04
Example

Extract a list, page by page.

# Workflow steps (recorded or AI-built):
# navigate → fill (login) → twofa → evaluate (extract list)
# → click (next page) → wait_for_change → extract → repeat

POST https://api.usewrit.app/v1/catalog-extract/run
Authorization: Bearer wt_…
→ { "records": [ { "title": "…", "price": 12.5, "url": "…" }, … ], "pages": 8 }

30+ step types compose into a durable extractor: navigate, click, fill, type, select, wait_for_change, extract, evaluate (JS), api_call.

run ▸ local free · cloud managed 60
05
Run it your way

Free on your machine, or managed in the cloud

The app is free and runs on your own machine; data never leaves. Reach for the managed cloud when you want it always-on.

Local · BYO agent: free

  • Runs on your own machine; extracted data never leaves your tenant
  • Reaches intranet and VPN-only sites the cloud can't
  • Bring your own AI keys: AI steps run unbilled

Managed cloud: metered

  • Always-on cloud fleet, no machine of yours to keep running
  • Running time ~$0.12 per browser-hour, metered by time — included usage first, then your balance
  • Managed AI is metered by tokens used, with the price shown before you run, drawn from your prepaid balance

Local and BYO runs carry no compute charge. You only pay when you choose the managed cloud.

When the site moves, the extractor keeps up

Selectors drift; sites redesign. Writ heals the target automatically wherever it runs, local or cloud. On a hard failure, the managed cloud goes a step further and rewrites the recipe with AI. Cloud AI auto-repair is a cloud-only feature; self-healing targets run everywhere.

faq ▸ answered 90
06
FAQ

Web data extraction questions

Is web data extraction legal?

It depends on the site and the data; Writ is built for authorized access (public data, your own data, or your own accounts), and you're responsible for respecting each site's terms.

Does it handle logins and 2FA?

Yes, on your own accounts, with TOTP and mailbox-OTP handled by Personas.

What about sites that change?

Recorded recipes plus AI navigation adapt when the page moves; self-healing targets run everywhere, and on a hard failure the managed cloud rewrites the recipe with AI (a cloud-only feature).

How do I get list, detail, and paginated records?

Compose a workflow: an extract step reads the list, a navigate + extract pair pulls each detail page, and a click-next loop follows pagination. Record it once, then run it as a callable endpoint.

go ▸ site → structured json

Turn any site into structured JSON

Record an extraction once and run it as a callable endpoint, on your own machine, free.