Documentación de la API
Usa la API de PasteBox para crear y obtener pastes mediante programación.
URL base
https://pastebox.io/api/paste.php
Autenticación
Clave de API (recomendada para scripts)
Los usuarios registrados pueden generar claves de API desde tu Perfil → Claves de API. Una clave autentica la solicitud en tu nombre, sin necesidad de cookie de sesión ni token CSRF. Envíala en la cabecera Authorization (o en la cabecera X-API-Key):
Authorization: Bearer pb_your_api_key
Las claves son por cuenta y tienen un límite de solicitudes por clave. Puedes pausar o eliminar una clave en cualquier momento; un administrador puede deshabilitar claves individuales o toda la API.
Sesión del navegador (token CSRF)
Las solicitudes hechas desde una sesión de navegador iniciada usan en su lugar un token CSRF, que se lee de la etiqueta de cada página y se envía como cabecera:
X-CSRF-Token: your_csrf_token
Los endpoints de solo lectura (obtener un paste y su contenido sin formato) no requieren clave ni cuenta. Por ejemplo, obtén cualquier paste público como texto plano:
curl -s -H "Authorization: Bearer pb_your_api_key" \
-d '{"content":"hello","syntax":"text"}' \
https://pastebox.io/api/paste.php?action=create
Crear paste
/api/paste.php?action=create
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| content | string | Sí | El contenido del paste |
| title | string | No | Título del paste (por defecto: "Untitled") |
| syntax | string | No | Slug del lenguaje de sintaxis (por defecto: "plaintext") |
| expiration | string | No | Expiración: 5min, 10min, 1hour, 1day, 1week, 2weeks, 1month, 6months, 1year, never |
| visibility | string | No | public, unlisted o private (por defecto: "public") |
| slug | string | No | Slug de URL personalizada (solo para usuarios con sesión iniciada y solo si el administrador ha habilitado las URL personalizadas): 3–64 caracteres, letras minúsculas, números y guiones. Se ignora para invitados, si la función está deshabilitada o si el slug ya está en uso o no es válido; en ese caso se usa un slug aleatorio. |
| password | string | No | Contraseña para proteger el paste |
| burn_after_read | boolean | No | Eliminar el paste tras la primera visualización |
| encrypt | boolean | No | Habilitar cifrado del lado del servidor |
Ejemplo de solicitud
curl -X POST https://pastebox.io/api/paste.php?action=create \
-H "Content-Type: application/json" \
-H "X-CSRF-Token: YOUR_TOKEN" \
-d '{
"content": "console.log(\"Hello World\");",
"title": "Hello World",
"syntax": "javascript",
"expiration": "1week",
"visibility": "public"
}'
Ejemplo de respuesta
{
"success": true,
"message": "Paste created successfully.",
"url": "https://pastebox.io/paste/abc123",
"slug": "abc123"
}
Obtener paste sin formato
/api/paste.php?action=raw&slug={slug}
Devuelve el contenido de texto sin formato de un paste. Para pastes protegidos con contraseña, pasa la contraseña como parámetro de consulta.
Ejemplo
curl https://pastebox.io/api/paste.php?action=raw&slug=abc123
Descargar paste
/api/paste.php?action=download&slug={slug}
Descarga el paste como archivo con la extensión adecuada según el lenguaje de sintaxis.
Eliminar paste
/api/paste.php?action=delete
Elimina un paste. Solo disponible para el propietario del paste o los administradores.
Ejemplo de solicitud
curl -X POST https://pastebox.io/api/paste.php?action=delete \
-H "Content-Type: application/json" \
-H "X-CSRF-Token: YOUR_TOKEN" \
-d '{"slug": "abc123"}'
Límites de solicitudes
- Solicitudes con clave de API: 1000 por hora por clave (definido por el administrador del sitio; al superarlo se devuelve un 429).
- Creación de pastes como invitado (sin clave ni sesión): 10 pastes por hora por IP. Los usuarios con sesión iniciada no tienen límite por IP al crear pastes.
- Intentos de desbloqueo con contraseña: 10 cada 10 minutos por paste.
- Reportes: 5 por hora por IP.
- Los endpoints de solo lectura (ver / sin formato / descargar) no tienen límite de solicitudes.
Cuando se supera un límite, la solicitud se rechaza; espera antes de volver a intentarlo.
Respuestas de error
Todas las respuestas de error siguen este formato:
{
"success": false,
"message": "Error description here."
}