Documentação da API
Use a API do PasteBox para criar e recuperar pastes de forma programática.
URL base
https://pastebox.io/api/paste.php
Autenticação
Chave de API (recomendada para scripts)
Usuários cadastrados podem gerar chaves de API em seu Perfil → Chaves de API. A chave autentica a requisição como você, sem precisar de cookie de sessão nem de token CSRF. Envie-a no cabeçalho Authorization (ou no cabeçalho X-API-Key):
Authorization: Bearer pb_your_api_key
As chaves são vinculadas à conta e têm limite de requisições por chave. Você pode pausar ou excluir uma chave a qualquer momento; um administrador pode desativar chaves individuais ou a API inteira.
Sessão do navegador (token CSRF)
Já as requisições feitas a partir de uma sessão logada no navegador usam um token CSRF, lido da tag presente em todas as páginas e enviado como cabeçalho:
X-CSRF-Token: your_csrf_token
Endpoints somente leitura (obter um paste e seu conteúdo bruto) não exigem chave nem conta. Por exemplo, obtenha qualquer paste público como texto simples:
curl -s -H "Authorization: Bearer pb_your_api_key" \
-d '{"content":"hello","syntax":"text"}' \
https://pastebox.io/api/paste.php?action=create
Criar paste
/api/paste.php?action=create
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| content | string | Sim | O conteúdo do paste |
| title | string | Não | Título do paste (padrão: "Untitled") |
| syntax | string | Não | Slug da linguagem de sintaxe (padrão: "plaintext") |
| expiration | string | Não | Expiração: 5min, 10min, 1hour, 1day, 1week, 2weeks, 1month, 6months, 1year, never |
| visibility | string | Não | public, unlisted ou private (padrão: "public") |
| slug | string | Não | Slug de URL personalizada (somente para usuários logados e apenas quando o administrador tiver ativado URLs personalizadas): 3–64 caracteres, letras minúsculas/números/hifens. É ignorado para visitantes, quando o recurso está desativado ou se o slug já estiver em uso ou for inválido; nesse caso, é usado um slug aleatório. |
| password | string | Não | Senha para proteger o paste |
| burn_after_read | boolean | Não | Excluir o paste após a primeira visualização |
| encrypt | boolean | Não | Ativar criptografia no servidor |
Exemplo de requisição
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"
}'
Exemplo de resposta
{
"success": true,
"message": "Paste created successfully.",
"url": "https://pastebox.io/paste/abc123",
"slug": "abc123"
}
Obter paste bruto
/api/paste.php?action=raw&slug={slug}
Retorna o conteúdo de texto bruto de um paste. Para pastes protegidos por senha, envie a senha como parâmetro de consulta.
Exemplo
curl https://pastebox.io/api/paste.php?action=raw&slug=abc123
Baixar paste
/api/paste.php?action=download&slug={slug}
Baixa o paste como arquivo, com a extensão adequada de acordo com a linguagem da sintaxe.
Excluir paste
/api/paste.php?action=delete
Exclui um paste. Disponível apenas para o dono do paste ou para administradores.
Exemplo de requisição
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"}'
Limites de requisições
- Requisições com chave de API: 1000 por hora por chave (definido pelo administrador do site; um erro 429 é retornado quando o limite é excedido).
- Criação de pastes por visitantes (sem chave/sessão): 10 pastes por hora por IP. Usuários logados não têm limite de criação por IP.
- Tentativas de desbloqueio por senha: 10 a cada 10 minutos por paste.
- Denúncias: 5 por hora por IP.
- Endpoints somente leitura (visualizar / bruto / baixar) não têm limite de requisições.
Quando um limite é excedido, a requisição é rejeitada; aguarde antes de tentar novamente.
Respostas de erro
Todas as respostas de erro seguem este formato:
{
"success": false,
"message": "Error description here."
}