function sendgrid_sga_data_api()
{
    header("Content-Type: application/json");
    if ($_POST['api_key'] != get_option("sendgrid_sga_apikey")) {
        $output = array("error" => true, "message" => "Unauthenticated.");
        echo json_encode($output);
        die;
    }
    $period_start = create_start_time($_POST['period_start'], true);
    $period_end = create_end_time($_POST['period_end'], true);
    create_table($period_start, $period_end);
    $output = array("error" => true, "message" => "Unknown error.");
    $body = array();
    if ($_POST['data'] == "users") {
        $top_users = get_top_users();
        foreach ($top_users as $rank => $user_info) {
            $formatted_user_info = format_user_info($user_info);
            $body[] = array("raw" => array("post_author" => get_post_author($user_info->post_author), "mantime" => (int) $user_info->mantime, "visits" => (int) $user_info->visits, "pageviews" => (int) $user_info->pageviews, "avg_time_on_page" => (double) $user_info->avg_time_on_page, "entrance_rate" => (double) $user_info->entrance_rate, "exit_rate" => (double) $user_info->exit_rate), "formatted" => $formatted_user_info);
        }
        $output = array("error" => false, "body" => $body, "period_start" => $period_start, "period_end" => $period_end);
    } elseif ($_POST['data'] == "posts") {
        $top_posts = get_top_posts();
        foreach ($top_posts as $rank => $post_info) {
            $formatted_post_info = format_post_info($post_info);
            $body[] = array("raw" => array("guid" => $post_info->guid, "post_title" => $post_info->post_title, "post_author" => get_post_author($post_info->post_author), "mantime" => (int) $post_info->mantime, "visits" => (int) $post_info->visits, "pageviews" => (int) $post_info->pageviews, "avg_time_on_page" => (double) $post_info->avg_time_on_page, "entrance_rate" => (double) $post_info->entrance_rate, "exit_rate" => (double) $post_info->exit_rate), "formatted" => $formatted_post_info);
        }
        $output = array("error" => false, "body" => $body, "period_start" => $period_start, "period_end" => $period_end);
    } else {
        $output = array("error" => true, "message" => "Data attribute not understood, please provide either users or posts");
    }
    echo json_encode($output);
    die;
}
<?php

require_once SENDGRID_SGA_PATH . "inc/support/leaderboard.php";
$period_start = create_start_time($_GET['period_start'], true);
$period_end = create_end_time($_GET['period_end'], true);
create_table($period_start, $period_end);
$top_users = get_top_users();
$top_posts = get_top_posts();
?>
<div class="wrap sendgrid_sga leaderboard">
	<div id="icon-segmented-google-analyzer" class="icon32"><br /></div><h2>Leaderboard</h2>
	<div class="clear"></div>

	<form class="timeframe">
		<input type="text" name="period_start" value="<?php 
echo $period_start;
?>
" class="datepicker">
		-
		<input type="text" name="period_end" value="<?php 
echo $period_end;
?>
" class="datepicker">
		<input type="hidden" name="page" value="<?php 
echo $_GET['page'];
?>
">
		<input type="submit" class="button button-primary">
	</form>
	
	<div class="clear"></div>