Passer au contenu principal
GET
/
v3
/
validate
Valider le Token d'Accès
curl --request GET \
  --url https://api.oneclickdz.com/v3/validate \
  --header 'X-Access-Token: <api-key>'
{
  "success": true,
  "data": {
    "username": "<string>",
    "apiKey": {
      "key": "<string>",
      "isEnabled": true,
      "type": "<string>",
      "allowedips": [
        {}
      ],
      "scope": "<string>"
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.oneclickdz.com/llms.txt

Use this file to discover all available pages before exploring further.

Vue d’Ensemble

L’endpoint de validation vous permet de vérifier que votre clé API est valide et de récupérer les informations sur le compte associé ainsi que les permissions de la clé.
Cet endpoint est utile pour vérifier la validité de la clé API lors du démarrage de l’application ou après la rotation de la clé.

Réponse

success
boolean
requis
true si la validation a réussi
data
object
requis

Exemple de Requête

curl --request GET \
  --url https://api.oneclickdz.com/v3/validate \
  --header 'X-Access-Token: YOUR_API_KEY'

Exemple de Réponse

{
  "success": true,
  "data": {
    "username": "+213665983439",
    "apiKey": {
      "key": "ea27b376-9f5c-4b09-883f-1b96cd7b541c",
      "isEnabled": true,
      "type": "SANDBOX",
      "allowedips": [],
      "scope": "READ-WRITE"
    }
  }
}

Réponses d’Erreur

{
  "success": false,
  "error": {
    "code": "MISSING_ACCESS_TOKEN",
    "message": "Access token is required"
  },
  "requestId": "req_abc123"
}
{
  "success": false,
  "error": {
    "code": "INVALID_ACCESS_TOKEN",
    "message": "The provided access token is invalid",
    "details": {
      "attemptsLeft": 3
    }
  },
  "requestId": "req_abc123"
}
Après 5 tentatives échouées, votre IP sera temporairement bloquée pendant 15 minutes.
{
  "success": false,
  "error": {
    "code": "IP_BLOCKED",
    "message": "Your IP has been temporarily blocked due to too many invalid attempts"
  },
  "requestId": "req_abc123"
}

Cas d’Utilisation

Validation au Démarrage

Vérifiez la clé API lors de l’initialisation de l’application

Vérifications de Santé

Incluez dans les routines de vérification de santé de l’application

Vérification de l'Environnement

Confirmez que vous utilisez la bonne clé (sandbox ou production)

Vérification des Permissions

Vérifiez la portée et les permissions de la clé avant les opérations

Exemple d’Intégration

class OneClickDzClient {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseUrl = "https://api.oneclickdz.com";
    this.validated = false;
  }

  async validate() {
    const response = await fetch(`${this.baseUrl}/v3/validate`, {
      headers: { "X-Access-Token": this.apiKey },
    });

    const data = await response.json();

    if (!data.success) {
      throw new Error(`API key validation failed: ${data.error.message}`);
    }

    this.username = data.data.username;
    this.keyType = data.data.apiKey.type;
    this.scope = data.data.apiKey.scope;
    this.validated = true;

    console.log(`✓ Authenticated as ${this.username} (${this.keyType})`);

    return data.data;
  }

  async request(endpoint, options = {}) {
    if (!this.validated) {
      await this.validate();
    }

    // Check if operation requires write access
    if (
      options.method &&
      options.method !== "GET" &&
      this.scope === "READ-ONLY"
    ) {
      throw new Error("This operation requires READ-WRITE access");
    }

    return fetch(`${this.baseUrl}${endpoint}`, {
      ...options,
      headers: {
        ...options.headers,
        "X-Access-Token": this.apiKey,
      },
    });
  }
}

// Usage
const client = new OneClickDzClient(process.env.ONECLICKDZ_API_KEY);
await client.validate();

// Now make requests
const response = await client.request("/v3/account/balance");

Bonnes Pratiques

Validez toujours votre clé API lors du démarrage de l’application
// During app initialization
async function initializeApp() {
  try {
    await client.validate();
    console.log('✓ API client initialized');
  } catch (error) {
    console.error('✗ Failed to initialize API client:', error);
    process.exit(1);
  }
}
Ne validez pas à chaque requête - mettez en cache le résultat
let validationCache = {
  validated: false,
  timestamp: 0,
  data: null
};

async function getValidatedClient() {
  const now = Date.now();
  const cacheExpiry = 5 * 60 * 1000; // 5 minutes
  
  if (validationCache.validated && (now - validationCache.timestamp) < cacheExpiry) {
    return validationCache.data;
  }
  
  const response = await fetch('https://api.oneclickdz.com/v3/validate', {
    headers: { 'X-Access-Token': API_KEY }
  });
  
  const data = await response.json();
  
  if (data.success) {
    validationCache = {
      validated: true,
      timestamp: now,
      data: data.data
    };
  }
  
  return data.data;
}
Vérifiez que vous utilisez le bon environnement
const data = await validateApiKey();

const isProduction = process.env.NODE_ENV === 'production';
const keyType = data.apiKey.type;

if (isProduction && keyType === 'SANDBOX') {
  throw new Error('⚠️ Using SANDBOX key in production environment!');
}

if (!isProduction && keyType === 'PRODUCTION') {
  console.warn('⚠️ Using PRODUCTION key in development environment!');
}
Implémentez une gestion d’erreur appropriée
async function validateWithRetry(maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      const response = await fetch('https://api.oneclickdz.com/v3/validate', {
        headers: { 'X-Access-Token': API_KEY }
      });
      
      const data = await response.json();
      
      if (data.success) {
        return data.data;
      }
      
      if (data.error.code === 'INVALID_ACCESS_TOKEN') {
        throw new Error('Invalid API key - check your configuration');
      }
      
      if (data.error.code === 'IP_BLOCKED') {
        throw new Error('IP blocked - too many failed attempts');
      }
      
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await new Promise(resolve => setTimeout(resolve, 1000 * (i + 1)));
    }
  }
}

Endpoints Connexes

Vérification de Santé

Vérifier l’état du service API

Obtenir le Solde

Vérifier le solde de votre compte