FastPaste API
FastPaste REST API v1
Inicio
La API de FastPaste le permite crear, obtener y eliminar pastes mediante programación.
Autenticación
Todas las solicitudes de API requieren el encabezado X-API-Key:
Base URL
Formato de respuesta
Todas las respuestas están en formato JSON:
POST /api/v1/paste
Crea un nuevo paste.
Paste de texto (JSON)
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
content | string | Sí | Contenido del paste (mín. 3, máx. 4.00 MB) |
title | string | No | Título del paste |
description | string | No | Descripción (máx. 500 caracteres) |
expiry | string | No | Duración: 10m, 30m, 1h, 3h, 6h, 12h, 1d, 2d, 3d, 1w, 2w, 1m, never (predeterminado: 1d) |
password | string | No | Protección por contraseña |
burn | boolean | No | Ver una vez y eliminar. Si es true, el paste se elimina automáticamente tras la primera visualización (predeterminado: false). |
encrypt | boolean | No | Cifrado de extremo a extremo. Si es true, el contenido debe ser una cadena "fpe1:..." cifrada en el cliente (ver la sección E2E). Predeterminado: false. |
key | string | No | Clave de descifrado base64url. Opcional; se usa solo para añadir #clave al enlace devuelto y nunca se almacena en el servidor. Déjala vacía para mantener la clave totalmente en el cliente. |
downloadable | boolean | No | Hace descargable un paste cifrado E2E (predeterminado: false). Debe usarse con encrypt=true; en pastes sin cifrar no tiene efecto y la respuesta incluye una advertencia (los pastes sin cifrar siempre son descargables de todos modos). |
language | string | No | Lenguaje de resaltado de sintaxis (p. ej. python, javascript). Se detecta automáticamente si se omite; en E2E se guarda para resaltar tras el descifrado. |
public | boolean | No | Si es true, el paste se lista en el archivo público y en el sitemap. Por defecto es false. Se ignora si se usa contraseña, autodestrucción o cifrado. |
slug | string | No | Dirección corta personalizada (p. ej. «mis-notas» → /view/mis-notas). Si está ocupada, se asigna una similar. |
Subida de archivo (multipart/form-data)
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
file | file | Sí | Archivo a subir (máx. 10.00 MB) |
description | string | No | Descripción del archivo |
expiry | string | No | Duración |
password | string | No | Protección por contraseña |
burn | boolean | No | Ver una vez y eliminar. Si es true, el paste se elimina automáticamente tras la primera visualización (predeterminado: false). |
encrypt | boolean | No | Cifrado de extremo a extremo. Si es true, el contenido debe ser una cadena "fpe1:..." cifrada en el cliente (ver la sección E2E). Predeterminado: false. |
key | string | No | Clave de descifrado base64url. Opcional; se usa solo para añadir #clave al enlace devuelto y nunca se almacena en el servidor. Déjala vacía para mantener la clave totalmente en el cliente. |
downloadable | boolean | No | Hace descargable un paste cifrado E2E (predeterminado: false). Debe usarse con encrypt=true; en pastes sin cifrar no tiene efecto y la respuesta incluye una advertencia (los pastes sin cifrar siempre son descargables de todos modos). |
Cifrado de extremo a extremo (E2E)
Cifra el contenido en tu lado con AES-GCM (256 bits) y luego envía el texto cifrado como content. El servidor solo almacena los datos cifrados y nunca ve el texto plano. Se usa el mismo formato que la interfaz web.
Formato del texto cifrado: fpe1:<base64(iv)>:<base64(texto cifrado)> — donde iv es un valor aleatorio de 12 bytes y el texto cifrado incluye la etiqueta GCM.
GET /api/v1/paste/{id}
Obtiene los detalles y el contenido de un paste.
PUT /api/v1/paste/{id}
Actualiza un paste existente (solo los de esta clave API). Envía solo los campos a cambiar: content (solo texto), title, description, expiry, burn, password, language, downloadable. Si el contenido es "fpe1:...", incluye encrypt y key.
Ejemplo de solicitud (cURL)GET /api/v1/pastes
Lista los pastes creados con esta clave API (más recientes primero). Paginación: page y limit (1–100).
Ejemplo de solicitud (cURL)GET /api/v1/paste/{id}/raw
Devuelve el contenido del paste como texto plano. Adecuado para scripts y automatización.
EjemploRespuesta: Content-Type: text/plain
DELETE /api/v1/paste/{id}
Elimina un paste. Solo los pastes creados con la misma clave API pueden eliminarse.
EjemploPOST /api/v1/cli
Cree pastes rápidamente desde la línea de comandos (curl). Envíe el contenido como cuerpo sin procesar desde stdin o como campo de formulario (content/paste/f:1). La respuesta predeterminada es una URL en texto plano.
Parámetro
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
(gövde) | raw / form | Sí | Contenido del paste. Para cuerpo sin procesar, se recomienda text/plain (para conservar = y &). |
expiry | string | No | Duración: 10m, 30m, 1h, 3h, 6h, 12h, 1d, 2d, 3d, 1w, 2w, 1m, never (predeterminado: 1d) |
title | string | No | Título del paste |
lang | string | No | Lenguaje de resaltado de sintaxis (p. ej. python, javascript). Se detecta automáticamente si se omite; en E2E se guarda para resaltar tras el descifrado. |
burn | boolean | No | Ver una vez y eliminar. Si es true, el paste se elimina automáticamente tras la primera visualización (predeterminado: false). |
Accept: application/json veya ?json=1 ile JSON döner. GET /api/v1/cli kullanım örneklerini gösterir.
Extensiones de archivo permitidas
.txt
.log
.json
.xml
.yaml
.yml
.ini
.cfg
.conf
.md
.csv
.sql
.js
.ts
.html
.htm
.css
.py
.java
.go
.rs
.c
.cpp
.h
.hpp
.lua
.rb
.jsx
.tsx
.vue
.svelte
.scss
.sass
.less
.toml
.gitignore
.dockerfile
.makefile
.bat
.ps1
.r
.swift
.kt
.kts
.scala
.pl
.pm
.tcl
.awk
.sed
.diff
.patch
.tf
.hcl
.proto
.graphql
.tex
.bib
.rst
.adoc
.org
.wiki
.properties
.gradle
.cmake
.mak
Límites de velocidad
Se pueden definir límites de velocidad separados para cada clave API:
| Tipo de límite | Descripción |
|---|---|
| Límite por hora | Solicitudes máximas por hora (0 = ilimitado) |
| Límite diario | Solicitudes máximas por día |
| Límite mensual | Solicitudes máximas por mes |
Si se supera el límite, se devuelve 429 Too Many Requests.
Códigos de error
| Código | Significado |
|---|---|
400 | Solicitud incorrecta (parámetro faltante o inválido) |
401 | Clave API faltante |
403 | Clave API inválida/inactiva o acceso denegado |
404 | Paste no encontrado o expirado |
405 | Método HTTP no permitido |
413 | Tamaño de archivo demasiado grande |
429 | Límite de velocidad superado |
500 | Error del servidor |
503 | API deshabilitada |
Notificaciones Webhook
Se puede configurar una URL webhook separada por clave API. Se envía una solicitud POST cuando se crea un nuevo paste:
Obtener una clave API
Contacte al administrador para obtener una clave API o aumentar su límite.
Contactar al administrador