API — Applications
Les applications sont le cœur de SendAs.me. Chaque application représente un service ou une intégration qui utilise la passerelle SMTP.
Chaque application possède deux clés distinctes :
app_id: identifiant slug (ex:moncrm), utilisé comme username SMTPpushable_key: clé préfixéepk_..., utilisée dans les URLs de connexion OAuth et comme référence dans l'API REST
GET /apps
Liste toutes les applications du subscriber.
Requête :
GET /apps
X-Api-Secret: sk_votre_cle_api
Réponse 200 :
{
"apps": [
{
"app_id": "moncrm",
"name": "Mon CRM",
"pushable_key": "pk_AbCdEfGhIjKlMnOpQrStUvWx",
"logo_url": "https://example.com/logo.png",
"multiuser": false,
"multilink": false,
"webhook_url": "https://example.com/webhook",
"callback_url": "",
"created_at": "2026-01-10T08:00:00+00:00",
"users_count": 1
}
]
}
POST /apps
Crée une nouvelle application.
Requête :
POST /apps
X-Api-Secret: sk_votre_cle_api
Content-Type: application/json
Corps :
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
name | string | Oui | Nom de l'application |
logo_url | string | Non | URL vers le logo de l'application |
multiuser | boolean | Non | Mode multi-utilisateurs. Défaut : false |
multilink | boolean | Non | Plusieurs comptes OAuth du même plugin. Défaut : false |
webhook_url | string | Non | URL pour recevoir les webhooks d'événements |
callback_url | string | Non | URL de redirection après connexion OAuth |
{
"name": "Mon CRM",
"logo_url": "https://example.com/logo.png",
"multiuser": false,
"webhook_url": "https://example.com/webhook"
}
Réponse 201 :
{
"app_id": "moncrm",
"name": "Mon CRM",
"pushable_key": "pk_AbCdEfGhIjKlMnOpQrStUvWx",
"multiuser": false,
"multilink": false,
"webhook_url": "https://example.com/webhook",
"callback_url": "",
"webhook_secret": "whs_...",
"send_key": "sek_..."
}
send_key (mot de passe SMTP) et webhook_secret sont inclus dans la réponse de création. Ils peuvent être récupérés à tout moment via les endpoints dédiés, mais conservez-les en lieu sûr.
GET /apps/{pushable_key}
Récupère les détails d'une application.
Requête :
GET /apps/pk_AbCdEfGhIjKlMnOpQrStUvWx
X-Api-Secret: sk_votre_cle_api
Réponse 200 :
{
"app_id": "moncrm",
"name": "Mon CRM",
"pushable_key": "pk_AbCdEfGhIjKlMnOpQrStUvWx",
"logo_url": "https://example.com/logo.png",
"multiuser": false,
"multilink": false,
"webhook_url": "https://example.com/webhook",
"callback_url": "",
"created_at": "2026-01-10T08:00:00+00:00",
"users": [
{
"user_key": "e2efd360-eb67-4691-929e-ccfd3920c7b6",
"email": "alice@gmail.com",
"plugin": "gmail"
}
]
}
PUT /apps/{pushable_key}
Modifie une application existante.
Requête :
PUT /apps/pk_AbCdEfGhIjKlMnOpQrStUvWx
X-Api-Secret: sk_votre_cle_api
Content-Type: application/json
Corps (tous les champs sont optionnels) :
{
"name": "CRM Production",
"webhook_url": "https://example.com/webhook/v2",
"callback_url": "https://example.com/oauth/callback",
"logo_url": "https://example.com/logo-v2.png"
}
Réponse 200 :
{
"app_id": "moncrm",
"name": "CRM Production",
"pushable_key": "pk_AbCdEfGhIjKlMnOpQrStUvWx"
}
DELETE /apps/{pushable_key}
Supprime une application.
La suppression d'une application est définitive. Les tokens OAuth, la configuration webhook et les données d'envoi associés sont perdus.
Requête :
DELETE /apps/pk_AbCdEfGhIjKlMnOpQrStUvWx
X-Api-Secret: sk_votre_cle_api
Réponse 200 :
{
"deleted": "moncrm"
}
GET /apps/{pushable_key}/send-key
Retourne la send_key (mot de passe SMTP) en clair.
Requête :
GET /apps/pk_AbCdEfGhIjKlMnOpQrStUvWx/send-key
X-Api-Secret: sk_votre_cle_api
Réponse 200 :
{
"send_key": "sek_..."
}
POST /apps/{pushable_key}/reset-send-key
Génère une nouvelle send_key. L'ancienne est immédiatement invalidée.
Requête :
POST /apps/pk_AbCdEfGhIjKlMnOpQrStUvWx/reset-send-key
X-Api-Secret: sk_votre_cle_api
Réponse 200 :
{
"send_key": "sek_..."
}
POST /apps/{pushable_key}/reset-pushable-key
Génère une nouvelle pushable_key. Les liens de connexion OAuth utilisant l'ancienne clé deviennent invalides.
Requête :
POST /apps/pk_AbCdEfGhIjKlMnOpQrStUvWx/reset-pushable-key
X-Api-Secret: sk_votre_cle_api
Réponse 200 :
{
"pushable_key": "pk_..."
}
GET /me
Retourne les informations du subscriber authentifié.
Requête :
GET /me
X-Api-Secret: sk_votre_cle_api
Réponse 200 :
{
"subscriber_id": "sub_...",
"label": "Mon Entreprise",
"email": "contact@monentreprise.com",
"api_secret": "sk_...",
"created_at": "2026-01-01T00:00:00+00:00",
"stripe_customer_id": "cus_...",
"subscription_status": "active"
}
POST /me/reset-api-secret
Régénère la clé API du subscriber. L'ancienne clé est immédiatement invalidée.
Requête :
POST /me/reset-api-secret
X-Api-Secret: sk_votre_cle_api
Réponse 200 :
{
"api_secret": "sk_..."
}
POST /send
Envoie un email via le plugin OAuth d'une application.
Requête :
POST /send
X-Api-Key: sek_votre_send_key
Content-Type: application/json
POST /send utilise X-Api-Key (send_key de l'app), pas X-Api-Secret (clé subscriber).
Corps :
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
pk | string | Oui | pushable_key de l'application |
to | string | Oui | Adresse email du destinataire |
subject | string | Oui | Sujet de l'email |
body | string | Oui* | Corps texte de l'email |
html | string | Oui* | Corps HTML de l'email (*body ou html requis) |
user_id | string | Si multiuser | Identifiant de l'utilisateur (mode multiuser uniquement) |
plugin | string | Non | Forcer le plugin : gmail ou office365 |
{
"pk": "pk_AbCdEfGhIjKlMnOpQrStUvWx",
"to": "destinataire@example.com",
"subject": "Votre commande a été expédiée",
"body": "Bonjour, votre commande est en route.",
"html": "<p>Bonjour, votre commande est <strong>en route</strong>.</p>"
}
Réponse 200 :
{
"status": "sent",
"from": "noreply@monentreprise.com",
"to": "destinataire@example.com",
"plugin": "gmail",
"message_id": "19d300d4a2c2c47d"
}