Pour les développeurs
Référence de l'API
Intégrez l'optimisation par IA de DEXUN AdWhiz sur trois plateformes à vos propres outils, scripts ou backend via REST.
URL de base
Toutes les requêtes API sont envoyées à cette racine :
https://www.7275.com/api/v1HTTPS est obligatoire. Les requêtes HTTP sont rejetées (pas de redirection).
Authentification
Chaque requête doit inclure un jeton Bearer dans l'en-tête Authorization. Générez-en un dans le tableau de bord → Paramètres → API Keys. Les clés existent en version live et test, et n'accèdent qu'à leur propre environnement.
curl https://www.7275.com/api/v1/accounts \
-H "Authorization: Bearer dxk_live_...your-key..."- Format de clé live : commence par dxk_live_, 64 caractères
- Format de clé test : commence par dxk_test_, limitée au compte sandbox
- N'utilisez jamais de clés dans du code front-end — passez par votre propre backend
- En cas de fuite, révoquez la clé et régénérez-en une immédiatement dans le tableau de bord
Utilisation directe depuis Claude Desktop / Cursor (serveur MCP)
Nous publions un serveur Model Context Protocol sans dépendance pour que des clients MCP comme Claude Desktop et Cursor lisent directement l'état de votre compte AdWhiz. Aucun code à écrire : copiez un bloc de configuration, collez votre clé API et redémarrez le client.
- Cinq outils en lecture seule : lister les comptes publicitaires, afficher les recommandations de l'IA, obtenir les économies du mois, consulter l'activité récente, vérifier le quota API
- Les outils d'écriture (apply / pause) ne sont volontairement pas encore exposés — ils attendent que l'optimiseur sorte du shadow mode et que nous disposions de preuves de calibration pour les encadrer
- Un seul script Node 18+. Aucun npm install. Fonctionne sans problème sur des machines hors ligne / isolées (airgapped)
- Votre clé API ne quitte jamais votre machine. Toutes les requêtes vont en HTTPS directement vers www.7275.com
Ajoutez ceci au fichier claude_desktop_config.json de Claude Desktop (macOS : ~/Library/Application Support/Claude/, Windows : %APPDATA%\Claude\) :
{
"mcpServers": {
"adwhiz": {
"command": "node",
"args": ["/path/to/mcp-server/src/index.mjs"],
"env": {
"ADWHIZ_API_KEY": "dxk_live_..."
}
}
}
}Guide d'installation complet, configuration de Cursor et dépannage sur GitHub : github.com/dexun-inc/adwhiz/mcp-server.
Endpoints
L'API v1 expose 13 endpoints principaux couvrant l'identité, la lecture des comptes, la génération des recommandations (leur application n'est pas encore disponible), les journaux d'audit, la gestion des clés API, l'introspection du quota et le flux du changelog.
| Méthode | Chemin | Description |
|---|---|---|
| GET | /me | Renvoie le propriétaire du jeton appelant + le quota de rate limit restant (whoami) |
| GET | /accounts | Liste tous les comptes publicitaires connectés par l'utilisateur actuel (sur les trois plateformes) |
| GET | /accounts/{id}/campaigns | Liste les campagnes, groupes d'annonces, mots clés et métriques sur 7/30 jours d'un compte |
| POST | /recommendations/generate | Demande à l'IA de générer un nouveau lot de recommandations d'optimisation |
| GET | /recommendations | Liste toutes les recommandations en attente / appliquées / ignorées |
| POST | /recommendations/{id}/apply | Appliquer une recommandation — pas encore disponible : renvoie 501 not_supported et ne modifie rien |
| POST | /recommendations/{id}/dismiss | Ignorer une recommandation — pas encore disponible : renvoie 501 not_supported et ne modifie rien |
| POST | /changes/{id}/rollback | Annuler une modification appliquée — pas encore disponible : renvoie 501 not_supported et ne modifie rien |
| GET | /audit-log | (Obsolète, retrait le 2027-05-23) Journal d'audit complet. Utilisez plutôt /audit-events — alimenté par la vraie table audit_events, avec filtre ?kind |
| GET | /audit-events | Flux d'événements d'audit de sécurité (connexion / mot de passe / OAuth / abonnement), avec filtres ?since + ?kind |
| GET | /api-keys | Liste les clés API de l'appelant (y compris lastUsedAt + active) ; hashedKey n'est jamais renvoyé |
| GET | /usage | Lit le tier actuel, la limite RPM, le restant et reset_at sans requête de sondage |
| GET | /changelog | Flux JSON du changelog produit (public, sans authentification) avec ETag + ?lang + ?limit (1..50) + ?since=YYYY-MM-DD — le format de référence pour l'interrogation incrémentale |
Exemple de requête
Générez de nouvelles recommandations d'optimisation sur les trois plateformes :
curl -X POST https://www.7275.com/api/v1/recommendations/generate \
-H "Authorization: Bearer dxk_live_..." \
-H "Content-Type: application/json" \
-d '{
"account_id": "ga-548-203-7184",
"platforms": ["google_ads", "meta_ads", "tiktok_ads"],
"window": "7d"
}'Exemple de réponse :
{
"summary": "Pausing 3 high-CPA keywords and reallocating budget...",
"recommendations": [
{
"id": "rec_001",
"type": "pause_keyword",
"target": { "accountId": "ga-548-203-7184", "keywordText": "wool socks" },
"title": "Pause broad-match 'wool socks'",
"reason": "7-day CPA $45.82 vs target $8",
"expectedImpact": "Save ~$412/week",
"confidence": "high"
}
]
}Interroger /changelog de façon incrémentale
/api/v1/changelog est un endpoint public (aucune clé API requise) avec quatre leviers pour économiser la bande passante : ETag + If-None-Match, Last-Modified + If-Modified-Since (curl -z), ?since=YYYY-MM-DD pour filtrer par date et ?limit=N pour limiter la taille. Les SDK et scripts cron peuvent les combiner pour interroger souvent sans retélécharger le même JSON.
# 1. First call — store the ETag (or Last-Modified) you get back.
curl -i 'https://www.7275.com/api/v1/changelog?limit=10'
# 2. Subsequent calls — pass the stored ETag.
# Server returns 304 with empty body if nothing has shipped.
curl -i 'https://www.7275.com/api/v1/changelog?limit=10' \
-H 'If-None-Match: "abc123..."'
# 3. Or anchor on a date instead of an ETag.
# Only entries whose `date >= since` come back; pair with ?limit
# to cap the response size.
curl 'https://www.7275.com/api/v1/changelog?since=2026-01-01&limit=20'
# 4. curl -z for Last-Modified-style conditional GET (no ETag needed):
curl -z 'Mon, 20 May 2026 00:00:00 GMT' \
'https://www.7275.com/api/v1/changelog'Limites de débit
Échelonnées selon le forfait d'abonnement pour ne pas saturer les quotas en amont de Google / Meta / TikTok :
- Professional : 120 requêtes/minute
- Business : 600 requêtes/minute
- Enterprise : sur mesure (généralement 3 000 requêtes/minute)
- Au-delà de la limite, la réponse est 429 + en-tête retry-after — backoff exponentiel recommandé
Codes d'erreur
Toutes les erreurs renvoient du JSON avec error.code, error.message et error.request_id :
| Statut HTTP | Signification |
|---|---|
401 | Clé API manquante ou invalide |
403 | Compte non autorisé pour cette ressource (scope OAuth insuffisant) |
404 | Ressource introuvable ou supprimée |
422 | Paramètres de requête invalides |
429 | Limite de débit dépassée — attendez le délai indiqué par l'en-tête retry-after |
500 | Erreur serveur — signalée automatiquement |
503 | API de la plateforme en amont temporairement indisponible (Google / Meta / TikTok) |