Spis Treści
    Przegląd
    Uzyskaj wartość API_KEY_TOKEN
    Uzyskaj wartości ACCOUNT_ID i CAMPAIGN_ID
    Lista kampanii
    Tworzenie kampanii
    Edytowanie kampanii
    Duplikowanie kampanii
    Zmiana stanu kampanii
    Usuwanie kampanii
    Lista numerów kampanii
    Dodawanie numerów do kampanii dynamicznej
    Dodawanie numerów z wartościami zmiennych do kampanii dynamicznej
    Przesyłanie pliku CSV z nowymi numerami dla kampanii dynamicznej
    Usuwanie numerów kampanii
    Pobieranie szczegółów połączeń kampanii
    Pobieranie szczegółów numeru kampanii

Przegląd

SIP Caller oferuje REST API, które pozwala klientom SIP Caller wykonywać różne operacje na swoim koncie SIP Caller z zewnętrznych programów. W ten sposób można opracować wiele przydatnych, niestandardowych integracji między SIP Caller a innymi systemami.

Uzyskaj wartość API_KEY_TOKEN

Aby korzystać z REST API, klient SIP Caller musi najpierw utworzyć Klucz API, zgodnie z opisem w tej sekcji, aby uzyskać wartość API_KEY_TOKEN, która będzie używana w poniższych przykładach do uwierzytelniania wywołań do REST API SIP Caller z programu zewnętrznego.

Uzyskaj wartości ACCOUNT_ID i CAMPAIGN_ID

Wartość ACCOUNT_ID klienta SIP Caller, która będzie używana w poniższych przykładach, można uzyskać z Konsoli Webowej, jak pokazano poniżej:
Uzyskaj ID konta Wartość CAMPAIGN_ID kampanii SIP Caller, która będzie używana w poniższych przykładach, można również uzyskać z Konsoli Webowej, jak pokazano poniżej:
Uzyskaj ID kampanii

Lista kampanii

Poniższy przykład pokazuje, jak wyświetlić listę kampanii:

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'

Żądanie pozwala określić filtry, sortowanie i zakres:

  • Instrukcja filtra może określać dowolne z następujących pól:
    • filter={"ids":["id1","id2"]}
    • filter={"name":"Campaign Name"}
    • filter={"phoneSystemId":"id1"}
    • filter={"extensionId":"id1"}
    • filter={"dialer":{"mode":"Power"}} – Tryby: Power, Predictive
    • filter={"tagIds_ovl":["tag1","tag2"]}
    • filter={"state":"Active"} – Stan: Draft, Active, Paused, Canceled, Finished
    • filter={"type":"Static"} – Typ: Static, Dynamic
    • filter={"startDate_gte":"2024-12-01T00:00:00"} – Sufiksy gte, gt, lte, lt
    • filter={"endDate_gte":"2024-12-01T00:00:00"} – Sufiksy gte, gt, lte, lt
    • filter={"startedAt_gte":"2024-12-01T00:00:00"} – Sufiksy gte, gt, lte, lt
    • filter={"endedAt_gte":"2024-12-01T00:00:00"} – Sufiksy gte, gt, lte, lt
    • filter={"callflowIds_ctn":"id1"} – Filtruje według przepływu połączenia dla odpowiedzi człowieka lub automatycznej sekretarki
    • filter={"callBehavior":{"humanAnswerCallflowId":"id1"}}
    • filter={"callBehavior":{"answeringMachineCallflowId":"id1"}}
    • filter={"webhookEndpointId":"id1"}
    • filter={"isArchived":true}
  • Instrukcja sortowania może określać dowolne z następujących pól, zarówno rosnąco (ASC), jak i malejąco (DESC):
    • name
    • state
    • type
    • startDate
    • endDate
    • numbersCount
    • startedAt
    • endedAt

Tworzenie kampanii

Poniższy przykład pokazuje, jak utworzyć nową kampanię:

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'

Treść żądania akceptuje następujące pola:

  • numberProvisioning – Możliwe wartości: Dynamic, Static
  • numberSelection – Możliwe wartości: Fifo, Lifo
  • numberPriority – Możliwe wartości: RetryPending, NotContacted
  • Wewnątrz ringTimeout oraz każdego elementu retryIntervals, pole unit może przyjmować jedną z wartości: Seconds, Minutes, Hours, Days
  • Wewnątrz callHandling, pole $t może przyjmować jedną z wartości: Callflow, AiAgent
  • Wewnątrz answerTypeDetector, pole $t może przyjmować jedną z wartości: Disabled, Standard, AmdAgent
  • unknownAnswerTreatment – Możliwe wartości: Human, Voicemail
  • Wewnątrz messageForVoicemail, pole $t może przyjmować jedną z wartości: Never, OnFirstDetection, OnLastAttempt, OnEveryAttempt

Edytowanie kampanii

Poniższy przykład pokazuje, jak edytować istniejącą kampanię, identyfikowaną przez CAMPAIGN_ID. Treść żądania akceptuje te same pola co przy tworzeniu kampanii, ale musi również zawierać pole id z ID kampanii:

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'

Duplikowanie kampanii

Poniższy przykład pokazuje, jak zduplikować już istniejącą kampanię:

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"]}'

Parametr zapytania newCampaignName jest opcjonalny, a jeśli nie zostanie podany, nowa kampania otrzyma nazwę oryginalnej kampanii z przyrostowym numerem jako sufiksem. Parametr zapytania includeNumbers jest również opcjonalny, a jeśli nie zostanie podany, nowa kampania będzie zawierać wszystkie numery. Jeśli includeNumbers jest ustawiony na true, parametr zapytania numbersFilter może być użyty, aby określić, które numery z oryginalnej kampanii powinny zostać uwzględnione w nowej kampanii. Status może zawierać dowolną z następujących wartości:

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

Zmiana stanu kampanii

Poniższy przykład pokazuje, jak zmienić stan kampanii:

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'

Treść żądania musi być nowym stanem w cudzysłowie. Możliwe wartości to:

  • Active
  • Paused
  • Canceled

Usuwanie kampanii

Możesz użyć dwóch różnych endpointów API do usuwania kampanii, w zależności od tego, czy chcesz usunąć jedną, czy wiele kampanii:

  1. Aby usunąć pojedynczą kampanię, możesz użyć następującego endpointu:
curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --request DELETE \ 'https://api.sipcaller.com/v1/accounts/ACCOUNT_ID/campaigns/CAMPAIGN_ID'
  1. Aby usunąć wiele kampanii w jednym żądaniu, możesz użyć następującego endpointu:
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'

Pamiętaj, że usunąć można tylko kampanie w następujących stanach:

  • Draft
  • Finished
  • Canceled

Lista numerów kampanii

Poniższy przykład pokazuje, jak wyświetlić listę numerów kampanii:

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'

Żądanie pozwala określić filtry, sortowanie i zakres:

  • Instrukcja filtra może określać dowolne z następujących pól:
    • filter={"number":"123456789"} – Dozwolone jest częściowe wyszukiwanie numeru
    • filter={"status":["NotContacted","Contacting","Blacklisted","Success","RetryPending","Failure"]} – Wybierz tyle wartości statusu, ile potrzebujesz
    • filter={"attempts_gt":1} – Więcej niż X prób
    • filter={"attempts_lt":3} – Mniej niż X prób
  • Instrukcja sortowania może określać dowolne z następujących pól, zarówno rosnąco (ASC), jak i malejąco (DESC):
    • number
    • attempts

Dodawanie numerów do kampanii dynamicznej

Poniższy przykład pokazuje, jak dodać nowy numer do już aktywnej kampanii dynamicznej:

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'

Dodawanie numerów z wartościami zmiennych do kampanii dynamicznej

Poniższy przykład pokazuje, jak dodać nowy numer do już aktywnej kampanii dynamicznej, wraz z wartościami zmiennych, które mogą być użyte przez przepływ połączenia kampanii:

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"]'

Parametr zapytania varNames jest opcjonalny, a jeśli nie zostanie podany, SIP Caller automatycznie przypisze nazwy zmiennych.

Przesyłanie pliku CSV z nowymi numerami dla kampanii dynamicznej

Poniższy przykład pokazuje, jak przesłać plik CSV (wartości oddzielone przecinkami) z wieloma numerami do już aktywnej kampanii dynamicznej.
Najpierw trzeba przygotować plik CSV zawierający nowe numery do dodania do kampanii. Oto przykład pliku CSV z 5 numerami i odpowiadającymi im wartościami zmiennych:

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

Następnie przygotowany plik CSV można przesłać do SIP Caller za pomocą następującego polecenia:

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'

Usuwanie numerów kampanii

Poniższy przykład pokazuje, jak usunąć numery kampanii, podając ID zwrócone przy pobieraniu listy:

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'

Wysyłane dane pozwalają określić wiele identyfikatorów numerów. Te identyfikatory NIE są numerami. Musisz najpierw wyświetlić listę numerów kampanii, aby uzyskać ID każdego rekordu, a następnie je usunąć.

Usunąć można tylko numery w następujących stanach:

  • Bez kontaktu (Not Contacted): z numerem nie było jeszcze kontaktu.
  • Oczekująca ponowna próba (Retry Pending): numer ma poprzednie nieudane próby połączenia i jest zaplanowany do ponownej próby; ta ponowna próba zostanie anulowana.

Pobieranie szczegółów połączeń kampanii

Poniższy przykład pokazuje, jak pobrać szczegóły połączeń kampanii:

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'

Żądanie pozwala określić filtry, sortowanie i zakres:

  • Instrukcja filtra może określać dowolne z następujących pól:
    • filter={"number":"+18005551000"}
    • filter={"numberPrefix":"9"}
    • filter={"attempt":1}
    • filter={"startedAtLocal_gte":"2024-12-01T00:00:00"} – Sufiksy gte, gt, lte, lt
    • filter={"answeredAtLocal_gte":"2024-12-01T00:00:00"} – Sufiksy gte, gt, lte, lt
    • filter={"endedAtLocal_gte":"2024-12-01T00:00:00"} – Sufiksy gte, gt, lte, lt
    • filter={"ringResult":"Answer"} – Możliwe wartości: Answer, NoAnswer, Busy, CallError
    • filter={"answerType":"Human"} – Możliwe wartości: Human, Machine, Unknown
    • filter={"sipResponseCode":200}
    • filter={"endType":"HangUp"} - Możliwe wartości: HangUp, CallflowComplete, ExecutionError
    • filter={"queueId":"800"}
    • filter={"outcome":"Success"} - Możliwe wartości: Success, FailureWithNoRetryLeft, FailureWithRetryPending
  • Instrukcja sortowania może określać dowolne z następujących pól, zarówno rosnąco (ASC), jak i malejąco (DESC):
    • number
    • attempt
    • startedAtLocal
    • answeredAtLocal
    • endedAtLocal
    • ringResult
    • answerType
    • sipResponseCode
    • endType
    • outcome

Pobieranie szczegółów numeru kampanii

Poniższy przykład pokazuje, jak pobrać szczegóły numeru kampanii:

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'

Żądanie pozwala określić filtry, sortowanie i zakres:

  • Instrukcja filtra może określać dowolne z następujących pól:
    • filter={"number":"+18005551000"}
    • filter={"attempts_gt":1} – Sufiksy gte, gt, lte, lt
    • filter={"status":"RetryPending"} - Możliwe wartości: NotContacted, Contacting, Blacklisted, Success, RetryPending, Failure, Deleted
  • Instrukcja sortowania może określać dowolne z następujących pól, zarówno rosnąco (ASC), jak i malejąco (DESC):
    • number
    • attempts


SIP Caller
© 2026 Easy Caller LLC Wszelkie prawa zastrzeżone
LinkedinYou Tube
Trustpilot