📘 Vue d'ensemble
L'API Rediafile vous permet d'intégrer de manière sécurisée l'upload, la gestion et le téléchargement de fichiers directement depuis vos propres applications. Tous les endpoints retournent des réponses au format JSON encodé en UTF-8.
Base URL
Exigences techniques
| Aspect | Spécification |
|---|---|
| Encodage | UTF-8 obligatoire pour toutes les chaînes |
| Protocole | HTTPS fortement recommandé (SSL requis) |
| Méthode HTTP | POST (sauf mention contraire) |
| Format dates | Y-m-d H:i:s (ex: 2026-08-01 14:12:11) |
| Content-Type | application/x-www-form-urlencoded ou multipart/form-data pour les uploads |
🚀 Démarrage rapide
En 3 étapes, effectuez votre premier appel API :
Connectez-vous à votre compte Rediafile → Account Settings → API Access. Vous y trouverez Key 1 et Key 2 (64 caractères chacune).
curl -X POST https://rediafile.com/cloud/api/v2/authorize \ -d "username=votre_username" \ -d "password=votre_password"
curl -X POST https://rediafile.com/cloud/api/v2/account/info \ -d "access_token=VOTRE_TOKEN" \ -d "account_id=VOTRE_ACCOUNT_ID"
🔐 Authentification
Toutes les requêtes API nécessitent un access_token et un account_id valides. Ceux-ci sont obtenus via l'endpoint /authorize en soumettant vos identifiants de compte ou vos clés API.
access_token peut être réutilisé plusieurs fois. Ne générez pas un nouveau token pour chaque requête. Les tokens expirent automatiquement après 1 heure d'inactivité.
POST /authorize
Fournit un access_token et un account_id pour effectuer des requêtes ultérieures.
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
username | string | Oui* | Nom d'utilisateur du compte |
password | string | Oui* | Mot de passe du compte |
key1 | string (64) | Oui* | Clé API 1 (depuis Account Settings) |
key2 | string (64) | Oui* | Clé API 2 (depuis Account Settings) |
* Soit username/password, soit key1/key2. Les clés API sont recommandées pour les intégrations automatisées.
Réponse succès
{
"data": {
"access_token": "X3Xp6cUcue22Q3AlpCiZz3mJQWPT2v10zZqGblSGzVIqZiMoV4ou8LeYH4SKAUL9...",
"account_id": "158642"
},
"_status": "success",
"_datetime": "2026-08-01 14:12:11"
}
Erreurs possibles
| Message | Cause |
|---|---|
| Please provide a username. | Paramètre username manquant |
| Please provide a password. | Paramètre password manquant |
| Please provide key1. It must be 64 characters. | Clé API 1 invalide |
| Please provide key2. It must be 64 characters. | Clé API 2 invalide |
| Could not authenticate user. | Identifiants invalides ou compte verrouillé |
| Failed issuing access token. | Erreur interne de génération |
POST /disable_access_token
Désactive un access_token actif. Optionnel — les tokens expirent automatiquement après 1h d'inactivité.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token à désactiver |
account_id | string | Oui | ID du compte |
⚠️ Codes d'erreur HTTP
Les erreurs sont retournées via les codes HTTP standards. Les informations complémentaires sont incluses dans le corps de la réponse au format JSON.
| Code | Description | Action recommandée |
|---|---|---|
| 400 | Bad input parameter | Vérifiez les paramètres envoyés |
| 401 | Bad or expired token | Ré-authentifiez-vous via /authorize |
| 404 | File not found | Vérifiez le file_id ou short_url |
| 405 | Method not expected | Utilisez POST (ou GET si spécifié) |
| 429 | Rate limit reached | Réduisez la fréquence des requêtes |
| 5xx | Server error | Réessayez plus tard ou contactez le support |
Format d'erreur JSON
{
"status": "error",
"response": "Could not authenticate user. The username and password may be invalid...",
"_datetime": "2026-08-01 14:12:11"
}
👤 Compte
POST /account/info
Fournit les détails du compte associé à l'account_id.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
Réponse
{
"data": {
"id": "158642",
"username": "admin",
"level_id": "20",
"email": "email@yoursite.com",
"lastlogindate": "2017-02-18 11:43:39",
"lastloginip": "192.168.33.1",
"status": "active",
"title": "Mr",
"firstname": "Admin",
"lastname": "User",
"languageId": "1",
"datecreated": null,
"lastPayment": "2011-12-27 13:45:22",
"paidExpiryDate": null,
"storageLimitOverride": null
},
"_status": "success",
"_datetime": "2026-08-01 14:12:11"
}
POST /account/package
Fournit les restrictions du compte héritées du forfait associé.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
Champs clés de la réponse
| Champ | Description |
|---|---|
label | Nom du forfait (ex: "Premium Account") |
max_upload_size | Taille max d'upload en octets |
can_upload | 1 = upload autorisé, 0 = non |
concurrent_uploads | Nombre d'uploads simultanés max |
max_remote_download_urls | URLs distantes max (50 par défaut) |
level_type | Type de compte ("paid user", etc.) |
📁 Fichiers
POST /file/upload
Interface d'upload de fichiers. Note : Les uploads chunkés ne sont pas encore supportés.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
upload_file | file | Oui | Fichier à uploader (multipart/form-data) |
folder_id | string | Non | ID du dossier cible (racine si vide) |
multipart/form-data avec le fichier en pièce jointe.
Réponse succès
{
"response": "File uploaded",
"data": [{
"name": "sample4_l.jpg",
"size": "149084",
"type": "application/octet-stream",
"url": "https://rediafile.com/2Vv",
"delete_url": "https://rediafile.com/2Vv~d?41efa710444abad11a8f4b5a90e4d746",
"info_url": "https://rediafile.com/2Vv~i",
"stats_url": "https://rediafile.com/2Vv~s",
"short_url": "2Vv",
"file_id": "1253",
"unique_hash": "60b0be7e3b18de9a3f00d940a8e5a9834c6cdc0f49d40af64973be5ca504c4fd",
"url_html": "<a href=...>view sample4_l.jpg on Rediafile</a>",
"url_bbcode": "[url]https://rediafile.com/2Vv[/url]"
}],
"_status": "success",
"_datetime": "2026-08-01 14:12:11"
}
POST /file/download
Génère une URL de téléchargement unique pour un fichier.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
file_id | string | Oui* | ID numérique du fichier |
short_url | string | Oui* | URL courte du fichier |
* Un des deux paramètres est requis : file_id OU short_url.
Réponse
{
"data": {
"file_id": "1253",
"filename": "sample4_l.jpg",
"download_url": "https://rediafile.com/2Vv?download_token=c3e6289a23e9819d8663569da96087d0..."
},
"_status": "success",
"_datetime": "2026-08-01 14:12:11"
}
POST /file/url_upload_add
Importe un fichier depuis une URL externe. Disponible uniquement si le téléchargement d'URL en arrière-plan est activé.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
file_url_base64 | string | Oui | URL externe encodée en base64 |
folder_id | string | Non | ID du dossier cible |
Réponse
{
"response": "File download from URL scheduled",
"data": {
"scheduled_item_id": 52,
"url": "https://yetishare.com/_include/images/yetishare_logo.png"
},
"_status": "success",
"_datetime": "2026-08-01 14:12:11"
}
POST /file/url_upload_status
Affiche le statut d'un téléchargement d'URL programmé.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
scheduled_item_id | int | Oui | ID retourné par /file/url_upload_add |
Réponse (statut "complete")
{
"response": "Scheduled URL file download found",
"data": {
"scheduled_item_id": 51,
"status": "complete",
"created": "2024-01-25 19:34:52",
"started": "2024-01-25 20:24:53",
"finished": "2024-01-25 20:24:54",
"total_size": 17262,
"downloaded_file": {
"file_id": 11456,
"name": "file_upload_script_logo.png",
"size": 17262,
"url": "https://rediafile.com/sZG/file_upload_script_logo.png"
}
},
"_status": "success",
"_datetime": "2026-08-01 14:12:11"
}
POST /file/info
Fournit les métadonnées et URLs d'un fichier.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
file_id | string | Oui | ID du fichier |
POST /file/edit
Modifie les métadonnées d'un fichier.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
file_id | string | Oui | ID du fichier à modifier |
filename | string | Non | Nouveau nom (vide = inchangé) |
fileType | string | Non | Nouveau MIME type (ex: application/octet-stream) |
folder_id | string | Non | Nouveau dossier parent (vide = inchangé) |
POST /file/delete
Supprime un fichier actif (déplace vers la corbeille).
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
file_id | string | Oui | ID du fichier à supprimer |
POST /file/move
Déplace un fichier vers un autre dossier.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
file_id | string | Oui | ID du fichier |
new_parent_folder_id | string | Oui | ID du dossier de destination |
POST /file/copy
Copie un fichier vers un autre dossier.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
file_id | string | Oui | ID du fichier source |
copy_to_folder_id | string | Oui | ID du dossier de destination |
Réponse
{
"response": "File successfully copyied.",
"original_file": { "data": { "id": "1162", "filename": "...", "shortUrl": "2U2" } },
"new_file": { "data": { "id": "1254", "filename": "...", "shortUrl": "2Vw" } },
"_status": "success",
"_datetime": "2026-08-01 14:12:11"
}
📂 Dossiers
POST /folder/create
Crée un nouveau dossier.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
folder_name | string | Oui | Nom du nouveau dossier |
parent_id | string | Non | ID du dossier parent |
is_public | int | Non | 0=Privé, 1=Non listé, 2=Public (défaut: 0) |
access_password | string (32) | Non | Hash MD5 du mot de passe (32 caractères) |
POST /folder/listing
Retourne la liste des dossiers et fichiers d'un dossier parent.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
parent_folder_id | string | Non | ID du dossier parent (vide = racine) |
Réponse
{
"data": {
"folders": [ { "id": "123", "folderName": "My Folder 1", ... } ],
"files": [ { "id": "1161", "filename": "button_back.gif", "shortUrl": "2U1", ... } ]
},
"_status": "success",
"_datetime": "2026-08-01 14:12:11"
}
POST /folder/info
Fournit les informations d'un dossier spécifique.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
parent_folder_id | string | Non | ID du dossier |
POST /folder/edit
Modifie un dossier existant.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
folder_id | string | Oui | ID du dossier à modifier |
folder_name | string | Non | Nouveau nom |
parent_id | string | Non | Nouveau dossier parent |
is_public | int | Non | 0=Privé, 1=Non listé, 2=Public |
access_password | string (32) | Non | Hash MD5 du mot de passe |
POST /folder/delete
Supprime un dossier.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
folder_id | string | Oui | ID du dossier à supprimer |
POST /folder/move
Déplace un dossier vers un autre emplacement.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token | string | Oui | Token d'accès |
account_id | string | Oui | ID du compte |
folder_id | string | Oui | ID du dossier à déplacer |
new_parent_folder_id | string | Oui | ID du dossier de destination |
💻 Exemples de code
cURL — Authentification
curl -X POST https://rediafile.com/cloud/api/v2/authorize \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=admin" \ -d "password=mon_mot_de_passe"
cURL — Upload de fichier
curl -X POST https://rediafile.com/cloud/api/v2/file/upload \ -F "access_token=VOTRE_TOKEN" \ -F "account_id=VOTRE_ACCOUNT_ID" \ -F "upload_file=@/chemin/vers/monfichier.zip" \ -F "folder_id=123"
PHP — Upload complet
<?php
$token = 'VOTRE_ACCESS_TOKEN';
$accountId = 'VOTRE_ACCOUNT_ID';
$filePath = '/chemin/vers/fichier.jpg';
$ch = curl_init('https://rediafile.com/cloud/api/v2/file/upload');
$postData = [
'access_token' => $token,
'account_id' => $accountId,
'upload_file' => new CURLFile($filePath)
];
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
echo "URL: " . $data['data'][0]['url'];
curl_close($ch);
?>
Python — Téléchargement depuis URL
import requests, base64
url = "https://rediafile.com/cloud/api/v2/file/url_upload_add"
payload = {
"access_token": "VOTRE_TOKEN",
"account_id": "VOTRE_ACCOUNT_ID",
"file_url_base64": base64.b64encode(b"https://example.com/image.png").decode(),
"folder_id": "123"
}
response = requests.post(url, data=payload)
print(response.json())
JavaScript (Node.js) — Liste des dossiers
const axios = require('axios');
async function listFolders() {
const res = await axios.post('https://rediafile.com/cloud/api/v2/folder/listing', {
access_token: 'VOTRE_TOKEN',
account_id: 'VOTRE_ACCOUNT_ID',
parent_folder_id: '' // racine
});
console.log(res.data.data.folders);
}
listFolders();
JavaScript (Fetch) — Générer lien de téléchargement
fetch('https://rediafile.com/cloud/api/v2/file/download', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
access_token: 'VOTRE_TOKEN',
account_id: 'VOTRE_ACCOUNT_ID',
file_id: '1253'
})
})
.then(r => r.json())
.then(data => console.log(data.data.download_url));
✅ Bonnes pratiques
Toutes les requêtes doivent passer par HTTPS. Vous pouvez forcer SSL côté serveur pour garantir la sécurité des tokens et des données.
Un access_token reste valide pendant 1 heure. Stockez-le en session et réutilisez-le pour toutes vos requêtes au lieu de régénérer un token à chaque appel.
Vérifiez toujours _status dans la réponse JSON. En cas d'erreur ("error"), lisez le champ response pour le message détaillé.
Pour /file/url_upload_add, encodez toujours l'URL en base64 avant de l'envoyer. Utilisez utf-8 pour tout le texte.
Les uploads chunkés ne sont pas encore supportés. Pour les fichiers volumineux, utilisez /file/url_upload_add ou vérifiez max_upload_size via /account/package.
📊 Limites & Restrictions
| Aspect | Valeur / Comportement |
|---|---|
| Expiration token | 1 heure d'inactivité |
| Rate limiting | HTTP 429 si limite atteinte |
| Upload chunks | Non supporté actuellement |
| Upload URL distante | Max 50 URLs (selon forfait) |
| Encodage | UTF-8 obligatoire |
| Clés API | 64 caractères exactement |
| Mot de passe dossier | Hash MD5, 32 caractères |
/account/package pour connaître vos restrictions actuelles.
❓ FAQ
Connectez-vous à votre compte Rediafile → Account Settings → API Access. Vous verrez Key 1 et Key 2. Chaque clé fait exactement 64 caractères.
Oui, l'endpoint /authorize accepte soit username + password, soit key1 + key2. Les clés API sont recommandées pour les intégrations automatisées car elles ne changent pas lors d'un changement de mot de passe.
Appelez à nouveau /authorize pour obtenir un nouveau access_token. Les tokens expirent après 1 heure d'inactivité.
Utilisez le paramètre folder_id dans /file/upload. Obtenez l'ID du dossier via /folder/listing.
Les uploads chunkés ne sont pas encore disponibles. La taille max dépend de votre forfait (voir /account/package → max_upload_size). Pour les très gros fichiers, utilisez /file/url_upload_add.
Oui, l'API est compatible avec toutes les plateformes. Utilisez des requêtes HTTP POST standard depuis iOS, Android, Flutter, React Native, etc.