Sample code for 30+ languages & platforms
Java

CallRail API - Listing All Calls

See more CallRail Examples

Returns a paginated list of all calls in the target account.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.StringBuilder;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example assumes the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Http http = new Http();

        // Implements the following CURL command:

        // curl -H "Authorization: Token token={api_token}" \
        //      -X GET \
        //      "https://api.callrail.com/v3/a/{account_id}/calls.json"

        // Use the following online tool to generate HTTP code from a CURL command
        // Convert a cURL Command to HTTP Source Code

        http.setRequestHeader("Authorization", "Token token={api_token}");

        StringBuilder sbResponseBody = new StringBuilder();
        try {
            http.quickGetSb("https://api.callrail.com/v3/a/{account_id}/calls.json", sbResponseBody);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        JsonObject jResp = new JsonObject();
        jResp.loadSb(sbResponseBody);
        jResp.setEmitCompact(false);

        System.out.println("Response Body:");
        System.out.println(jResp.emit());

        int respStatusCode = http.getLastStatus();
        System.out.println("Response Status Code = " + respStatusCode);
        if (respStatusCode >= 400) {
            System.out.println("Response Header:");
            System.out.println(http.getLastHeader());
            System.out.println("Failed.");
            return;
        }

        // Sample JSON response:
        // (Sample code for parsing the JSON response is shown below)

        // {
        //   "page": 1,
        //   "per_page": 100,
        //   "total_pages": 1,
        //   "total_records": 9,
        //   "calls": [
        //     {
        //       "answered": false,
        //       "business_phone_number": null,
        //       "customer_city": "Denver",
        //       "customer_country": "US",
        //       "customer_name": "RUEGSEGGER SIMO",
        //       "customer_phone_number": "+13036231131",
        //       "customer_state": "CO",
        //       "direction": "inbound",
        //       "duration": 4,
        //       "id": "CAL8154748ae6bd4e278a7cddd38a662f4f",
        //       "recording": "https://api.callrail.com/v3/a/227799611/calls/111222333/recording.json",
        //       "recording_duration": "27",
        //       "recording_player": "https://app.callrail.com/calls/111222333/recording?access_key=3b91eb7f7cc08a4d01ed",
        //       "start_time": "2017-01-24T11:27:48.119-05:00",
        //       "tracking_phone_number": "+13038163491",
        //       "voicemail": false,
        //       "agent_email": "gil@televised.com"
        //     },
        //     {
        //       "answered": false,
        //       "business_phone_number": null,
        //       "customer_city": "Blue Ridge",
        //       "customer_country": "US",
        //       "customer_name": "BLUE RIDGE, GA",
        //       "customer_phone_number": "+17064558047",
        //       "customer_state": "GA",
        //       "direction": "inbound",
        //       "duration": 16,
        //       "id": "CAL8154748ae6bd4e278a7cddd38a662f4f",
        //       "recording": null,
        //       "recording_duration": null,
        //       "recording_player": null,
        //       "start_time": "2017-01-24T19:50:03.456-05:00",
        //       "tracking_phone_number": "+17708243899",
        //       "voicemail": false,
        //       "agent_email": "elbert@bpp.com"
        //     }
        //   ]
        // }

        // Sample code for parsing the JSON response...
        // Use the following online tool to generate parsing code from sample JSON:
        // Generate Parsing Code from JSON

        boolean answered = false;
        String business_phone_number = "";
        String customer_city = "";
        String customer_country = "";
        String customer_name = "";
        String customer_phone_number = "";
        String customer_state = "";
        String direction = "";
        int duration = 0;
        String id = "";
        String recording = "";
        String recording_duration = "";
        String recording_player = "";
        String start_time = "";
        String tracking_phone_number = "";
        boolean voicemail = false;
        String agent_email = "";

        int page = jResp.intOf("page");
        int per_page = jResp.intOf("per_page");
        int total_pages = jResp.intOf("total_pages");
        int total_records = jResp.intOf("total_records");
        int i = 0;
        int count_i = jResp.sizeOfArray("calls");
        while (i < count_i) {
            jResp.setI(i);
            answered = jResp.boolOf("calls[i].answered");
            business_phone_number = jResp.stringOf("calls[i].business_phone_number");
            customer_city = jResp.stringOf("calls[i].customer_city");
            customer_country = jResp.stringOf("calls[i].customer_country");
            customer_name = jResp.stringOf("calls[i].customer_name");
            customer_phone_number = jResp.stringOf("calls[i].customer_phone_number");
            customer_state = jResp.stringOf("calls[i].customer_state");
            direction = jResp.stringOf("calls[i].direction");
            duration = jResp.intOf("calls[i].duration");
            id = jResp.stringOf("calls[i].id");
            recording = jResp.stringOf("calls[i].recording");
            recording_duration = jResp.stringOf("calls[i].recording_duration");
            recording_player = jResp.stringOf("calls[i].recording_player");
            start_time = jResp.stringOf("calls[i].start_time");
            tracking_phone_number = jResp.stringOf("calls[i].tracking_phone_number");
            voicemail = jResp.boolOf("calls[i].voicemail");
            agent_email = jResp.stringOf("calls[i].agent_email");
            i = i + 1;
        }
    }
}