Criar um flipbook (a partir de um PDF ou de uma URL)
FlipbooksCrie um flipbook a partir de um PDF que você envia ou de uma URL de PDF que o servidor baixa, e leia de volta o ID do novo item, a URL de visualização e a cota atualizada do plano.
APIs usadas nesta discussão
O que você pode fazer
Há duas formas de criar um flipbook a partir de um PDF, dependendo de onde o PDF está:
- Enviar o arquivo diretamente — mande o PDF como
multipart/form-data. - Apontar para uma URL — informe uma URL de PDF e deixe o servidor baixá-lo para você.
De qualquer forma, o arquivo é armazenado, uma miniatura é gerada, o registro é criado e você recebe de volta o
ID do novo item, sua URL de visualização e a cota atualizada do seu plano. Use o ID retornado nas chamadas
seguintes (set-meta, set-cta-primary, save-as-template e assim por diante).
Antes de começar
- Uma chave de API — enviada como cabeçalho
X-Api-Key, ou comoAuthorization: Bearer YOUR_API_KEY, em toda requisição. - Todas as requisições vão para a URL base
https://go.fliplink.me. - Criar um Flipbook ou um Document é escolhido pelo campo opcional
DocType: omita-o ou envieDocType=Flipbookpara um flipbook (o padrão), ouDocType=Documentpara um documento — o FlipLink aceita ambos. - Os campos de cota retornados (
Flipbooks_Count / Flipbooks_Max / Flipbooks_Left) refletem a cota do seu plano depois da criação.
Nenhum dos endpoints usa parâmetro de caminho — você cria fazendo POST no próprio endpoint e recebe de volta o novo ID.
O Create by File usa multipart/form-data. O Create by URL é form-urlencoded (não JSON).
Crie a partir de um PDF enviado
POST /api/create-by-file cria um flipbook a partir de um PDF enviado como multipart/form-data. O arquivo é
armazenado, uma miniatura é gerada e o registro é criado. O único campo obrigatório é File; Name,
Title e DocType são opcionais. O tamanho máximo de arquivo depende do plano (veja MaxFileSizeMB do 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 é Flipbook (o padrão) ou Document — envie DocType=Document para criar um documento em vez de um flipbook.
Resposta:
{
"Result": "OK",
"ID": "90001",
"URL": "https://go.fliplink.me/view/<slug>",
"Flipbooks_Count": 12,
"Flipbooks_Max": 200,
"Flipbooks_Left": 188
}
Crie a partir de uma URL de PDF
POST /api/create-by-url cria um flipbook a partir de uma URL de PDF. O servidor baixa FileURL, faz o upload para o S3,
gera uma miniatura e cria o registro. O corpo é form-urlencoded. O único campo obrigatório é
FileURL; Name, Title e DocType são opcionais.
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'
A URL de origem precisa responder em até 60s — origens lentas ou inacessíveis falham com Source URL timed out after 60s.
Para origens instáveis, prefira /api/create-by-file.
Resposta:
{
"Result": "OK",
"ID": "90001",
"URL": "https://go.fliplink.me/view/<slug>",
"Flipbooks_Count": 12,
"Flipbooks_Max": 200,
"Flipbooks_Left": 188
}
Erros possíveis
Create by File:
- Chave de API ausente ou inválida → HTTP
401. Isso retorna uma página HTML de Unauthorized simples — não há corpo JSON. - O arquivo enviado não é um PDF legível → HTTP
200, mensagemFile is not a valid PDF. - O upload excede o tamanho máximo de arquivo do plano → HTTP
413, mensagemFile exceeds the maximum allowed upload size.
Create by URL:
- Chave de API ausente ou inválida → HTTP
401. Isso retorna uma página HTML de Unauthorized simples — não há corpo JSON. - O host de
FileURLé privado ou não permitido → HTTP200, mensagemFileURL host is not allowed. - Campo do corpo desconhecido ou digitado errado → HTTP
200, mensagemUnknown field(s) '…'. Expected: …
Notas
- Os valores
Flipbooks_Count / Flipbooks_Max / Flipbooks_Leftrefletem a cota do seu plano depois desta criação. - Guarde o
IDretornado — é o que você passa nas chamadas seguintes (set-meta, set-cta-primary, save-as-template e outras).