 [](https://travis-ci.org/sendgrid/php-http-client) [](https://packagist.org/packages/sendgrid/php-http-client) [](https://dx.sendgrid.com/newsletter/php) [](https://twitter.com/sendgrid) [](https://github.com/sendgrid/php-http-client/graphs/contributors) [](./LICENSE.txt) **Quickly and easily access any RESTful or RESTful-like API.** If you are looking for the SendGrid API client library, please see [this repo](https://github.com/sendgrid/sendgrid-php). # Announcements All updates to this library is documented in our [CHANGELOG](https://github.com/sendgrid/php-http-client/blob/master/CHANGELOG.md). # Table of Contents - [Installation](#installation) - [Quick Start](#quick-start) - [Usage](#usage) - [Roadmap](#roadmap) - [How to Contribute](#contribute) - [Thanks](#thanks) - [About](#about) - [License](#license) # Installation ## Prerequisites - PHP version 5.6 or 7.0 ## Install with Composer Add php-http-client to your `composer.json` file. If you are not using [Composer](http://getcomposer.org), you should be. It's an excellent way to manage dependencies in your PHP application. ```json { "require": { "sendgrid/php-http-client": "~3.9.6" } } ``` Then at the top of your PHP script require the autoloader: ```php require __DIR__ . '/vendor/autoload.php'; ``` Then from the command line: ```bash composer install ``` ## Install without Composer You should create directory `lib` in directory of your application and clone to `lib` repositories [php-http-client](https://github.com/sendgrid/php-http-client.git) and [sendgrid-php](https://github.com/sendgrid/sendgrid-php.git): ``` $ cd /path/to/your/app $ mkdir lib $ cd lib $ git clone https://github.com/sendgrid/php-http-client.git ``` In the next step you should create `loader.php`: ``` $ cd /path/to/your/app $ touch loader.php ``` And add to `loader.php` code below: ```php # Quick Start Here is a quick example: `GET /your/api/{param}/call` ```php // include __DIR__ . '/loader.php'; require 'vendor/autoload.php'; $apiKey = YOUR_SENDGRID_API_KEY; $authHeaders = [ 'Authorization: Bearer ' . $apiKey ]; $client = new SendGrid\Client('https://api.sendgrid.com', $authHeaders); $param = 'foo'; $response = $client->your()->api()->_($param)->call()->get(); var_dump( $response->statusCode(), $response->headers(), $response->body() ); ``` `POST /your/api/{param}/call` with headers, query parameters and a request body with versioning. ```php // include __DIR__ . '/loader.php'; require 'vendor/autoload.php'; $apiKey = YOUR_SENDGRID_API_KEY; $authHeaders = [ 'Authorization: Bearer ' . $apiKey ]; $client = new SendGrid\Client('https://api.sendgrid.com', $authHeaders); $queryParams = [ 'hello' => 0, 'world' => 1 ]; $requestHeaders = [ 'X-Test' => 'test' ]; $data = [ 'some' => 1, 'awesome' => 2, 'data' => 3 ]; $param = 'bar'; $response = $client->your()->api()->_($param)->call()->post($data, $queryParams, $requestHeaders); var_dump( $response->statusCode(), $response->headers(), $response->body() ); ``` # Usage - [Usage Examples](USAGE.md) ## Environment Variables You can do the following to create a .env file: ```cp .env_example .env``` Then, just add your API Key into your .env file. # Roadmap If you are interested in the future direction of this project, please take a look at our [milestones](https://github.com/sendgrid/php-http-client/milestones). We would love to hear your feedback. # How to Contribute We encourage contribution to our libraries, please see our [CONTRIBUTING](https://github.com/sendgrid/php-http-client/blob/master/CONTRIBUTING.md) guide for details. Quick links: - [Feature Request](https://github.com/sendgrid/php-http-client/blob/master/CONTRIBUTING.md#feature-request) - [Bug Reports](https://github.com/sendgrid/php-http-client/blob/master/CONTRIBUTING.md#submit-a-bug-report) - [Sign the CLA to Create a Pull Request](https://github.com/sendgrid/php-http-client/blob/master/CONTRIBUTING.md#cla) - [Improvements to the Codebase](https://github.com/sendgrid/php-http-client/blob/master/CONTRIBUTING.md#improvements-to-the-codebase) - [Review Pull Requests](https://github.com/sendgrid/php-http-client/blob/master/CONTRIBUTING.md#code-reviews) # Thanks We were inspired by the work done on [birdy](https://github.com/inueni/birdy) and [universalclient](https://github.com/dgreisen/universalclient). # About php-http-client is guided and supported by the SendGrid [Developer Experience Team](mailto:dx@sendgrid.com). php-http-client is maintained and funded by SendGrid, Inc. The names and logos for php-http-client are trademarks of SendGrid, Inc. # License [The MIT License (MIT)](LICENSE.txt)