Skip to content
cloud pbx
  • Cloud PBX
  • Products & Services
    • Cloud PBX
      • Cloud PBX Enterprise
      • Cloud PBX Multi tenant
      • Cloud PBX office
      • Cloud PBX Lite
      • Hotel IP PBX Integrated Hotel PBX Solution
      • Cloud Call Center
        • Cloud call center
        • Call center customer service
        • Call Center Telemarketing
        • Call center AI 
      • SIP Trunk Provider Jakarta–Indonesia
    • Services
      • Data & Integration
        • 3CX, Grafana, and SQL Dashboard Monitoring Optimization
        • Wallboard Custom – Dimension
        • Creomate — Advanced External API Solution for 3CX Integration
        • Universal CRM Integration with 3CX
      • Contact Center Solutions
        • Omni channel Social Media
        • Telemarketing System
        • Solusi Business Process Outsourcing
      • Communication Channel Solutions
        • Microsoft Teams Direct Routing
        • WhatsApp Business Calling API Integration with PBX
        • Video conference: webmeeting 3CX
        • Webrtc softphone
        • Softphone
    • AI Agent & API Integration: 24/7 Automated Customer Service Solution
  • Devices
    • Voice Gateway
      • FXO
        • Dinstar FXO Gateway
        • Yeastar NeoGate TA410 VoIP Gateway
      • FXS
        • Analog Telephony Integration Solution: Dinstar
      • E1
        • E1/T1 Digital VoIP Gateway Newrock OM1000-TE (1–4 E1)
        • Beronet E1 Voip Gateway
    • IP Phone
      • Best IP Phones of 2026
      • SNOM D140, D150
      • Yealink IP Phone series
      • Poly Desk Phone
    • SBC
      • 3CX Micro SBC
      • Linkvil A710 SBC
      • Ribbon SBC
      • Sangoma SBC
  • Case Studies
  • News
  • Video
    • Tutorials
    • Video Integration
    • Testimoni
  • Help Center
  • Contact
  • Partnership Program
  • About Us
cloud pbx
  • Cloud PBX
  • Products & Services
    • Cloud PBX
      • Cloud PBX Enterprise
      • Cloud PBX Multi tenant
      • Cloud PBX office
      • Cloud PBX Lite
      • Hotel IP PBX Integrated Hotel PBX Solution
      • Cloud Call Center
        • Cloud call center
        • Call center customer service
        • Call Center Telemarketing
        • Call center AI 
      • SIP Trunk Provider Jakarta–Indonesia
    • Services
      • Data & Integration
        • 3CX, Grafana, and SQL Dashboard Monitoring Optimization
        • Wallboard Custom – Dimension
        • Creomate — Advanced External API Solution for 3CX Integration
        • Universal CRM Integration with 3CX
      • Contact Center Solutions
        • Omni channel Social Media
        • Telemarketing System
        • Solusi Business Process Outsourcing
      • Communication Channel Solutions
        • Microsoft Teams Direct Routing
        • WhatsApp Business Calling API Integration with PBX
        • Video conference: webmeeting 3CX
        • Webrtc softphone
        • Softphone
    • AI Agent & API Integration: 24/7 Automated Customer Service Solution
  • Devices
    • Voice Gateway
      • FXO
        • Dinstar FXO Gateway
        • Yeastar NeoGate TA410 VoIP Gateway
      • FXS
        • Analog Telephony Integration Solution: Dinstar
      • E1
        • E1/T1 Digital VoIP Gateway Newrock OM1000-TE (1–4 E1)
        • Beronet E1 Voip Gateway
    • IP Phone
      • Best IP Phones of 2026
      • SNOM D140, D150
      • Yealink IP Phone series
      • Poly Desk Phone
    • SBC
      • 3CX Micro SBC
      • Linkvil A710 SBC
      • Ribbon SBC
      • Sangoma SBC
  • Case Studies
  • News
  • Video
    • Tutorials
    • Video Integration
    • Testimoni
  • Help Center
  • Contact
  • Partnership Program
  • About Us
  • English
  • Bahasa Indonesia
  • English
  • Bahasa Indonesia
cloud pbx

IP Phone

8
  • What Is an IP Phone?
  • How to Install/Provision an IP Phone
  • IP Phones Compatible with 3CX
  • Factory Reset an IP Phone: A Required Step Before Provisioning to Avoid Errors

3CX Softphone: Webclient and Apps

12
  • How to Access the 3CX Web Client
  • How to Install and Activate the 3CX Desktop App on Windows (PWA & Windows App)
  • Learn 3CX’s Basic Communication Features in 5 Minutes
  • The Easy Way to Set Available, Away, and DND Status in 3CX
  • Activating the 3CX Mobile App with a QR Code
  • Digital Receptionist (IVR): How to Build a Professional Automated Phone Menu

3CX Admin Console & Manajemen Sistem

22
  • What Is an SBC? Meet the “Security Guard” Protecting Your VoIP System
  • What Is FXO? How FXO Connects Analog Lines to IP PBX
  • Backup and Restore Feature
  • How to Set Up Call Forwarding Based on Presence Status in 3CX
  • How to Use Call Parking and Retrieve Call in 3CX
  • How to Change Your AUX Status (Available, Away, DND) in 3CX
  • Tutorial: Setting Up Call Transcription on Cloud PBX (3CX)
  • Managing Departments & Users in 3CX: Adding Users, Setting Roles, and Managing Departments Easily
  • How to Set Up a Router Phone / 3CX SBC for Remote & WFH Employees
  • Ring Groups vs Call Queues in 3CX: Keep Customers From Waiting and Your Team From Getting Overwhelmed
  • Office Hours & Holiday Rules: Keep Business Calls Handled Even When the Office Is Closed

Keamanan VoIP dan Troubleshoot

6
  • Fixing One-Way Audio in 3CX — Call Connects But Only One Side Can Hear?
  • How to Unblock an IP After Too Many Failed Login Attempts
  • 3CX Firewall Checker: How to Check 3CX Ports So Calls Stay Smooth

Developer

14
  • Transforming Enterprise Phone Architecture with a WebRTC SBC Gateway
  • WebRTC SBC Gateway Integration for Flutter
  • Optimizing Enterprise Collaboration with the 3CX Video Conference API
  • 3CX CRM XML Template Structure & Specification Guide
  • 3CX REST API (XAPI) Endpoint Guide for Configuration
  • Guide to Integrating Odoo CRM with 3CX
  • Flutter WebRTC Softphone App Using the sip_ua Package

SIP TRUNK

8
  • What Is a SIP Trunk?
  • How Many Types of SIP Trunk Numbers or Services Are There?
  • How to Enable Incoming WhatsApp Calls (WhatsApp SIP Calling) in 3CX
  • SIP Trunk Management: How to Connect a Local Provider Phone Number to 3CX

WhatsApp Calling API

12
  • What Is the WhatsApp Calling API?
  • Guide & Optimization: Setting Up WhatsApp Call for Customer Service in 3CX
  • How to Route WhatsApp Calls to Multiple Extensions at Once
  • Guide to Building a WhatsApp Call Queue in 3CX for Customer Service
  • How to Enable Incoming WhatsApp Calls (WhatsApp SIP Calling) in 3CX
  • Integrating WhatsApp Call with CRM Using 3CX
View Categories
  • Home
  • Pusat Bantuan
  • Developer
  • 3CX REST API (XAPI) Endpoint Guide for Configuration

3CX REST API (XAPI) Endpoint Guide for Configuration

Admin
Updated on October 2, 2026

5 min read

This document provides a complete guide to the REST API endpoint specification for configuring the 3CX PBX system. This API lets you manage authentication, departments, users, system extensions, and version checks programmatically.

🔗 Base URL & Environment #

All API requests are sent to the FQDN (Fully Qualified Domain Name) of your 3CX instance:

https://{{PBX_FQDN}}

📑 Table of Contents #

  1. Authentication / Authorization
  2. Departments Management
  3. Users Management
  4. System & Utilities
  5. Active Calls
  6. Reports & Call History
  7. Trunk & Routing
  8. Phonebook & Contacts
  9. System Settings & Utility
  10. Event Logs

1. Authentication / Authorization #

Endpoint: Get Token #

Implements authentication and returns an access_token based on the corresponding role.

  • HTTP Method: POST

  • URL Endpoint: https://{{PBX_FQDN}}/connect/token

  • Authentication: Required (Basic Authentication)

  • Content-Type: application/x-www-form-urlencoded

Request Body #

Parameter Type Description
client_id String (Required) Fixed value: server_principal_id.
client_secret String (Required) The secret key obtained after setting up the Service Principal.
grant_type String (Required) Fixed value: client_credentials.

Example Response (200 OK) #

{
  "token_type": "Bearer",
  "expires_in": 3600,
  "access_token": "ACCESS_TOKEN",
  "refresh_token": null
}

Error Response (401 Unauthorized) #

{
  "error": "unauthorized",
  "error_description": "The request requires valid user authentication."
}

💡 BetterDocs Tip: This access_token is valid for 3600 seconds (1 hour). You must re-authenticate once the token expires.

2. Departments Management #

Endpoint: Check if Department Exists #

Checks whether a department with a given name is already registered in 3CX, to avoid creating a duplicate.

  • HTTP Method: GET

  • URL Endpoint: https://{{PBX_FQDN}}/xapi/v1/Groups?$filter=Name eq '{Department_Name}'

  • Example URL: https://{{PBX_FQDN}}/xapi/v1/Groups?$filter=Name eq '3CX Test'

Example Response – If Department Is Found (200 OK) #

{
  "@odata.context": "https://PBX_FQDN/xapi/v1/$metadata#Groups",
  "value": [
    {
      "Name": "DEFAULT",
      "IsDefault": true,
      "HasMembers": true,
      "Number": "GRP0000",
      "Id": 28
    }
  ]
}

Endpoint: Create a Department #

Creates a new department in 3CX with language, timezone, and service number range configuration.

  • HTTP Method: POST

  • URL Endpoint: https://{{PBX_FQDN}}/xapi/v1/Groups

  • Content-Type: application/json

Example Request Body #

{
  "AllowCallService": true,
  "Id": 0,
  "Language": "EN",
  "Name": "3CX Test",
  "PromptSet": "1e6ed594-af95-4bb4-af56-b957ac87d6d7",
  "Props": {
    "LiveChatMaxCount": 20,
    "PersonalContactsMaxCount": 500,
    "PromptsMaxCount": 10,
    "SystemNumberFrom": "300",
    "SystemNumberTo": "319",
    "TrunkNumberFrom": "340",
    "TrunkNumberTo": "345",
    "UserNumberFrom": "320",
    "UserNumberTo": "339"
  },
  "TimeZoneId": "51",
  "DisableCustomPrompt": true
}

Example Response (201 Created) #

Includes a Location header containing the URL of the newly created department entity.

{
  "@odata.context": "https://PBX_FQDN/xapi/v1/$metadata#Groups/$entity",
  "Name": "3CX Test",
  "Id": 35,
  "Language": "EN",
  "Props": {
    "LiveChatMaxCount": 20,
    "PersonalContactsMaxCount": 500,
    "PromptsMaxCount": 10
  },
  "TimeZoneId": "51"
}

Error Response – Duplicate Name (400 Bad Request) #

{
  "error": {
    "message": "Name:nWARNINGS.XAPI.DUPLICATE",
    "details": [
      {
        "target": "Name",
        "message": "WARNINGS.XAPI.DUPLICATE"
      }
    ]
  }
}

Endpoint: Update Department Details #

Updates the properties or settings of an existing department.

  • HTTP Method: PATCH

  • URL Endpoint: https://{{PBX_FQDN}}/xapi/v1/Groups({Department_Id})

  • Example URL: https://{{PBX_FQDN}}/xapi/v1/Groups(123)

Example Request Body #

{
  "Id": 123,
  "Name": "3CX Test Modif",
  "Props": {
    "LiveChatMaxCount": 25,
    "PersonalContactsMaxCount": 600
  }
}
  • Success Response: 204 No Content (no response body).

Endpoint: Delete a Department #

Permanently deletes a department from 3CX based on the given ID.

  • HTTP Method: POST

  • URL Endpoint: https://{{PBX_FQDN}}/xapi/v1/Groups/Pbx.DeleteCompanyById

Request Body #

{
  "id": 123
}
  • Success Response: 204 No Content

  • Failure Response (404 Not Found): {"error": "Department not found"}

3. Users Management #

Endpoint: Get List of Users #

Retrieves data for all registered users, including their ID, name, extension number, email, and group/department membership.

  • HTTP Method: GET

  • URL Endpoint: https://{{PBX_FQDN}}/xapi/v1/Users

Query Parameters (Optional, for Pagination & Filtering) #

  • $top: Limits the number of users returned (Default: 100).
  • $skip: Skips a number of records for pagination (Default: 0).
  • $orderby: Sorts the data (Example: sorted by Number).
  • $select: Selects specific columns (Example: Id,FirstName,LastName,Number,EmailAddress).

4. System & Utilities #

Endpoint: Get Default Group Properties #

Retrieves the default properties of the group named “DEFAULT” to view the system’s base configuration and call routing.

  • HTTP Method: GET

  • URL Endpoint: https://{{PBX_FQDN}}/xapi/v1/Groups?$filter=Name eq 'DEFAULT'

Example Response (200 OK) #

{
  "@odata.context": "https://PBX_FQDN/xapi/v1/$metadata#Groups",
  "value": [
    {
      "Name": "DEFAULT",
      "IsDefault": true,
      "HasMembers": true,
      "Number": "GRP0000",
      "Id": 95,
      "OfficeRoute": {
        "Route": { "Number": "101", "To": "Extension", "Name": "sysadmin" }
      },
      "OutOfOfficeRoute": {
        "Route": { "Number": "101", "To": "VoiceMail", "Name": "sysadmin" }
      }
    }
  ]
}

Endpoint: Get 3CX Version & Connection Test #

A utility endpoint for checking the API connection status while also identifying the 3CX system version currently running.

  • HTTP Method: GET (or a standard check method)

  • Main Response Header:

    Look at the header when the response succeeds. It includes the property:

    X-3CX-Version: 20.0.x.x (indicates the active 3CX version).

This documentation is adapted from 3CX’s official API specification guide.

5. Active Calls #

This endpoint is used to monitor calls that are currently active in real time.

Endpoint: Get Active Calls — Retrieves the list of all calls currently in progress on the 3CX system.

  • HTTP Method: GET
  • URL Endpoint: https://{{PBX_FQDN}}/xapi/v1/ActiveCalls
  • Query Parameters (Optional):
    • $top: Maximum number of records (default: 100)
    • $skip: Pagination (default: 0)
    • $orderby: Sort the data (example: EstablishedAt desc)
    • $filter: Filter the data (example: Callee eq ‘101’)

Example Response (200 OK)

{
  "@odata.context": "https://{{PBX_FQDN}}/xapi/v1/$metadata#ActiveCalls",
  "value": [
    {
      "Id": "12345",
      "Caller": "+6281234567890",
      "Callee": "101",
      "EstablishedAt": "2026-07-07T07:45:12Z",
      "Duration": 125,
      "Direction": "Inbound",
      "Queue": null,
      "Status": "Connected"
    }
  ]
}

Note: this endpoint is very useful for real-time monitoring (call center dashboards, wallboards, etc.).

6. Reports & Call History #

XAPI provides several dedicated endpoints for retrieving reporting data and call history.

Endpoint: Call History View — Retrieves the full call history.

  • HTTP Method: GET
  • URL Endpoint: https://{{PBX_FQDN}}/xapi/v1/CallHistoryView
  • Key Query Parameters:
    • from & to (ISO format: 2026-07-01T00:00:00Z)
    • $top, $skip, $orderby, $filter

Other Reporting Endpoints (examples):

  • /xapi/v1/ReportCallLogData/Pbx.GetCallLogData(…)
  • /xapi/v1/ReportAbandonedQueueCalls/Pbx.GetAbandonedQueueCallsData(…)
  • /xapi/v1/ReportQueuePerformanceOverview/…
  • /xapi/v1/ReportAgentLoginHistory/…

Example Usage (with a query):

GET https://{{PBX_FQDN}}/xapi/v1/CallHistoryView?$top=100&$skip=0&from=2026-07-01T00:00:00Z&to=2026-07-07T23:59:59Z

Tip: use Developer Tools (F12) in the 3CX Web Console while opening a report to see the exact query parameters used.

7. Trunks & Routing #

Endpoint: Get Trunks — Retrieves the list of registered SIP Trunks.

  • HTTP Method: GET
  • URL Endpoint: https://{{PBX_FQDN}}/xapi/v1/Trunks
  • Endpoint: Inbound/Outbound Rules
  • /xapi/v1/InboundRules
  • /xapi/v1/OutboundRules

Example Create/Update Trunk (POST/PATCH):

{
  "Name": "SIP Provider",
  "Host": "sip.provider.com",
  "Port": 5060,
  "Type": "SIP",
  ...
}

Note: routing management (DID, Caller ID rules) is usually done through the related Routes or DialPlans endpoints.

8. Phonebook & Contacts #

Endpoint: Global Phonebook

  • GET → https://{{PBX_FQDN}}/xapi/v1/Phonebook
  • POST → Add a new contact
  • PATCH → Update a contact
  • DELETE → Delete a contact

Example Request Body (Create Contact):

{
  "FirstName": "John",
  "LastName": "Doe",
  "Number": "+628123456789",
  "Email": "[email protected]",
  "Company": "PT ABC"
}

This endpoint is very useful for syncing contacts with a CRM.

9. System Settings & Utilities #

Endpoint: System Parameters — Retrieves and updates general system settings.

  • GET: https://{{PBX_FQDN}}/xapi/v1/SystemParameters
  • PATCH: Update specific parameters (e.g. recording settings, security, etc.).

Other Endpoints:

  • /xapi/v1/Defs → Get system definitions (enums, options)
  • /xapi/v1/Groups?$filter=Name eq ‘DEFAULT’ → Default Group Properties (already covered above)

10. Event Logs #

Endpoint: Get Event Logs — Retrieves system and event logs.

  • HTTP Method: GET
  • URL Endpoint: https://{{PBX_FQDN}}/xapi/v1/EventLogs
  • Query Parameters: $top, $skip, $filter (by time, severity, etc.), $orderby=Timestamp desc

Example Response:

{
  "value": [
    {
      "Timestamp": "2026-07-07T07:50:00Z",
      "Severity": "Info",
      "Component": "CallManager",
      "Message": "Call established between 101 and +62812..."
    }
  ]
}

Additional Recommendations #

  1. Swagger Reference — Access the full documentation directly from your PBX: https://{{PBX_FQDN}}/xapi/v1/swagger.yaml
  2. Best Practices:
    • Always use the System Owner role for maximum access.
    • Implement refresh token logic, since tokens expire every hour.
    • For large reports, use pagination ($top + $skip) to avoid timeouts.
    • Use the F12 Network tab in the 3CX Web Console to “spy” on the endpoints and parameters the system uses.
3CX CRM XML Template Structure & Specification GuideGuide to Integrating Odoo CRM with 3CX
Table of Contents
  • 🔗 Base URL & Environment
  • 📑 Table of Contents
  • 1. Authentication / Authorization
    • Endpoint: Get Token
      • Request Body
      • Example Response (200 OK)
      • Error Response (401 Unauthorized)
  • 2. Departments Management
    • Endpoint: Check if Department Exists
      • Example Response - If Department Is Found (200 OK)
    • Endpoint: Create a Department
      • Example Request Body
      • Example Response (201 Created)
      • Error Response - Duplicate Name (400 Bad Request)
    • Endpoint: Update Department Details
      • Example Request Body
    • Endpoint: Delete a Department
      • Request Body
  • 3. Users Management
    • Endpoint: Get List of Users
      • Query Parameters (Optional, for Pagination & Filtering)
  • 4. System & Utilities
    • Endpoint: Get Default Group Properties
      • Example Response (200 OK)
    • Endpoint: Get 3CX Version & Connection Test
    • 5. Active Calls
    • 6. Reports & Call History
    • 7. Trunks & Routing
    • 8. Phonebook & Contacts
    • 9. System Settings & Utilities
    • 10. Event Logs
    • Additional Recommendations

Share This Article :

  • Facebook
  • X
  • LinkedIn

Was it helpful ?

  • Happy
  • Normal
  • Sad
  • Cloud PBX
  • Products & Services
  • Devices
  • Case Studies
  • News
  • Video
  • Help Center
  • Contact
  • Partnership Program
  • About Us
  • Cloud PBX Enterprise
  • Cloud PBX Multi tenant
  • Cloud call center
  • Cloud PBX office
  • Click to Talk
  • Webrtc softphone
  • AI Agent & API Integration: 24/7 Automated Customer Service Solution
  • WhatsApp Business Calling API Integration with PBX
  • Integrasi CRM dengan 3CX
  • Help Center
  • Comply with PCI DSS & HIPAA Standards
  • Practical Ways to Improve Hotel Communication Efficiency
  • Agentic AI: A New Era for Smart Phone Systems
  • Cloud PBX Office for Business Communication
  • Understanding the Call Flow Designer Feature
  • Call Center Hospitality
  • WhatsApp Customer Service with 3CX
  • PBX Monitoring with Grafana and SQL Dashboard
  • Ribbon SBC for Microsoft Teams Direct Routing: SBC 1000 Appliance vs Cloud-Based SWe Lite
  • Sangoma SBC: A Secure Bridge from Telkom SIP Trunk to AI Voice Platforms
  • Privacy Policy

PT. Solusi Teknologi Unggul | My Republik Plaza Wing A Ground Level Zona 6, Green Office Park 6. BSD City Tangerang Banten 15345 Tel:+62-21-50111266

Copyright © 2026 PT. Solusi Teknologi Unggul 

Need help? Chat with us on WhatsApp
WhatsApp
Hello, welcome to Solusipbx.com, thank you for contacting us

To help us provide the right solution, please tell us your Name, Company
and your needs
Open Chat
Powered by Joinchat