Skip to content

Référence de l'API

Base : https://app.durum.ai/api/v1 Auth : en-tête Authorization: Bearer durum_sk_live_… Toutes les routes sont en GET (lecture seule) et retournent { "data": … }.

Paramètres de période communs : from et to au format YYYY-MM-DD (optionnels).

Index auto-documenté

GET /v1 (sans route) retourne la liste des routes disponibles et le scope requis.

Dashboard

RouteScopeParamètres
GET /dashboard/kpisread:dashboardfrom, to
GET /dashboard/dailyread:dashboardfrom, to
GET /dashboard/breakdownsread:dashboardfrom, to, dim = source|campaign|product|rep

Publicités

RouteScopeParamètres
GET /ads/spendread:adsfrom, to
GET /ads/campaignsread:adsfrom, to
GET /ads/rulesread:ads— vos règles d'ads automatisées
GET /ads/rules/runsread:adsrule_id, limit — historique d'exécution d'une règle

Attribution

RouteScopeParamètres
GET /attributionread:attributionfrom, to
GET /attribution/healthread:attribution
GET /attribution/reportread:attributionfrom, to

Événements

RouteScopeParamètres
GET /eventsread:eventstype, from, to, limit (max 200), cursor, rep
GET /events/summaryread:eventsfrom, to

Pagination : events retourne 50 lignes par défaut ; utilisez cursor (timestamp ISO de la dernière ligne) pour la page suivante.

Ventes & Finance

RouteScopeParamètres
GET /sales/summaryread:salesfrom, to
GET /sales/repsread:salesfrom, to
GET /sales/cycleread:salesfrom, to
GET /finance/pnlread:financefrom, toles champs de marge sont retirés

Funnel

RouteScopeParamètres
GET /funnelread:funnelfrom, to

Contacts & Appels

RouteScopeParamètres
GET /contactsread:contactsfrom, to, limit (max 500), offset, search
GET /contacts/callsread:callsemail
GET /contacts/customersread:contacts
GET /contacts/purchasesread:contactsfrom, to

ICP & Pixels

RouteScopeParamètres
GET /icp/criteriaread:icp
GET /capi/pixelsread:capi— — vos pixels Meta connectés (IDs, défaut) ; les tokens ne sont jamais retournés

Écriture (actions)

Les écritures utilisent PUT avec un corps JSON. Elles exigent un scope write:*.

RouteScopeCorps
PUT /goalswrite:goals{ "goals": { … } } — remplace vos objectifs KPI
PUT /sale-rulewrite:settings{ "sale_rule": { … } } — règle de comptage des ventes
PUT /icpwrite:icp{ "icp": { … } } — vos critères ICP
POST /ads/rules/enablewrite:ads{ "rule_id": "…", "enabled": true } — activer/désactiver une règle
POST /ads/rules/dry-runwrite:ads{ "rule_id": "…", "dry_run": true } — mode simulation (n'agit pas sur Meta)
POST /ads/rules/deletewrite:ads{ "rule_id": "…" } — supprimer une règle
bash
curl -X PUT "https://app.durum.ai/api/v1/goals" \
  -H "Authorization: Bearer durum_sk_live_VOTRE_CLE" \
  -H "Content-Type: application/json" \
  -d '{"goals": {"revenue_target": 100000}}'

Codes de réponse

CodeSignification
200OK — { "data": … }
401Clé API manquante ou invalide
403insufficient_scope — la clé n'a pas le scope requis
404Route inconnue
429Débit dépassé (voir en-têtes X-RateLimit-*)

Exemple

bash
curl "https://app.durum.ai/api/v1/attribution?from=2026-06-01&to=2026-06-30" \
  -H "Authorization: Bearer durum_sk_live_VOTRE_CLE"
json
{ "data": [ { "ad_name": "…", "attributed_revenue": 12400, "spend": 3100, "roas": 4.0 } ] }

Propulsé par DURUM.ai — attribution publicitaire et intelligence opérationnelle