Create your API key, make your first request through api.commpeak.com, and find the right CommPeak API for your integration.
CommPeak APIs let you connect your own applications, CRMs, and back-office tools to CommPeak products. They are REST APIs served over HTTPS that accept and return JSON, so you can call them from any language or HTTP client.
Most CommPeak APIs now share one address, https://api.commpeak.com, and one credential: an API key you create in the CommPeak Portal. Start here to choose your API, get your key, and make your first request in a few minutes.
NOTEThe API Reference was rebuilt in October 2026 and now documents 291 endpoints in seven APIs. If you already have a CommPeak integration, see Migrating to the New API Reference for the new names, addresses, and credentials.
Choose your API
Every API except the deprecated PBX Stats API is served from https://api.commpeak.com. Add the path for your API to that address, and authenticate with the credential shown.
| API | Path | Credential |
|---|---|---|
| Portal API | /portal | Portal API key |
| Dialer API | /dialer/{sub_domain}/api | Portal API key with Full access |
| PBX API | /pbx/{sub_domain}/api | Portal API key with Full access |
| Lookup API | /lookup | Portal API key with Full access |
| TextPeak API | /textpeak | TextPeak API key |
| TextPeak Streams API | /textpeak/streams | Stream token |
| PBX Stats API (deprecated) | https://{instance}.stats.pbx.commpeak.com | PBX Stats API key |
For the Dialer API and PBX API, replace {sub_domain} with your company subdomain, for example acme. For the deprecated PBX Stats API, replace {instance} with the name of your PBX Stats instance. If you are not sure which value to use, contact CommPeak support.
Manage balances, rates, SIP accounts, call records, caller IDs, SMS, Speech-to-Text, invoices, users, DID numbers, and voicemails.
Manage campaigns, leads, calls, CDRs, users, groups, DNC lists, and caller IDs in CommPeak Dialer.
Manage users, calls, CDRs, devices, logs, and caller IDs in Cloud PBX.
Run HLR and validation lookups on one number or many.
Manage streams, senders, domains, templates, webhooks, and message history.
Send SMS, WhatsApp, and template messages, and run one-time password (OTP) checks.
Deprecated. Existing integrations can still monitor ongoing calls and retrieve call statistics.
Before you begin
Make sure you have the following:
- An active CommPeak account with the products you want to integrate. You can create API keys only after your customer account is fully activated.
- Access to the CommPeak Portal, where you create your Portal API key under Settings > API Access.
- For the TextPeak APIs, access to Settings > API Keys in TextPeak.
- An HTTP client, such as
curl, Postman, or your preferred programming language.
Getting your API key
The Portal API key authenticates the Portal, Dialer, PBX, and Lookup APIs. To create one:
Log in to the CommPeak Portal
Log in to the CommPeak Portal.
Open API Keys
Expand Settings in the main menu, open the API Access tab, and select API Keys.
Add a key
Click Add API key and enter a Name that helps you recognize the key later.
Keep full access on
If you plan to use the Dialer, PBX, or Lookup API, keep Full access (all services) turned on under Access. It is on by default.
Create the key
Click Create, then confirm with your account password.
Copy the key
Click the eye icon next to the new key, confirm with your password again, and copy the key.
Send the key in the Authorization header of every request as the raw value, without a Bearer prefix: Authorization: <API_KEY>.
For every key option, such as read-only access and IP restrictions, and for TextPeak tokens and the PBX Stats API key, see Authentication and API Keys.
Making your first request
Store your credentials in environment variables instead of pasting them into commands or code. This way, they do not end up in your shell history, logs, or source control.
export COMMPEAK_API_KEY="your-portal-api-key"
export TEXTPEAK_API_KEY="your-textpeak-api-key"Then pick the tab for your API, replace acme or <STREAM_ID> where needed, and run the request. Each one is a read-only call that confirms your key and connection work.
curl https://api.commpeak.com/portal/customer \
-H "Authorization: $COMMPEAK_API_KEY"curl 'https://api.commpeak.com/dialer/acme/api/calls/limit/10' \
-H "Authorization: $COMMPEAK_API_KEY"curl 'https://api.commpeak.com/pbx/acme/api/calls/limit/10' \
-H "Authorization: $COMMPEAK_API_KEY"curl https://api.commpeak.com/lookup/info \
-H "Authorization: $COMMPEAK_API_KEY"curl https://api.commpeak.com/textpeak/streams/<STREAM_ID>/token \
-H "Authorization: $TEXTPEAK_API_KEY"Prefer to start in code? These examples make the Portal API request in Python and Node.js. The Python example uses the requests library (pip install requests), and the Node.js example uses the built-in fetch in Node.js 18 or later, saved as an .mjs file.
import os
import requests
headers = {"Authorization": os.environ["COMMPEAK_API_KEY"]}
response = requests.get("https://api.commpeak.com/portal/customer", headers=headers)
print(response.status_code, response.json())const response = await fetch("https://api.commpeak.com/portal/customer", {
headers: { Authorization: process.env.COMMPEAK_API_KEY },
});
console.log(response.status, await response.json());If the request succeeds, you get 200 and a JSON body. For example, the Portal API returns your account email and balances. The balance is in USD and does not include temporary_credit:
{
"customer": {
"email": "[email protected]",
"balance": 465.28,
"temporary_credit": 0,
"sms_balance": 99.68,
"sms_currency": "USD",
"sms_platform": 1001
}
}If you get an error instead, see Troubleshooting your first request.
TIPYou can also send requests from this site. Open any endpoint in the API Reference, enter your key in the Credentials section, and click Try It!. The response appears next to the request, together with a code sample in your chosen language.
Next steps
Set key permissions and IP restrictions, get TextPeak tokens, and protect your credentials.
Learn the request conventions, status codes, and limits before you go to production.
Update an existing integration to the new API names, base URLs, and credentials.
Filter, sort, and page results before you build a Dialer API or PBX API integration.