Marca de agua en PDF
Envía un PDF y una línea de texto, y cada página regresa estampada: en diagonal, semitransparente, por encima del contenido pero sin taparlo. La API de marca de agua PDF existe para una sola tarea — marcar documentos a escala para que nadie tenga que abrir Acrobat y repetir el mismo paso manual en cien archivos.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
El problema que resuelve en silencio
Los equipos legales, las editoriales, recursos humanos y los estudios de diseño chocan con la misma pared: un documento se le escapa en cuanto lo envía, y no hay forma de dejar escrito BORRADOR, CONFIDENCIAL o el nombre del destinatario sobre la página sin una pasada manual. Hacerlo a mano funciona con un archivo y se vuelve insoportable con un lote. Este endpoint toma la parte repetitiva — abrir, estampar, aplanar, guardar — y la convierte en una sola llamada que funciona igual con dos páginas o con doscientas.
Cómo se comporta la llamada
Hace un POST con su texto y el documento a /pdf/watermark-text y recibe de inmediato un task_id. Corre de forma asíncrona en nuestro edge global, así que su petición nunca se queda esperando por un archivo grande. Cuando el estampado termina, el PDF final llega a su webhook firmado o lo descarga desde un enlace firmado válido durante 24 horas. Usted controla el texto y su ubicación, mientras el motor resuelve la geometría para que caiga consistente en hojas verticales, horizontales y de tamaños mezclados.
Por qué marca de agua de texto
El PDF arrastra la idea de una capa superpuesta desde hace décadas, y una marca de agua de texto es su versión más honesta: texto real dibujado dentro de la página, no una nota frágil que un visor podría ocultar. A diferencia de un sello de imagen, una línea de texto se mantiene nítida a cualquier zoom y casi no pesa. Eso es justo lo que quiere para marcar estado — un COPIA o un USO INTERNO que sobrevive a la impresión y los reenvíos, y se lee claro en lugar de esconderse en metadatos.
Pensada para vivir dentro de un flujo
Como es asíncrona y se cobra por página, encaja al final de un flujo documental — justo después de generar un contrato, una factura o un informe. Apunte el webhook a su almacenamiento y los archivos estampados llegan sin sondear. Una tarea fallida nunca se cobra: el sistema reintenta tres veces con espera progresiva, y si aun así no procesa el archivo recibe un error claro en lugar de un cargo silencioso. Eso la vuelve segura para cablear en un proceso automático y olvidarse.
Acceso y precio, sin rodeos
La tarifa es pública: $0.002 por solicitud, cobrada por página, sin tokens ni créditos inventados. No hay plan gratuito — el acceso requiere saldo prepago, y una llamada sin él devuelve un 402 limpio. Es deliberado: el servicio de pago se conserva rápido y libre del abuso que sufre todo endpoint abierto. Sus documentos se eliminan tras la ventana de retención y jamás se usan para entrenar nada.
Qué puede hacer con ella
Estampar cada borrador de contrato antes de que circule
Un bufete genera acuerdos con cambios a partir de una plantilla y pasa cada uno por el endpoint para estampar BORRADOR — NO PARA FIRMA en todas las páginas, de modo que ninguna versión salga de la oficina con aspecto de definitiva por descuido.
Personalizar informes confidenciales por destinatario
Un proveedor de research marca cada PDF descargado con el correo del suscriptor y la palabra CONFIDENCIAL, creando un rastro por página que desalienta la redistribución del análisis de pago.
Señalar facturas y estados de cuenta como copias
Una plataforma contable estampa DUPLICADO en las facturas reemitidas de forma automática, para que un documento reimpreso nunca se confunda con el original cuando un cliente pide otra copia.
Marcar documentación previa a su publicación
Una editorial pasa los PDF de revisión por la API para superponer PRUEBA SIN CORREGIR en cada página antes de enviar galeradas a la crítica, manteniendo el texto inacabado visiblemente distinto de la edición final.
Preguntas frecuentes
¿Cómo agrego una marca de agua de texto a un PDF con una API?
Haga un POST con su PDF y el texto que quiera al endpoint /pdf/watermark-text. Recibe un task_id, y el archivo estampado llega a su webhook o a un enlace firmado en cuanto la api de marca de agua pdf termina de procesar cada página.
¿La API de marca de agua PDF es gratis?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Estampa todas las páginas o solo la primera?
Todas las páginas. El texto se aplica a lo largo de todo el documento, y cada página se cobra por separado, así que un archivo de diez páginas se estampa y se factura como diez páginas.
¿Puedo poner una marca en diagonal tipo BORRADOR o CONFIDENCIAL?
Sí, para eso está pensada. Envíe cualquier línea corta de texto como BORRADOR, CONFIDENCIAL o COPIA, y se dibuja en cada página como una capa semitransparente por encima del contenido existente.
¿Cómo pongo marca de agua a PDF de forma masiva?
Llame al endpoint una vez por documento; como es asíncrona, puede lanzar muchas solicitudes en paralelo y dejar que los webhooks avisen a medida que cada archivo termina. No hay cola que vigilar ni sondeo que hacer.
¿La marca de agua baja la calidad de mi PDF?
No. El texto se dibuja como texto vectorial dentro de la página, así que se mantiene nítido a cualquier zoom y casi no aumenta el tamaño del archivo. El contenido original de abajo queda intacto.
¿Qué pasa si un archivo falla al procesarse?
La tarea reintenta tres veces con espera progresiva. Si aun así no puede completarse, recibe un error claro y no se le cobra — las tareas fallidas nunca se facturan.
¿Cuánto tiempo puedo descargar el archivo terminado?
El enlace firmado es válido durante 24 horas, y para automatizar se recomienda la entrega por webhook firmado. Tras la ventana de retención sus documentos se eliminan y nunca se usan para entrenar nada.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/pdf/watermark-text \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf"}'const res = await fetch("https://api.kit.forhosting.com/pdf/watermark-text", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/watermark-text",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/watermark-text", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/watermark-text", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"pdf": "https://ejemplo.com/documento.pdf"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.watermark_text",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
max_pages | 200 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
413 | input_too_large | El archivo supera el límite de tamaño. |