Table des Matières
    Vue d’ensemble
    Obtenir la valeur API_KEY_TOKEN
    Obtenir les valeurs ACCOUNT_ID et CAMPAIGN_ID
    Lister les campagnes
    Créer une campagne
    Modifier une campagne
    Dupliquer une campagne
    Changer l’état d’une campagne
    Supprimer des campagnes
    Lister les numéros de campagne
    Ajouter des numéros à une campagne dynamique
    Ajouter des numéros avec des valeurs de variables à une campagne dynamique
    Téléverser un fichier CSV avec de nouveaux numéros pour une campagne dynamique
    Supprimer des numéros de campagne
    Obtenir les détails d’appel d’une campagne
    Obtenir les détails de numéro d’une campagne

Vue d’ensemble

SIP Caller propose une API REST qui permet aux clients de SIP Caller d’effectuer différentes opérations sur leur compte SIP Caller depuis des programmes externes. Ainsi, de nombreuses intégrations personnalisées utiles peuvent être développées entre SIP Caller et d’autres systèmes.

Obtenir la valeur API_KEY_TOKEN

Pour utiliser l’API REST, un client SIP Caller doit d’abord créer une Clé API, comme expliqué dans cette section, afin d’obtenir un API_KEY_TOKEN qui sera utilisé dans les exemples suivants pour authentifier les appels à l’API REST de SIP Caller depuis un programme externe.

Obtenir les valeurs ACCOUNT_ID et CAMPAIGN_ID

La valeur ACCOUNT_ID du client SIP Caller, qui sera utilisée dans les exemples suivants, peut être obtenue depuis la Console Web, comme indiqué ci-dessous :
Obtenir l’ID du Compte La valeur CAMPAIGN_ID de SIP Caller, qui sera utilisée dans les exemples suivants, peut également être obtenue depuis la Console Web, comme indiqué ci-dessous :
Obtenir l’ID de la Campagne

Lister les campagnes

L’exemple suivant montre comment lister les campagnes :

curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --get \ --data-urlencode 'filter={"state":"Active"}' \ --data-urlencode 'sort=["name","DESC"]' \ --data-urlencode 'range=[0,99]' \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns'

La requête permet de spécifier des filtres, un tri et une plage :

  • L’instruction filter peut spécifier n’importe lequel des champs suivants :
    • filter={"ids":["id1","id2"]}
    • filter={"name":"Campaign Name"}
    • filter={"phoneSystemId":"id1"}
    • filter={"extensionId":"id1"}
    • filter={"dialer":{"mode":"Power"}} – Modes : Power, Predictive
    • filter={"tagIds_ovl":["tag1","tag2"]}
    • filter={"state":"Active"} – État : Draft, Active, Paused, Canceled, Finished
    • filter={"type":"Static"} – Type : Static, Dynamic
    • filter={"startDate_gte":"2024-12-01T00:00:00"} – Suffixes gte, gt, lte, lt
    • filter={"endDate_gte":"2024-12-01T00:00:00"} – Suffixes gte, gt, lte, lt
    • filter={"startedAt_gte":"2024-12-01T00:00:00"} – Suffixes gte, gt, lte, lt
    • filter={"endedAt_gte":"2024-12-01T00:00:00"} – Suffixes gte, gt, lte, lt
    • filter={"callflowIds_ctn":"id1"} – Filtre par flux d’appel de réponse humaine ou de répondeur
    • filter={"callBehavior":{"humanAnswerCallflowId":"id1"}}
    • filter={"callBehavior":{"answeringMachineCallflowId":"id1"}}
    • filter={"webhookEndpointId":"id1"}
    • filter={"isArchived":true}
  • L’instruction sort peut spécifier n’importe lequel des champs suivants, en ordre croissant (ASC) ou décroissant (DESC) :
    • name
    • state
    • type
    • startDate
    • endDate
    • numbersCount
    • startedAt
    • endedAt

Créer une campagne

L’exemple suivant montre comment créer une nouvelle campagne :

curl -i \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --request POST \ --data-raw '{ "name":"My first campaign", "phoneSystemId":"0199817e-52e0-7079-9585-99a655c2acb3", "extensionId":"93e5cdfc-6e42-4995-8263-9388a9047c29", "tagIds":[], "state":"Draft", "isArchived":false, "numberProvisioning":"Dynamic", "numberSelection":"Fifo", "numberPriority":"RetryPending", "dialer":{ "mode":"Predictive", "intensity":0 }, "callPrefix":"", "ringTimeout":{ "value":30, "unit":"Seconds" }, "maxAttempts":3, "retryIntervals":[ { "value":1, "unit":"Hours" } ], "startDate":"2026-07-27", "endDate":null, "workingTimes":{ "monday":[ { "start":"09:00", "end":"18:00" } ], "tuesday":[ { "start":"09:00", "end":"18:00" } ], "wednesday":[ { "start":"09:00", "end":"18:00" } ], "thursday":[ { "start":"09:00", "end":"18:00" } ], "friday":[ { "start":"09:00", "end":"18:00" } ], "saturday":[ ], "sunday":[ ] }, "timeZoneId":"America/Argentina/Buenos_Aires", "callHandling":{ "$t":"Callflow", "answerTypeDetector":{ "$t":"AmdAgent", "amdAgentId":"019f9cef-4a91-7c97-b7cd-edbb06a5038d", "unknownAnswerTreatment":"Human", "messageForVoicemail":{ "$t":"OnFirstDetection", "callflowId":"019f81ba-a149-731a-a6cb-b47146c5f90d", "isCallRetryEnabled":true } }, "callflowId":"019f9cd5-e8cd-716b-a9a6-37c9db2f97a2", "ttsVoiceId":"azu-en-US-AlloyTurboMultilingualNeural" }, "blackListIds":[ ], "webhookEndpointId":"019af0c3-62d6-70f2-84a1-5ab5671721bb" }' \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns'

Le corps de la requête accepte les champs suivants :

  • numberProvisioning – Valeurs possibles : Dynamic, Static
  • numberSelection – Valeurs possibles : Fifo, Lifo
  • numberPriority – Valeurs possibles : RetryPending, NotContacted
  • Dans ringTimeout et dans chaque élément de retryIntervals, le champ unit peut être l’une des valeurs suivantes : Seconds, Minutes, Hours, Days
  • Dans callHandling, le champ $t peut être l’une des valeurs suivantes : Callflow, AiAgent
  • Dans answerTypeDetector, le champ $t peut être l’une des valeurs suivantes : Disabled, Standard, AmdAgent
  • unknownAnswerTreatment – Valeurs possibles : Human, Voicemail
  • Dans messageForVoicemail, le champ $t peut être l’une des valeurs suivantes : Never, OnFirstDetection, OnLastAttempt, OnEveryAttempt

Modifier une campagne

L’exemple suivant montre comment modifier une campagne existante, identifiée par CAMPAIGN_ID. Le corps de la requête accepte les mêmes champs que lors de la création d’une campagne, mais doit également inclure le champ id avec l’ID de la campagne :

curl -i \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --request PUT \ --data-raw '{ "id":"CAMPAIGN_ID", "name":"My first campaign", "phoneSystemId":"0199817e-52e0-7079-9585-99a655c2acb3", "extensionId":"93e5cdfc-6e42-4995-8263-9388a9047c29", "tagIds":[], "state":"Draft", "isArchived":false, "numberProvisioning":"Dynamic", "numberSelection":"Fifo", "numberPriority":"RetryPending", "dialer":{ "mode":"Predictive", "intensity":0 }, "callPrefix":"", "ringTimeout":{ "value":30, "unit":"Seconds" }, "maxAttempts":3, "retryIntervals":[ { "value":1, "unit":"Hours" } ], "startDate":"2026-07-27", "endDate":null, "workingTimes":{ "monday":[ { "start":"09:00", "end":"18:00" } ], "tuesday":[ { "start":"09:00", "end":"18:00" } ], "wednesday":[ { "start":"09:00", "end":"18:00" } ], "thursday":[ { "start":"09:00", "end":"18:00" } ], "friday":[ { "start":"09:00", "end":"18:00" } ], "saturday":[ ], "sunday":[ ] }, "timeZoneId":"America/Argentina/Buenos_Aires", "callHandling":{ "$t":"Callflow", "answerTypeDetector":{ "$t":"AmdAgent", "amdAgentId":"019f9cef-4a91-7c97-b7cd-edbb06a5038d", "unknownAnswerTreatment":"Human", "messageForVoicemail":{ "$t":"OnFirstDetection", "callflowId":"019f81ba-a149-731a-a6cb-b47146c5f90d", "isCallRetryEnabled":true } }, "callflowId":"019f9cd5-e8cd-716b-a9a6-37c9db2f97a2", "ttsVoiceId":"azu-en-US-AlloyTurboMultilingualNeural" }, "blackListIds":[ ], "webhookEndpointId":"019af0c3-62d6-70f2-84a1-5ab5671721bb" }' \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns/CAMPAIGN_ID'

Dupliquer une campagne

L’exemple suivant montre comment dupliquer une campagne existante :

curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --request POST \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns/CAMPAIGN_ID/duplicate?includeNumbers=true&newCampaignName=NewCampaignName&numbersFilter={"status":["NotContacted","Failure"]}'

Le paramètre de chaîne de requête newCampaignName est facultatif, et s’il n’est pas fourni, la nouvelle campagne sera nommée comme la campagne d’origine avec un numéro incrémental en suffixe. Le paramètre de chaîne de requête includeNumbers est également facultatif, et s’il n’est pas fourni, la nouvelle campagne inclura tous les numéros. Si includeNumbers est défini sur true, alors le paramètre de chaîne de requête numbersFilter peut être utilisé pour spécifier quels numéros de la campagne d’origine doivent être inclus dans la nouvelle campagne. Le statut peut inclure l’une des valeurs suivantes :

  • NotContacted
  • Contacting
  • Blacklisted
  • Success
  • RetryPending
  • Failure

Changer l’état d’une campagne

L’exemple suivant montre comment changer l’état d’une campagne :

curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --request PUT \ --data-raw '"Active"' \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns/CAMPAIGN_ID/state'

Le corps de la requête doit être le nouvel état entre guillemets. Les valeurs possibles sont les suivantes :

  • Active
  • Paused
  • Canceled

Supprimer des campagnes

Vous pouvez utiliser deux points de terminaison API différents pour supprimer des campagnes, selon que vous souhaitez supprimer une ou plusieurs campagnes :

  1. Pour supprimer une seule campagne, vous pouvez utiliser le point de terminaison suivant :
curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --request DELETE \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns/CAMPAIGN_ID'
  1. Pour supprimer plusieurs campagnes en une seule requête, vous pouvez utiliser le point de terminaison suivant :
curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --request DELETE \ --data-raw '["CAMPAIGN_ID_1","CAMPAIGN_ID_2"]' \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns'

Veuillez noter que seules les campagnes dans les états suivants peuvent être supprimées :

  • Draft
  • Finished
  • Canceled

Lister les numéros de campagne

L’exemple suivant montre comment lister les numéros de campagne :

curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --get \ --data-urlencode 'filter={"number":"123456789"}' \ --data-urlencode 'sort=["number","DESC"]' \ --data-urlencode 'range=[0,19]' \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns/CAMPAIGN_ID/numbers'

La requête permet de spécifier des filtres, un tri et une plage :

  • L’instruction filter peut spécifier n’importe lequel des champs suivants :
    • filter={"number":"123456789"} – La recherche par numéro partiel est autorisée
    • filter={"status":["NotContacted","Contacting","Blacklisted","Success","RetryPending","Failure"]} – Sélectionnez autant de valeurs de statut que nécessaire
    • filter={"attempts_gt":1} – Plus de X tentatives
    • filter={"attempts_lt":3} – Moins de X tentatives
  • L’instruction sort peut spécifier n’importe lequel des champs suivants, en ordre croissant (ASC) ou décroissant (DESC) :
    • number
    • attempts

Ajouter des numéros à une campagne dynamique

L’exemple suivant montre comment ajouter un nouveau numéro à une campagne dynamique déjà active :

curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --request POST \ --data-raw '[{"number": "+18005551234"},{"number": "+18005551235"}]' \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns/CAMPAIGN_ID/numbers'

Ajouter des numéros avec des valeurs de variables à une campagne dynamique

L’exemple suivant montre comment ajouter un nouveau numéro à une campagne dynamique déjà active, en incluant des valeurs de variables qui peuvent être utilisées par le flux d’appel de la campagne :

curl -i \ --globoff \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --request POST \ --data-raw '[{"number": "+18005551234", "varValues": ["John", "199"]},{"number": "+18005551235", "varValues": ["Jane", "449"]}]' \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns/CAMPAIGN_ID/numbers?varNames=["Name","Amount"]'

Le paramètre de chaîne de requête varNames est facultatif, et s’il n’est pas fourni, SIP Caller assignera automatiquement les noms de variables.

Téléverser un fichier CSV avec de nouveaux numéros pour une campagne dynamique

L’exemple suivant montre comment téléverser un fichier CSV (valeurs séparées par des virgules) contenant plusieurs numéros vers une campagne dynamique déjà active.
Tout d’abord, un fichier CSV doit être préparé contenant les nouveaux numéros à ajouter à la campagne. Voici un exemple de fichier CSV avec 5 numéros et leurs valeurs de variables correspondantes :

5550001,John,199  
5550002,Mary,299  
5550003,Susan,149  
5550004,James,300  
5550005,Walter,42

Ensuite, le fichier CSV préparé peut être téléversé vers SIP Caller avec la commande suivante :

curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --form "file=@campaign-numbers.csv" \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns/CAMPAIGN_ID/numbers/upload?firstRowIsHeader=false&varCount=2'

Supprimer des numéros de campagne

L’exemple suivant montre comment supprimer des numéros de campagne, en spécifiant l’ID renvoyé lors de la récupération de la liste :

curl -i \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --request DELETE \ --data-raw '[NUMBER_ID_1,NUMBER_ID_2,NUMBER_ID_3]' \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns/CAMPAIGN_ID/numbers'

Les données envoyées permettent de spécifier plusieurs ID de numéros. Ces ID ne sont PAS les numéros. Vous devrez d’abord lister les numéros de la campagne, pour obtenir l’ID de chaque enregistrement, puis les supprimer.

Seuls les numéros dans les états suivants peuvent être supprimés :

  • Non Contacté : le numéro n’a pas encore été contacté.
  • Nouvelle Tentative en Attente : le numéro a des tentatives d’appel échouées précédentes, et est planifié pour une nouvelle tentative, cette nouvelle tentative sera annulée.

Obtenir les détails d’appel d’une campagne

L’exemple suivant montre comment obtenir les détails d’appel d’une campagne :

curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --get \ --data-urlencode 'filter={"number":"+18005551000"}' \ --data-urlencode 'sort=["number","ASC"]' \ --data-urlencode 'range=[0,99]' \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns/CAMPAIGN_ID/reports/callDetails'

La requête permet de spécifier des filtres, un tri et une plage :

  • L’instruction filter peut spécifier n’importe lequel des champs suivants :
    • filter={"number":"+18005551000"}
    • filter={"numberPrefix":"9"}
    • filter={"attempt":1}
    • filter={"startedAtLocal_gte":"2024-12-01T00:00:00"} – Suffixes gte, gt, lte, lt
    • filter={"answeredAtLocal_gte":"2024-12-01T00:00:00"} – Suffixes gte, gt, lte, lt
    • filter={"endedAtLocal_gte":"2024-12-01T00:00:00"} – Suffixes gte, gt, lte, lt
    • filter={"ringResult":"Answer"} – Valeurs possibles : Answer, NoAnswer, Busy, CallError
    • filter={"answerType":"Human"} – Valeurs possibles : Human, Machine, Unknown
    • filter={"sipResponseCode":200}
    • filter={"endType":"HangUp"} - Valeurs possibles : HangUp, CallflowComplete, ExecutionError
    • filter={"queueId":"800"}
    • filter={"outcome":"Success"} - Valeurs possibles : Success, FailureWithNoRetryLeft, FailureWithRetryPending
  • L’instruction sort peut spécifier n’importe lequel des champs suivants, en ordre croissant (ASC) ou décroissant (DESC) :
    • number
    • attempt
    • startedAtLocal
    • answeredAtLocal
    • endedAtLocal
    • ringResult
    • answerType
    • sipResponseCode
    • endType
    • outcome

Obtenir les détails de numéro d’une campagne

L’exemple suivant montre comment obtenir les détails de numéro d’une campagne :

curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --get \ --data-urlencode 'filter={"number":"+18005551000"}' \ --data-urlencode 'sort=["number","ASC"]' \ --data-urlencode 'range=[0,99]' \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns/CAMPAIGN_ID/reports/numberDetails'

La requête permet de spécifier des filtres, un tri et une plage :

  • L’instruction filter peut spécifier n’importe lequel des champs suivants :
    • filter={"number":"+18005551000"}
    • filter={"attempts_gt":1} – Suffixes gte, gt, lte, lt
    • filter={"status":"RetryPending"} - Valeurs possibles : NotContacted, Contacting, Blacklisted, Success, RetryPending, Failure, Deleted
  • L’instruction sort peut spécifier n’importe lequel des champs suivants, en ordre croissant (ASC) ou décroissant (DESC) :
    • number
    • attempts


SIP Caller
© 2026 Easy Caller LLC Tous droits réservés
LinkedinYou Tube
Trustpilot