Mise à jour majeure suite à la décision de retirer Like + Follow (impossible à vérifier sans Enterprise 42k$/mo) et de migrer vers le modèle pay-per-use de X API quand on en aura besoin.
Le seul modèle accessible aujourd'hui pour les nouveaux projets est le pay-per-use : on achète des crédits (genre 25 USD), chaque appel API consomme un peu, on recharge si besoin. Mais ce modèle ne donne accès qu'à un sous-ensemble d'endpoints. Concrètement :
| Action | Vérifiable auto ? | Endpoint | Coût/check |
|---|---|---|---|
| Retweet | ✅ OUI | /2/tweets/:id/retweeted_by | $0.010 |
| Quote tweet | ✅ OUI | /2/tweets/search/recent | $0.005 |
| Comment / Reply | ✅ OUI | /2/tweets/search/recent | $0.005 |
| Mention dans tweet | ✅ OUI | /2/tweets/search/recent | $0.005 |
| Like | ❌ Enterprise only | — | — |
| Follow | ❌ Enterprise only | — | — |
L'ancien modèle proposait 3 actions par post : Like + Retweet + Comment. Maintenant : Retweet + Quote tweet + Comment. Plus puissant pour la viralité (un like ne fait rien sortir sur X — un quote tweet expose à 300+ followers).
Les anciennes submissions action_kind='like' en attente ont été marquées rejected automatiquement avec la raison "Like verification deprecated (May 2026)".
Nouvelle action vérifiable : l'user poste un tweet original mentionnant
@diggrbot (ou le compte officiel). Bonne pour la viralité créative.
Le code utilise maintenant un flag verification_mode dans la table
app_config de la DB :
'oembed' (par défaut, gratuit) : on appelle le service oEmbed public de X
(sans clé, gratuit, illimité) pour vérifier que l'URL fournie par l'user est bien un tweet
qui mentionne notre post original.'x_api' (quand vous avez des crédits pay-per-use) : un cron Cloudflare
Workers toutes les 4h appelle directement /2/tweets/:id/retweeted_by et
cross-référence avec la DB pour auto-valider tout le monde sans qu'ils aient besoin
de soumettre leur URL.
Pour basculer en pay-per-use, il suffira d'aller dans /admin →
Settings (à venir) ou de faire UPDATE app_config SET value='"x_api"'
WHERE key='verification_mode' dans Supabase. Aucun refacto, juste un flag.
Nouvelle table api_usage_log qui tracke chaque appel X API + son coût estimé.
L'endpoint GET /api/admin/config retourne le total dépensé ce mois-ci
→ tu pourras voir en live combien de crédits il reste avant de devoir recharger.
Variable x_api_monthly_budget_usd dans app_config (par défaut 25 USD).
Quand le cron veut appeler X, il check le total dépensé ce mois — si on dépasse, il s'arrête
et bascule en mode dégradé (manuel).
C'est important parce qu'on a vu plusieurs devs en mai 2026 se faire facturer 20× trop à cause de bugs de billing X. Le double garde-fou (limite côté X + limite côté nous) évite la mauvaise surprise.
| Stade | Users actifs/jour | Quoi faire | Coût |
|---|---|---|---|
| Beta / lancement | 0–50 | oEmbed gratuit + auto-trust | 0 USD |
| Croissance | 50–500 | Acheter 25 USD de crédits X API, activer le cron auto | ~25 USD/mois |
| Mature | 500–2000 | Budget 50–150 USD/mois en crédits | ~150 USD/mois |
| Grand | 2000+ | Négocier Enterprise direct avec X | ~42k USD/mois |
/admin (UI à coder, ou directement Supabase Studio) → flag verification_mode = 'x_api'publish.twitter.com/oembed (gratuit, sans auth, pas de rate limit)Estimation : ~85% des submissions auto-vérifiées en mode gratuit, ~15% en review manuelle. En mode pay-per-use ça monte à ~100% auto.
| Feature | Statut | Estimation |
|---|---|---|
| Cron auto-verify via X API (quand crédits achetés) | code prêt, désactivé via flag | 1h pour activer |
| UI Settings dans /admin (toggle verification_mode) | endpoint API prêt, UI à faire | 1h |
| Anti-cheat re-check tweets supprimés | pas encore | 3h |
| Onboarding tour première visite | pas encore | 3h |
| Notifications in-app post-verify | pas encore | 2h |
Document généré le 2026-05-25 · Sommaire docs