You may download Postman file for testing

Request

Answer (JSON)

GET Methods

Get WebAPI license information
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/
				
			

Parameters: no

				
					{
    "product": "3CX REST API",
    "version": "2.1.9",
    "release": "Webhooks",
    "licenseExpire": "02.05.2031 20:32:11",
    "clientLicensesNum": "50",
    "concurrentCalls": 16,
    "callRecords": true,
    "api": true,
    "quality": false
}
				
			
Get the current number of calls
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/pbx.calls.get
				
			

Parameters: no

				
					{
    "result": 5
}
				
			
Get 3CX status
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/pbx.ac.get
				
			

Parameters: no

				
					{
    "count": 2,
    "AConnByCallID": [
        {
            "callID": 46874,
            "direction": "Internal",
            "did": "",
            "AConnList": [
                {
                    "dnNum": "1739",
                    "dnType": "extension",
                    "externalParty": "1674",
                    "status": "Connected"
                },
                {
                    "dnNum": "1674",
                    "dnType": "extension",
                    "externalParty": "1739",
                    "status": "Connected"
                }
            ]
        },
        {
            "callID": 46883,
            "direction": "Internal",
            "did": "",
            "AConnList": [
                {
                    "dnNum": "1283",
                    "dnType": "extension",
                    "externalParty": "1126",
                    "status": "Connected"
                },
                {
                    "dnNum": "1126",
                    "dnType": "extension",
                    "externalParty": "1283",
                    "status": "Connected"
                }
            ]
        }
    ]
}
				
			
Get and additional 3CX information
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/pbx.callsinfo.get
				
			

Parameters: no

				
					{
    "count": 2,
    "callsInfo": [
        {
            "callID": 46874,
            "state": "Talking",
            "startedAt": "2022-12-29T08:37:16Z",
            "answeredAt": "2022-12-29T08:37:23Z",
            "did": "",
            "owner": {
                "dnNum": "1739",
                "dnType": "extension",
                "externalParty": "1674",
                "status": "Connected"
            },
            "talkTo": [
                {
                    "dnNum": "1674",
                    "dnType": "extension",
                    "externalParty": "1739",
                    "status": "Connected"
                }
            ],
            "routingTo": []
        },
        {
            "callID": 46864,
            "state": "Talking",
            "startedAt": "2022-12-29T08:23:58Z",
            "answeredAt": "2022-12-29T08:24:01Z",
            "did": "",
            "owner": {
                "dnNum": "1126",
                "dnType": "extension",
                "externalParty": "1283",
                "status": "Connected"
            },
            "talkTo": [
                {
                    "dnNum": "1283",
                    "dnType": "extension",
                    "externalParty": "1126",
                    "status": "Connected"
                }
            ],
            "routingTo": []
        }
    ]
}
				
			
Get external lines information
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/all.line.get
				
			

Parameters: no

				
					{
    "nums": [
        "90000",
        "10002",
        "10000",
        "10001"
    ]
}
				
			
Get all extensions
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/all.ext.get
				
			

Parameters: no

				
					{
    "nums": [
        "100",
        "101",
        "102",
        "103",
        "104",
        "105",
        "106",
        "520",
        "521",
        "522"
    ]
}
				
			
Get all registered extensions
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/all.registered.get
				
			

Parameters: no

				
					{
    "nums": [
        "100",
        "101",
        "102"
    ]
}
				
			
Get a list of ring groups
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/all.group.get
				
			

Parameters: no

				
					{
    "nums": [
        "945",
        "803"
    ]
}
				
			
Get a list of IVR's
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/all.ivr.get
				
			

Parameters: no

				
					{
    "nums": [
        "HOL",
        "777",
        "QCB",
        "800",
        "801",
        "805"
    ]
}
				
			
Get a list of queues
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/all.queue.get
				
			

Parameters: no

				
					{
    "nums": [
        "820",
        "802",
        "804"
    ]
}
				
			
Get a list extension group
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/all.extgroup.get
				
			

Parameters: no

				
					{
    "extGroups": [
        "__DEFAULT__",
        "Company0",
        "Sales",
        "___FAVORITES___000"
    ]
}
				
			
Get an extension properties
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/ext.info.get?num=102
				
			

Parameters: Extension

				
					{
    "num": "102",
    "name": "Tom",
    "lastname": "Smith",
    "email": "info@creomate.com",
    "mobile": "",
    "enabled": true,
    "externalCalls": true,
    "recordType": "External"
}
				
			
Get an extension status
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/ext.state.get?num=102
				
			

Parameters: Extension

				
					{
    "num": "102",
    "registered": true,
    "status": "Free",
    "fwdName": "Available",
    "qGlobalStatus": true,
    "qStatus": [
        {
            "num": "802",
            "status": false
        },
        {
            "num": "804",
            "status": true
        }
    ]
}
				
			
Get queue members
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/queue.members.get?num=802
				
			

Parameters: Queue

				
					{
    "count": 2,
    "members": [
        {
            "num": "102",
            "name": "Tom",
            "lastname": "Smith",
            "loggedIn": false
        },
        {
            "num": "104",
            "name": "Alex",
            "lastname": "Mulder",
            "loggedIn": false
        }
    ]
}
				
			
Get free queue members
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/queue.free.get?num=804
				
			

Parameters: Queue

				
					{
    "count": 1,
    "members": [
        {
            "num": "102",
            "name": "Tom",
            "lastname": "Smith",
            "loggedIn": true
        }
    ]
}
				
			
Get talking queue members
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/queue.talk.get?num=802
				
			

Parameters: Queue

				
					{
    "count": 1,
    "members": [
        {
            "num": "102",
            "name": "Tom",
            "lastname": "Smith",
            "loggedIn": true
        }
    ]
}
				
			
Get a queue availability
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/queue.isfree.get?num=802
				
			

Parameters: Queue

				
					{
    "result": true
}
				
			
Get a ring group members
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/group.members.get?num=803
				
			

Parameters: Ring group

				
					{
    "count": 3,
    "members": [
        "520",
        "521",
        "522"
    ]
}
				
			
Get a free ring group members
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/group.free.get?num=803
				
			

Parameters: Ring group

				
					{
    "count": 2,
    "members": [
        "520",
        "521"
    ]
}
				
			
Get a group members
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/extgroup.members.get?name=Sales
				
			

Parameters: Group name

				
					{
    "count": 3,
    "members": [
        "101",
        "102",
        "520"
    ]
}
				
			

SET methods

Set extension forwarding status
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/ext.fwd.set?num=102&status=Available
				
			

Parameters: Extension, Status

				
					{
    "result": true
}
				
			
Set extension global queue status
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/ext.queueglobal.set?num=102&log=on
				
			

Parameters: Extension, log

				
					{
    "result": true
}
				
			
Set extension queue status
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/ext.queue.set?num=102&queue=802&log=off
				
			

Parameters: Extension, queue, log

				
					{
    "result": true
}
				
			
Set extension recording options
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/ext.options.set?num=102&enabled=on&external=on&recording=external
				
			

Parameters: Extension, enabled, external, recording

				
					{
    "result": true
}
				
			

Call control API

Make call
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/makecall?first=102&second=420774852529
				
			

Parameters: Extension, phone number

				
					{
    "first": "102",
    "second": "420774852529"
}
				
			
Get devices and contact
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/ext.devices.get?num=102
				
			

Parameters: Extension

				
					{
    "count": 2,
    "devices": [
        {
            "userAgent": "3CX Mobile Client",
            "contact": "sip:102@127.0.0.1:5483;rinstance=5a6cb7ecb40359bf"
        },
        {
            "userAgent": "3CX WebRTC proxy",
            "contact": "sip:102@127.0.0.1:5063;rinstance=b206569d67c8dd02"
        }
    ]
}
				
			
Drop call
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/drop?num=102&contact=102
				
			

Parameters: Extension, contact (substring)

				
					{
    "result": "Drop"
}
				
			
Answer call
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/answer?num=102&contact=102
				
			

Parameters: Extension, contact (substring)

				
					{
    "result": "Answer"
}
				
			
Transfer call
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/transfer?num=102&contact=102&dest=101
				
			

Parameters: Extension, contact (substring), destination

				
					{
    "result": "Transfer"
}
				
			
Join call
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/join?num=102
				
			

Parameters: Extension

				
					{
    "result": "Join"
}
				
			

Phonebook management

Contact.Find
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/contact.find?num=997&min_len=3
				
			

Parameters: Phone number, minimum number length

search the phonebook with the minimum length exact match or ends with the number

				
					{
    "id": [
        6,
        7
    ]
}
				
			
Contact.New
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/contact.new?firstname=FirstName&lastname=LastName&company=Company&phone=Mobile&data0=Mobile2&data1=Home&data2=Home2&data3=Business&data4=Business2&data5=Email&data6=Other&data7=Businessfax&data8=Homefax&data9=Pager
				
			

Parameters: firstname, lastname, company, phone, data0, data1, data2, data3, data4, data5, data6, data7, data8, data9

				
					{
    "id": 5
}
				
			
Contact.Delete
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/contact.del?id=5
				
			

Parameters: ContactID

				
					{
    "result": "Delete contact"
}
				
			
Contact.Update
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/contact.update?id=4&firstname=FirstName&lastname=LastName&company=Company&phone=Mobile&data0=Mobile2&data1=Home&data2=Home2&data3=Business&data4=Business2&data5=Email&data6=Other&data7=Businessfax&data8=Homefax&data9=Pager
				
			

Parameters: ContactID, firstname, lastname, company, phone, data0, data1, data2, data3, data4, data5, data6, data7, data8, data9

				
					{
    "result": "Update contact"
}
				
			
Contact.Get
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/contact.get?id=4
				
			

Parameters: ContactID

				
					{
    "name": "FirstName",
    "lastName": "LastName",
    "company": "Company",
    "crmContactData": "",
    "tag": "",
    "phone": "Mobile",
    "data0": "Mobile2",
    "data1": "Home",
    "data2": "Home2",
    "data3": "Business",
    "data4": "Business2",
    "data5": "Email",
    "data6": "Other",
    "data7": "Businessfax",
    "data8": "Homefax",
    "data9": "Pager"
}
				
			

Extension management

Extension.New (Debian only)
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/ext.new?num=100
				
			

Parameters: Extension number

				
					{
    "result": "Create extension"
}
				
			
Extension.Delete
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/ext.del?num=100
				
			

Parameters: Extension number

				
					{
    "result": "Delete extension"
}
				
			
Extension.Update
				
					https://{{3CXFQDN}}/webapi/{{AccessKey}}/ext.update?num=300&enabled={0/1}&firstname=Firstname&lastname=Lastname&email=api@api.com&mobile={}&authid=300&authpass=300&callerid={}&deliveraudio={0/1}&recordcalls={0/1/2}&sipid={}&reinvite={0/1}&replaces={0/1}&vmemail={0/1/2/3}&vmenabled={0/1}&vmpin={}&vmplaycallerid={0/1}&vmplaydatetime={0/1/2}&internal={0/1}&noanswertimeout={}
				
			

Parameters: Extension number, enabled, firstname, lastname, email, mobile, authid, authpass, callerid, deliveraudio, recordcalls, sipid, reinvite, replaces, vmemail, vmenabled, vmpin, vmplaycallerid, vmplaydatetime, internal, noanswertimeout

				
					{
    "result": "Update extension"
}