Idlen Logo
API annonceurs

Vue d'ensemble

Authentification, droits, limite de débit et erreurs de l'API annonceurs Idlen

Vue d'ensemble

L'API annonceurs agit pour une seule organisation : celle qui possède la clé. Elle liste et met à jour les campagnes, les annonces, les stats et le portefeuille. Les conversions côté serveur passent par un endpoint séparé. Un serveur MCP appelle cette même API.

Il n'y a pas d'accès staff ni d'accès inter-organisations. Une ressource d'une autre organisation est introuvable.

URL de base

https://tyfrhxfejrawgdlhryfu.supabase.co/functions/v1/advertiser-api

Les chemins sont ajoutés directement. Il n'y a pas de préfixe /v1.

curl 'https://tyfrhxfejrawgdlhryfu.supabase.co/functions/v1/advertiser-api/campaigns' \
  -H 'Authorization: Bearer idl_adv_xxx'
FonctionURL
API annonceurshttps://tyfrhxfejrawgdlhryfu.supabase.co/functions/v1/advertiser-api
API conversionshttps://tyfrhxfejrawgdlhryfu.supabase.co/functions/v1/conversions-api
Serveur MCPhttps://tyfrhxfejrawgdlhryfu.supabase.co/functions/v1/advertiser-mcp

Le document OpenAPI liste chaque champ et chaque code HTTP : advertiser-api.yaml.

Clés API

Créez une clé dans Ads Manager, sous Paramètres → Clés API. Seul un propriétaire ou un admin de l'organisation peut créer ou révoquer une clé. Une organisation peut avoir 25 clés actives.

La clé complète n'est affichée qu'une fois, à la création. Elle commence par idl_adv_. Ensuite, le tableau de bord ne montre que le préfixe.

Envoyez-la à chaque requête, de l'une des deux façons :

-H 'Authorization: Bearer idl_adv_xxx'
-H 'x-api-key: idl_adv_xxx'

Une clé absente, mal formée ou révoquée renvoie 401.

{
  "error": {
    "code": "unauthorized",
    "message": "Invalid API key"
  }
}

Droits

Une clé a un ou plusieurs droits parmi conversions, read et write. write n'inclut pas read. Une clé créée sans liste de droits explicite n'a que conversions.

DroitAutorise
readGET campagnes, annonces, stats, portefeuille, transactions
writePOST et PATCH campagnes, annonces, pause, reprise, lien Checkout de dépôt
conversionsPOST sur l'endpoint de conversions uniquement

Le mauvais droit renvoie 403 avec insufficient_scope.

Limite de débit

advertiser-api autorise 120 requêtes par clé et par 60 secondes. La fenêtre est fixe. Un 429 inclut Retry-After (secondes) et :

En-têteSens
X-RateLimit-LimitRequêtes autorisées dans la fenêtre (120)
X-RateLimit-RemainingRequêtes restantes après celle-ci
X-RateLimit-ResetHeure Unix de fin de fenêtre

L'endpoint de conversions n'utilise pas ce budget. POST /ads/from-url partage aussi la limite de l'extracteur de pages : 10 requêtes par organisation et par heure.

Le serveur MCP utilise les mêmes 120 requêtes par minute. Il authentifie une fois par appel HTTP et ne compte pas cet appel deux fois.

Idempotency-Key

Les requêtes POST acceptent Idempotency-Key (1 à 255 caractères ASCII imprimables). La même clé et le même corps rejouent la première réponse pendant 24 heures. La clé est limitée à la clé API.

SituationStatuterror.code
Même clé, corps différent409idempotency_key_reused
Même clé, première requête encore en cours409idempotency_in_progress
Clé hors du format400invalid_request

PATCH n'utilise pas cet en-tête.

Erreurs

Les erreurs de l'API annonceurs ont cette forme :

{
  "error": {
    "code": "not_found",
    "message": "Campaign not found"
  }
}

Les erreurs d'activation peuvent aussi inclure campaign_id et dashboard_url.

StatutcodeQuand
400invalid_requestRequête, corps ou id invalide
401unauthorizedClé absente ou inconnue
403insufficient_scopeLa clé n'a pas read ou write
404not_foundChemin inconnu, ou ressource hors de cette organisation
405method_not_allowedVerbe refusé. L'en-tête Allow liste les verbes
409first_campaign_requires_dashboard_validationLa première campagne API de l'organisation ne peut pas être activée ici
409insufficient_balanceSolde du portefeuille à zéro
409ads_pending_moderationAucune annonce n'est encore approuvée
409ad_requiredLa campagne n'a pas d'annonce livrable
409no_active_ad_setLa campagne n'a pas d'ensemble d'annonces activable
429rate_limitedPlus de 120 requêtes dans la fenêtre, ou limite de pages
500internal_errorErreur serveur
503not_readyL'API, Checkout ou l'extraction n'est pas configurée

Les jours et les filtres de dates sont en UTC. Les montants du portefeuille, des transactions, des stats, des budgets et des enchères sont des centimes de la devise du portefeuille. Cette devise est EUR, sauf si la ligne du portefeuille stocke un autre code à trois lettres. Les transactions et les jours de stats n'incluent pas de champ devise.

Pages

Copyright © 2026