GetAff
Documentation API

Journal des versions

Les versions du contrat de l’API, de la plus récente à la plus ancienne. Toutes sont compatibles : un client écrit pour la 1.0 fonctionne toujours.

Version actuelle
v1 · 1.2.0

Comment lire les versions

Le chemin porte la version majeure (/v1) ; info.version du document OpenAPI porte les évolutions compatibles listées ici. Toutes sont additives : aucun champ retiré, aucun champ obligatoire ajouté. Une rupture donnerait /v2, servie en parallèle. Chaque entrée porte la date du changement.

1.2.0 — Les webhooks signés.

  • Points d’accès des webhooks : GET et POST /v1/webhooks, GET, PATCH et DELETE /v1/webhooks/{id}, POST /v1/webhooks/{id}/rotate et POST /v1/webhooks/{id}/test. La lecture demande read, toute modification write ; dix points de terminaison au plus par compte.
  • Quatre événements — search.finished, prospect.replied, application.received, partner.approved — signés selon la spécification Standard Webhooks (webhook-id, webhook-timestamp, webhook-signature). Le secret whsec_ n’est affiché qu’une fois ; après une rotation, l’ancien cosigne pendant 24 heures.
  • Une livraison échouée est réessayée après 1 minute, 5 minutes, 30 minutes, 2 heures et 12 heures. Les contenus portent des identifiants et des comptes, jamais une adresse e-mail ni un message.
  • Les webhooks ne sont pas exposés comme outils MCP : leurs secrets finiraient dans les transcriptions des assistants.
  • Un chemin inconnu sous /api/v1 répond désormais 404 not_found en application/problem+json, après authentification, au lieu d’une page HTML.

1.1.0 — Le recrutement de partenaires par l’API, et le serveur MCP.

  • 29 nouvelles opérations, pour tout ce que font les écrans de recrutement : les sites, les critères et leurs termes de sujet générés, la recherche de partenaires et ses derniers résultats, la sélection et son passage en prospects, les prospects et la recherche d’e-mails payante, la recherche conversationnelle, l’index des créateurs (recherche, fiche, profils semblables, bibliothèque des créateurs trouvés), les concurrents et la prospection — boîtes d’envoi, séquences, inscription. Aucun point d’accès n’envoie d’e-mail directement.
  • Les portées read, search, write et spend ; les clés créées avant la 1.1 gardent exactement read.
  • La confirmation du coût : une opération qui dépense des crédits de fournisseur demande spend et un confirmCost au moins égal à l’estimation, faute de quoi elle répond 402 cost_confirmation_required avec l’estimation dans error.details et ne dépense rien. Les dépenses confirmées sont journalisées.
  • Idempotency-Key sur les écritures (24 heures, succès seulement), corps de requête limités à 32 Kio (413 payload_too_large), un plafond de débit par compte en plus de celui par clé, et 20 nouveaux codes d’erreur.
  • Le serveur MCP sur /api/mcp (Streamable HTTP, versions du protocole 2025-11-25 à 2024-11-05) : 29 outils calqués sur l’API, mêmes clés et mêmes portées ; les outils payants se confirment en deux temps avec un confirmToken.

  • Les recherches enregistrées : GET /v1/sites/{id}/partner-search/history et /history/{searchId} ; outils MCP list_saved_searches et get_saved_search.
  • Les erreurs deviennent des documents de problème RFC 9457 (application/problem+json : type, title, status, detail, instance) qui gardent le membre error de la 1.0 inchangé ; chaque type mène à sa ligne de la page des erreurs. Les 401 et 403 portent WWW-Authenticate.
  • RateLimit-Policy et RateLimit (brouillon IETF) à côté de X-RateLimit-* ; X-Request-Id et traceparent renvoyés ; un ETag sur chaque GET, If-None-Match répondu 304.
  • Découverte : /api/v1/openapi.json, /llms.txt et /llms-full.txt.
  • MCP : connexion par OAuth 2.1 (spécification d’autorisation MCP 2025-11-25, PKCE S256, métadonnées de ressource protégée, fiche du serveur sur /.well-known/mcp.json), portées par défaut read search ; outputSchema et structuredContent sur chaque outil ; enrol_in_sequence se confirme en deux temps.
  • Les prospects gagnent un champ stage, l’étape du pipeline affichée par l’écran Partenaires.

1.0.0 — Le premier contrat, en lecture seule.

  • Quatre opérations : le répertoire public des programmes (GET /v1/programs, GET /v1/programs/{slug}), le compte appelant (GET /v1/me) et ses commissions (GET /v1/commissions).
  • Clés porteuses gaff_live_…, conservées sous forme d’empreinte et affichées une seule fois ; un plafond de débit par clé selon le plan, avec X-RateLimit-Limit, X-RateLimit-Remaining et Retry-After.
  • Pagination par curseur, origines navigateur refusées (CORS) et un document OpenAPI 3.1 dérivé des schémas que les routes appliquent.

  • Les points d’accès du répertoire prennent leur chemin anglais : /v1/programmes devient /v1/programs.