Step-by-Step API Integration Tutorial
Welcome to the Ring2All External API Quickstart Tutorial!
This step-by-step guide is designed to help you integrate your external applications (like custom CRMs, support ticket systems, or automation bots) with the Ring2All PBX platform in under 15 minutes.
We will walk you through setting up credentials, importing our Postman files, and making your first REST API requests to manage extensions, send SMS, fetch call records, and monitor active lines.
📋 Prerequisites
Before starting, ensure you have:
- Access to the Ring2All Administrator Portal.
- A working installation of Postman (desktop or web app).
- The PBX domain name or IP address (e.g.
https://pbx.yourdomain.com).
🔑 Step 1: Generate your API Key
To query the API from an external application safely, we use an Application API Key. Unlike user login sessions (which use short-lived JWT tokens), API Keys remain active until you explicitly delete or deactivate them.
- Log into the Ring2All Administrator Portal.
- Navigate to Admin âž” Administration âž” Application Keys.
- Click the Create API Key button in the top-right corner.
- Provide a friendly identifier (e.g.,
CRM-Integration) and choose the active status. - Click Save.
- Important: Copy the generated key token (it starts with
ak_). Store it securely; you will not be able to view it again after leaving the screen.
🚀 Step 2: Configure your Postman Workspace
We provide a pre-packaged Postman Collection and Environment template containing all available PBX endpoints.
- Download the Assets:
- 📥 Postman Environment JSON
- Import into Postman:
- Drag and drop both JSON files, then click Import.
- Configure Environment Variables:
- Set the variables in the Current Value column:
base_url: https://pbx.yourdomain.com/api (replace with your server's domain/IP)
api_key: ak_your_copied_api_key
tenant_slug: your-tenant-slug
- Click Save (Cmd+S / Ctrl+S).
- In the top-right selector of Postman, set the active environment to Ring2All External API Unified Env.
📡 Step 3: Hello World - Make your First Request
Let's verify that your API Key is working by retrieving the tenant's current extension list.
- In Postman, expand the imported Ring2All - Unified External API collection.
- Open the folder Extensions and select List Extensions (
GET). - Click Send.
- You should receive a
200 OKresponse with a JSON payload listing any active extensions:
Troubleshooting: If you receive a 401 Unauthorized or INVALID_API_KEY, double check that the api_key environment variable is correctly set and that the active environment is selected in the top-right corner.
📞 Step 4: Provision an Extension (POST Example)
Now let's create a new extension dynamically. This is useful for automated onboarding of employees when they are registered in your CRM or HR systems.
- In Postman, open the request Create Extension (
POST) under the Extensions folder. - Go to the Body tab. The payload template looks like this:
- Click Send.
- You will receive a
201 Createdresponse. The extension1005is now active on your PBX. Any IP phone with MAC configuration pointing to Mac Autoprov can register using the SIP username1005and passwordSecureSipPassword456!.
💬 Step 5: Send an Outbound SMS Notification
External systems often need to send automated alerts (e.g. appointment reminders or security codes) via SMS.
- Expand the folder SMS Messages in Postman.
- Select Send SMS (
POST). - Set the request body parameters:
from: The SMS-enabled virtual number assigned to your tenant.
to: The customer's mobile phone number (in E.164 international format).
message: The message text.
- Click Send. You will receive confirmation that the message has been queued by the PBX SMS service:
📊 Step 6: Synchronize Call Logs (CDRs)
To log customer phone calls directly under contact cards inside your CRM, you need to query the Call Detail Records (CDRs).
- Go to the Call Detail Records (CDRs) folder in Postman.
- Select List CDRs (
GET). - Notice the query parameters preconfigured in the URL to fetch today's logs:
startDate: 2026-06-19T00:00:00.000Z
- endDate: 2026-06-19T23:59:59.000Z
- Click Send.
- The response details every call completed during the range, including:
callerIdNumber: The extension or caller ID who started the call.
- destinationNumber: The number dialed.
- duration: Total call duration (seconds).
- billsec: Active audio conversation seconds.
- hangupCause: Cause code (e.g., NORMAL_CLEARING for normal hangup).
- recordingFile: Path of the recording file.
- To fetch the recording audio file (.wav format) for archiving or playback in your CRM, use the Download Recording request with the
{{cdr_id}}variable.
📡 Step 7: Screen-Pop Popups - Active Calls Monitoring
To show customer account cards to call center agents immediately when their phone rings, you need to monitor live, active calls.
- Go to the Active Calls Monitoring folder in Postman.
- Select List Active Calls (
GET). - Click Send.
- If a call is currently routing or talking on the system, you will see it in real-time:
- Your CRM integration script can poll this endpoint or connect to the
/ws/realtimeWebSocket endpoint to look up thecallerIdNumberagainst the customer database and instantly open the customer profile (Screen-Pop) on agent Jane Smith's browser window whendestination === "1005".
💡 Next Steps
Now that you understand how the API functions:
Explore other folders in the Postman collection to create Ring Groups, Conferences, IVRs, and administer Users or Roles. Review the External API Integration Guide for advanced schemas, error codes, and webhook configurations.