Authentification
Clés d'API pour vos programmes, OAuth pour les applications qui agissent au nom d'un utilisateur.
Chaque requête porte un jeton dans l'en-tête Authorization :
Authorization: Bearer lid_live_…Deux sortes de jetons : une clé d'API, pour vos propres programmes, et un jeton OAuth, pour une application qui agit au nom d'un utilisateur de Lidmeo (un assistant IA, un outil du marché).
Clés d'API
| Préfixe | Donne accès à |
|---|---|
lid_live_… | votre compte, en réel |
lid_test_… | le compte de test de votre compte (rien ne part jamais) |
lid_org_live_… | tous les comptes d'une agence, en réel |
lid_org_test_… | les comptes de test d'une agence |
Créer une clé : Lidmeo, Intégrations, rubrique Clés d'API, Créer une clé. Choisissez un nom, les Données (Votre compte (réel) ou Le compte de test (fictif, rien ne part vers LinkedIn)) et les droits, puis Créer la clé. La clé n'est montrée qu'une fois : Lidmeo n'en garde qu'une empreinte et ne peut pas vous la redonner. Un compte a au plus 20 clés actives.
Les droits : une nouvelle clé reçoit tous les droits sauf celui d'envoyer (sends:write), qui se coche en connaissance de cause. Donnez à chaque clé les seuls droits dont elle a besoin. La liste : les droits.
Révoquer : le bouton de la clé, dans Intégrations. Elle cesse de fonctionner tout de suite. Une clé exposée (publiée dans un dépôt, collée dans un message) doit être révoquée, puis remplacée.
Les clés d'agence arrivent dans le portail. D'ici là, une agence donne accès à tous ses comptes par une connexion OAuth : voir les agences.
Une clé vit sur un serveur
Ne mettez jamais une clé dans une page web, une application mobile ou un dépôt de code : quiconque la lit agit sur votre compte. Gardez-la dans une variable d'environnement ou un coffre à secrets.
OAuth
Pour une application qui agit au nom d'utilisateurs de Lidmeo : chaque utilisateur se connecte à Lidmeo, choisit le compte et les droits, et votre application reçoit un jeton à son nom. C'est le chemin que prennent Claude, ChatGPT et les outils d'automatisation.
| Découverte (RFC 8414) | https://hub.lidmeo.com/.well-known/oauth-authorization-server |
| Autorisation | https://hub.lidmeo.com/oauth/authorize |
| Jetons | https://hub.lidmeo.com/oauth/token |
| Enregistrement dynamique (RFC 7591) | https://hub.lidmeo.com/oauth/register |
| Révocation (RFC 7009) | https://hub.lidmeo.com/oauth/revoke |
- Code d'autorisation avec PKCE (
code_challenge_method=S256), obligatoire, y compris pour un client confidentiel. - La ressource (RFC 8707) :
resource=https://api.lidmeo.compour l'API (la valeur par défaut),https://mcp.lidmeo.com/mcppour le connecteur IA. Un jeton ne vaut que pour sa ressource. - Les droits : les mêmes que pour les clés, dans
scope, séparés par des espaces. Sansscope, tous sont proposés, et l'utilisateur décoche ce qu'il refuse. - Durées : le jeton d'accès vaut une heure. Il arrive avec un jeton d'actualisation, valable 60 jours, qui change à chaque usage (rotation). Deux rafraîchissements simultanés reçoivent le même successeur ; un jeton d'actualisation déjà servi qui revient plus tard est pris pour un vol et fait tomber toute la connexion.
- La révocation : révoquer un jeton, d'accès ou d'actualisation, coupe toute la connexion. L'utilisateur doit alors se connecter de nouveau.
- L'identité du client : un document de métadonnées publié à une adresse HTTPS (votre
client_idest alors cette adresse), ou l'enregistrement dynamique.
Un jeton refusé reçoit 401 avec l'en-tête WWW-Authenticate, qui pointe les métadonnées de la ressource protégée (RFC 9728) ; un droit manquant, 403 avec error="insufficient_scope".
L'utilisateur voit chaque application connectée dans Intégrations, rubrique Applications connectées, et peut la déconnecter à tout moment : ses jetons tombent en moins d'une minute.
Les refus
| Code | Quand |
|---|---|
401 unauthorized | aucun jeton |
401 invalid_api_key | clé inconnue ou mal recopiée |
401 api_key_revoked, 401 api_key_expired | clé révoquée ou expirée |
401 invalid_token | jeton OAuth inconnu, expiré ou révoqué |
403 insufficient_scope | droit manquant (required_scopes le nomme) |
403 subscription_inactive | l'abonnement du compte est arrêté |
Le détail de chaque code : les erreurs.