Vue d'ensemble
Cet endpoint est conçu pour les intégrations qui doivent synchroniser plusieurs appels à la fois : data warehouse, workflow interne, CRM, outil de quality monitoring ou agent IA custom. Il retourne uniquement les données déjà disponibles dans SuperSales au moment de la requête.
Principe important
Si une vidéo n'est pas encore disponible, l'API retourne simplement videoUrl: null etvideoStatus: "not_available". Le transcript et le titre restent disponibles quand ils sont déjà rattachés à l'appel.
Authentification
Utilisez une clé MCP SuperSales existante. Le scope requis estcalls:read. Les droits d'accès sont ceux du rôle associé à la clé.
Authorization: Bearer ss_mcp_VOTRE_CLEEndpoint
GET https://supersales.dev/api/calls/batchLe endpoint accepte aussi le headerX-API-Key, mais le header Authorization Bearer est recommandé.
Paramètres de query
| Paramètre | Type | Requis | Description |
|---|---|---|---|
limit | number | non | Nombre de calls retournés. Défaut 10, maximum 20. |
cursor | string | non | Curseur retourné par la page précédente. |
date_from | string ISO | non | Date de début inclusive. Défaut : 7 jours avant date_to. |
date_to | string ISO | non | Date de fin inclusive. Défaut : maintenant. |
sales_rep_id | string | non | Filtre par commercial, toujours contrôlé côté serveur. |
Format de réponse
{
"data": [
{
"callRecordId": "6651a3f2e8b4c1a2d3e4f567",
"title": "Discovery call - Acme",
"meetingDate": "2026-06-02T09:30:00.000Z",
"actualDuration": 1840,
"salesRepId": "usr_123",
"salesRepName": "Sarah Martin",
"inviteeEmails": ["sarah.martin@acme.com", "prospect@client.com"],
"externalInviteeEmails": ["prospect@client.com"],
"transcript": "Prospect: ...",
"videoUrl": "https://...",
"videoUrlExpiresAt": "2026-06-02T10:30:00.000Z",
"videoStatus": "available"
}
],
"nextCursor": "eyJzY2hlZHVsZWRTdGFydFRpbWUiOiIyMDI2...",
"limit": 10,
"resultCount": 1
}Pagination
La pagination est basée sur un curseur stable. Tant quenextCursorn'est pas null, appelez la page suivante avec ce curseur.
curl "https://supersales.dev/api/calls/batch?limit=20&cursor=NEXT_CURSOR" \
-H "Authorization: Bearer ss_mcp_VOTRE_CLE"Vidéos
Le champ videoUrl contient un lien temporaire et sécurisé. Sa durée de vie est indiquée parvideoUrlExpiresAt. Si la vidéo n'est pas encore disponible, le statut vautnot_available.
Ce que l'API ne fait pas
Elle ne déclenche pas de traitement vidéo et ne crée pas de nouvelle ressource. Elle expose seulement les données déjà disponibles côté SuperSales.
Exemples
curl "https://supersales.dev/api/calls/batch?limit=20" \
-H "Authorization: Bearer ss_mcp_VOTRE_CLE"curl "https://supersales.dev/api/calls/batch?date_from=2026-06-01T00:00:00.000Z&date_to=2026-06-02T23:59:59.999Z&sales_rep_id=usr_123&limit=10" \
-H "Authorization: Bearer ss_mcp_VOTRE_CLE"const response = await fetch('https://supersales.dev/api/calls/batch?limit=20', {
headers: {
Authorization: 'Bearer ss_mcp_VOTRE_CLE'
}
})
const page = await response.json()
console.log(page.data, page.nextCursor)Limites et bonnes pratiques
Batch limité
Utilisez limit=20 maximum et suivez nextCursor.
Fenêtre de dates
La plage maximale reprend la limite MCP configurée, 90 jours par défaut.
Rate limits
Les mêmes quotas MCP sont appliqués à cette API.
Synchronisation
Préférez des batches courts et incrémentaux plutôt qu''un export massif.
Erreurs
| HTTP | Code | Cause |
|---|---|---|
| 400 | BAD_REQUEST | Paramètre invalide, curseur invalide ou plage de dates trop large. |
| 401 | UNAUTHORIZED | Clé MCP manquante ou invalide. |
| 403 | FORBIDDEN | Scope calls:read manquant ou accès commercial interdit. |
| 429 | RATE_LIMITED | Quota MCP dépassé. |
| 500 | INTERNAL_ERROR | Erreur serveur. |
Besoin d'une clé API ?
Les clés se créent depuis les paramètres MCP. Elles peuvent servir au serveur MCP et à l'API REST Calls avec le même scope calls:read.