Saltar al contenido
Offer! Grab your .com from $5.98 with Namecheap. Get started →

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

POST /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

GET /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

GET /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

POST /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."
}

Usamos cookies para mantener tu sesión iniciada, recordar tus preferencias y entender cómo se usa el sitio. Puedes aceptar todas las cookies o conservar solo las esenciales para que el sitio funcione. Más información