Aller au contenu principal

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.

Identifiants

Chaque application possède deux clés distinctes :

  • app_id : identifiant slug (ex: moncrm), utilisé comme username SMTP
  • pushable_key : clé préfixée pk_..., 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 :

ChampTypeObligatoireDescription
namestringOuiNom de l'application
logo_urlstringNonURL vers le logo de l'application
multiuserbooleanNonMode multi-utilisateurs. Défaut : false
multilinkbooleanNonPlusieurs comptes OAuth du même plugin. Défaut : false
webhook_urlstringNonURL pour recevoir les webhooks d'événements
callback_urlstringNonURL 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 et webhook_secret

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.

Action irréversible

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
Authentification

POST /send utilise X-Api-Key (send_key de l'app), pas X-Api-Secret (clé subscriber).

Corps :

ChampTypeObligatoireDescription
pkstringOuipushable_key de l'application
tostringOuiAdresse email du destinataire
subjectstringOuiSujet de l'email
bodystringOui*Corps texte de l'email
htmlstringOui*Corps HTML de l'email (*body ou html requis)
user_idstringSi multiuserIdentifiant de l'utilisateur (mode multiuser uniquement)
pluginstringNonForcer 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"
}