Pulsa / para buscar

Toda la documentación
docs Llamarlo desde tu software Endpoints gestionados

Se ejecuta enWrit Cloud

rest ▸ rutas publicadas

Cualquier workflow, una ruta REST.

Publica un workflow — o una tarea de extracción de página guardada — y Writ lo sirve en /v1/{slug}/{path}: sin prefijo /api, sin servidor tuyo que mantener, y quienes llaman tienen sus propias claves de consumidor, nunca tus credenciales.

Writ se ejecuta en tus propias cuentas, con tus propias credenciales y datos, en sitios que tienes autorización para usar.

ruta ▸ cómo se resuelve una llamada

La ruta, resuelta.

La pasarela no tiene rutas fijas propias: el slug nombra tu tenant, la ruta se compara con un endpoint que registraste, y todo lo que no se resuelve es un 404.

ParteCómo se resuelve
{slug}El public_id de tu tenant (canónico) o su slug personalizado. La pasarela también responde en el subdominio {slug}.api.usewrit.app y en los dominios personalizados verificados.
{path}Se compara con tus endpoints registrados en (método, ruta) — un literal como /products, o un patrón como /search/{query}.
MétodosGET · POST · PUT · DELETE · PATCH
BackendUn run de workflow guardado, o un scrape_job — una tarea de extracción de página guardada.
Sin coincidencia404 — tenant desconocido, o ningún endpoint registrado en ese (método, ruta).

llamada ▸ post, leer datos

La primera llamada.

Envía las entradas por POST y lee los datos de vuelta — estos ejemplos son todo el cliente:

call.sh

curl -X POST https://api.usewrit.app/v1/acme/price-check \
  -H "Authorization: Bearer $WRIT_CONSUMER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/product/42"}'

Quienes llaman se autentican en esta vía con una clave de consumidor csk_ que tú generas por llamante; tu clave wt_ se queda en la superficie de gestión /api y nunca tiene que llegarles. Genera, limita, suspende y rota claves en claves de consumidor.

espera ▸ síncrona por defecto

Síncrona por defecto, asíncrona a petición.

No existe un parámetro wait= en esta vía. Una llamada se ejecuta de forma síncrona hasta el timeout_seconds del endpoint (5–300, 120 por defecto) y responde 200 con el resultado en línea; pasado el presupuesto responde 504 — llevando aún la referencia del run, así que nada se pierde.

Síncrona — el defecto

200 con el resultado en línea, hasta timeout_seconds.

Asíncrona a petición

Envía Prefer: respond-async (RFC 7240) o ?async=true202 más una referencia de run.

Consultar

GET /v1/{slug}/_runs/{run_id} — responde con Retry-After: 2 mientras el run no sea terminal.

Frescura

Envía Cache-Control: max-age=N o ?max_age=N por llamada. 0 fuerza un run nuevo; si falta, decide el cache_ttl_seconds propio del endpoint (0–86400).

Los parámetros de control nunca se filtran a tu workflow: async y max_age se retiran antes de que el resto de la query se fusione con las entradas del run.

forma ▸ response_format

Uno de tres sobres.

Cada endpoint elige cómo se envuelve su carga:

response_formatForma
rawLa salida del run, sin envolver.
json_wrappedEl defecto — {"success":true,"data":…}.
with_metadata{"data":…,"metadata":{endpoint_id,latency_ms,cached,timestamp}}.

Los errores nunca varían con el formato: siempre {"success":false,"error":…,"detail":…}.

orden ▸ los controles

El orden de los controles, exacto.

Cada llamada recorre los mismos controles, en el mismo orden. Conocer el orden te dice qué límite alcanzaste y qué cabecera leer:

  1. 01
    Tenant

    {slug} desconocido → 404.

  2. 02
    Endpoint

    Ningún endpoint registrado en ese (método, ruta) → 404.

  3. 03
    Clave de consumidor

    Clave de consumidor Bearer ausente o inválida → 401.

  4. 04
    Límite de tasa por clave

    Ventana deslizante de 60 segundos — el rate_limit_per_minute de la clave, si no el rate_limit_override del endpoint, si no 60/min. Al superarlo → 429 con X-RateLimit-* y Retry-After: 60.

  5. 05
    Fair-use diario

    Un techo diario a nivel de organización sobre las llamadas relevadas a los endpoints publicados — de 2.000/día en Free a 250.000/día en Enterprise. Al superarlo → 429 con Retry-After: 3600.

  6. 06
    Cuota mensual por clave

    El monthly_quota de la clave, contado antes del envío — al superarlo → 429 «Used {n}/{quota} calls this month».

  7. 07
    Cuota mensual de la organización

    La cuota mensual de llamadas managed-API de tu plan (managed_api_calls_per_month).

  8. 08
    Caché

    Un resultado en caché más joven que la edad permitida se devuelve aquí, sin iniciar un run.

  9. 09
    Envío

    El workflow — o la tarea de extracción guardada — se ejecuta en su lugar de ejecución configurado.

  10. 10
    Uso

    La llamada aterriza en las analíticas de uso por clave y por endpoint.

Cuotas por plan

Las rutas publicadas tienen tope como objetos; las llamadas, por mes a nivel de organización y por día como fair-use. El tráfico con clave desconocida o en 404 nunca cuenta en tu contra:

PlanEndpoints publicadosLlamadas · mesLlamadas relevadas · día
Free210.0002.000
Starter550.00010.000
Pro15250.00025.000
Growth401.000.00050.000
Scale100Ilimitado100.000
EnterpriseIlimitadoIlimitado250.000

faq

Preguntas, respondidas.

¿Cuál es la diferencia entre un endpoint y un tool MCP?
Dos superficies sobre el mismo workflow. Un managed endpoint es una ruta REST en /v1/{slug}/{path}; un tool MCP es el mismo workflow hablado por el Model Context Protocol. Publica uno, otro, ambos o ninguno.
¿Qué clave usan quienes llaman?
Una clave de consumidor csk_ — generada por ti, restringida a tus endpoints, con límite de tasa y cuota por clave. Tu propia clave API wt_ gestiona los endpoints en la superficie /api; no es lo que entregas a quienes llaman.
¿Qué pasa cuando un run sobrevive al timeout?
La llamada responde 504 con la referencia del run todavía adjunta. Consulta GET /v1/{slug}/_runs/{run_id} hasta que el run sea terminal — o evita la espera desde el principio con Prefer: respond-async y toma el 202 de entrada.
¿Dónde se ejecuta el run?
En tu propio agente local o autoalojado, gratis y sin medición, o en la flota cloud gestionada medida por tiempo de ejecución — eliges el lugar por workflow. Writ se ejecuta en tus propias cuentas, con tus propias credenciales y datos, en sitios que tienes autorización para usar.

go ▸ publicar

Publica tu primer endpoint.

Elige un workflow, registra una ruta y entrega a quienes llaman una URL que responde en un POST.