Crear un flipbook (desde un PDF o una URL)
FlipbooksCrea un flipbook desde un PDF que subes o desde una URL de PDF que el servidor descarga, y recupera el ID del nuevo elemento, su URL de vista y la cuota actualizada de tu plan.
APIs usadas en esta discusión
Qué puedes hacer
Hay dos formas de crear un flipbook desde un PDF, según dónde esté el PDF:
- Sube el archivo directamente — envía el PDF como
multipart/form-data. - Apunta a una URL — indica una URL de PDF y deja que el servidor lo descargue por ti.
En cualquier caso, el archivo se almacena, se genera una miniatura, se registra el registro y recuperas el ID del
nuevo elemento, su URL de vista y la cuota actualizada de tu plan. Usa el ID devuelto para las llamadas
posteriores (set-meta, set-cta-primary, save-as-template, etc.).
Antes de empezar
- Una clave de API — enviada en el encabezado
X-Api-Key, o comoAuthorization: Bearer YOUR_API_KEY, en cada solicitud. - Todas las solicitudes van a la URL base
https://go.fliplink.me. - Que crees un Flipbook o un Document lo decide el campo opcional
DocType: omítelo o envíaDocType=Flipbookpara un flipbook (el valor por defecto), oDocType=Documentpara un documento — FlipLink admite ambos. - Los campos de cuota devueltos (
Flipbooks_Count / Flipbooks_Max / Flipbooks_Left) reflejan la cuota de tu plan después de la creación.
Ninguno de los dos endpoints usa un parámetro de ruta — creas haciendo POST al endpoint en sí y recuperas el nuevo ID.
Create by File usa multipart/form-data. Create by URL usa form-urlencoded (no JSON).
Crear desde un PDF subido
POST /api/create-by-file crea un flipbook desde un PDF subido enviado como multipart/form-data. El archivo se
almacena, se genera una miniatura y se registra el registro. El único campo obligatorio es File; Name,
Title y DocType son opcionales. El tamaño máximo de archivo depende del plan (consulta MaxFileSizeMB en who-am-i).
curl -X POST 'https://go.fliplink.me/api/create-by-file' \
-H 'X-Api-Key: YOUR_API_KEY' \
-F 'File=@/path/to/file' \
-F 'Name=My Document' \
-F 'Title=My Title' \
-F 'DocType=Flipbook'
DocType es Flipbook (el valor por defecto) o Document — envía DocType=Document para crear un documento en lugar de un flipbook.
Respuesta:
{
"Result": "OK",
"ID": "90001",
"URL": "https://go.fliplink.me/view/<slug>",
"Flipbooks_Count": 12,
"Flipbooks_Max": 200,
"Flipbooks_Left": 188
}
Crear desde una URL de PDF
POST /api/create-by-url crea un flipbook desde una URL de PDF. El servidor descarga FileURL, lo sube a S3,
genera una miniatura y registra el registro. El cuerpo es form-urlencoded. El único campo obligatorio es
FileURL; Name, Title y DocType son opcionales.
curl -X POST 'https://go.fliplink.me/api/create-by-url' \
-H 'X-Api-Key: YOUR_API_KEY' \
--data-urlencode 'FileURL=https://example.com/document.pdf' \
--data-urlencode 'Name=My Document' \
--data-urlencode 'Title=My Title' \
--data-urlencode 'DocType=Flipbook'
La URL de origen debe responder en un plazo de 60 s — las fuentes lentas o inalcanzables fallan con Source URL timed out after 60s.
Para fuentes poco fiables, usa /api/create-by-file.
Respuesta:
{
"Result": "OK",
"ID": "90001",
"URL": "https://go.fliplink.me/view/<slug>",
"Flipbooks_Count": 12,
"Flipbooks_Max": 200,
"Flipbooks_Left": 188
}
Errores posibles
Create by File:
- Clave de API ausente o no válida → HTTP
401. Devuelve una página HTML de "Unauthorized" sin formato — no hay cuerpo JSON. - El archivo subido no es un PDF legible → HTTP
200, mensajeFile is not a valid PDF. - La subida supera el tamaño máximo de archivo del plan → HTTP
413, mensajeFile exceeds the maximum allowed upload size.
Create by URL:
- Clave de API ausente o no válida → HTTP
401. Devuelve una página HTML de "Unauthorized" sin formato — no hay cuerpo JSON. - El host de
FileURLes privado o no está permitido → HTTP200, mensajeFileURL host is not allowed. - Campo del cuerpo desconocido o mal escrito → HTTP
200, mensajeUnknown field(s) '…'. Expected: …
Notas
- Los valores
Flipbooks_Count / Flipbooks_Max / Flipbooks_Leftreflejan la cuota de tu plan después de esta creación. - Conserva el
IDdevuelto — es lo que pasas a las llamadas posteriores (set-meta, set-cta-primary, save-as-template, entre otras).