Partners REST API pozwala systemom zewnętrznym programowo zarządzać partnerami i klientami w ramach ekosystemu SIP Caller.
To API jest przeznaczone dla Dystrybutorów i Partnerów, którzy muszą zautomatyzować zadania związane z wdrażaniem i zarządzaniem.
Wszystkie żądania API wymagają uwierzytelnienia za pomocą Tokenu Bearer.
Umieść token klucza API w nagłówku Authorization:
Authorization: Bearer YOUR_API_KEY_TOKEN
Każde żądanie musi być wysyłane na następujący adres bazowy:
https://api.sipcaller.com/v1/
| Rola | Uprawnienia |
|---|---|
| PartnerReader | Może tylko pobierać istniejących partnerów i klientów |
| PartnerAdmin | Może pobierać istniejących partnerów i klientów oraz tworzyć nowych |
| Metoda | Endpoint | Opis | Wymagana rola |
|---|---|---|---|
| GET | /partners | Lista powiązanych partnerów | PartnerReader (Distributor) |
| POST | /partners | Utwórz powiązanego partnera | PartnerAdmin (Distributor) |
| GET | /customers | Lista klientów | PartnerReader (Partner / Distributor) |
| POST | /customers | Utwórz klienta | PartnerAdmin (Partner / Distributor) |
GET /partners
Zwraca wszystkich partnerów powiązanych z uwierzytelnionym dystrybutorem.
curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --get \ --data-urlencode 'filter={"name":"ACME","countryIds_ovl":["us"],"code":"acme","state":"Active","level":["Basic","Certified"],"createdAt_gte":"2026-03-01","createdAt_lte":"2026-04-01"}' \ --data-urlencode 'sort=["name","DESC"]' \ --data-urlencode 'range=[0,99]' \ 'https://api.sipcaller.com/v1/partners'
Żądanie pozwala określić filtry, sortowanie i zakres:
[ { "id": "019cea04-b015-7f54-a7dd-6e5c198f15a9", "name": "ACME", "type": "Partner", "code": "acme", "countryIds": [ "us" ], "state": "Active", "level": "Basic", "parent": { "id": "019cea04-b00f-76a3-b584-025a91dc697e", "name": "Distributor Name", "type": "Distributor", "contactData": { "web": "https://distributor.example.com", "email": "sales@distributor.example.com", "phone": "+1 234 555 0000" } }, "signUpData": { "comments": "We want to become a SIP Caller partner.", "originType": "HomeSite", "websiteUrl": "https://acme.example.com" }, "contactData": { "public": { "web": "https://acme.example.com", "email": "sales@acme.example.com", "phone": "+1 234-555-0001" }, "members": [ { "id": "019cea04-b016-75ea-8b2f-a87a96005e82", "name": "John Doe", "email": "john.doe@acme.example.com", "phoneNumber": "+1 234 555-0002", "languageId": "en", "timeZoneId": "US/Eastern", "roles": [ "PartnerAdmin" ] } ] }, "counters": { "apiKeys": { "created": 0, "deleted": 0 } }, "customersCount": 1, "createdAt": "2026-03-14T01:45:01.717", "updatedAt": "2026-03-14T01:45:01.717" } ]
POST /partners
Tworzy nowego partnera w ramach uwierzytelnionego dystrybutora.
{ "email": "john.doe@partner.example.com", "firstName": "John", "lastName": "Doe", "partnerName": "Example Partner", "type": "Partner", "code": "example-partner", "level": "Basic", "languageId": "en", "timeZoneId": "US/Eastern", "countryIds": [ "us", "ca" ], "contactData": { "web": "https://partner.example.com", "email": "john.doe@partner.example.com", "phone": "+1 234 555-0000" }, "logo": { "file": "example-partner.png", "maxHeight": 60 } }
curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --request POST \ --data-raw '{ "email": "john.doe@partner.example.com", "firstName": "John", "lastName": "Doe", "partnerName": "Example Partner", "type": "Partner", "code": "example-partner", "level": "Basic", "languageId": "en", "timeZoneId": "US/Eastern", "countryIds": [ "us", "ca" ], "contactData": { "web": "https://partner.example.com", "email": "john.doe@partner.example.com", "phone": "+1 234 555-0000" }, "logo": { "file": "example-partner.png", "maxHeight": 60 } }' \ 'https://api.sipcaller.com/v1/partners'
{ "id": "019d0cfc-19eb-7017-8166-f007ebfbe70c", "name": "Eample Partner", "type": "Partner", "code": "example-partner", "countryIds": [ "us", "ca" ], "state": "Active", "level": "Basic", "parent": { "id": "019cea04-b002-7271-be0b-3fdbbc483aba", "name": "Example Distributor", "type": "Distributor", "contactData": { "web": "https://distributor.example.com", "email": "sales@distributor.example.com", "phone": "+1 234 555 0001" } }, "signUpData": { "originType": "PartnerApiKey" }, "contactData": { "public": { "web": "https://partner.example.com", "email": "john.doe@partner.example.com", "phone": "+1 234 555-0000" }, "members": [ { "id": "019d0cfc-19eb-7c4d-9b70-b6e5e926be3f", "name": "John Doe", "email": "john.doe@partner.example.com", "phoneNumber": "+1 234 555-0000", "languageId": "en", "timeZoneId": "US/Eastern", "roles": [ "PartnerAdmin" ] } ] }, "counters": { "apiKeys": { "created": 0, "deleted": 0 } }, "customersCount": 0, "createdAt": "2026-03-20T20:42:21.545", "updatedAt": "2026-03-20T20:42:21.545" }
GET /customers
Zwraca wszystkich klientów powiązanych z uwierzytelnionym partnerem lub dystrybutorem.
curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --get \ --data-urlencode 'filter={"name":"Customer Name","countryId":["us","ar"],"planId":["ent-4sc-y"],"state":["Trialing"],"createdAt_gte":"2026-03-01","createdAt_lte":"2026-04-01"}' \ --data-urlencode 'sort=["name","DESC"]' \ --data-urlencode 'range=[0,99]' \ 'https://api.sipcaller.com/v1/customers'
Żądanie pozwala określić filtry, sortowanie i zakres:
[ { "id": "019d06bc-cce2-7310-99b4-fc67f0090456", "name": "Example Customer", "countryId": "us", "state": "Trialing", "planId": "ent-4sc-y", "ownerType": "Customer", "signUpData": { "originType": "PartnerConsole", "websiteUrl": "https://customer.example.com" }, "contactData": { "members": [ { "id": "019d06bc-ccea-7ad7-b6bd-76bb684636fd", "name": "John Doe", "email": "john.doe@customer.example.com", "phoneNumber": "+1 234 555-0001", "languageId": "en", "timeZoneId": "US/Eastern", "roles": [ "AccountAdmin" ] } ] }, "partner": { "id": "019cea04-b00f-76a3-b584-025a91dc697f", "name": "Example Partner", "type": "Partner" }, "counters": { "phoneSystems": { "created": 0, "deleted": 0 }, "callflows": { "created": 0, "deleted": 0 }, "campaigns": { "created": 0, "deleted": 0, "activated": { "powerDialer": 0, "predictiveDialer": 0, "progressiveDialer": 0 } }, "apiKeys": { "created": 0, "deleted": 0 }, "webhookEndpoints": { "created": 0, "deleted": 0 }, "webhookEvents": { "created": 0, "delivered": 0 }, "calls": { "powerDialer": { "answer": 0, "noAnswer": 0, "busy": 0, "callError": 0 }, "predictiveDialer": { "answer": 0, "noAnswer": 0, "busy": 0, "callError": 0 }, "progressiveDialer": { "agentAnswer": { "numberConnected": 0, "numberNotConnected": 0, "numberConnectionUnknown": 0, "numberNotCalled": 0 }, "agentNoAnswer": 0, "agentBusy": 0, "agentCallError": 0 } } }, "ttsUsage": { "monthlyPeriod": { "startAt": "2026-03-19T15:00:00", "endAt": "2026-04-19T15:00:00" }, "maxChars": 1500000, "usedChars": 0, "isLimitReached": false, "usageDetails": [] }, "createdAt": "2026-03-19T15:35:29.75", "updatedAt": "2026-03-19T15:35:29.75" } ]
POST /customers
Tworzy nowego klienta w ramach uwierzytelnionego partnera lub dystrybutora.
{ "countryId": "us", "languageId": "en", "timeZoneId": "US/Eastern", "email": "john.doe@customer.example.com", "customerName": "Example Customer", "firstName": "John", "lastName": "Doe", "websiteUrl": "https://customer.example.com", "phoneNumber": "+1 234 555-0001", "partnerId": "019cea04-b002-7271-be0b-3fdbbc483ab9", "partnerMemberIdForCustomerSupport": "019cea04-b005-73e2-9d0f-8ccf53da5c0c" }
curl -i \ --header 'Authorization: Bearer API_KEY_TOKEN' \ --request POST \ --data-raw '{ "countryId": "us", "languageId": "en", "timeZoneId": "US/Eastern", "email": "john.doe@customer.example.com", "customerName": "Example Customer", "firstName": "John", "lastName": "Doe", "websiteUrl": "https://customer.example.com", "phoneNumber": "+1 234 555-0001", "partnerId": "019cea04-b002-7271-be0b-3fdbbc483ab9", "partnerMemberIdForCustomerSupport": "019cea04-b005-73e2-9d0f-8ccf53da5c0c"}' \ 'https://api.sipcaller.com/v1/customers'
Następujące pola są opcjonalne:
partnerId: to jest ID partnera, który zostanie powiązany z nowym klientem. Jeśli nie zostanie podane, system automatycznie powiąże klienta z partnerem uwierzytelnionego użytkownika. Jest to przydatne dla dystrybutorów, którzy chcą tworzyć klientów już powiązanych z konkretnym partnerem.partnerMemberIdForCustomerSupport: to jest ID członka partnera, który zostanie powiązany z nowym klientem w celach wsparcia. Jeśli zostanie podane, ten członek będzie mógł uzyskać dostęp do konta klienta w Konsoli SIP Caller, aby zapewnić wsparcie.{ "id": "019d1bbc-85f8-7336-8034-ad4707badc52", "name": "Example Customer", "countryId": "us", "state": "Trialing", "planId": "ent-4sc-y", "ownerType": "Customer", "signUpData": { "originType": "PartnerApiKey", "websiteUrl": "https://customer.example.com" }, "contactData": { "members": [ { "id": "019d1bbc-85ff-74eb-87df-1f50fb2fcfc3", "name": "John Doe", "email": "john.doe@customer.example.com", "phoneNumber": "+1 234 555-0001", "languageId": "en", "timeZoneId": "US/Eastern", "roles": [ "AccountAdmin" ] } ] }, "partner": { "id": "019cea04-b002-7271-be0b-3fdbbc483ab8", "name": "Example Partner", "type": "Partner" }, "counters": { "phoneSystems": { "created": 0, "deleted": 0 }, "callflows": { "created": 0, "deleted": 0 }, "campaigns": { "created": 0, "deleted": 0, "activated": { "powerDialer": 0, "predictiveDialer": 0, "progressiveDialer": 0 } }, "apiKeys": { "created": 0, "deleted": 0 }, "webhookEndpoints": { "created": 0, "deleted": 0 }, "webhookEvents": { "created": 0, "delivered": 0 }, "calls": { "powerDialer": { "answer": 0, "noAnswer": 0, "busy": 0, "callError": 0 }, "predictiveDialer": { "answer": 0, "noAnswer": 0, "busy": 0, "callError": 0 }, "progressiveDialer": { "agentAnswer": { "numberConnected": 0, "numberNotConnected": 0, "numberConnectionUnknown": 0, "numberNotCalled": 0 }, "agentNoAnswer": 0, "agentBusy": 0, "agentCallError": 0 } } }, "ttsUsage": { "monthlyPeriod": { "startAt": "2026-03-23T17:00:00", "endAt": "2026-04-23T17:00:00" }, "maxChars": 1500000, "usedChars": 0, "isLimitReached": false, "usageDetails": [] }, "createdAt": "2026-03-23T17:27:13.137", "updatedAt": "2026-03-23T17:27:13.137" }