seed ▸ crawl opened0

Convierte un sitio entero
en datos limpios.

Apunta Writ a una URL. Mapea el sitio, reparte el rastreo por toda tu flota (best-first, en paralelo), y te devuelve cada página como Markdown limpio o JSON estructurado. Rastrea una página o un millón.

cuenta gratuita para empezar · $0.0005 / página en cloud · open-core autoalojable
playground.usewrit.appsin clave
https://
✓ Markdown + frontmatter✓ JSON estructurado✓ sitemap + enlaces descubiertos
fetch ▸ page scraped1
01
extracción

Una página entra, Markdown limpio sale.

Writ retira el cromo (navegación, banners de cookies, anuncios, boilerplate) y conserva el contenido, para que un LLM lea la página, no el maquetado. Pulsa Scrape:

tech.example/article
Raw page
nav · menu linkschrome
cookie consent bannerchrome
▓ sponsored · Surfsharkad
# Tech news & reviewscontent
article body · 1,240 wordscontent
newsletter signupchrome
footer · social · legalchrome
Markdown · 100% tokens
press Scrape to extract clean Markdown
map ▸ urls discovered12
02
mapa

Cada URL descubrible, en segundos.

Map fusiona el sitemap con los enlaces que Writ descubre en vivo, así ves toda la superficie antes de gastar un solo rastreo de página. Elige tus seeds y rastrea solo lo que importa.

map tech.example
0 urlssitemap + discovered0.0s
net ▸ frontier draining1,240
03
harvest · rastreo distribuido

Un rastreo, toda tu flota.

Un rastreo no es una sola máquina moliendo una cola. Writ comparte una única frontera entre todos los agents (best-first, para que las páginas más relevantes vuelvan primero) y escala linealmente a medida que añades workers. Añade agents:

agents 4frontier 2,914 · — pg/s
auth ▸ wall opened1,650
04
harvest · tras el login

La frontera depende de quién ha iniciado sesión.

Un crawler público se detiene en el muro de login. Adjunta una persona y la misma URL semilla se abre a las páginas que solo tu cuenta puede ver - historial de pedidos, facturas, páginas de miembros que no aparecen en ningún sitemap - y el propio mapa crece. Cambia la sesión:

//about/pricing/docs/login/account/account/orders/account/invoices/orders/8841/orders/8842/invoices/2291muro de acceso
5URL alcanzables desde una sola semilla

Sin sesión la frontera termina en /login. Todo lo que hay más allá es indescubrible — no lento de alcanzar, indescubrible: esas URL no están en ningún sitemap y nada del sitio público enlaza a ellas.

Topología ilustrativa. Un Harvest real corre dentro del alcance que fijas — inclusiones, exclusiones y topes de ritmo — y respeta robots.txt.

tgt ▸ urls scored1,980
05
segmentación

Rastrea lo que quieres, no todo.

Describe la intención y Writ puntúa cada URL según ella, siguiendo las que coinciden y saltando el resto. Pagas por las páginas que querías, no por todo el sitio. Elige un objetivo:

ext ▸ content extracted2,400
06
renderizado y extracción

HTML, JS, PDF, imágenes: todo legible.

Writ enruta cada recurso por la vía más barata que funcione: HTTP directo para páginas estáticas, un navegador real para apps JS, doc-extract para PDF y archivos de oficina, OCR sin conexión para imágenes. Obtienes texto de cualquier modo.

Qué sabe leer un rastreo
HTML estáticohttp directodescargado y leído nativamente - la vía rápida y barata
App renderizada en JSnavegadorun navegador real renderiza la página cuando el contenido solo existe tras ejecutar los scripts
Documentos PDFdoc-extractleídos desde la capa de texto cuando existe; las páginas escaneadas pasan a OCR. Los archivos de oficina (DOCX, XLSX, PPTX) y JSON/CSV también se extraen nativamente
Imágenes y escaneosocrOCR sin conexión - ningún servicio OCR de terceros - con una puntuación de confianza informada por página
Tras un inicio de sesiónpersonarequiere una Persona: el rastreador reproduce su sesión guardada, y nunca inicia sesión por sí mismo
Todo lo demásinformadouna página que Writ no sabe leer vuelve etiquetada con su tipo y motivo - nunca descartada en silencio
Auto por defecto: cada URL se sondea y se enruta por la vía más barata que funcione. Las páginas de navegador y OCR se miden a 2× la unidad de página base.
out ▸ shaped2,900
07
salida

Markdown, JSON o un conjunto de datos consultable.

Toma Markdown limpio, o dale a Writ un esquema y obtén JSON estructurado por página. Cada rastreo aterriza en un conjunto de datos que puedes consultar, sin re-rastrear para responder la siguiente pregunta.

bill ▸ metered per page8,900
08
precios

Un veinteavo de céntimo por página. Gratis para empezar.

Los crawls se ejecutan en la flota de Writ: una cuenta gratuita basta para empezar, sin tarjeta. Las páginas se facturan desde tu pool, y las vías de navegador y OCR pesan más porque cuestan más de ejecutar. Si autoalojas el open-core, tus propios agentes rastrean sin ningún cargo por nuestra parte. Arrastra tus páginas mensuales:

páginas / mes50.000
est.$100.00/mes en cloud· autoalojado · tus agentes · $0 para nosotros
el plan más pequeño que lo cubre
Freeconcurrencia 3 · hasta 1000 páginas por rastreo$0
Starterconcurrencia 5 · hasta 10.000 páginas por rastreo$15
Proconcurrencia 10 · hasta 25.000 páginas por rastreo$49
Growthconcurrencia 25 · hasta 50.000 páginas por rastreo$199
Scaleconcurrencia 75 · hasta 50.000 páginas por rastreo$499
dev ▸ crawl kicked off8,900
09
desarrolladores

Inicia un rastreo en una sola llamada.

Inicia un rastreo, consulta su estado, transmite resultados por REST, una herramienta MCP o el SDK. Elige una:

Un rastreo de sitio completo es un solo POST con una clave. Writ reparte la semilla por la flota y entrega el resultado como un dataset invocable.

# No account, no key — a few same-domain pages, one level deep.
curl -X POST https://api.usewrit.app/v1/keyless/crawl \
  -H "Content-Type: application/json" \
  -H "X-Writ-Client-Id: $WRIT_CLIENT_ID" \
  -d '{"url": "https://example.com", "limit": 3}'

# With a key: the whole site, as a job you poll.
curl -X POST https://api.usewrit.app/api/crawl \
  -H "Authorization: Bearer $WRIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "max_depth": 3, "page_budget": 500}'

curl https://api.usewrit.app/api/crawl/8125 -H "Authorization: Bearer $WRIT_API_KEY"

Sin cuenta para probarlo: el nivel sin clave rastrea unas pocas páginas del mismo dominio, un nivel de profundidad, con una asignación diaria. El alcance completo, los logins y un dataset invocable necesitan clave.