GetAff
Documentation API

Authentification

Chaque appel porte une clé d'API dans l'en-tête Authorization. Il n'existe aucun autre mode d'authentification.

L'en-tête

Le schéma est Bearer. Une clé absente, mal formée, inconnue ou révoquée donne toujours un 401 — les quatre cas se distinguent par le champ code de la réponse, jamais par le statut HTTP.

HTTP
Authorization: Bearer gaff_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Node.js
const res = await fetch('https://getaff.org/api/v1/me', {
  headers: { Authorization: `Bearer ${process.env.GETAFF_API_KEY}` },
});

if (res.status === 401) {
  // Read the code, not the message: it is the stable part of the contract.
  const { error } = await res.json();
  throw new Error(`GetAff rejected the key: ${error.code}`);
}

Affichée une seule fois

Nous ne conservons qu'une empreinte de votre clé, jamais sa valeur. Personne — pas même nous — ne peut vous la rappeler après sa création. Si vous la perdez, révoquez-la et créez-en une autre : c'est une opération sans conséquence.

Où la conserver

Une clé d'API donne accès à vos revenus. Traitez-la comme un mot de passe de production.

  • Dans un gestionnaire de secrets, ou à défaut une variable d’environnement.
  • Jamais dans un dépôt de code, même privé : un dépôt privé finit par être cloné.
  • Jamais dans un ticket, un message ou une capture d’écran.
  • Une clé par intégration, pour pouvoir en révoquer une sans arrêter les autres.
Jamais dans un navigateur

Le préfixe gaff_live_ est reconnaissable à dessein : il est détecté par les scanners de secrets des forges et il saute aux yeux dans un journal. C'est notre meilleure chance de repérer une fuite pendant qu'elle est encore réparable.

En cas de fuite

Révoquez immédiatement depuis la page « Clés d'API ». La révocation prend effet sur l'appel suivant. La ligne est conservée, marquée révoquée, avec sa date de dernier usage : c'est ce qui permet de savoir si la clé a servi après avoir fuité.

Clés d'API

Portées

Toute clé porte aujourd'hui la portée read, la seule qui existe. Le champ est déjà présent dans la réponse de /v1/me pour qu'un client écrit aujourd'hui continue de fonctionner le jour où d'autres portées apparaîtront.

API — authentification — GetAff