3CX SQL API Documentation

Get 3CX CDR output table
https://{{3CXFQDN}}/webapi/{{AccessKey}}/query
{"query":"SELECT cdr_id, call_history_id, source_participant_id, source_entity_type, source_dn_number, source_dn_type, source_dn_name, source_participant_name, source_participant_phone_number, source_participant_trunk_did, source_participant_is_incoming, source_participant_is_already_connected, source_participant_group_name, source_participant_billing_suffix, destination_participant_id, destination_entity_type, destination_dn_number, destination_dn_type, destination_dn_name, destination_participant_name, destination_participant_phone_number, destination_participant_trunk_did, destination_participant_is_incoming, destination_participant_is_already_connected, destination_participant_group_name, destination_participant_billing_suffix, base_cdr_id, originating_cdr_id, creation_method, creation_forward_reason, termination_reason, terminated_by_participant_id, continued_in_cdr_id, cdr_started_at, cdr_ended_at, cdr_answered_at, termination_reason_details, processed, migrated, main_call_history_id, source_presentation, offload_id FROM public.cdroutput order by cdr_started_at desc;", 
"count":"10"}
Get WebAPI SQL from 3CX PostgreSQL table
https://{{3CXFQDN}}/webapi/{{AccessKey}}/query
{"query":"SELECT id_recording, cl_participants_id, recording_url, start_time, end_time, 
transcription, archived, archived_url, call_type FROM public.recordings;",
"count":"100"
}
Answer
{
    "result": [
        [
            "210",
            "3510",
            "102/[Tom Smith]_102-381629759788_20230327090407(4).wav",
            "3/27/2023 11:04:07 AM",
            "3/27/2023 11:04:10 AM",
            "",
            "False",
            "",
            "2"
        ]
    ]
}
Get WebAPI SQL from custom PostgreSQL table
https://{{3CXFQDN}}/webapi/{{AccessKey}}/query
{"query":"SELECT date, old_values, new_values, ext FROM public.operator_state_history;",
"count":"100",
"db_name":"user_state",
"login":"phonesystem",
"password":"TQtRD8i8yu"
}
Answer
{
    "result": [
        [
            "5/10/2023 6:25:23 PM",
            "start",
            "Available",
            "102"
        ]
    ]
}