Aller au contenu
Offer! Grab your .com from $5.98 with Namecheap. Get started →

Documentation de l’API

Utilisez l’API PasteBox pour créer et récupérer des pastes par programmation.

URL de base

https://pastebox.io/api/paste.php

Authentification

Clé API (recommandée pour les scripts)

Les utilisateurs inscrits peuvent générer des clés API depuis votre Profil → Clés API. Une clé authentifie la requête en votre nom, sans cookie de session ni jeton CSRF. Envoyez-la dans l’en-tête Authorization (ou dans l’en-tête X-API-Key) :

Authorization: Bearer pb_your_api_key

Les clés sont propres à chaque compte et leur débit est limité clé par clé. Vous pouvez mettre en pause ou supprimer une clé à tout moment ; un administrateur peut désactiver des clés individuelles ou l’API entière.

Session du navigateur (jeton CSRF)

Les requêtes effectuées depuis une session de navigateur connectée utilisent plutôt un jeton CSRF, lu dans la balise présente sur chaque page et envoyé dans un en-tête :

X-CSRF-Token: your_csrf_token

Les endpoints en lecture seule (récupération d’un paste et de son contenu brut) ne nécessitent ni clé ni compte. Par exemple, récupérez n’importe quel paste public en texte brut :

curl -s -H "Authorization: Bearer pb_your_api_key" \ -d '{"content":"hello","syntax":"text"}' \ https://pastebox.io/api/paste.php?action=create

Créer un paste

POST /api/paste.php?action=create

Paramètres

Paramètre Type Obligatoire Description
content string Oui Le contenu du paste
title string Non Titre du paste (par défaut : "Untitled")
syntax string Non Slug du langage de syntaxe (par défaut : "plaintext")
expiration string Non Expiration : 5min, 10min, 1hour, 1day, 1week, 2weeks, 1month, 6months, 1year, never
visibility string Non public, unlisted ou private (par défaut : "public")
slug string Non Slug d’URL personnalisée (utilisateurs connectés uniquement, et seulement si l’administrateur a activé les URL personnalisées) : 3 à 64 caractères, lettres minuscules, chiffres et tirets. Ignoré pour les invités, si la fonction est désactivée, ou si le slug est déjà pris ou invalide ; un slug aléatoire est alors utilisé.
password string Non Mot de passe pour protéger le paste
burn_after_read boolean Non Supprimer le paste après la première consultation
encrypt boolean Non Activer le chiffrement côté serveur

Exemple de requête

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"
  }'

Exemple de réponse

{
  "success": true,
  "message": "Paste created successfully.",
  "url": "https://pastebox.io/paste/abc123",
  "slug": "abc123"
}

Obtenir le paste brut

GET /api/paste.php?action=raw&slug={slug}

Renvoie le contenu texte brut d’un paste. Pour les pastes protégés par mot de passe, transmettez le mot de passe en paramètre de requête.

Exemple

curl https://pastebox.io/api/paste.php?action=raw&slug=abc123

Télécharger le paste

GET /api/paste.php?action=download&slug={slug}

Télécharge le paste sous forme de fichier, avec l’extension correspondant à son langage de syntaxe.

Supprimer le paste

POST /api/paste.php?action=delete

Supprime un paste. Réservé au propriétaire du paste et aux administrateurs.

Exemple de requête

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 débit

  • Requêtes avec clé API : 1000 par heure et par clé (fixé par l’administrateur du site ; une erreur 429 est renvoyée en cas de dépassement).
  • Création de pastes en tant qu’invité (sans clé ni session) : 10 pastes par heure et par IP. Les utilisateurs connectés ne sont pas limités par IP lors de la création.
  • Tentatives de déverrouillage par mot de passe : 10 toutes les 10 minutes, par paste.
  • Signalements : 5 par heure et par IP.
  • Les endpoints en lecture seule (affichage / brut / téléchargement) ne sont pas soumis à une limite de débit.

Lorsqu’une limite est dépassée, la requête est rejetée ; patientez avant de réessayer.

Réponses d’erreur

Toutes les réponses d’erreur suivent ce format :

{
  "success": false,
  "message": "Error description here."
}

Nous utilisons des cookies pour vous garder connecté, mémoriser vos préférences et comprendre comment le site est utilisé. Vous pouvez accepter tous les cookies ou ne conserver que ceux qui sont essentiels au fonctionnement du site. En savoir plus