GOPortalbackend API Rest documentation (2.0.0)

Download OpenAPI specification:Download

FonoUC API REST documentation

Access Roles

Access Roles

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Account

Access to Account information

Account Basic Information

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "timezone": "string"
}

Account Basic Information

Request Body schema: application/json
name
string

Account Name

timezone
string

Account Timezone

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "timezone": "string"
}

Account Main Number

Responses

Response samples

Content type
application/json
{
  • "number": "string"
}

Account Main Number

Request Body schema: application/json
number
string

Number that will be set as main number

Responses

Request samples

Content type
application/json
{
  • "number": "string"
}

Account Information

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "realm": "string",
  • "name": "string",
  • "timezone": "string",
  • "is_reseller": true,
  • "pvt_account_db": "string",
  • "pvt_account_id": "string",
  • "pvt_alphanum_name": "string",
  • "pvt_superduper_admin": true,
  • "pvt_tree": [
    ],
  • "caller_id": {
    },
  • "fonoUC": {
    }
}

Account Timezone

Responses

Account Summary

path Parameters
accountID
required
string <string>

ID of account to request info from

Responses

Account Address Required

path Parameters
accountID
required
string <string>

ID of account to request info from

Responses

Account Valid Address

Responses

Account Edition

path Parameters
accountID
required
string <uuid4>

ID of account to get information from

Responses

Account Edition

path Parameters
accountID
required
string <uuid4>

ID of account to edit information

Responses

Account Trunks

Responses

Route to Trunk

path Parameters
accountID
required
string <string>

ID of account to update route to trunk

route
required
string <string>

local or parent

Responses

Call Recording Feature

path Parameters
accountID
required
string

ID of account to update Call Recording feature status

Request Body schema: application/json
enabled
boolean

Call Recording feature status

retention_duration
number

Max number of days that the recordings will be stored in local database

size_limit
number

Max disk size in MB that will be used to store recordings

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "retention_duration": 0,
  • "size_limit": 0
}

SMS Feature

path Parameters
accountID
required
string

ID of account to set SMS feature

Request Body schema: application/json
enabled
boolean

SMS Feature Status

Responses

Request samples

Content type
application/json
{
  • "enabled": true
}

Call Center Feature

path Parameters
accountID
required
string <string>

ID of account to set callcenter feature

Responses

Response samples

Content type
application/json
{
  • "enabled": true
}

Call Center Feature

path Parameters
accountID
required
string <string>

ID of account to set callcenter feature

Request Body schema: application/json
enabled
boolean

Responses

Request samples

Content type
application/json
{
  • "enabled": true
}

Integrations Feature

path Parameters
accountID
required
string <string>

ID of account to get integrations feature status

Responses

Response samples

Content type
application/json
{
  • "google": {
    },
  • "microsoft": {
    }
}

Integrations Feature

path Parameters
accountID
required
string <string>

ID of account to set callcenter feature

Request Body schema: application/json
object
object

Responses

Request samples

Content type
application/json
{
  • "google": {
    },
  • "microsoft": {
    }
}

Transcription Feature

path Parameters
accountID
required
string <string>

ID of account to get transcription feature status

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "settings": {
    }
}

Transcription Feature

path Parameters
accountID
required
string <string>

ID of account to get transcription feature status

Request Body schema: application/json
enabled
boolean
object

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "settings": {
    }
}

Account Complete Information

Responses

Response samples

Content type
application/json
{ }

Account Complete Information

path Parameters
id
required
string <string>

ID of account to request info from

Responses

Response samples

Content type
application/json
[
  • { }
]

Account Billing

Account Billing Status

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "status_date": 0,
  • "grace_period_duration_days": 0
}

Accounts

Access to Accounts information

Account Status

path Parameters
id
required
string

ID of Account

Request Body schema: application/json
status
string

Account Status ("enabled" or "disabled")

Responses

Request samples

Content type
application/json
{
  • "status": "string"
}

Account Caller ID

path Parameters
id
required
string

ID of Account

Request Body schema: application/json
external
string

External caller ID number

emergency
string

Emergency caller ID number

Request samples

Content type
application/json
{
  • "external": "string",
  • "emergency": "string"
}

New Account

Authorizations:
bearerAuth
header Parameters
X-Account-ID
string

Account ID

Request Body schema: application/json

Account information that needs to be added to the systeem

name
string

Account Name

timezone
string

Account timezone

is_reseller
boolean

Flag to indicate if account is reseller

service_plans
Array of strings
object

Collaboration settings

object (Address)

Address settings

object or null

Values to override service plans

object or null

Account limits

object or null

Call recording information

object or null

Credit information

Array of objects or null (UserAdd)

Users to add on account creation

object

Autoprovisioning parameters for UCP and UCP mobile

object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "timezone": "string",
  • "is_reseller": true,
  • "service_plans": [
    ],
  • "collaboration": {
    },
  • "address": {
    },
  • "overrides": {
    },
  • "limits": {
    },
  • "call_recording": {
    },
  • "credit": {
    },
  • "users": [
    ],
  • "auto_provision": {
    },
  • "contact": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string"
}

Accounts Paginated

query Parameters
pageSize
integer
startKey
string

Responses

Response samples

Content type
application/json
{
  • "list": [
    ],
  • "pageSize": 0,
  • "nextStartKey": "string"
}

Accounts Summary

Responses

Account Descendants

Responses

Account Immediate Children

Responses

Addressbook

Upload Addressbook CSV

Addressbook will be created from the CSV file the

Request Body schema: multipart/form-data
addressbook
string <binary>

Responses

GET Addressbooks List

Responses

Response samples

Content type
application/json
{
  • "company": [
    ],
  • "pvtType": "string"
}

Delete addressbook for account

Responses

Addressbook CSV download

Responses

AI Agents

All Agents

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Agent

Request Body schema: application/json
name
required
string <= 128 characters

Name of the agent.

description
string

Description of the agent.

instructions
required
string

Instructions for the agent.

extension
required
string

Phone extension of the agent.

Responses

Request samples

Content type
application/json
{
  • "name": "John Doe",
  • "description": "Support agent for customer inquiries.",
  • "instructions": "Follow up on all customer tickets within 24 hours.",
  • "extension": "1001"
}

Response samples

Content type
application/json
{
  • "id": "string"
}

Agent by ID

path Parameters
id
required
string

ID of the agent to retrieve.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "instructions": "string",
  • "extension": "string"
}

Update Agent

path Parameters
id
required
string

ID of the agent to update.

Request Body schema: application/json
name
required
string <= 128 characters

Name of the agent.

description
string

Description of the agent.

instructions
required
string

Instructions for the agent.

extension
required
string

Phone extension of the agent.

Responses

Request samples

Content type
application/json
{
  • "name": "John Doe",
  • "description": "Support agent for customer inquiries.",
  • "instructions": "Follow up on all customer tickets within 24 hours.",
  • "extension": "1001"
}

Agent

path Parameters
id
required
string

ID of the agent to delete.

Responses

AI Concierge

Endpoints powering the AI Concierge product (signup flow, authentication, voice catalog, DID search, etc.)

Start AI Concierge signup

Verifies the provided Google OAuth access token and returns a short-lived signup token (30 minutes) whose claims include the Google email, to be used across the signup flow.

Request Body schema: application/json
accessToken
string

Google OAuth access token

Responses

Request samples

Content type
application/json
{
  • "accessToken": "string"
}

Response samples

Content type
application/json
{
  • "signupToken": "string"
}

Sign in an existing AI Concierge user

Verifies the Google OAuth access token and looks up a user with the authenticated email.

  • If account is omitted, the backend searches across all accounts.
  • If account is provided, the search is limited to that account.

When the user belongs to exactly one account (or the account is specified), access and refresh tokens are returned. When the user belongs to multiple accounts, the list of accounts is returned so the client can re-send the request with the chosen account id.

Request Body schema: application/json
accessToken
string

Google OAuth access token

account
string

Optional account id to restrict the lookup

Responses

Request samples

Content type
application/json
{
  • "accessToken": "string",
  • "account": "string"
}

Response samples

Content type
application/json
{
  • "accountId": "string",
  • "userId": "string",
  • "accessToken": "string",
  • "refreshToken": "string",
  • "accounts": [
    ]
}

Refresh session tokens

Rotates the session by returning a new access + refresh token pair.

Authorizations:
bearerAuth
header Parameters
Authorization
required
string

Bearer

Responses

Response samples

Content type
application/json
{
  • "accessToken": "string",
  • "refreshToken": "string"
}

List available AI agent voices

Returns the catalog of voices that can be assigned to the AI agent during signup. Each entry includes a previewUrl pointing to the audio preview endpoint.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Stream a voice preview audio sample

Returns an MP3 audio stream with a short sample of the requested voice. Responses are cached in memory on the server and on the client (24h).

path Parameters
voice_id
required
string

Voice identifier returned by the voices endpoint

Responses

Search available phone numbers for the signup flow

Queries the DID provider (Twilio) for local phone numbers that match the given ISO country code and optional area code.

query Parameters
country
required
string

ISO 3166-1 alpha-2 country code (e.g. US, CA, AR)

areaCode
string

Numeric area code prefix to filter available numbers

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List available AI Concierge plans

Returns the catalog of plans a user can pick during signup. The plans are stored in the AI Concierge master account as service plan documents linked to permissions templates. Missing plans / permissions are created on the first call.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Check whether an agency name is available

Sanitizes the provided name (trims and collapses internal whitespace) and reports whether it can be used as the account name when completing signup. The same sanitization runs at account creation time to guarantee the value checked here is the one persisted.

Authorizations:
bearerAuth
path Parameters
name
required
string

Agency name to validate (URL-encoded)

header Parameters
Authorization
required
string

Bearer

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "available": true
}

Create a Stripe SetupIntent for the signup flow

Creates a Stripe customer for the signup email and a SetupIntent whose client secret is returned so the FE can securely collect card details via Stripe.js (no card data ever touches our backend).

The returned customerId + the payment method id the FE obtains after confirming the SetupIntent must be sent in the accounts/new request.

Authorizations:
bearerAuth
header Parameters
Authorization
required
string

Bearer

Responses

Response samples

Content type
application/json
{
  • "customerId": "string",
  • "clientSecret": "string"
}

Complete signup and create the AI Concierge account

Final step of the signup flow. Provisions everything needed for the customer to start using AI Concierge:

  1. Creates a child account under the AI Concierge master account (with the chosen service plan stamped on it).
  2. Creates the admin user (email comes from the signup token claims, first/last name are derived from fullName).
  3. Creates the AI Concierge agent document with the voice/greeting/language.
  4. Binds the selected plan to the account in Kazoo.
  5. Attaches the Stripe payment method to the customer, tags the customer with the new account id and sets it as default.
  6. Purchases the selected phone number from Twilio. When ai_concierge.twilio_sip_trunk_sid is configured, attaches the DID to that Elastic SIP Trunk (QVoice inbound) before Kazoo registration. Registers the number in the numbers DB. If anything after the Twilio purchase fails the number is released automatically to avoid charges.
  7. Issues access + refresh tokens so the FE can drop the signup token.

All createAccountRequest fields are required.

Authorizations:
bearerAuth
header Parameters
Authorization
required
string

Bearer

Request Body schema: application/json
agencyName
string

Used both as the account name and as part of the realm

fullName
string
country
string

ISO 3166-1 alpha-2 country code

state
string

Region / province / state of the agency

timezone
string

IANA timezone name (e.g. "America/Argentina/Buenos_Aires")

agentName
string
voiceId
string

Voice id from the voices catalog

language
string

Primary language code (e.g. "en", "es")

greeting
string
greetingOutbound
string

First sentence the AI agent will say on outbound calls. Empty string is valid; backend cap is 1000 characters.

voicemailGreeting
string

Text for the admin user's voicemail greeting. Persisted on persona.voicemail_greeting; audio is synthesized by OpenAI in the signup voiceId and uploaded as an MP3 to the VMBox media. Empty string is replaced server-side with a default greeting built from the first name. Backend cap is 1000 characters.

areaCodePrefix
string

Area code prefix used for the number search

phoneNumberId
string

E.164 phone number selected from the availability search

planId
string

Plan id from the signup plans endpoint

billingCycle
string
Enum: "monthly" "yearly"
stripeCustomerId
string
paymentMethodId
string

Responses

Request samples

Content type
application/json
{
  • "agencyName": "string",
  • "fullName": "string",
  • "country": "string",
  • "state": "string",
  • "timezone": "string",
  • "agentName": "string",
  • "voiceId": "string",
  • "language": "string",
  • "greeting": "string",
  • "greetingOutbound": "string",
  • "voicemailGreeting": "string",
  • "areaCodePrefix": "string",
  • "phoneNumberId": "string",
  • "planId": "string",
  • "billingCycle": "monthly",
  • "stripeCustomerId": "string",
  • "paymentMethodId": "string"
}

Response samples

Content type
application/json
{
  • "accountId": "string",
  • "userId": "string",
  • "agentId": "string",
  • "accessToken": "string",
  • "refreshToken": "string"
}

Get the authenticated user and account

Returns the AI Concierge user and account documents with only the fields relevant to the FE, derived from the data persisted during signup.

Authenticated with a session access token; the user id and account id are extracted from the token claims.

Authorizations:
bearerAuth
header Parameters
Authorization
required
string

Bearer

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "account": {
    }
}

Get the AI Concierge agent configuration

Returns the AI Concierge agent document for the authenticated account. Each account has exactly one agent (created at signup time).

The Twilio SID stored alongside the phone number is intentionally omitted from the response — it is an internal handle used for provider operations and never needed by the FE.

Authorizations:
bearerAuth
header Parameters
Authorization
required
string

Bearer

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "voiceId": "string",
  • "language": "string",
  • "greeting": "string",
  • "greetingOutbound": "string",
  • "voicemailGreeting": "string",
  • "phoneNumber": {
    },
  • "gmailInboundCampaignId": "string",
  • "gmailSenderInclude": [
    ]
}

Update the AI Concierge agent configuration

Partial update of the AI Concierge agent. Only supplied fields are written. Returns the same shape as GET /agent.

The voicemail audio is regenerated (OpenAI TTS in the persona voice) when voicemailGreeting is supplied OR when voiceId changes and the persona already has a voicemail greeting. language is NOT required for the voicemail greeting.

If the persona write succeeds but the voicemail step fails, the response is 502 and the persona change is kept (partial-write window; the FE should re-fetch via GET /agent to show the actual state).

Authorizations:
bearerAuth
header Parameters
Authorization
required
string

Bearer

Request Body schema: application/json
name
string
voiceId
string
greeting
string
greetingOutbound
string

First sentence the AI speaks on outbound calls. Empty string clears the field. Max 1000 characters.

voicemailGreeting
string

Voicemail greeting text. Persisted on persona.voicemail_greeting; audio is synthesized by OpenAI in the persona voice and uploaded as an MP3. Empty string is replaced with a default greeting (never cleared). Max 1000 characters. language is NOT required.

language
string
Enum: "en" "es"

Optional. Rewrites the persona prompt language instruction. Not coupled to the voicemail greeting (voicemail voice is the persona voice).

officeHours
object
voiceWhatsappNotifyScope
string
gmailInboundCampaignId
string
gmailSenderInclude
Array of strings

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "voiceId": "string",
  • "greeting": "string",
  • "greetingOutbound": "string",
  • "voicemailGreeting": "string",
  • "language": "en",
  • "officeHours": { },
  • "voiceWhatsappNotifyScope": "string",
  • "gmailInboundCampaignId": "string",
  • "gmailSenderInclude": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "voiceId": "string",
  • "greeting": "string",
  • "greetingOutbound": "string",
  • "voicemailGreeting": "string",
  • "status": "active"
}

API Keys

Manage API keys for authentication

Create API Key

Authorizations:
bearerAuth
header Parameters
X-Account-ID
required
string

Account ID for which to create the API key

Request Body schema: application/json

API key information that needs to be created

name
required
string

Nombre de la API key

description
string

Descripción opcional de la API key

expires_at
integer <int64> >= 0

Timestamp Unix de expiración (0 = sin expiración)

Responses

Request samples

Content type
application/json
{
  • "name": "API Key para integración",
  • "description": "API key para integración con sistema externo",
  • "expires_at": 1735689600
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "key": "string",
  • "account_id": "string",
  • "name": "string",
  • "description": "string",
  • "created_by": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "is_revoked": true,
  • "expires_at": 1735689600
}

API Keys List

Authorizations:
bearerAuth
header Parameters
X-Account-ID
required
string

Account ID for which to list API keys

Responses

Response samples

Content type
application/json
[
  • {
    }
]

API Key by ID

Authorizations:
bearerAuth
path Parameters
key_id
required
string

ID of the API key to retrieve

header Parameters
X-Account-ID
required
string

Account ID for which to retrieve the API key

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "created_by": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "last_used": "2019-08-24T14:15:22Z",
  • "is_revoked": true,
  • "expires_at": "2019-08-24T14:15:22Z",
  • "is_expired": true
}

API Key

Authorizations:
bearerAuth
path Parameters
key_id
required
string

ID of the API key to delete

header Parameters
X-Account-ID
required
string

Account ID for which to delete the API key

Responses

Revoke API Key

Authorizations:
bearerAuth
path Parameters
key_id
required
string

ID of the API key to revoke

header Parameters
X-Account-ID
required
string

Account ID for which to revoke the API key

Responses

Authentication

Log in

Request Body schema: application/json
username
string

User Email

password
string

User Password

domain
string

User account name

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "password": "string",
  • "domain": "string"
}

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "refresh_token": "string",
  • "user": { }
}

Autoprovision

UCP Mobile Codecs

Request Body schema: application/json
audio
required
Array of strings

UCP Mobile audio codecs list

video
required
Array of strings

UCP Mobile video codecs list

transport
string
Default: "tcp"

UCP Mobile transport. [udp | tcp]

Responses

Request samples

Content type
application/json
{
  • "audio": [
    ],
  • "video": [
    ],
  • "transport": "tcp"
}

UCP Codecs

Request Body schema: application/json
codecs
required
Array of strings

Audio Codecs List

Responses

Request samples

Content type
application/json
{
  • "codecs": [
    ]
}

Autoprovision Codecs

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "ucp": {
    },
  • "ucp_mobile": {
    }
}

Autoprovision Status

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "ucp": true,
  • "ucp_mobile": true
}

Call Center

Agent Queues Status

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "extension": "string",
  • "queues": [
    ]
}

Agent Outbound Queue

query Parameters
queueID
required
string

Queue ID

Responses

Agent Status

path Parameters
status
required
string

one of login/logout

query Parameters
queueID
required
string

Queue ID to set user status in

Responses

Agent Status All Queues

path Parameters
status
required
string

one of login/logout

Responses

Queue by DID

query Parameters
did
required
string

DID number

Responses

Response samples

Content type
application/json
{
  • "assigned_to_queue": true,
  • "queue_id": "string",
  • "queue_name": "string"
}

Change agent status in a queue

path Parameters
userID
required
string

user id

status
required
string

one of login/logout

query Parameters
queueID
required
string

Queue ID to set user status in

Responses

Get queues status

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "max_time_caller_in_queue": 0,
  • "strategy": "string",
  • "agents": [
    ],
  • "total_agents": 0,
  • "logged_in_agents": 0,
  • "logged_out_agents": 0
}

Get queues calls

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Spy, barge or whisper into a queue conference

Patches a supervisor extension into a live queue conference in one of three monitoring modes. The request is forwarded to the queues engine over RabbitMQ. Restricted to account admins and queue supervisors (UserAdminOrSupervisorMiddleware).

The mode is selected by the action path parameter:

  • spy — silent monitoring. The supervisor hears the call but is muted to everyone (listen / eavesdrop).
  • barge — the supervisor joins and is audible to both parties.
  • coach — whisper / coaching. The supervisor is audible ONLY to the monitored agent (ext), not to the remote party.

This is the queue-conference twin of the live-call endpoint POST /api/v2/calls/{action}/{uuid}/{extension}; here the target is identified by the queue conference id rather than a call-leg UUID.

path Parameters
confid
required
string

Queue conference id of the call to monitor.

ext
required
string

Supervisor extension to patch into the conference.

action
required
string
Enum: "spy" "barge" "coach"

Monitoring mode.

header Parameters
X-Account-ID
required
string

Kazoo account id that owns the queue conference.

Responses

Add Music on Hold

Request Body schema: multipart/form-data
file
string <binary>
name
string
type
string
Enum: "mp3" "x-wav"
description
string

Responses

Response samples

Content type
application/json
{
  • "streamable": true,
  • "name": "string",
  • "description": "string",
  • "prompt_id": "string",
  • "language": "string",
  • "tts": {
    },
  • "media_source": "string",
  • "id": "string"
}

Get List of Music on Hold elements

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/api/v2/config/signup/moh/assignment

Request Body schema: application/json
music_on_hold_id
string

Responses

Request samples

Content type
application/json
{
  • "music_on_hold_id": "string"
}

Check if destination is available

Responses

Response samples

Content type
application/json
{
  • "destination1": true
}

Get the current state of the logged-in agent

Responses

Response samples

Content type
application/json
{
  • "state": "string"
}

Set the state of the logged-in agent

path Parameters
uuid
required
string

The state UUID to set for the agent

Responses

Callflows

Access and modify the information that has to do with Call Recording, both for the account and for the users.

GET callflows (excluding queues) of specified account

Responses

Response samples

Content type
application/json
[
  • {
    }
]

CREATE a callflow into specified account

Request Body schema: application/json
name
string

Callflow Name

type
string

Callflow Type

numbers
Array of strings

Callflow Numbers

patterns
Array of strings

Callflow Patterns

Array of objects

Callflow Modules list

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "numbers": [
    ],
  • "patterns": [
    ],
  • "modules": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string"
}

GET a single callflow detail (including attached numbers and the top-level flow module)

Returns the full callflow document for the supplied id, including the list of DIDs/extensions attached to it (numbers), any matching patterns, the top-level routing module (flow), and the fonoUC callflow extensions (queue id, omnichannel team, CRM popup config, after-call actions, etc.). Use this to resolve a DID → callflow → destination (queue, user, voicemail, ring group, …) for routing UIs.

path Parameters
id
required
string

Callflow ID

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "name": "string",
  • "owner_id": "string",
  • "numbers": [
    ],
  • "patterns": [
    ],
  • "type": "string",
  • "group_id": "string",
  • "contact_list": {
    },
  • "flow": {
    },
  • "fonoUC": { }
}

UPDATE an existing callflow

path Parameters
id
required
string

Callflow ID

Request Body schema: application/json
name
string

Callflow Name

type
string

Callflow Type

numbers
Array of strings

Callflow Numbers

patterns
Array of strings

Callflow Patterns

Array of objects

Callflow Modules list

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "numbers": [
    ],
  • "patterns": [
    ],
  • "modules": [
    ]
}

DELETE an existing callflow

path Parameters
id
required
string

Callflow ID

Responses

Call Recording

Call Recording Status

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "account_mode": true,
  • "retention_duration": 0,
  • "size_limit": 0,
  • "service": "string",
  • "is_filename_custom": true,
  • "custom_filename": "%call_id-%caller_id_number-%caller_id_name",
  • "encryption": {
    }
}

Call Recording Configuration

Request Body schema: application/json
account_mode
required
boolean
outbound_onnet
boolean
outbound_offnet
boolean
inbound_onnet
boolean
inbound_offnet
boolean
Array of objects (EditCallRecordingUserData)
is_filename_custom
boolean
custom_filename
string
enable_recording_per_user
boolean
object

HIPAA compliant encryption configuration for recordings

Responses

Request samples

Content type
application/json
{
  • "account_mode": true,
  • "outbound_onnet": true,
  • "outbound_offnet": true,
  • "inbound_onnet": true,
  • "inbound_offnet": true,
  • "edited_users": [
    ],
  • "is_filename_custom": true,
  • "custom_filename": "string",
  • "enable_recording_per_user": true,
  • "encryption": {
    }
}

Call Recording Account Configuration

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "outbound_onnet": true,
  • "outbound_offnet": true,
  • "inbound_onnet": true,
  • "inbound_offnet": true
}

Call Recording Users Configuration

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get encryption configuration

Retrieves the current encryption configuration for call recordings.

header Parameters
X-Account-ID
required
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "config": {
    }
}

Configure encryption settings

Updates the encryption configuration for call recordings. This endpoint allows you to enable or disable encryption and configure encryption parameters.

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
enabled
boolean

Whether to enable encryption for call recordings

algorithm
string

Encryption algorithm to use (optional, defaults to AES-256-GCM)

key_version
integer

Version of the encryption key (optional, defaults to 1)

key_id
string

Unique identifier for the encryption key (optional)

salt
string

Base64 encoded salt for encryption (optional)

encrypted_key
string

Encrypted account-specific key (optional)

Responses

Request samples

Content type
application/json
{
  • "enabled": false,
  • "algorithm": "AES-256-GCM",
  • "key_version": 1,
  • "key_id": "key_default",
  • "salt": "default_salt",
  • "encrypted_key": "default_encrypted_key"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Encryption configuration updated successfully",
  • "config": {
    }
}

Toggle recording for a call

This endpoint allows users to toggle recording for a specific call.

path Parameters
id
required
any

The ID of the call to toggle recording for. You should look for the P-CID header in the INVITE SIP message.

query Parameters
action
required
any

The action to perform (start or stop recording)

filename
any

The name of the file to save the recording as. You should look for the Q-Recording-File-Name header in the INVITE SIP message.

Responses

Calls

Real-time call control (hangup). Originating, bridging, transferring and querying live call state are not exposed as REST endpoints — see the "Calls (real-time)" note below.

Hang up an active call

Tears down a two-legged call by call-leg UUID. The inbound and outbound leg UUIDs come from the CDR or from the realtime call events that the platform emits. The handler first attempts to hang up via the Kazoo API (HangupCall) on the inbound leg, then falls back to the outbound leg, and finally to a force fs_cli uuid_kill over SSH on every configured FreeSWITCH node if both API calls fail. Both legs are best-effort: a 204 No Content only means the request was accepted, not that both legs were guaranteed alive when the kill was issued.

query Parameters
inbound
required
string <uuid>

UUID of the inbound leg (A-leg).

outbound
string <uuid>

UUID of the outbound leg (B-leg). Optional but strongly recommended for bridged calls — if only the inbound leg is supplied and the Kazoo hangup of that leg fails, the call cannot be torn down.

Responses

Spy, barge or whisper into a live call

Adds a supervisor extension into a live call leg in one of three listen modes. The handler forwards the request to the queues / three-way engine (GET /threeway_barge) which patches the supervisor into the existing bridge.

The mode is selected by the action path parameter:

  • spy — silent monitoring. The supervisor hears both parties but is muted to everyone (a.k.a. listen / eavesdrop).
  • barge — the supervisor joins the conversation and is audible to both parties.
  • coach — whisper / coaching. The supervisor is audible ONLY to the monitored agent (extension), not to the remote party.

This endpoint is the call-control twin of PUT /callcenter/queue/queue_add_agent/{confid}/{ext}/{action}; this one keys off the live call-leg UUID, the call-center one keys off the queue conference id. The HTTP status returned mirrors whatever the queues engine replies with.

path Parameters
action
required
string
Enum: "spy" "barge" "coach"

Monitoring mode.

uuid
required
string <uuid>

UUID of the call leg to monitor (from the CDR or realtime call events).

extension
required
string

Supervisor extension to patch into the call.

header Parameters
X-Account-ID
required
string

Kazoo account id that owns the call.

Responses

Campaigns

Clean Campaign Numbers

Responses

New Campaign

Request Body schema: application/json
queue_id
string
name
string
retries
integer
note
string

Responses

Request samples

Content type
application/json
{
  • "queue_id": "string",
  • "name": "string",
  • "retries": 0,
  • "note": "string"
}

Response samples

Content type
application/json
{
  • "id": "string"
}

All Campaigns

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Campaign

path Parameters
id
required
string

Campaign ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "queue_id": "string",
  • "name": "string",
  • "note": "string",
  • "status": "string",
  • "created": 0,
  • "retries": 0
}

Campaign

path Parameters
id
required
string

Campaign ID

Responses

Delete Campaign by id.

path Parameters
id
required
string

Campaign ID

Responses

Add number to campaign.

path Parameters
id
required
string

Campaign ID

Request Body schema: application/json
number
string
retries
integer

Number of retries assigned to number. If omitted, then campaign rules will apply.

first_name
string
last_name
string
type
string
priority
integer

range 1 to 100

ticket_id
string

custom value

note
string

custom value

cool_off
integer

in seconds

cool_off_2nd
integer

in seconds

cool_off_3rd
integer

in seconds

Request samples

Content type
application/json
{
  • "number": "string",
  • "retries": 0,
  • "first_name": "string",
  • "last_name": "string",
  • "type": "string",
  • "priority": 0,
  • "ticket_id": "string",
  • "note": "string",
  • "cool_off": 0,
  • "cool_off_2nd": 0,
  • "cool_off_3rd": 0
}

Add numbers to campaign via CSV (Bulk operation).

path Parameters
id
required
string

Campaign ID

Request Body schema: multipart/form-data
numbers
required
string <binary>

CSV file containing numbers to add to the campaign

Responses

Add numbers to campaign via API (Bulk operation using CRM API).

path Parameters
id
required
string

Campaign ID

Request Body schema: application/json
method
required
string

HTTP method to be used (e.g., GET, POST) in the API request

url
required
string

URL of the CRM API endpoint to fetch leads

required
object

Mapping between CRM response fields and internal lead fields

Responses

Request samples

Content type
application/json
{
  • "method": "string",
  • "url": "string",
  • "mapping": {
    }
}

Get all numbers in campaign.

path Parameters
id
required
string

Campaign ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get specified number in campaign.

path Parameters
lead_id
required
string

Number ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "created": "string",
  • "campaign_id": "string",
  • "number": "string",
  • "status": "string",
  • "retries": "string"
}

Edit campaign number.

path Parameters
lead_id
required
string

Number ID

Request Body schema: application/json
number
string
retries
integer

Number of retries assigned to number. If omitted, then campaign rules will apply.

Responses

Request samples

Content type
application/json
{
  • "number": "string",
  • "retries": 0
}

DeleteCampaignNumbers.

path Parameters
lead_id
required
string

Number ID

Responses

List follow-up events within a date range

Authorizations:
bearerAuth
query Parameters
from
required
integer <int64>
Example: from=1640995200

Start of the date range as a unix timestamp

to
required
integer <int64>
Example: to=1641081600

End of the date range as a unix timestamp

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Schedule a follow-up by hand, from a number, for the signed-in user

A follow-up with no call behind it: no CDR, call, queue or disposition. It belongs to the signed-in user, never to an agent named in the body, and is delivered by the same reminder and Follow-Up WebSocket events as a follow-up set in a call's wrap-up. Its cdr_id is <YYYYMM>-manual-<32 hex>. Refused for an API key, and for a user working in an account other than their own (X-Account-ID).

Authorizations:
bearerAuth
Request Body schema: application/json
customer_number
required
string

The number to call back. Spaces, dashes, brackets and dots are dropped; what remains must match ^\+?[0-9*#]{2,32}$. Stored as dialed.

follow_up_reason
required
string <= 120 characters

Why the agent will call back. Required; trimmed; at most 120 characters.

follow_up_timestamp
required
integer <int64>

When to call back, unix seconds. At least one scheduler pending-check interval ahead (cron.follow_up_pending_check_task_interval, 5 minutes by default) and at most 365 days ahead.

follow_up_notes
string

Optional notes.

Responses

Request samples

Content type
application/json
{
  • "customer_number": "+27115550100",
  • "follow_up_reason": "Send the quote",
  • "follow_up_timestamp": 1792500000,
  • "follow_up_notes": "string"
}

List the signed-in user's open follow-ups

Pending, reminded, offered and in-progress follow-ups of the signed-in user, from a wrap-up or scheduled by hand, soonest first. Same refusals as the POST.

Authorizations:
bearerAuth

Responses

Get a specific follow-up event by CDR ID

Authorizations:
bearerAuth
path Parameters
cdr_id
required
string

The CDR ID of the follow-up event

Responses

Response samples

Content type
application/json
{
  • "call_id": "string",
  • "cdr_id": "string",
  • "customer_number": "string",
  • "queue_id": "string",
  • "agent_id": "string",
  • "disposition_id": "string",
  • "follow_up_timestamp": 0,
  • "follow_up_notes": "string",
  • "follow_up_reason": "string",
  • "status": "string",
  • "created": 0
}

Update the status of a specific follow-up event

Authorizations:
bearerAuth
path Parameters
cdr_id
required
string

The CDR ID of the follow-up event

Request Body schema: application/json
status
required
string
Enum: "pending" "reminded" "offered" "in_progress" "completed" "cancelled"

The new status for the follow-up event. Allowed transitions: pending → reminded/offered/in_progress/cancelled, reminded → offered/in_progress/cancelled, offered → in_progress/cancelled, in_progress → completed/cancelled

Responses

Request samples

Content type
application/json
{
  • "status": "in_progress"
}

Edit call disposition for a specific call

Authorizations:
bearerAuth
path Parameters
id
required
string

The ID of the call to edit disposition

header Parameters
X-Account-ID
required
string

The ID of the account for which the call belongs

Request Body schema: application/json
disposition
required
string

The disposition value for the call

follow_up_timestamp
integer <int64>

Timestamp for follow-up action

follow_up_notes
string

Notes for follow-up action

object

Type of follow-up action

object

Subdisposition information (optional)

Responses

Request samples

Content type
application/json
{
  • "disposition": "ANSWERED",
  • "follow_up_timestamp": 1640995200,
  • "follow_up_notes": "Customer requested callback",
  • "follow_up_type": {
    },
  • "subdisposition": {
    }
}

Conferences

User Conference PIN

Request Body schema: application/json
pin
string

PIN Number to set

Responses

Request samples

Content type
application/json
{
  • "pin": "string"
}

User Conference Numbers

GET Room and PSTN Numbers of user conference

Responses

Response samples

Content type
application/json
{
  • "room_number": "string",
  • "pstn_numbers": [
    ],
  • "pin_number": "string"
}

Credit

Account Credit Thresholds

path Parameters
id
required
string

ID of Account

Request Body schema: application/json
threshold_alert
number
recharge_threshold
number
recharge_amount
number

Responses

Request samples

Content type
application/json
{
  • "threshold_alert": 0,
  • "recharge_threshold": 0,
  • "recharge_amount": 0
}

Account Credit Balance

Authorizations:
bearerAuth
path Parameters
id
required
string

ID of Account

operation
required
string

Type of Operation (add or remove)

header Parameters
X-Account-ID
string

Account ID

Request Body schema: application/json
amount
number

Credit amount

mount
number
Deprecated

Deprecated alias for amount (still accepted)

Responses

Request samples

Content type
application/json
{
  • "amount": 0,
  • "mount": 0
}

CRM

Zoho Integration Activation

header Parameters
X-Account-ID
string

Account ID

Request Body schema: application/json
code
string

Authentication code generated by Zoho during the integration process

location
string

Geographic location of the user that started the integration process

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "location": "string"
}

Zoho Integration Deactivation

header Parameters
X-Account-ID
string

Account ID

Responses

Zoho Integration Status

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "status": "string"
}

Zoho Integration Users

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "last_sync": 0,
  • "users": [
    ]
}

Sync Zoho users list with system users

header Parameters
X-Account-ID
string

Account ID

Responses

Assign Zoho user to a system user

path Parameters
ZohoUserID
required
string

ID of the Zoho user

header Parameters
X-Account-ID
string

Account ID

Request Body schema: application/json
user
string

System user ID

Responses

Request samples

Content type
application/json
{
  • "user": "string"
}

Response samples

Content type
application/json
{
  • "request body": "string"
}

Auto assign Zoho user to a system user

path Parameters
ZohoUserID
required
string

ID of the Zoho user

header Parameters
X-Account-ID
string

Account ID

Request Body schema: application/json
email
string

Email of the Zoho user

Responses

Request samples

Content type
application/json
{
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "request body": "string"
}

Unassign Zoho user of a system user

path Parameters
ZohoUserID
required
string

ID of the Zoho user

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "request params": "string"
}

Reupload a single recording URI to Zoho

Reuploads a single recording's URI to Zoho CRM. This is useful when a recording link needs to be regenerated or updated in Zoho. You can specify the recording by either recording_id or call_id.

query Parameters
recording_id
string
Example: recording_id=202512-AJrKOXn30WDcEcvZswGD

ID of the recording (format YYYYMM-xxxxx). Either recording_id or call_id is required.

call_id
string
Example: call_id=18241418-4b3c-4d14-9515-df572699c2ad

ID of the call associated with the recording. Either recording_id or call_id is required.

header Parameters
X-Account-ID
required
string

Account ID

Responses

Response samples

Content type
application/json
{}

Update Hubspot integration status

header Parameters
X-Account-ID
string

Account ID

Request Body schema: application/json
enabled
boolean

Status of the integration

code
string

Authorization code obtained through the OAuth authentication process (it is required to enable the integration)

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "code": "string"
}

GET Hubspot integration status

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "enabled": true
}

GET Hubspot integration users list

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Assign Hubspot user with a system's user

path Parameters
userID
required
string

Hubspot user id

header Parameters
X-Account-ID
string

Account ID

Request Body schema: application/json
user_id
string

System user id

Responses

Request samples

Content type
application/json
{
  • "user_id": "string"
}

Auto assign Hubspot user with a system's user with the same email

path Parameters
userID
required
string

Hubspot user id

header Parameters
X-Account-ID
string

Account ID

Request Body schema: application/json
email
string

Hubspot user email

Responses

Request samples

Content type
application/json
{
  • "email": "string"
}

Unassign Hubspot user of a system's user

path Parameters
userID
required
string

Hubspot user id

header Parameters
X-Account-ID
string

Account ID

Responses

Custom Caller ID

Access and modify information about custom caller ID (Account and Users)

Edit custom Caller ID information about users.

All the documents of the users sent in the request will be modified. Modifying the fields sent by each user (callerid_name, callerid_number)

Request Body schema: application/json
Array
id
string

ID of User

callerid_name
string or null

Edited Caller ID Name of User

callerid_number
string or null

Edited Caller ID Number of User

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Get custom Caller ID information about users.

All documents of the users of the account specified in the header are accessed. A summary of these users is returned in response (with callerid_name & callerid_number)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Custom Caller ID Status

Accessing the account document, only the status of Custom Caller ID will be modified.

Request Body schema: application/json
enabled
required
boolean

Represents the Custom Caller ID status change.

Responses

Request samples

Content type
application/json
{
  • "enabled": true
}

Custom Caller ID Status

Accessing the account document, the value of the status of custom caller ID is returned in response.

Responses

Response samples

Content type
application/json
true

Custom Routing

Get custom routing status

Responses

Devices

New Device

Request Body schema: application/json
name
string

Device Name

number
string

Device Number

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "number": "string"
}

Response samples

Content type
application/json
{
  • "id": "9eca3e9020030b9a95793f9e7a81590e",
  • "call_forward": {
    },
  • "contact_list": {
    },
  • "device_type": "cellphone",
  • "enabled": true,
  • "exclude_from_queues": false,
  • "media": {
    },
  • "music_on_hold": { },
  • "mwi_unsolicitated_updates": true,
  • "name": "my_device",
  • "owner_id": "e65cf6fa51dbba68aa4f1ba70fe05e9f",
  • "register_overwrite_notify": false,
  • "ringtones": { },
  • "sip": {
    },
  • "suppress_unregister_notifications": true,
  • "ui_metadata": { }
}

User Device

path Parameters
id
required
string

ID of User

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
name
string

Device Name

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string"
}

User Devices Bulk

path Parameters
id
required
string

ID of User

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
Array
name
string

Device Name

object

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "ids": [
    ]
}

DidNumbers

User DID Numbers

Responses

Response samples

Content type
application/json
[
  • "string"
]

Export

Export Tasks Configuration

Get export tasks configuration with a given resource /category

path Parameters
category
required
string

Resource category (for instance reports)

query Parameters
method
required
string

Name of the export method (for instance email)

Responses

Response samples

Content type
application/json
{
  • "export_method": {
    }
}

Export Tasks Configuration

Update export tasks configuration with a given resource /category

path Parameters
category
required
string

Resource category (for instance reports)

query Parameters
method
required
string

Name of the export method (for instance email)

Request Body schema: application/json
object
object

Responses

Request samples

Content type
application/json
{
  • "users_activity": {
    },
  • "users_charges": {
    }
}

Export Tasks Configuration

Delete export tasks configuration with a given resource /category/name

path Parameters
category
required
string

Resource category (for instance reports)

query Parameters
method
required
string

Name of the export method (for instance email)

Responses

Export Task Configuration

Get export task configuration with a given resource /category/name

path Parameters
category
required
string

Resource category (for instance reports)

name
required
string

Resource name (for instance users_activity)

query Parameters
method
required
string

Name of the export method (for instance email)

Responses

Response samples

Content type
application/json
{
  • "single_json_file": true,
  • "single_csv_file": true,
  • "interval": "string",
  • "settings": {
    }
}

Export Task Configuration

Update export task configuration with a given resource /category/name

path Parameters
category
required
string

Resource category (for instance reports)

name
required
string

Resource name (for instance users_activity)

query Parameters
method
required
string

Name of the export method (for instance email)

Request Body schema: application/json
single_json_file
boolean

Indicates if the single json file task is scheduled or not

single_csv_file
boolean

Indicates if the single csv file task is scheduled or not

interval
string

Indicates the execution interval configured for the task

object

Responses

Request samples

Content type
application/json
{
  • "single_json_file": true,
  • "single_csv_file": true,
  • "interval": "string",
  • "settings": {
    }
}

Export Task Configuration

Delete export task configuration with a given resource /category/name

path Parameters
category
required
string

Resource category (for instance reports)

name
required
string

Resource name (for instance users_activity)

query Parameters
method
required
string

Name of the export method (for instance email)

Responses

Export Method Configuration

Get given export method configuration

path Parameters
method
required
string

Export method (for instance email)

Responses

Response samples

Content type
application/json
{
  • "server": "string",
  • "port": 0,
  • "username": "string",
  • "password": "string"
}

Export Method Configuration

Update given export method configuration

path Parameters
method
required
string

Export method (for instance email)

Request Body schema: application/json
server
string

Domain of the SMTP Server (for instance smtp.gmail.com)

port
number

Port number of the SMTP Server (for instance 587)

username
string

Email address that will be the sender of the emails

password
string

Password of the account

Responses

Request samples

Content type
application/json
{
  • "server": "string",
  • "port": 0,
  • "username": "string",
  • "password": "string"
}

Export Jobs

List the export jobs of the account, ordered by name

query Parameters
method
string

Name of the export method. Defaults to email

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Export Job

Create an export job and schedule its tasks

query Parameters
method
string

Name of the export method. Defaults to email

Request Body schema: application/json
single_json_file
boolean

Indicates if the single json file task is scheduled or not

single_csv_file
boolean

Indicates if the single csv file task is scheduled or not

interval
string

Indicates the execution interval configured for the task

object
id
string

The job document id, assigned on creation; ignored in a request body

method
string

Delivery method the job was filed under. Taken from the route, ignored in a request body

name
string

Name shown in the exportables list

description
string

Optional free text saying what the export is for

report
string

Exported report (for instance all_calls)

enabled
boolean

A disabled job keeps its configuration but is not scheduled. Defaults to true

Responses

Request samples

Content type
application/json
{
  • "single_json_file": true,
  • "single_csv_file": true,
  • "interval": "string",
  • "settings": {
    },
  • "id": "string",
  • "method": "string",
  • "name": "string",
  • "description": "string",
  • "report": "string",
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "single_json_file": true,
  • "single_csv_file": true,
  • "interval": "string",
  • "settings": {
    },
  • "id": "string",
  • "method": "string",
  • "name": "string",
  • "description": "string",
  • "report": "string",
  • "enabled": true
}

Export Job

Get a single export job

path Parameters
id
required
string

Export job ID

query Parameters
method
string

Name of the export method. Defaults to email

Responses

Response samples

Content type
application/json
{
  • "single_json_file": true,
  • "single_csv_file": true,
  • "interval": "string",
  • "settings": {
    },
  • "id": "string",
  • "method": "string",
  • "name": "string",
  • "description": "string",
  • "report": "string",
  • "enabled": true
}

Export Job

Update an export job and re-schedule its tasks

path Parameters
id
required
string

Export job ID

query Parameters
method
string

Name of the export method. Defaults to email

Request Body schema: application/json
single_json_file
boolean

Indicates if the single json file task is scheduled or not

single_csv_file
boolean

Indicates if the single csv file task is scheduled or not

interval
string

Indicates the execution interval configured for the task

object
id
string

The job document id, assigned on creation; ignored in a request body

method
string

Delivery method the job was filed under. Taken from the route, ignored in a request body

name
string

Name shown in the exportables list

description
string

Optional free text saying what the export is for

report
string

Exported report (for instance all_calls)

enabled
boolean

A disabled job keeps its configuration but is not scheduled. Defaults to true

Responses

Request samples

Content type
application/json
{
  • "single_json_file": true,
  • "single_csv_file": true,
  • "interval": "string",
  • "settings": {
    },
  • "id": "string",
  • "method": "string",
  • "name": "string",
  • "description": "string",
  • "report": "string",
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "single_json_file": true,
  • "single_csv_file": true,
  • "interval": "string",
  • "settings": {
    },
  • "id": "string",
  • "method": "string",
  • "name": "string",
  • "description": "string",
  • "report": "string",
  • "enabled": true
}

Export Job

Delete an export job and cancel its scheduled tasks

path Parameters
id
required
string

Export job ID

query Parameters
method
string

Name of the export method. Defaults to email

Responses

Fax

returns fax attachment file for specified fax id

Responses

Response samples

Content type
application/json
{ }

Send fax

Request Body schema: application/json
from_name
string

sender's Email

from_number
string

sender's number

to_name
string

receiver's Email

to_number
string

receiver's number

url
string

url of the file to send

file
string <binary>

Responses

Request samples

Content type
application/json
{
  • "from_name": "string",
  • "from_number": "string",
  • "to_name": "string",
  • "to_number": "string",
  • "url": "string",
  • "file": "string"
}

Response samples

Content type
application/json
{
  • "attempts": null,
  • "document": {
    },
  • "fax_timezone": "string",
  • "from_name": "string",
  • "from_number": "string",
  • "id": "string",
  • "retries": null,
  • "to_name": "string",
  • "to_number": "string"
}

returns fax status for specified fax id

Responses

Response samples

Content type
application/json
{ }

returns fax status for all faxes

Responses

Response samples

Content type
application/json
[
  • null
]

returns faxes from folders inbox or outbox

Responses

Response samples

Content type
application/json
[
  • null
]

returns faxes from folders inbox or outbox

Responses

Response samples

Content type
application/json
[
  • {
    }
]

returns faxes from folders inbox or outbox

Responses

Response samples

Content type
application/json
{
  • "attempts": 0,
  • "caller_id": "string",
  • "caller_name": "string",
  • "fax_header": "string",
  • "fax_identity": "string",
  • "id": "string",
  • "media": {
    },
  • "name": "string",
  • "owner_id": "string",
  • "retries": 0,
  • "smtp_email_address": "string",
  • "smtp_permission_list": [
    ]
}

Send fax

Request Body schema: application/json
attempts
integer
caller_id
string
caller_name
string
fax_header
string
fax_identity
string
id
string
object
name
string
owner_id
string
retries
integer
smtp_email_address
string
smtp_permission_list
Array of strings

Responses

Request samples

Content type
application/json
{
  • "attempts": 0,
  • "caller_id": "string",
  • "caller_name": "string",
  • "fax_header": "string",
  • "fax_identity": "string",
  • "id": "string",
  • "media": {
    },
  • "name": "string",
  • "owner_id": "string",
  • "retries": 0,
  • "smtp_email_address": "string",
  • "smtp_permission_list": [
    ]
}

Response samples

Content type
application/json
{
  • "attempts": 0,
  • "caller_id": "string",
  • "caller_name": "string",
  • "fax_header": "string",
  • "fax_identity": "string",
  • "id": "string",
  • "media": {
    },
  • "name": "string",
  • "owner_id": "string",
  • "retries": 0,
  • "smtp_email_address": "string",
  • "smtp_permission_list": [
    ]
}

returns faxes from folders inbox, outbox or both

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Fax Config

Fax Configuration

Edit the fax configuration for the current user account.

Request Body schema: application/json
cover_page_enabled
required
boolean

Indicates whether cover page is enabled for fax.

Responses

Request samples

Content type
application/json
{
  • "cover_page_enabled": true
}

Fax Configuration

Retrieve the fax configuration for the current user account.

Responses

Response samples

Content type
application/json
{
  • "cover_page_enabled": true
}

Feature Bundles

Get Features List

Retrieve the list of features available in the system.

Responses

Response samples

Content type
application/json
{
  • "features": {
    }
}

Create a new feature bundle

Creates a new feature bundle with the provided features.

Request Body schema: application/json

Feature bundle object that needs to be created

features
Array of strings
name
string
description
string

Responses

Request samples

Content type
application/json
{
  • "features": [
    ],
  • "name": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "string"
}

Get all feature bundles

Retrieves all feature bundles.

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Get a feature bundle

Retrieves a feature bundle by its ID.

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "features": [
    ],
  • "name": "string",
  • "description": "string"
}

Update a feature bundle

Updates an existing feature bundle with new features.

path Parameters
id
required
string
Request Body schema: application/json

Updated feature bundle object

features
Array of strings
name
string
description
string

Responses

Request samples

Content type
application/json
{
  • "features": [
    ],
  • "name": "string",
  • "description": "string"
}

Delete a feature bundle

Deletes a feature bundle by its ID.

path Parameters
id
required
string

Responses

New Feature Plan

Creates a new feature plan with the provided features.

Request Body schema: application/json

Feature plan object that needs to be created

name
string
description
string
feature_bundle_id
string
price
integer
users_limit
integer
unlimited_users
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "feature_bundle_id": "string",
  • "price": 0,
  • "users_limit": 0,
  • "unlimited_users": true
}

Response samples

Content type
application/json
{
  • "id": "string"
}

All Feature Plans

Retrieves all feature plans.

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Feature Plan

Retrieves a feature plan by its ID.

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "feature_bundle_id": "string",
  • "price": 0,
  • "users_limit": 0,
  • "unlimited_users": true
}

Feature Plan

Updates an existing feature bundle with new features.

path Parameters
id
required
string
Request Body schema: application/json

Updated feature bundle object

name
string
description
string
feature_bundle_id
string
price
integer
users_limit
integer
unlimited_users
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "feature_bundle_id": "string",
  • "price": 0,
  • "users_limit": 0,
  • "unlimited_users": true
}

Feature Plan

Deletes a feature bundle by its ID. Feature plan can't be deleted in case there are users assigned to it.

path Parameters
id
required
string

Responses

FMFM Profile

FMFM Profile

Request Body schema: application/json
name
string
active
boolean
Array of objects

Request samples

Content type
application/json
{
  • "name": "string",
  • "active": true,
  • "devices": [
    ]
}

FMFM Profile

Request Body schema: application/json
name
string
active
boolean
Array of objects

Request samples

Content type
application/json
{
  • "name": "string",
  • "active": true,
  • "devices": [
    ]
}

FMFM Profile

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "active": true,
  • "name": "string",
  • "devices": [
    ]
}

FMFM Profile

Responses

FMFM Profiles

FMFM Profiles

Responses

Response samples

Content type
application/json
[
  • {
    }
]

FMFM State

User FMFM State

path Parameters
id
required
string

ID of User

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
enabled
boolean

Enable FMFM feature for user?

Responses

Request samples

Content type
application/json
{
  • "enabled": true
}

FMFM Enabled State

Request Body schema: application/json
enabled
boolean

Request samples

Content type
application/json
{
  • "enabled": true
}

FMFM Enabled State

IP Whitelisting

Add IP to whitelist

Adds an IP address to the whitelist.

Request Body schema: application/json
ip
string <ipv4>

The IP address to be added to the whitelist.

description
string

A description for the IP address entry.

comments
string

Additional comments or notes about the IP address.

Responses

Request samples

Content type
application/json
{
  • "ip": "192.168.0.1",
  • "description": "string",
  • "comments": "string"
}

Retrieve all whitelisted IP addresses

Retrieves metadata for all whitelisted IP addresses.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Edit whitelisted IP

Edits metadata for a whitelisted IP address.

path Parameters
ip
required
any

IP address to edit

Request Body schema: application/json
description
string

The updated description for the IP address entry.

comments
string

The updated comments or notes about the IP address.

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "comments": "string"
}

Delete IP from whitelist

Deletes an IP address from the whitelist.

path Parameters
ip
required
any

IP address to delete

Responses

Get whitelisted IP

Retrieves metadata for a whitelisted IP address.

path Parameters
ip
required
any

IP address to retrieve

Responses

Response samples

Content type
application/json
{
  • "ip": "string",
  • "metadata": {
    }
}

LDAP

LDAP Login Status

Responses

Response samples

Content type
application/json
{
  • "enabled": true
}

LDAP Login Status

Request Body schema: application/json
enabled
boolean

Responses

Request samples

Content type
application/json
{
  • "enabled": true
}

Locations

Access to locations information

Obtain a summary of the list of users with information about their provisioning with the location

Taking the ID of the Location that arrives by parameters of the URL, a summary of the list of users belonging to the account will be returned, each user will contain a boolean that indicates if the user belongs to that location.

path Parameters
id
required
string

ID of Location

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Check if the account does not have locations yet

A boolean will be returned in response, indicating whether the account document has locations or not.

header Parameters
X-Account-ID
string

Account ID

Responses

Account Locations

Responses

Response samples

Content type
application/json
{
  • "enabled": false,
  • "default": "string",
  • "data": [
    ]
}

New Location

Request Body schema: application/json

Location object that needs to be added to the account

default
boolean
object

Responses

Request samples

Content type
application/json
{
  • "default": true,
  • "location": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string"
}

Location

path Parameters
locationID
required
string <uuid4>

ID of location to get

Responses

Location

path Parameters
locationID
required
string <uuid4>

ID of location to update

Request Body schema: application/json

Location object that needs to be edited

default
boolean
object

Responses

Request samples

Content type
application/json
{
  • "default": true,
  • "location": {
    }
}

Location

path Parameters
locationID
required
string <uuid4>

ID of location to delete

Responses

User Location

Using the token sent in the Authorization header you access the user's location

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "note": "string",
  • "timezone": "string",
  • "caller_id": {
    }
}

Default Location

path Parameters
locationID
required
string <uuid4>

ID of location to set as default

Responses

Locations Enabled Status

Change enabled status from enabled to disabled or vice versa

Request Body schema: application/json

Location object that needs to be edited

enabled
boolean

Responses

Request samples

Content type
application/json
{
  • "enabled": true
}

Assign users to a location

Assign or remove users to/from a location

path Parameters
locationID
required
string <uuid4>

ID of location to assign or remove users from / to

Request Body schema: application/json

Location object that needs to be edited

add
Array of strings
delete
Array of strings

Responses

Request samples

Content type
application/json
{
  • "add": [
    ],
  • "delete": [
    ]
}

Get system numbers that are not assigned to any location

Responses

Response samples

Content type
application/json
[
  • "string"
]

Get system numbers that are not assigned to any location besides numbers assigned to this location

path Parameters
locationID
required
string <uuid4>

ID of location requesting information from

Responses

Response samples

Content type
application/json
[
  • "string"
]

MainNumbers

Account Main Numbers

Responses

Response samples

Content type
application/json
[
  • "string"
]

Media

Available Media

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string"
}

Mobile

User SMS Number

query Parameters
cloud_username
required
string

Cloud Username

password
required
string

Cloud Password

Request Body schema: application/json
number
string

Number used for SMS

Responses

Request samples

Content type
application/json
{
  • "number": "string"
}

User SMS Numbers

query Parameters
cloud_username
required
string

Cloud Username

password
required
string

Cloud Password

Responses

Response samples

Content type
application/json
{
  • "numbers": [
    ],
  • "selected": "string"
}

Mobile App Information

path Parameters
cloudID
required
string

app cloud ID

query Parameters
username
required
string

username

password
required
string

password

account
required
string

Account name

Responses

Response samples

Content type
application/json
{
  • "cloud_id": "string",
  • "username": "string",
  • "password": "string"
}

Get Mobile provisioning information

query Parameters
cloud_username
required
string

username

cloud_password
required
string

password

Responses

Get user directory contact information

query Parameters
cloud_username
required
string

username

cloud_password
required
string

password

Responses

Response samples

Content type
application/json
{
  • "contactId": "string",
  • "displayname": "string",
  • "fname": "string",
  • "lname": "string",
  • "contactEntries": [
    ]
}

Get device information

path Parameters
tokenID
required
string

Token ID of device to get information from

Responses

Allow to update mobile device information

Receives a JSON doc with mobile device information

Request Body schema: application/json
name
string

Mobile device name

token_id
string

Device TOKEN ID. Unique key

platform
string

android / ios

user
string

username associated to device

extension
string

extension associated to device

model_name
string

Device model name

model_number
string

Device model number

os_version
string

Device Operative system version

registered
boolean

Flag that indicates if device is registered or not

last_registered
number

UNIX epoch with last registered time

last_push
number

UNIX epoch with last time push sent to device

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "token_id": "string",
  • "platform": "string",
  • "user": "string",
  • "extension": "string",
  • "model_name": "string",
  • "model_number": "string",
  • "os_version": "string",
  • "registered": true,
  • "last_registered": 0,
  • "last_push": 0
}

Numbers

Account Numbers

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Numbers Provider Type

Responses

Response samples

Content type
application/json
{
  • "provider": "string"
}

Available Numbers to Purchase

query Parameters
state
string

Two-letter abbreviation of state (For instance California = CA)

areacode
number

Numbers area code (For instance 201)

sms
number

Numbers should support SMS or not

results
number

Maximum quantity of results (For instance 10)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Purchase Numbers

Request Body schema: application/json

Numbers to be Purchased

Array of objects

Responses

Request samples

Content type
application/json
{
  • "numbers": [
    ]
}

Assign DID to Users

path Parameters
number
required
string

DID to assign

Request Body schema: application/json
users
Array of strings

Responses

Request samples

Content type
application/json
{
  • "users": [
    ]
}

Release Numbers

query Parameters
did
required
string

DID to release

Responses

System Numbers Information

Authorizations:
bearerAuth
path Parameters
accountID
required
string <string>

ID of account to get numbers from

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "number": {
    }
}

Add Phone Numbers

Authorizations:
bearerAuth
path Parameters
accountID
required
string <string>

ID of account to get numbers from

Request Body schema: application/json

Numbers to be created

numbers
Array of strings

Responses

Request samples

Content type
application/json
{
  • "numbers": [
    ]
}

Free Numbers

Responses

Response samples

Content type
application/json
[
  • "string"
]

Free SMS Number Check

path Parameters
number
required
string <string>

Phone number

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "free": true
}

Delete phone numbers from system

Request Body schema: application/json

Numbers to be deleted

numbers
Array of strings

Responses

Request samples

Content type
application/json
{
  • "numbers": [
    ]
}

Sync phone numbers in system

Responses

Get system number information

path Parameters
phoneNumber
required
string

phone number to get information from

Responses

Response samples

Content type
application/json
{
  • "number": "string",
  • "in_use": true,
  • "used_by": "string",
  • "created": 0,
  • "updated": 0,
  • "outbound_cid": "string",
  • "inbound_cid": true
}

Edit system number CID information

path Parameters
phoneNumber
required
string

phone number to update

Request Body schema: application/json

Number CID information to be edited

outbound_cid
string

Oubound Caller ID number

inbound_cid
boolean

Indicates if caller ID nummber must be showed for incoming calls

Responses

Request samples

Content type
application/json
{
  • "outbound_cid": "string",
  • "inbound_cid": true
}

Numbers Provider

Numbers Provider Configuration

Request Body schema: application/json
type
string

DIDs provider (For instance voip_innovations)

name
string

Name of your integration (descriptive)

note
string

Note of your integration

username
string

DIDs provider account username

password
string

DIDs provider account password

group_id
string

DIDs provider account specified group_id

object

DIDs provider configuration options

Responses

Request samples

Content type
application/json
{
  • "type": "string",
  • "name": "string",
  • "note": "string",
  • "username": "string",
  • "password": "string",
  • "group_id": "string",
  • "configuration": {
    }
}

Numbers Provider Configuration

Responses

Response samples

Content type
application/json
{
  • "type": "string",
  • "name": "string",
  • "note": "string",
  • "username": "string",
  • "password": "string",
  • "group_id": "string",
  • "configuration": {
    }
}

Onboard

User Reinvite

Sends an onboarding email to the user on the account without a valid token

Request Body schema: application/json
email
required
string

The email of the user to invite

account
required
string

The account name to use

Responses

Request samples

Content type
application/json
{
  • "email": "john@doe.com",
  • "account": "fonoUC"
}

Onboard Customization

Selected Image

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "image": "string",
  • "extension": "string"
}

Selected Image

header Parameters
X-Account-ID
string

Account ID

Request Body schema: application/json
name
string

The name of the file to be set as selected

Responses

Request samples

Content type
application/json
{
  • "name": "image.svg"
}

Delete Images

header Parameters
X-Account-ID
string

Account ID

Request Body schema: application/json
images
Array of strings

Responses

Request samples

Content type
application/json
{
  • "images": [
    ]
}

Account Images

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "images": [
    ],
  • "selected": "string"
}

Add photos to the list of photos available for the onboard site

header Parameters
X-Account-ID
string

Account ID

Request Body schema: multipart/form-data
attachment
string <binary>

Responses

Omnichannel

Register a new Inbox

header Parameters
X-Account-ID
string

Account ID

Request Body schema: application/json
inbox_id
string

ID of the new Inbox

object

Responses

Request samples

Content type
application/json
{
  • "inbox_id": "string",
  • "sms": {
    }
}

Payments

PUT Payment Gateway Integration data

path Parameters
id
required
string

ID of Payment gateway integration

Request Body schema: application/json
name
string

Payment gateway name

note
string

Payment gateway note

api_key
string

Payment gateway api_key of Stripe

publishable_key
string

Payment gateway publishable_key of Stripe

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "note": "string",
  • "api_key": "string",
  • "publishable_key": "string"
}

GET Payment Gateway Integration data

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "note": "string",
  • "api_key": "string",
  • "publishable_key": "string"
}

Create Payment Gateway Integration

Request Body schema: application/json
name
string

Payment gateway name

note
string

Payment gateway note

api_key
string

Payment gateway api_key of Stripe

publishable_key
string

Payment gateway publishable_key of Stripe

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "note": "string",
  • "api_key": "string",
  • "publishable_key": "string"
}

Response samples

Content type
application/json
{
  • "id": "string"
}

GET payment gateway available currencies

path Parameters
provider
required
string

Payments Gateway (stripe, etc.)

Responses

Response samples

Content type
application/json
[
  • "string"
]

VALIDATE and CREATE new payment method

Request Body schema: application/json
number
integer

Card Number

expiration_date
integer

Card Expiration Date

cvv
integer

Card Security Three-Digit Code

cardholder
string

Owner of the Card

country
string

Country of Card Owner

city
string

City of Card Owner

address_zip
integer

Address ZIP of Card Owner

type
string

Type of Payment Method

active
boolean

Set payment method as active

Responses

Request samples

Content type
application/json
{
  • "number": 0,
  • "expiration_date": 0,
  • "cvv": 0,
  • "cardholder": "string",
  • "country": "string",
  • "city": "string",
  • "address_zip": 0,
  • "type": "string",
  • "active": true
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Pins

Access and Modify to Pins Information

Account Pins Information

The handler will access the document that the account gives using the X-ACCOUNT-ID heading and will give a response with the information found in the document.

Responses

Response samples

Content type
application/json
{
  • "enabled": 1,
  • "mode": "whitelisted",
  • "disa_from_ignore_prefixes": [ ],
  • "disa_to_ignore_prefixes": [ ],
  • "disa_ignore_trunk_ids": [ ],
  • "groups": [ ],
  • "pins_v2": { },
  • "enable_user_ids": [ ]
}

Users Pins State

Modify Pins state in users documents.

Request Body schema: application/json
enabled_user_ids
required
Array of strings

List of user IDs with pins enabled

Responses

Request samples

Content type
application/json
{
  • "enabled_user_ids": [
    ]
}

Update Pins V2 Structure

Modify Pins V2 Structure into pins data structure within account document.

Request Body schema: application/json
required
object

Pins V2 Object

Responses

Request samples

Content type
application/json
{
  • "pins_v2": {
    }
}

Update Pins Groups List

Modify List of Pins Groups into pins data structure within account document.

Request Body schema: application/json
required
Array of objects (PinGroup)

List of Groups (Pin Groups Structure)

Responses

Request samples

Content type
application/json
{
  • "groups": [
    ]
}

Update Ignored Trunks List

Modify ignored trunks IDs list into pins data structure within account document.

Request Body schema: application/json
disa_ignore_trunk_ids
required
Array of strings

List of ignored trunks IDs

Responses

Request samples

Content type
application/json
{
  • "disa_ignore_trunk_ids": [
    ]
}

Ignore Pins Lists

Modify ignored pin lists. disa_from_ignore_prefixes and disa_to_ignore_prefixes within the pin data structure in the account document.

Request Body schema: application/json
disa_from_ignore_prefixes
required
Array of strings

List of ignored prefixes (From)

disa_to_ignore_prefixes
required
Array of strings

List of ignored prefixes (To)

Responses

Request samples

Content type
application/json
{
  • "disa_from_ignore_prefixes": [
    ],
  • "disa_to_ignore_prefixes": [
    ]
}

Pins Mode

Modify the mode field within the pin data structure in the account document.

Request Body schema: application/json
mode
required
string

Pins Mode (whitelisted or blacklisted)

Responses

Request samples

Content type
application/json
{
  • "mode": "string"
}

Pins State

Modifying the enabled field within the document of the account specified in X-Account-ID.

Request Body schema: application/json
enabled
required
boolean

Pins Status Boolean

Responses

Request samples

Content type
application/json
{
  • "enabled": true
}

Provisioning

Check if MAC address exists

Check if the specified MAC address exists in the database for the given account ID.

path Parameters
mac
required
any

MAC address to check

header Parameters
X-Account-ID
required
any

Account ID header

Responses

Response samples

Content type
application/json
{
  • "data": true
}

Create a new phone entry

Creates a new phone entry with the provided information.

Request Body schema: application/json
mac
string

MAC address of the phone

note
string

Note or description for the phone

profile
string

Profile ID for the phone

button_profile_id
string

Live linked Buttons profile ID. Empty unlinks. Stored keys stay Line only while linked.

Array of objects (PhoneKey)

List of phone keys

object (KeypadLockType)

Responses

Request samples

Content type
application/json
{
  • "mac": "string",
  • "note": "string",
  • "profile": "string",
  • "button_profile_id": "string",
  • "keys": [
    ],
  • "keypad_lock": {
    }
}

Queues

Get a list of all queues of the account

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a new queue to the account

Request Body schema: application/json

Queue object that needs to be added to the account

name
string

Queue name

max_time_caller_remains
number

Maximum time (in minutes) that a caller will remain in a queue if call is not answered

call_only_if_registered_agents
boolean

Calls will be routed to agents only if at least one agent is registered

strategy
string

One of simultaneous, single, or weighted_random

timeout
number

Maximum time (in seconds)

moh
string

ID of media to reproduce as music on hold

Array of objects
Array of objects
Array of objects
Array of objects
Array of objects
Array of objects

A list of actions to execute after the call ends

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "max_time_caller_remains": 0,
  • "call_only_if_registered_agents": true,
  • "strategy": "string",
  • "timeout": 0,
  • "moh": "string",
  • "extensions": [
    ],
  • "dids": [
    ],
  • "pre_connect": [
    ],
  • "agents": [
    ],
  • "next_actions": [
    ],
  • "after_actions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string"
}

Get an existing queue

path Parameters
queueID
required
string <uuid4>

ID of queue to get

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "max_time_caller_remains": 0,
  • "call_only_if_registered_agents": true,
  • "strategy": "string",
  • "timeout": 0,
  • "moh": "string",
  • "extensions": [
    ],
  • "dids": [
    ],
  • "pre_connect": [
    ],
  • "agents": [
    ],
  • "next_actions": [
    ],
  • "after_actions": [
    ]
}

Update an existing queue

path Parameters
queueID
required
string <uuid4>

ID of queue to update

Request Body schema: application/json

Queue object that needs to be edited

name
string

Queue name

max_time_caller_remains
number

Maximum time (in minutes) that a caller will remain in a queue if call is not answered

call_only_if_registered_agents
boolean

Calls will be routed to agents only if at least one agent is registered

strategy
string

One of simultaneous, single, or weighted_random

timeout
number

Maximum time (in seconds)

moh
string

ID of media to reproduce as music on hold

Array of objects
Array of objects
Array of objects
Array of objects
Array of objects
Array of objects

A list of actions to execute after the call ends

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "max_time_caller_remains": 0,
  • "call_only_if_registered_agents": true,
  • "strategy": "string",
  • "timeout": 0,
  • "moh": "string",
  • "extensions": [
    ],
  • "dids": [
    ],
  • "pre_connect": [
    ],
  • "agents": [
    ],
  • "next_actions": [
    ],
  • "after_actions": [
    ]
}

Delete an existing queue

path Parameters
queueID
required
string <uuid4>

ID of queue to delete

Responses

Ratedecks

GET Number Assigned Rate Data

path Parameters
ratedeck
required
string

Ratedeck ID

number
required
number

Number

Responses

Response samples

Content type
application/json
{
  • "Base-Cost": 0,
  • "E164-Number": "string",
  • "Prefix": 0,
  • "Rate": "string",
  • "Rate-Description": "string",
  • "Rate-Increment": 0,
  • "Rate-Minimum": "string",
  • "Rate-Name": "string",
  • "Ratedeck-ID": "string",
  • "Surcharge": "string"
}

GET Ratedeck Creation Status

path Parameters
task
required
string

Task ID. It allows us to check the status of the creation process

Responses

Response samples

Content type
application/json
{
  • "status": "string"
}

DELETE Ratedeck

DELETE Ratedeck database with all rates assigned

path Parameters
ratedeck
required
string

Name of Ratedeck

Responses

GET a Rate

path Parameters
ratedeck
required
string

Name of Ratedeck

rate
required
string

ID of Rate

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "name": "string",
  • "rate_name": "string",
  • "rate_cost": "string",
  • "prefix": "string",
  • "weight": 0,
  • "ratedeck_id": "string",
  • "iso_country_code": "string",
  • "routes": [
    ],
  • "description": "string"
}

DELETE a Rate

path Parameters
ratedeck
required
string

Name of Ratedeck

rate
required
string

ID of Rate

Responses

UPDATE a Rate

path Parameters
ratedeck
required
string

Name of Ratedeck

rate
required
string

ID of Rate

Responses

CREATE a Rate

path Parameters
ratedeck
required
string

Name of Ratedeck

Request Body schema: application/json
name
string

Rate Name

rate_name
string

Rate Name

rate_cost
number <float>

Rate Cost

prefix
number
weight
number
iso_country_code
string
routes
Array of strings

Regexes to match calls

description
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "rate_name": "string",
  • "rate_cost": 0,
  • "prefix": 0,
  • "weight": 0,
  • "iso_country_code": "string",
  • "routes": [
    ],
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "_id": "string",
  • "name": "string",
  • "rate_name": "string",
  • "rate_cost": "string",
  • "prefix": "string",
  • "weight": 0,
  • "ratedeck_id": "string",
  • "iso_country_code": "string",
  • "routes": [
    ],
  • "description": "string"
}

GET Rates List of Specified Ratedeck

path Parameters
ratedeck
required
string

Name of Ratedeck

query Parameters
pageSize
required
number

Indicates the limit of the number of rates that will be returned as a response

nextStartKey
string

Indicate from which rate will be listed as response

Responses

Response samples

Content type
application/json
{
  • "rates": [
    ],
  • "next_start_key": "string"
}

Upload Ratedeck CSV

From the CSV file the ratedeck will be created

Request Body schema: multipart/form-data
ratedeck
string <binary>

Responses

Response samples

Content type
application/json
{
  • "task_id": "string"
}

GET Ratedecks Names List

Responses

Response samples

Content type
application/json
[
  • "string"
]

Reports

All CDRs

Responses

Response samples

Content type
application/json
{
  • "message": "cdrs_all ok"
}

CDRs

Responses

Response samples

Content type
application/json
{
  • "message": "cdrs ok"
}

Upload CDRs

Responses

Response samples

Content type
application/json
{
  • "message": "cdrs_upload ok"
}

CDR by ID

Responses

Response samples

Content type
application/json
{
  • "message": "cdr_id ok"
}

Get a list of call recordings

query Parameters
startDate
required
string

Start range date for recordings query. Unix timestamp

endDate
required
string

End range date for recordings query. Unix timestamp

pageSize
integer

Maximum number of recordings per page

startKey
string

ID of the first recording of the page

Responses

Response samples

Content type
application/json
{
  • "next_start_key": "string",
  • "recordings": [
    ]
}

Delete recordings

Delete all recordings from the list

Request Body schema: */*

List of recordings to delete

recordings
Array of strings

Responses

Get a list of call recordings as CSV file

query Parameters
startDate
required
string

Start range date for recordings query. Unix timestamp

endDate
required
string

End range date for recordings query. Unix timestamp

Responses

Get recording document by ID

Retrieves the full recording document as JSON, excluding private CouchDB fields like "_rev", "_id", "_deleted", "_revisions", and "_attachments".

The response includes all recording metadata fields such as call information, timestamps, user data, and other recording properties.

path Parameters
recordingID
required
string
Example: 202510-3475fecb3c9ee9fbff6e797975a691da

ID of the recording (format: YYYYMM-{uuid})

Responses

Response samples

Content type
application/json
{
  • "call_id": "791b68a6-a807-4de0-b41b-577dba3c31ce",
  • "callee_id_name": "John Doe",
  • "callee_id_number": "+1234567890",
  • "caller_id_name": "Jane Smith",
  • "caller_id_number": "+0987654321",
  • "cdr_id": "202510-cdr-12345",
  • "content_type": "audio/mpeg",
  • "description": "Call recording",
  • "direction": "inbound",
  • "duration": 120,
  • "duration_ms": 120000,
  • "from": "+1234567890",
  • "interaction_id": "interaction-123",
  • "media_source": "local",
  • "media_type": "audio",
  • "name": "recording_1234567890.mp3",
  • "origin": "internal",
  • "owner_id": "user-123",
  • "request": "call-request",
  • "source_type": "call",
  • "start": 1699123456,
  • "to": "+0987654321",
  • "url": "",
  • "pvt_account_id": "account-123",
  • "pvt_account_db": "account_db",
  • "pvt_created": 1699123456,
  • "pvt_modified": 1699123500,
  • "pvt_type": "recording",
  • "pvt_node": "node1",
  • "pvt_document_hash": "abc123",
  • "fonoUC": {
    }
}

GET if specified recording has a transcription

path Parameters
recordingID
required
string

ID of the recording

Responses

Response samples

Content type
application/json
{
  • "done": true,
  • "provider": "string"
}

Get recording by call ID with fallback logic

Retrieves a call recording by call ID with intelligent fallback logic.

Process:

  1. Receives call ID as parameter
  2. If call ID doesn't contain YYYYMM prefix, adds current year-month as default
  3. Searches for CDR and checks for multiple recordings in custom_channel_vars.media_recordings array
  4. If multiple recordings are found, returns all recordings as JSON with base64 encoded data
  5. If single recording is found, returns the recording file directly (backward compatible)
  6. If CDR doesn't have media_recording_id or recording doesn't exist or has no attachment, searches for CDR using custom_channel_vars.bridge_id from current CDR
  7. Adds YYYYMM prefix to bridge_id and repeats the process

Response Format:

  • Single recording: Returns the audio file directly (backward compatible)
  • Multiple recordings: Returns JSON with array of recordings, each containing:
    • id: Recording ID
    • name: Filename
    • content_type: MIME type (e.g., "audio/mpeg")
    • data: Base64 encoded audio data
    • size: File size in bytes
    • caller_id_number: From number on this recording
    • callee_id_number: To number on this recording

Examples:

  • 791b68a6-a807-4de0-b41b-577dba3c31ce (will add current YYYYMM prefix)
  • 202510-791b68a6-a807-4de0-b41b-577dba3c31ce (will use existing prefix)
path Parameters
call_id
required
string
Examples:
  • 791b68a6-a807-4de0-b41b-577dba3c31ce - Call ID without prefix
  • 202510-791b68a6-a807-4de0-b41b-577dba3c31ce - Call ID with prefix

Call ID to search for recording. Can be with or without YYYYMM prefix.

Responses

Response samples

Content type
{
  • "recordings": [
    ],
  • "total": 2
}

Get recording storage servers by call ID with fallback logic

Retrieves storage server information for call recording(s) by call ID with intelligent fallback logic.

Process:

  1. Receives call ID as parameter
  2. If call ID doesn't contain YYYYMM prefix, adds current year-month as default
  3. Searches for CDR and checks for multiple recordings in custom_channel_vars.media_recordings array
  4. If multiple recordings are found, returns storage info for all recordings
  5. If single recording is found, returns storage info for that recording (backward compatible)
  6. If CDR doesn't have media_recording_id or recording doesn't exist or has no attachment, searches for CDR using custom_channel_vars.bridge_id from current CDR
  7. Adds YYYYMM prefix to bridge_id and repeats the process

Response Format:

  • Single recording: {"servers": ["local"]} or {"servers": ["server1", "server2", ...]}
  • Multiple recordings: Returns JSON with array of recordings, each containing:
    • recording_id: Recording ID
    • name: Filename
    • servers: Array of storage server names

Note: If a recording fails to load, it will be skipped and the response will include only the successfully loaded recordings.

path Parameters
call_id
required
string
Examples:
  • 791b68a6-a807-4de0-b41b-577dba3c31ce - Call ID without prefix
  • 202510-791b68a6-a807-4de0-b41b-577dba3c31ce - Call ID with prefix

Call ID to search for recording. Can be with or without YYYYMM prefix.

Responses

Response samples

Content type
application/json
Example
{
  • "servers": [
    ]
}

Get recording transcription info by call ID with fallback logic

Retrieves transcription information for call recording(s) by call ID with intelligent fallback logic.

Process:

  1. Receives call ID as parameter
  2. If call ID doesn't contain YYYYMM prefix, adds current year-month as default
  3. Searches for CDR and checks for multiple recordings in custom_channel_vars.media_recordings array
  4. If multiple recordings are found, returns transcription info for all recordings
  5. If single recording is found, returns transcription info for that recording (backward compatible)
  6. If CDR doesn't have media_recording_id or recording doesn't exist or has no attachment, searches for CDR using custom_channel_vars.bridge_id from current CDR
  7. Adds YYYYMM prefix to bridge_id and repeats the process

Response Format:

  • Single recording: {"done": true, "provider": "provider_name"} or {"done": false, "provider": ""}
  • Multiple recordings: Returns JSON with array of recordings, each containing:
    • recording_id: Recording ID
    • name: Filename
    • done: Boolean indicating if transcription exists
    • provider: Provider name (empty if no transcription)

Note: If a recording fails to load, it will be skipped and the response will include only the successfully loaded recordings.

path Parameters
call_id
required
string
Examples:
  • 791b68a6-a807-4de0-b41b-577dba3c31ce - Call ID without prefix
  • 202510-791b68a6-a807-4de0-b41b-577dba3c31ce - Call ID with prefix

Call ID to search for recording. Can be with or without YYYYMM prefix.

Responses

Response samples

Content type
application/json
Example
{
  • "done": true,
  • "provider": "deepgram"
}

Caller Activity Report

Responses

Response samples

Content type
application/json
{
  • "message": "caller ok"
}

Caller Statistics

Responses

Response samples

Content type
application/json
{
  • "message": "callerStats ok"
}

Caller Statistics CSV

Responses

Caller Statistics PDF

Responses

Caller Activity Report CSV

Responses

User Call Recordings

Responses

Response samples

Content type
application/json
{
  • "message": "user ok"
}

User Statistics

Responses

Response samples

Content type
application/json
{
  • "message": "userStats ok"
}

User Statistics CSV

Responses

User Statistics PDF

Responses

User Activity Report CSV

Responses

Phone Number Activity Report

Responses

Response samples

Content type
application/json
{
  • "message": "phoneNumber ok"
}

Phone Number Statistics

Responses

Response samples

Content type
application/json
{
  • "message": "phoneNumberStats ok"
}

Phone Number Statistics CSV

Responses

Phone Number Statistics PDF

Responses

Phone Number Activity Report CSV

Responses

SIP Logs

Responses

Users Mobile Data

Responses

Response samples

Content type
application/json
{
  • "message": "users_mobile ok"
}

Users DND Usage Statistics

Responses

Response samples

Content type
application/json
{
  • "message": "dnd ok"
}

Users DND Usage Statistics CSV

Responses

User DND Usage Statistics

Responses

Response samples

Content type
application/json
{
  • "message": "per_user_dnd ok"
}

Campaigns Leads History

Responses

Response samples

Content type
application/json
{
  • "message": "campaigns_leads_history ok"
}

PIN-wise Call Summary Report

Aggregates DISA calls by the PIN used. The pin field is always server-masked (e.g. ****45); raw PIN values never leave the server. Only calls whose CDR carries a non-empty X-Pin custom SIP header are considered; everything else is ignored.

query Parameters
startDate
required
integer

Start date (Kazoo/Gregorian seconds).

endDate
required
integer

End date (Kazoo/Gregorian seconds).

timezone
string

IANA timezone used to render Date/Time fields. Defaults to UTC.

header Parameters
X-ACCOUNT-ID
required
string

Responses

Response samples

Content type
application/json
{
  • "rows": [
    ]
}

PIN-wise Call Summary Report (CSV download)

CSV variant of /reports/pins/summary. PIN column is pre-masked.

query Parameters
startDate
required
integer
endDate
required
integer
timezone
string
header Parameters
X-ACCOUNT-ID
required
string

Responses

Detailed PIN Call Log

One row per call that used a PIN. The pin field is always server-masked.

query Parameters
startDate
required
integer
endDate
required
integer
timezone
string
header Parameters
X-ACCOUNT-ID
required
string

Responses

Response samples

Content type
application/json
{
  • "rows": [
    ]
}

Detailed PIN Call Log (CSV download)

CSV variant of /reports/pins/calls. PIN column is pre-masked.

query Parameters
startDate
required
integer
endDate
required
integer
timezone
string
header Parameters
X-ACCOUNT-ID
required
string

Responses

PIN Peak Usage Report

For each PIN, the hour-of-day (0-23, in the request timezone) with the highest call count in the range. Ties break to the earliest hour. The pin field is always server-masked.

query Parameters
startDate
required
integer
endDate
required
integer
timezone
string
header Parameters
X-ACCOUNT-ID
required
string

Responses

Response samples

Content type
application/json
{
  • "rows": [
    ]
}

PIN Peak Usage Report (CSV download)

CSV variant of /reports/pins/peak. PIN column is pre-masked.

query Parameters
startDate
required
integer
endDate
required
integer
timezone
string
header Parameters
X-ACCOUNT-ID
required
string

Responses

Outbound CDRs

Responses

Response samples

Content type
application/json
{
  • "message": "outbound ok"
}

Get outbound CDRs in a CSV file as attachment

query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

timezone
string

desired timezone to get cdrs in

Responses

Get outbound CDRs in a PDF file as attachment

Authorizations:
bearerAuth
query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

timezone
string

desired timezone to get cdrs in

columns
string

comma-separated list of columns to include in the PDF. Available columns: call_start_time, user_name, extension, dialed_number, duration, billing, hangup_cause

header Parameters
X-Account-ID
string

Account ID

Responses

Get Calls rated

query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

pageSize
integer

amount of records per page

startKey
integer

key from where to start getting records. Used for pagination.

Responses

Response samples

Content type
application/json
{
  • "total_ammount": 0,
  • "total_minutes": 0,
  • "calls": [
    ]
}

Get Calls rated

query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

pageSize
integer

amount of records per page

startKey
integer

key from where to start getting records. Used for pagination.

Responses

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "summary_by_number": {
    }
}

Get Calls rated using fonoUC reports

query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

pageSize
integer

amount of records per page

startKey
integer

key from where to start getting records. Used for pagination.

Responses

Response samples

Content type
application/json
{
  • "total_ammount": 0,
  • "total_minutes": 0,
  • "total_calls": 0,
  • "calls": [
    ]
}

Get CSV of Calls rated using fonoUC reports

query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

pageSize
integer

amount of records per page

startKey
integer

key from where to start getting records. Used for pagination.

Responses

Get Usage Charges report as PDF

Authorizations:
bearerAuth
query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

timezone
string

desired timezone for date formatting

extension
string

filter by extension

tag
Array of strings

filter by tag IDs (can be repeated for multiple tags)

col
Array of strings

custom columns to include in the PDF

brandPrimary
string

Optional hex color for the primary brand color (e.g. "#246199"). Used for the table header background and title text. When omitted, default colors are used.

brandSecondary
string

Optional hex color for the secondary brand color (e.g. "#2bbec1"). Used for the totals row background. Falls back to brandPrimary if omitted.

header Parameters
X-Account-ID
string

Account ID

Responses

Queue CDR rerate for usage charges date range (reseller only)

Get Calls rated grouped by number

query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

Responses

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "summary_by_number": {
    }
}

Get CSV with Calls rated grouped by number

query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

Responses

Get Users Charges report as PDF

Authorizations:
bearerAuth
query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

timezone
string

desired timezone for date formatting

tag
Array of strings

filter by tag IDs (can be repeated for multiple tags)

col
Array of strings

custom columns to include in the PDF

brandPrimary
string

Optional hex color for the primary brand color (e.g. "#246199"). Used for the table header background and title text. When omitted, default colors are used.

brandSecondary
string

Optional hex color for the secondary brand color (e.g. "#2bbec1"). Used for the totals row background. Falls back to brandPrimary if omitted.

header Parameters
X-Account-ID
string

Account ID

Responses

Get Calls rates summary

query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

Responses

Response samples

Content type
application/json
{
  • "total_amount": 0,
  • "total_minutes": 0,
  • "total_calls": 0
}

Get Calls rates summary of all children

query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Calls rates summary of all children

query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

Responses

Get Total Charges Per Account report as PDF

Authorizations:
bearerAuth
query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

timezone
string

desired timezone for date formatting

col
Array of strings

custom columns to include in the PDF

brandPrimary
string

Optional hex color for the primary brand color (e.g. "#246199"). Used for the table header background and title text. When omitted, default colors are used.

brandSecondary
string

Optional hex color for the secondary brand color (e.g. "#2bbec1"). Used for the totals row background. Falls back to brandPrimary if omitted.

header Parameters
X-Account-ID
string

Account ID

Responses

Active DNDs

Responses

Response samples

Content type
application/json
{
  • "message": "active_dnds ok"
}

Get inbound CDRs

query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

pageSize
integer

amount of records per page

startKey
integer

key from where to start getting records. Used for pagination.

Responses

Response samples

Content type
application/json
{
  • "cdrs": [
    ],
  • "next_start_key": "string"
}

Get inbound CDRs in a CSV file as attachment

query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

timezone
string

desired timezone to get cdrs in

Responses

Get inbound CDRs in a PDF file as attachment

Authorizations:
bearerAuth
query Parameters
startDate
required
integer

range start date in UNIX epoch time

endDate
required
integer

range end date in UNIX epoch time

timezone
string

desired timezone to get cdrs in

columns
string

comma-separated list of columns to include in the PDF. Available columns: start_time, caller_id_name, caller_id_number, destination, callee_id_name, callee_id_number, duration, billing, hangup_cause

header Parameters
X-Account-ID
string

Account ID

Responses

Call Center Queues CDRs

Responses

Response samples

Content type
application/json
{
  • "message": "callcenter_queues ok"
}

Call Center Queues CSV

Responses

Call Center Agents Statistics

Responses

Response samples

Content type
application/json
{
  • "message": "callcenter_agents_stats ok"
}

Call Center Agents Activity Events

query Parameters
startDate
required
string

Start range date. Unix timestamp

endDate
required
string

End range date. Unix timestamp

timeRange
string

Time range in format like 1d, 1w, 1h, etc.

pageSize
integer

Number of records per page

startKey
string

Start key for pagination

Responses

Response samples

Content type
application/json
{
  • "events": [
    ],
  • "next_start_key": "1754419492"
}

Call Center Agent Queues CDRs

Responses

Response samples

Content type
application/json
{
  • "message": "callcenter_agent ok"
}

Call Center Agent CSV

Responses

Call Center Queues Statistics

Responses

Response samples

Content type
application/json
{
  • "message": "callcenter_queues_stats ok"
}

Call Center Queues Statistics CSV

Responses

Call Center Queue Activity Report

Responses

Response samples

Content type
application/json
{
  • "message": "callcenter_queue ok"
}

Call Center Queue CSV

Responses

Call Center Agents Status Logs

Responses

Response samples

Content type
application/json
{
  • "message": "callcenter_agents_status_all ok"
}

Call Center Agents Status by Queues

Responses

Response samples

Content type
application/json
{
  • "message": "callcenter_agents_status_queues ok"
}

Call Center Agents Status Activity

Responses

Response samples

Content type
application/json
{
  • "message": "callcenter_agents_status_activity ok"
}

Get user activity stats for a tenant

Retrieves user activity statistics for a specific tenant based on the provided parameters.

Note: Ensure that the necessary authentication headers are included in the request.

query Parameters
timeRange
string

Time range for the activity stats (e.g., "1h", "2d", "3w")

startDate
integer

Start date in Unix timestamp format

endDate
integer

End date in Unix timestamp format

pageSize
integer
Default: 250

Set the page size for results (defaults to 250)

startKey
string

Start key for pagination (to fetch results for 2nd page and beyond)

startKeyDocId
string

Document ID of the next document (to be filled with info from the 1st request)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "next_start_key": null,
  • "next_start_doc_id": "string"
}

Live Recording Audio

Responses

Security Policies

Create / Update Security Policies Configuration

Request Body schema: application/json
object
object
object
object
object
object
object

Responses

Request samples

Content type
application/json
{
  • "credentials_login": {
    },
  • "inactivity_period": {
    },
  • "lockout_threshold": {
    },
  • "password_age": {
    },
  • "password_length": {
    },
  • "password_history": {
    },
  • "mfa": {
    }
}

Security Policies Configuration

Responses

Response samples

Content type
application/json
{
  • "credentials_login": {
    },
  • "inactivity_period": {
    },
  • "lockout_threshold": {
    },
  • "password_age": {
    },
  • "password_length": {
    },
  • "password_history": {
    },
  • "mfa": {
    }
}

Password Length Configuration

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "length": 6
}

Password History Validation

query Parameters
account
required
string

Account ID

user
required
string

User ID

password
required
string

Credentials Hashed using MD5 (username:password)

Responses

Response samples

Content type
application/json
{
  • "valid": true,
  • "message": "string"
}

Password Age Check

query Parameters
account
required
string

Account ID

user
required
string

User ID

Responses

Response samples

Content type
application/json
{
  • "allowed": true,
  • "minimum_age": 0
}

Credentials Login Status

header Parameters
X-User-Agent
string

User Agent (it could be portal/ucp)

Responses

Response samples

Content type
application/json
{
  • "enabled": true
}

MFA Verification

Request Body schema: application/json
object
object
object

Responses

Request samples

Content type
application/json
{
  • "email": {
    },
  • "sms": {
    },
  • "call": {
    }
}

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "refresh_token": "string",
  • "user": { }
}

Resend MFA Verification Code

path Parameters
method
required
string

Second Factor Auth Method (email, sms, call)

Request Body schema: application/json
username
string

User Email

account_name
string

User Account Name

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "account_name": "string"
}

Response samples

Content type
application/json
{
  • "token": "string"
}

Service Plans

Service Plan

path Parameters
id
required
string

ID of Service Plan

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "name": "string",
  • "ratedeck": "string"
}

Service Plan

path Parameters
id
required
string

ID of Service Plan

header Parameters
X-Account-ID
required
string

Account ID

Responses

Service Plan

path Parameters
id
required
string

ID of Service Plan

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
name
string

Name of Service Plan

ratedeck
string

Ratedeck to assign to the service plan

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "ratedeck": "string"
}

LIST Account Service Plans

header Parameters
X-Account-ID
required
string

Account ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

CREATE Service Plan

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
_id
string

ID of Service Plan

name
string

Name of Service Plan

ratedeck
string

Ratedeck to assign to the service plan

Responses

Request samples

Content type
application/json
{
  • "_id": "string",
  • "name": "string",
  • "ratedeck": "string"
}

Signup

Sets up sign up settings

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json

Set up settings.

object
object

Responses

Request samples

Content type
application/json
{
  • "free_numbers": {
    },
  • "otp": {
    }
}

SMS Providers

Assign SMS Provider to Number

path Parameters
number
required
string

Phone Number

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
provider
string

SMS Provider Account ID

Responses

Request samples

Content type
application/json
{
  • "provider": "string"
}

SMS Provider Account

path Parameters
id
required
string

SMS Provider Account ID

header Parameters
X-Account-ID
required
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "type": "string",
  • "note": "string",
  • "token": "string",
  • "provider_number_id": "string"
}

SMS Provider Account

path Parameters
id
required
string

SMS Provider Account ID

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
name
string

Provider Name

type
string

Provider Type

note
string

Provider Note

token
string

Provider Account Token

provider_number_id
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "note": "string",
  • "token": "string",
  • "provider_number_id": "string"
}

SMS Provider Account

path Parameters
id
required
string

SMS Provider Account ID

header Parameters
X-Account-ID
required
string

Account ID

Responses

SMS Providers Accounts

path Parameters
id
required
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "providers": [
    ]
}

CREATE SMS Provider Account

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
name
string

Provider Name

type
string

Provider Type

note
string

Provider Note

token
string

Provider Account Token

provider_number_id
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "note": "string",
  • "token": "string",
  • "provider_number_id": "string"
}

Response samples

Content type
application/json
{
  • "id": "string"
}

Status

Current Registrations

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Storage

Storage Configuration

Get storage server configuration of a specified resource (CDRs, Recordings, etc.)

path Parameters
resource
required
string

Name of the resource (cdrs, recordings, etc.)

Responses

Response samples

Content type
application/json
{
  • "provider": "string",
  • "local_storage": true,
  • "local_storage_path": "string",
  • "single_file": true,
  • "single_file_upload_interval": "string",
  • "single_file_array": true,
  • "single_csv_file": true,
  • "single_csv_file_upload_interval": "string",
  • "auth": {
    }
}

Storage Configuration

Update storage server configuration of a specified resource

path Parameters
resource
required
string

Name of the resource (cdrs, recordings, etc.)

Request Body schema: application/json
provider
string

Name of storage server (local, amazon, refract, sftp or api)

local_storage
boolean

Store resource using local server

local_storage_path
string

Local server path where the resource is going to be saved

single_file
boolean

Create a single JSON file to save the resource

single_file_upload_interval
string

Interval of time to upload JSON File

single_file_array
boolean

Put objects inside an array into JSON File

single_csv_file
boolean

Create a single CSV file to save the resource

single_csv_file_upload_interval
string

Interval of time to upload CSV File

object

Responses

Request samples

Content type
application/json
{
  • "provider": "string",
  • "local_storage": true,
  • "local_storage_path": "string",
  • "single_file": true,
  • "single_file_upload_interval": "string",
  • "single_file_array": true,
  • "single_csv_file": true,
  • "single_csv_file_upload_interval": "string",
  • "auth": {
    }
}

Storage Configuration

Delete storage server configuration of a specified resource

path Parameters
resource
required
string

Name of the resource (cdrs, recordings, etc.)

Responses

Google OAuth URL

Gets the Google OAuth url needed to start the configuration process

Responses

Response samples

Content type
application/json
{
  • "url": "string"
}

System

System Number Preferences

This endpoint lets to add number prefixes.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "string": {
    }
}

Tags

Account Tags

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Account Tag

Request Body schema: application/json
category
string
name
string
color
string
note
string

Responses

Request samples

Content type
application/json
{
  • "category": "string",
  • "name": "string",
  • "color": "string",
  • "note": "string"
}

Account Tag

Responses

Response samples

Content type
application/json
{
  • "category": "string",
  • "name": "string",
  • "color": "string",
  • "note": "string"
}

Update Account Tag

Request Body schema: application/json
Array
category
string
name
string
color
string
note
string

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Account Tag

Responses

Account Tags by Type

Responses

Response samples

Content type
application/json
{
  • "category": "string",
  • "name": "string",
  • "color": "string",
  • "note": "string"
}

Tasks

List tasks of the account

query Parameters
status
string

Task Status (active or inactive)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List tasks of the account by group

path Parameters
group
required
string

Task Group

query Parameters
status
string

Task Status (active or inactive)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List tasks of the account by group and category

path Parameters
group
required
string

Task Group

category
required
string

Task Category

query Parameters
status
string

Task Status (active or inactive)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get task by name

path Parameters
group
required
string

Task Group

category
required
string

Task Category

name
required
string

Task Name

Responses

Response samples

Content type
application/json
{
  • "group": "string",
  • "category": "string",
  • "name": "string",
  • "status": "string",
  • "last_execution": 0,
  • "next_run": 0,
  • "configured": true
}

Update task status

path Parameters
group
required
string

Task Group

category
required
string

Task Category

name
required
string

Task Name

Request Body schema: application/json
action
string

Action that will affect the task status (schedule, re_schedule or cancel)

interval
string

Task execution frequency

Responses

Request samples

Content type
application/json
{
  • "action": "string",
  • "interval": "string"
}

Transcription

Configure transcription settings for the specified account

Request Body schema: application/json
provider
string

Transcription provider

object
object

Additional parameters for the transcription provider

object

Responses

Request samples

Content type
application/json
{
  • "provider": "string",
  • "credentials": {
    },
  • "params": {
    },
  • "account": {
    }
}

Transcription Settings

Responses

Response samples

Content type
application/json
{
  • "provider": "string",
  • "credentials": {
    },
  • "params": {
    },
  • "account": {
    }
}

Transcription Settings

Responses

New Transcription

Request Body schema: application/json
resource_type
string

Type of resource (call_recording, voicemail)

resource_id
string

ID of the specified resource

Responses

Request samples

Content type
application/json
{
  • "resource_type": "string",
  • "resource_id": "string"
}

Response samples

Content type
application/json
{
  • "provider": "string",
  • "transcription": {
    }
}

Formatted Transcription

query Parameters
resource_type
required
string

Type of resource (call_recording, voicemail)

resource_id
required
string

ID of the specified resource

Responses

Response samples

Content type
application/json
{
  • "transcription": {
    }
}

Raw Transcription

query Parameters
resource_type
required
string

Type of resource (call_recording, voicemail)

resource_id
required
string

ID of the specified resource

Responses

Response samples

Content type
application/json
{
  • "transcription": {
    }
}

UCP Dashboard

Preferences Box Status

This endpoint lets to enable or disable whether the preferences box will be showed or not.

Request Body schema: application/json
disabled
required
boolean

Dashboard preferences status

Responses

Request samples

Content type
application/json
{
  • "disabled": true
}

Preferences Box Status

This endpoints returns the enable/disable value indicating whether the preferences box will be showed or not.

Responses

Response samples

Content type
application/json
{
  • "disabled": true
}

DND Visibility Status

This endpoint lets to enable or disable whether the DND option will be showed or not.

Request Body schema: application/json
disabled
required
boolean

DND disability status

Responses

Request samples

Content type
application/json
{
  • "disabled": true
}

DND Visibility Status

This endpoint returns the status indicating whether the DND option will be showed or not.

Responses

Response samples

Content type
application/json
{
  • "disabled": true
}

Users

User Basic Information

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "string"
}

User Basic Information

Request Body schema: application/json
first_name
string

User First Name

last_name
string

User Last Name

email
string

User Email

Responses

Request samples

Content type
application/json
{
  • "first_name": "string",
  • "last_name": "string",
  • "email": "string"
}

User Permission Level

path Parameters
id
required
string

User ID to edit

Request Body schema: application/json
level
string

User permission level to assign

Responses

Request samples

Content type
application/json
{
  • "level": "string"
}

User

path Parameters
id
required
string

User ID to delete

Responses

Crossbar Authentication Token

Responses

Response samples

Content type
application/json
{
  • "token": "string"
}

Users List

Responses

Response samples

Content type
application/json
[
  • {
    }
]

User Password

path Parameters
account_id
required
string

ID of Account

user_id
required
string

ID of User

query Parameters
password
required
string

New Password

token
required
string

Crossbar API Authorization Token

Responses

User External Caller ID

Request Body schema: application/json
callerid
string

User External Caller ID Number

Responses

Request samples

Content type
application/json
{
  • "callerid": "string"
}

User External Numbers

Responses

Response samples

Content type
application/json
{
  • "numbers": [
    ],
  • "value": "string"
}

User Contacts

path Parameters
source
required
string

Name of the contacts source. Valid values [google, fonouc]

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add new contact

path Parameters
source
required
string

Name of the contacts source. Valid values [google, fonouc]

Request Body schema: application/json
name
string

Contact name

phone_number
Array of strings

Contact phone numbers

companies
Array of strings

Contact companies

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "phone_number": [
    ],
  • "companies": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "phone_number": [
    ],
  • "companies": [
    ]
}

Edit contact

path Parameters
source
required
string

Name of the contacts source. Valid values [google, fonouc]

Request Body schema: application/json
id
string

Contact ID

name
string

Contact name

phone_number
Array of strings

Contact phone numbers

companies
Array of strings

Contact companies

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "phone_number": [
    ],
  • "companies": [
    ]
}

Delete User Contact

path Parameters
source
required
string

Name of the contacts source. Valid values [google, fonouc]

contactID
required
string

ID of the contact to delete

Responses

Force Teams Synchronization

Forces synchronization of a user with Mattermost/Teams. This endpoint allows admins to manually trigger a sync when automatic sync fails.

path Parameters
id
required
string

User ID

Responses

Response samples

Content type
application/json
{
  • "message": "User successfully synced with Mattermost",
  • "user_id": "string",
  • "username": "string",
  • "account_id": "string",
  • "sync_timestamp": "now"
}

Force Teams Password Reset

Forces a password reset for a user in Mattermost/Teams. This endpoint specifically focuses on password synchronization issues.

path Parameters
id
required
string

User ID

Responses

Response samples

Content type
application/json
{
  • "message": "User password successfully reset in Mattermost",
  • "user_id": "string",
  • "username": "string",
  • "account_id": "string",
  • "reset_timestamp": "now"
}

Users with Associated Numbers

header Parameters
X-Account-ID
required
string

Account ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

User Activation Status

path Parameters
id
required
string

ID of User

header Parameters
X-Account-ID
required
string

Account ID

Responses

User Activation Status

path Parameters
id
required
string

ID of User

header Parameters
X-Account-ID
required
string

Account ID

Responses

EXTENSION VALIDATION

Authorizations:
bearerAuth
query Parameters
extension
required
number
header Parameters
X-Account-ID
required
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "data": true
}

USERNAME VALIDATION

query Parameters
username
required
string
header Parameters
X-Account-ID
required
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "data": true
}

MODIFY User Password

path Parameters
id
required
string

User's ID

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
data
Array of strings

It must contain a length of 2 elements. [MD5_HASH, SHA1_HASH]

Responses

Request samples

Content type
application/json
{
  • "data": [
    ]
}

Update user's tags

path Parameters
id
required
string

User's ID

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
tags
Array of strings

Updated list of tags.

Responses

Request samples

Content type
application/json
{
  • "tags": [
    ]
}

Update users' tags

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
Array of objects

list of ids with their updated tags.

Responses

Request samples

Content type
application/json
{
  • "data": [
    ]
}

Response samples

Content type
application/json
[
  • "string"
]

Assign numbers to user

path Parameters
id
required
string

ID of User

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
numbers
Array of strings

Responses

Request samples

Content type
application/json
{
  • "numbers": [
    ]
}

User

path Parameters
id
required
string

ID of User

header Parameters
X-Account-ID
required
string

Account ID

Responses

User

GET User Data (enabled, firstname, lastname, email, level)

path Parameters
id
required
string

ID of User

header Parameters
X-Account-ID
required
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "first_name": "string",
  • "last_name": "string",
  • "email": "string",
  • "username": "string",
  • "level": "string",
  • "extension": "string",
  • "include_in_directory": true,
  • "conferencing": {
    }
}

UPDATE User

Update a user. Enabled, first name, last name, email, role...

path Parameters
id
required
string

ID of User

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
enabled
boolean
first_name
string
last_name
string
email
string
level
string

user role (user or admin)

is_operator
boolean
object

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "first_name": "string",
  • "last_name": "string",
  • "email": "string",
  • "level": "string",
  • "is_operator": true,
  • "conference": {
    }
}

DELETE User

path Parameters
username
required
string

username of User

header Parameters
X-Account-ID
required
string

Account ID

Responses

Bulk Creation of Users

Bulk creation of users based on csv file

header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: multipart/form-data
users
object <binary>

CSV File

Responses

Response samples

Content type
application/json
{
  • "created": 0,
  • "failed": 0,
  • "errors": [
    ]
}

CREATE New User

Perform all the actions necessary for user creation (document generation, vmbox, callflow)

Authorizations:
bearerAuth
header Parameters
X-Account-ID
required
string

Account ID

Request Body schema: application/json
first_name
string
last_name
string
email
string
level
string

user role (user or admin)

password
string
extension
string
send_credentials
boolean
include_in_directory
boolean
role_id
string
is_operator
boolean
object
feature_plan
string

ID of the feature plan the user is assigned to

Responses

Request samples

Content type
application/json
{
  • "first_name": "string",
  • "last_name": "string",
  • "email": "string",
  • "level": "string",
  • "password": "string",
  • "extension": "string",
  • "send_credentials": true,
  • "include_in_directory": true,
  • "role_id": "string",
  • "is_operator": true,
  • "conference": {
    },
  • "feature_plan": "string"
}

Response samples

Content type
application/json
{
  • "_id": "string"
}

Users List

Returns the list of users for the account specified in the X-Account-ID header. Each user has the essential information + the status of enablement...

Authorizations:
bearerAuth
header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Users Historical Data

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Users Historical Data CSV

header Parameters
X-Account-ID
string

Account ID

Responses

Invite users to system sending a SMS

Request Body schema: application/json

User IDs to be invited

Array
string

User IDs to be invited

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
{
  • "id": "string"
}

send a email invitation to specified users.

Request Body schema: application/json

User IDs to be invited

Array
string

User IDs to be invited

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
{
  • "id": "string"
}

generates the invite URL for an admin to impersonate another user without knowing their password

path Parameters
user_id
required
string <uuid4>

ID of user to impersonate

Responses

User Role

header Parameters
X-Account-ID
required
string

Account ID

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "role_id": "string",
  • "permissions": {
    }
}

Voicemail

Voicemail Audio

path Parameters
mediaID
required
string <string>

ID of voicemail to get audio

Responses

Voicemail Transcription Status

path Parameters
mediaID
required
string <string>

ID of the voicemail

Responses

Response samples

Content type
application/json
{
  • "done": true,
  • "provider": "string"
}

VMBoxes

GET list of VMBoxes

header Parameters
X-Account-ID
required
string

Account ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Webchat

Save / Update Webchat Configuration

Request Body schema: application/json
enabled
boolean

Webchat feature status

source
string

Webchat source (URL to Javascript script)

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "source": "string"
}

Webchat Configuration

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "source": "string"
}

UCP Webchat Configuration

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "source": "string"
}

Webphone

Webphone Information

query Parameters
username
required
string

User name

account
required
string

Account name

Responses

Response samples

Content type
application/json
{
  • "account": {
    },
  • "user": {
    }
}

Billing

Accounts with Paid Users

Authorizations:
bearerAuth
path Parameters
accountID
required
string

Account ID

header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

All Accounts with Paid Users

Authorizations:
bearerAuth
header Parameters
X-Account-ID
string

Account ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Blocked Numbers

List the caller's blocked numbers

Returns the authenticated user's personal block list. The list only applies to direct calls from external numbers to the user's extension and direct numbers; queue calls do not consult it.

Responses

Response samples

Content type
application/json
{
  • "numbers": [
    ]
}

Block a number

Adds a number to the authenticated user's block list. Adding a number already on the list succeeds and leaves the list unchanged.

Request Body schema: application/json
number
required
string

Phone number, 7 to 20 digits with an optional leading +. Spaces, dashes, dots and parentheses are ignored.

Responses

Request samples

Content type
application/json
{
  • "number": "+14155550100"
}

Unblock a number

Removes a number from the authenticated user's block list. Removing a number that is not on the list succeeds and leaves the list unchanged.

path Parameters
number
required
string

Responses

Quotes

All Quotes

Retrieve all quotes for the current account

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

New Quote

Create a new quote for the current account

Authorizations:
bearerAuth
Request Body schema: application/json
company
string

Company name

title
string

Quote title

subject
string

Quote subject

stage
string

Quote stage

deal_name
string

Deal name

valid_until
integer

Valid until timestamp

pay_terms
string

Payment terms

object (QuoteContact)
account_name
string

Account name

object (QuoteAddress)
Array of objects (QuoteItemApplied)
sub_total
number <float>

Subtotal amount

discount
number <float>

Discount amount

tax
number <float>

Tax amount

adjustment
number <float>

Adjustment amount

total
number <float>

Total amount

terms
string

Terms and conditions

notes
string

Additional notes

Responses

Request samples

Content type
application/json
{
  • "company": "string",
  • "title": "string",
  • "subject": "string",
  • "stage": "string",
  • "deal_name": "string",
  • "valid_until": 0,
  • "pay_terms": "string",
  • "contact": {
    },
  • "account_name": "string",
  • "billing_address": {
    },
  • "quote_items": [
    ],
  • "sub_total": 0,
  • "discount": 0,
  • "tax": 0,
  • "adjustment": 0,
  • "total": 0,
  • "terms": "string",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "company": "string",
  • "title": "string",
  • "subject": "string",
  • "stage": "string",
  • "deal_name": "string",
  • "valid_until": 0,
  • "pay_terms": "string",
  • "contact": {
    },
  • "account_name": "string",
  • "billing_address": {
    },
  • "quote_items": [
    ],
  • "sub_total": 0,
  • "discount": 0,
  • "tax": 0,
  • "adjustment": 0,
  • "total": 0,
  • "terms": "string",
  • "notes": "string"
}

Quote Items

Create a new quote item

Create a new quote item

Authorizations:
bearerAuth
Request Body schema: application/json
product_name
string

Name of the product

description
string

Product description

price
number <float>

Product price

Responses

Request samples

Content type
application/json
{
  • "product_name": "string",
  • "description": "string",
  • "price": 0
}

Response samples

Content type
application/json
{
  • "product_name": "string",
  • "description": "string",
  • "price": 0
}

Get a quote item by ID

Retrieve a specific quote item by its ID

Authorizations:
bearerAuth
path Parameters
id
required
string

Quote Item ID

Responses

Response samples

Content type
application/json
{
  • "product_name": "string",
  • "description": "string",
  • "price": 0
}

Update a quote item

Update an existing quote item

Authorizations:
bearerAuth
path Parameters
id
required
string

Quote Item ID

Request Body schema: application/json
product_name
string

Name of the product

description
string

Product description

price
number <float>

Product price

Responses

Request samples

Content type
application/json
{
  • "product_name": "string",
  • "description": "string",
  • "price": 0
}

Response samples

Content type
application/json
{
  • "product_name": "string",
  • "description": "string",
  • "price": 0
}

Delete a quote item

Delete a specific quote item

Authorizations:
bearerAuth
path Parameters
id
required
string

Quote Item ID

Responses

Get all quote items for a quote

Retrieve all quote items associated with a specific quote

Authorizations:
bearerAuth
path Parameters
id
required
string

Quote ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

UCP Apps

UCP Apps Download Visibility

Responses

Response samples

Content type
application/json
{
  • "desktop": {
    },
  • "mobile": {
    }
}

UCP App Download Visibility

path Parameters
app_name
required
string

Name of the UCP application [desktop/mobile]

Request Body schema: application/json
hide
boolean

Indicates whether the download link for the specified app will be hidden or not

Responses

Request samples

Content type
application/json
{
  • "hide": true
}

UCP Caller ID Configuration

UCP Caller ID Configuration

Responses

Response samples

Content type
application/json
{
  • "inbound": {
    }
}

UCP Caller ID Configuration

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "inbound": {
    }
}

UCP Calls

UCP Calls Early Media Status

Responses

Response samples

Content type
application/json
{
  • "disabled": true
}

UCP Calls Early Media Status

Request Body schema: application/json
disable
boolean

Indicates whether early media should be disabled or not

Responses

Request samples

Content type
application/json
{
  • "disable": true
}

UCP Settings

UCP Profile Image Settings

Responses

Response samples

Content type
application/json
{
  • "gravatar": true
}

UCP Profile Image Settings

Request Body schema: application/json
gravatar
boolean

Indicates if Gravatar service should be enabled or not

Responses

Request samples

Content type
application/json
{
  • "gravatar": true
}

UCP FMFM Settings Status

Responses

Response samples

Content type
application/json
{
  • "disabled": true
}

UCP FMFM Settings Status

Request Body schema: application/json
disable
boolean

Indicates whether FMFM settings should be disabled or not

Responses

Request samples

Content type
application/json
{
  • "disable": true
}

UCP Logout Status

Responses

Response samples

Content type
application/json
{
  • "disabled": true
}

UCP Logout Status

Request Body schema: application/json
disable
boolean

Indicates whether UCP Logout should be disabled or not

Responses

Request samples

Content type
application/json
{
  • "disable": true
}

UCP Contact Center Login per Queue Status

Responses

Response samples

Content type
application/json
{
  • "disabled": true
}

UCP Contact Center Login per Queue Status

Request Body schema: application/json
disable
boolean

Indicates whether UCP Contact Center Login/Logout per queue should be disabled or not

Responses

Request samples

Content type
application/json
{
  • "disable": true
}

UCP Contact Center Group Login Status

Responses

Response samples

Content type
application/json
{
  • "disabled": true
}

UCP Contact Center Group Login Status

Request Body schema: application/json
disable
boolean

Indicates whether UCP Contact Center Group Login/Logout should be disabled or not

Responses

Request samples

Content type
application/json
{
  • "disable": true
}

Presence

Send message to agent

Sends a message to a specific agent via WebSocket. The agent can be identified by either agent_id or agent_extension. Currently supports pop-up notifications, but can be extended for other message types.

Authorizations:
None
header Parameters
X-Account-ID
required
string
Example: 507f1f77bcf86cd799439011

Account identifier

Request Body schema: application/json
id
string

Unique identifier for the message (optional)

event
required
string

Event type identifier

type
required
string

Type of follow-up

object

Action configuration for the message

title
required
string

Title of the pop-up notification

phone_number
string

Phone number associated with the follow-up

follow_up_type
string

Type of follow-up action

follow_up_note
string

Additional notes for the follow-up

message
string

Custom message to display

agent_id
string

Agent ID to target (optional if agent_extension is provided)

agent_extension
string

Agent extension to target (optional if agent_id is provided)

object

UI configuration for the message

Responses

Request samples

Content type
application/json
{
  • "id": "uuid",
  • "event": "pop_up",
  • "type": "follow_up",
  • "action": {
    },
  • "title": "Follow UP",
  • "phone_number": "+14798798797",
  • "follow_up_type": "2",
  • "follow_up_note": "follow up note",
  • "message": "Some custom message: we need to call this customer. He wants a Premium subscription",
  • "agent_id": "",
  • "agent_extension": "003",
  • "ui": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success"
}