There are a lots of http libraries available, however Timendo recommends Guzzle
require 'vendor/autoload.php'; use GuzzleHttp\Client; $username = "username"; $password = "password"; $base_url = "https://sandbox.clicrdv.com"; $path = "/api/v1/groups/:group_id/vevents.json"; $apikey = "apikey"; $client = new Client([ 'base_url' => [$base_url, []], 'defaults' => [ 'query' => ['apikey' => $apikey], 'auth' => [$username, $password], ] ]); $response = $client->get($path); ### debug echo $base_url.$path echo $response->getBody();