FastPaste API
FastPaste REST API v1
Primeiros Passos
A API FastPaste permite criar, recuperar e excluir pastes programaticamente.
Autenticação
Todas as requisições de API exigem o cabeçalho X-API-Key:
Base URL
Formato de resposta
Todas as respostas estão no formato JSON:
POST /api/v1/paste
Cria um novo paste.
Paste de texto (JSON)
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
content | string | Sim | Conteúdo do paste (mín. 3, máx. 4.00 MB) |
title | string | Não | Título do paste |
description | string | Não | Descrição (máx. 500 caracteres) |
expiry | string | Não | Duração: 10m, 30m, 1h, 3h, 6h, 12h, 1d, 2d, 3d, 1w, 2w, 1m, never (padrão: 1d) |
password | string | Não | Proteção por senha |
burn | boolean | Não | Ver uma vez e excluir. Se true, o paste é excluído automaticamente após a primeira visualização (padrão: false). |
encrypt | boolean | Não | Criptografia ponta a ponta. Se true, o conteúdo deve ser uma string "fpe1:..." criptografada no cliente (veja a seção E2E). Padrão: false. |
key | string | Não | Chave de descriptografia base64url. Opcional; usada apenas para anexar #chave ao link retornado e nunca é armazenada no servidor. Deixe vazia para manter a chave totalmente no cliente. |
downloadable | boolean | Não | Torna um paste criptografado E2E baixável (padrão: false). Deve ser usado com encrypt=true; em pastes não criptografados não tem efeito e a resposta inclui um aviso (pastes não criptografados sempre podem ser baixados de qualquer forma). |
language | string | Não | Linguagem de realce de sintaxe (ex.: python, javascript). Detectada automaticamente se omitida; em E2E é armazenada para realçar após a descriptografia. |
public | boolean | Não | Se true, o paste é listado no arquivo público e no sitemap. Por omissão é false. Ignorado se for usada palavra-passe, autodestruição ou encriptação. |
slug | string | Não | Endereço curto personalizado (p. ex. «as-minhas-notas» → /view/as-minhas-notas). Se estiver ocupado, é atribuído um semelhante. |
Upload de arquivo (multipart/form-data)
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
file | file | Sim | Arquivo a enviar (máx. 10.00 MB) |
description | string | Não | Descrição do arquivo |
expiry | string | Não | Expiração |
password | string | Não | Proteção por senha |
burn | boolean | Não | Ver uma vez e excluir. Se true, o paste é excluído automaticamente após a primeira visualização (padrão: false). |
encrypt | boolean | Não | Criptografia ponta a ponta. Se true, o conteúdo deve ser uma string "fpe1:..." criptografada no cliente (veja a seção E2E). Padrão: false. |
key | string | Não | Chave de descriptografia base64url. Opcional; usada apenas para anexar #chave ao link retornado e nunca é armazenada no servidor. Deixe vazia para manter a chave totalmente no cliente. |
downloadable | boolean | Não | Torna um paste criptografado E2E baixável (padrão: false). Deve ser usado com encrypt=true; em pastes não criptografados não tem efeito e a resposta inclui um aviso (pastes não criptografados sempre podem ser baixados de qualquer forma). |
Criptografia ponta a ponta (E2E)
Criptografe o conteúdo do seu lado com AES-GCM (256 bits) e envie o texto cifrado como content. O servidor armazena apenas os dados criptografados e nunca vê o texto puro. É usado o mesmo formato da interface web.
Formato do texto cifrado: fpe1:<base64(iv)>:<base64(texto cifrado)> — onde iv é um valor aleatório de 12 bytes e o texto cifrado inclui a tag GCM.
GET /api/v1/paste/{id}
Recupera os detalhes e o conteúdo de um paste.
PUT /api/v1/paste/{id}
Atualiza um paste existente (apenas os desta chave de API). Envie apenas os campos a alterar: content (somente texto), title, description, expiry, burn, password, language, downloadable. Se o conteúdo for "fpe1:...", inclua encrypt e key.
Exemplo de requisição (cURL)GET /api/v1/pastes
Lista os pastes criados com esta chave de API (mais recentes primeiro). Paginação: page e limit (1–100).
Exemplo de requisição (cURL)GET /api/v1/paste/{id}/raw
Retorna o conteúdo do paste como texto simples. Adequado para scripts e automação.
ExemploResposta: Content-Type: text/plain
DELETE /api/v1/paste/{id}
Exclui um paste. Somente pastes criados com a mesma chave API podem ser excluídos.
ExemploPOST /api/v1/cli
Crie pastes rapidamente pela linha de comando (curl). Envie o conteúdo como corpo bruto via stdin ou como campo de formulário (content/paste/f:1). A resposta padrão é uma URL em texto simples.
Parâmetro
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
(gövde) | raw / form | Sim | Conteúdo do paste. Para corpo bruto, recomenda-se text/plain (para preservar = e &). |
expiry | string | Não | Duração: 10m, 30m, 1h, 3h, 6h, 12h, 1d, 2d, 3d, 1w, 2w, 1m, never (padrão: 1d) |
title | string | Não | Título do paste |
lang | string | Não | Linguagem de realce de sintaxe (ex.: python, javascript). Detectada automaticamente se omitida; em E2E é armazenada para realçar após a descriptografia. |
burn | boolean | Não | Ver uma vez e excluir. Se true, o paste é excluído automaticamente após a primeira visualização (padrão: false). |
Accept: application/json veya ?json=1 ile JSON döner. GET /api/v1/cli kullanım örneklerini gösterir.
Extensões de arquivo 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
Limites de taxa
Limites de taxa separados podem ser definidos para cada chave API:
| Tipo de limite | Descrição |
|---|---|
| Limite por hora | Máximo de requisições por hora (0 = ilimitado) |
| Limite diário | Máximo de requisições por dia |
| Limite mensal | Máximo de requisições por mês |
Quando o limite é excedido, é retornada a resposta 429 Too Many Requests.
Códigos de erro
| Código | Significado |
|---|---|
400 | Requisição inválida (parâmetro ausente ou incorreto) |
401 | Chave API ausente |
403 | Chave API inválida/inativa ou acesso negado |
404 | Paste não encontrado ou expirado |
405 | Método HTTP não permitido |
413 | Tamanho de arquivo muito grande |
429 | Limite de taxa excedido |
500 | Erro do servidor |
503 | API desativada |
Notificações Webhook
Uma URL webhook separada pode ser configurada por chave API. Uma requisição POST é enviada quando um novo paste é criado:
Obter uma chave API
Entre em contato com o administrador para obter uma chave API ou aumentar seu limite.
Contatar administrador