← Retour au blog
8 min de lecture
Produit

Guide complet de l'API Orilyt

Automatisez vos audits WordPress : un endpoint, un JSON, 80+ tests

Guide complet de l'API Orilyt

Un seul appel, 80+ tests

Vous faites des audits manuellement, un par un, depuis le dashboard ? C'est pratique — mais quand vous gérez 20, 50 ou 100 sites, ça ne passe plus à l'échelle.

L'API REST Orilyt résout ce problème : un seul appel GET, une clé d'authentification, et vous recevez un JSON structuré avec les résultats des 80+ tests — prêt à être traité, stocké ou affiché dans votre propre outil.

L'endpoint

Un seul endpoint, en lecture seule (GET). Simple et efficace.

Endpoint GET https://orilyt.com/api_v1.php?url=https://example.com

Authentification

Trois méthodes supportées — choisissez celle qui convient à votre stack :

1 Header Authorization: Bearer (recommandé)
2 Header X-API-Key
3 Query string ?key= (fallback)
Tip: Votre clé API se trouve dans votre compte Orilyt, section "API". Chaque appel consomme 1 crédit.

Anatomie de la réponse

Le JSON retourné contient tout ce qu'il faut pour reconstruire un rapport complet :

status — "ok" ou "error"
global_score — score global /100
sections — scores par catégorie (performance, SEO, sécurité, UX)
tests — tableau de 58 objets (id, slug, label, score, status, details)
target — informations serveur (IP, CMS, hébergeur, PHP, HTTPS)
meta — audit_id, site_id, durée d'exécution, timestamp
JSON { "status": "ok", "data": { "global_score": 82, "sections": { "performance": { "score": 88, "tests": [...] }, "seo": { "score": 75, "tests": [...] }, "security": { "score": 91, "tests": [...] }, "ux": { "score": 70, "tests": [...] } }, "tests": [ { "id": 1, "slug": "ssl_check", "label": "SSL / HTTPS", "score": 100, "status": "ok", "details": { ... } }, ... ], "target": { "url": "https://example.com", "ip": "93.184.216.34", "cms": "wordpress", "php_version": "8.2", "https": true } }, "audit_id": 1234, "site_id": 56, "meta": { "duration_ms": 14520, "timestamp": "2026-03-03T10:15:00Z" } }

Exemples d'intégration

cURL (ligne de commande)

cURL curl -s "https://orilyt.com/api_v1.php?url=https://example.com&lang=fr" \ -H "Authorization: Bearer YOUR_API_KEY" \ | jq .

Python (requests)

Python import requests API_KEY = "YOUR_API_KEY" url = "https://orilyt.com/api_v1.php" params = {"url": "https://example.com", "lang": "fr"} headers = {"Authorization": f"Bearer {API_KEY}"} resp = requests.get(url, params=params, headers=headers, timeout=120) data = resp.json() if data["status"] == "ok": print(f"Score: {data['data']['global_score']}/100") for test in data["data"]["tests"]: print(f" {test['slug']}: {test['score']}") else: print(f"Error: {data['error']}")

PHP (natif)

PHP <?php $apiKey = 'YOUR_API_KEY'; $target = 'https://example.com'; $ch = curl_init("https://orilyt.com/api_v1.php?url=" . urlencode($target) . "&lang=fr"); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 120, CURLOPT_HTTPHEADER => ["Authorization: Bearer $apiKey"], ]); $json = curl_exec($ch); $data = json_decode($json, true); if ($data['status'] === 'ok') { echo "Score: " . $data['data']['global_score'] . "/100\n"; }

Node.js (fetch)

Node.js const API_KEY = 'YOUR_API_KEY'; const url = new URL('https://orilyt.com/api_v1.php'); url.searchParams.set('url', 'https://example.com'); url.searchParams.set('lang', 'fr'); const resp = await fetch(url, { headers: { 'Authorization': `Bearer ${API_KEY}` }, signal: AbortSignal.timeout(120_000), }); const data = await resp.json(); if (data.status === 'ok') { console.log(`Score: ${data.data.global_score}/100`); data.data.tests.forEach(t => console.log(` ${t.slug}: ${t.score}`) ); }

Paramètres optionnels

lang — Langue du rapport (fr, en, es, de). Par défaut : en.
Note: Aucun callback/webhook pour l'instant — la réponse est synchrone.

Gestion des erreurs

L'API retourne des codes HTTP standards avec un JSON structuré :

400 URL manquante ou invalide (missing_url, invalid_url)
401 Clé API manquante ou invalide (missing_api_key, invalid_api_key)
402 Crédits insuffisants (insufficient_credits)
422 Site inaccessible (site_unreachable, site_blocked_by_waf) — 4xx/5xx distant, timeout, redirect loop, ou WAF bloquant notre scanner
429 Rate limit atteint (ip_rate_limited) — header Retry-After inclus
500 Erreur interne (internal_error)
Error JSON { "status": "error", "code": "insufficient_credits", "error": "Not enough credits to run this audit." }

Cas d'usage courants

Monitoring automatisé

Lancez un audit hebdomadaire via cron sur tous vos sites clients. Stockez les scores et détectez les régressions.

Intégration SaaS

Intégrez les résultats dans votre propre dashboard client, CRM ou outil de maintenance WordPress.

Pipeline CI/CD

Ajoutez un audit post-déploiement dans votre pipeline. Si le score descend sous un seuil, bloquez la mise en production.

Génération de rapports

Combinez l'API avec le mode white-label pour générer des rapports automatiques à votre image.

Limites et bonnes pratiques

1 crédit par appel — vérifiez votre solde avant de lancer un batch
Rate limiting par IP (configurable par l'admin) — respectez le header Retry-After
Cachez les résultats côté client — un audit par site par jour suffit généralement
Timeout recommandé : 120 secondes — certains sites lents prennent plus de temps
HTTPS obligatoire en production
Prêt à automatiser ?
Créez votre compte Orilyt, récupérez votre clé API et lancez votre premier audit en moins de 2 minutes.
Créer un compte gratuit
Précédent Comptes équipe : gérez vos audits à plusieurs avec le plan Agency Suivant Comment integrer les audits Orilyt dans votre workflow d'agence avec l'API