FastPaste API
FastPaste REST API v1
Démarrage
L'API FastPaste vous permet de créer, récupérer et supprimer des pastes de manière programmée.
Authentification
Toutes les requêtes API nécessitent l'en-tête X-API-Key :
Base URL
Format de réponse
Toutes les réponses sont au format JSON :
POST /api/v1/paste
Crée un nouveau paste.
Paste texte (JSON)
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
content | string | Oui | Contenu du paste (min 3, max 4.00 MB) |
title | string | Non | Titre du paste |
description | string | Non | Description (max 500 caractères) |
expiry | string | Non | Durée : 10m, 30m, 1h, 3h, 6h, 12h, 1d, 2d, 3d, 1w, 2w, 1m, never (défaut : 1d) |
password | string | Non | Protection par mot de passe |
burn | boolean | Non | Voir une fois puis supprimer. Si true, le paste est supprimé automatiquement après la première consultation (défaut : false). |
encrypt | boolean | Non | Chiffrement de bout en bout. Si true, le contenu doit être une chaîne « fpe1:... » chiffrée côté client (voir la section E2E). Défaut : false. |
key | string | Non | Clé de déchiffrement base64url. Facultatif ; utilisée uniquement pour ajouter #clé au lien renvoyé et jamais stockée sur le serveur. Laissez vide pour garder la clé entièrement côté client. |
downloadable | boolean | Non | Rend un paste chiffré E2E téléchargeable (défaut : false). À utiliser avec encrypt=true ; sur les pastes non chiffrés, il n'a aucun effet et la réponse contient un avertissement (les pastes non chiffrés sont de toute façon toujours téléchargeables). |
language | string | Non | Langage de coloration syntaxique (ex. python, javascript). Détecté automatiquement si omis ; pour l'E2E, il est stocké pour la coloration après déchiffrement. |
public | boolean | Non | Si true, le paste est listé dans l'archive publique et le sitemap. false par défaut. Ignoré si un mot de passe, l'autodestruction ou le chiffrement est utilisé. |
slug | string | Non | Adresse courte personnalisée (p. ex. « mes-notes » → /view/mes-notes). Si elle est prise, une adresse similaire est attribuée. |
Envoi de fichier (multipart/form-data)
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
file | file | Oui | Fichier à envoyer (max 10.00 MB) |
description | string | Non | Description du fichier |
expiry | string | Non | Expiration |
password | string | Non | Protection par mot de passe |
burn | boolean | Non | Voir une fois puis supprimer. Si true, le paste est supprimé automatiquement après la première consultation (défaut : false). |
encrypt | boolean | Non | Chiffrement de bout en bout. Si true, le contenu doit être une chaîne « fpe1:... » chiffrée côté client (voir la section E2E). Défaut : false. |
key | string | Non | Clé de déchiffrement base64url. Facultatif ; utilisée uniquement pour ajouter #clé au lien renvoyé et jamais stockée sur le serveur. Laissez vide pour garder la clé entièrement côté client. |
downloadable | boolean | Non | Rend un paste chiffré E2E téléchargeable (défaut : false). À utiliser avec encrypt=true ; sur les pastes non chiffrés, il n'a aucun effet et la réponse contient un avertissement (les pastes non chiffrés sont de toute façon toujours téléchargeables). |
Chiffrement de bout en bout (E2E)
Chiffrez le contenu de votre côté avec AES-GCM (256 bits), puis envoyez le texte chiffré dans content. Le serveur ne stocke que les données chiffrées et ne voit jamais le texte en clair. Le même format que l'interface web est utilisé.
Format du texte chiffré : fpe1:<base64(iv)>:<base64(texte chiffré)> — où iv est une valeur aléatoire de 12 octets et le texte chiffré inclut le tag GCM.
GET /api/v1/paste/{id}
Récupère les détails et le contenu d'un paste.
PUT /api/v1/paste/{id}
Met à jour une paste existante (uniquement celles de cette clé API). N'envoyez que les champs à modifier : content (texte uniquement), title, description, expiry, burn, password, language, downloadable. Si le contenu est « fpe1:... », ajoutez encrypt et key.
Exemple de requête (cURL)GET /api/v1/pastes
Liste les pastes créées avec cette clé API (les plus récentes d'abord). Pagination : page et limit (1–100).
Exemple de requête (cURL)GET /api/v1/paste/{id}/raw
Retourne le contenu du paste en texte brut. Adapté aux scripts et à l'automatisation.
ExempleRéponse : Content-Type: text/plain
DELETE /api/v1/paste/{id}
Supprime un paste. Seuls les pastes créés avec la même clé API peuvent être supprimés.
ExemplePOST /api/v1/cli
Créez rapidement des pastes en ligne de commande (curl). Envoyez le contenu en corps brut depuis stdin, ou comme champ de formulaire (content/paste/f:1). La réponse par défaut est une URL en texte brut.
Paramètre
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
(gövde) | raw / form | Oui | Contenu de la paste. Pour un corps brut, text/plain est recommandé (afin de préserver = et &). |
expiry | string | Non | Durée : 10m, 30m, 1h, 3h, 6h, 12h, 1d, 2d, 3d, 1w, 2w, 1m, never (défaut : 1d) |
title | string | Non | Titre du paste |
lang | string | Non | Langage de coloration syntaxique (ex. python, javascript). Détecté automatiquement si omis ; pour l'E2E, il est stocké pour la coloration après déchiffrement. |
burn | boolean | Non | Voir une fois puis supprimer. Si true, le paste est supprimé automatiquement après la première consultation (défaut : false). |
Accept: application/json veya ?json=1 ile JSON döner. GET /api/v1/cli kullanım örneklerini gösterir.
Extensions de fichiers autorisées
.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 débit
Des limites de débit distinctes peuvent être définies pour chaque clé API :
| Type de limite | Description |
|---|---|
| Limite horaire | Requêtes maximum par heure (0 = illimité) |
| Limite quotidienne | Requêtes maximum par jour |
| Limite mensuelle | Requêtes maximum par mois |
En cas de dépassement, une réponse 429 Too Many Requests est renvoyée.
Codes d'erreur
| Code | Signification |
|---|---|
400 | Requête invalide (paramètre manquant ou incorrect) |
401 | Clé API manquante |
403 | Clé API invalide/inactive ou accès refusé |
404 | Paste introuvable ou expiré |
405 | Méthode HTTP non autorisée |
413 | Taille du fichier trop grande |
429 | Limite de débit dépassée |
500 | Erreur serveur |
503 | API désactivée |
Notifications Webhook
Une URL webhook distincte peut être configurée par clé API. Une requête POST est envoyée lors de la création d'un nouveau paste :
Obtenir une clé API
Contactez l'administrateur pour obtenir une clé API ou augmenter votre limite.
Contacter l'administrateur