Skip to main content

Custom Request Timeouts

To modify request timeouts (connect or total, in seconds) you’ll need to tell the API client to use a CurlClient other than its default. You’ll set the timeouts in that CurlClient.

Custom cURL Options (proxies)

Need to set a proxy for your requests? Pass in the requisite CURLOPT_* array to the CurlClient constructor, using the same syntax as curl_stopt_array(). This will set the default cURL options for each HTTP request made by the SDK, though many more common options (e.g. timeouts; see above on how to set those) will be overridden by the client even if set here.
Alternately, a callable can be passed to the CurlClient constructor that returns the above array based on request inputs. See testDefaultOptions() in tests/CurlClientTest.php for an example of this behavior. Note that the callable is called at the beginning of every API request, before the request is sent.

Configuring a Logger

The library does minimal logging, but it can be configured with a [PSR-3 compatible logger][psr3] so that messages end up there instead of error_log:

Per-request Configuration

For apps that need to use multiple keys during the lifetime of a process it’s also possible to set a per-request key and/or account:

Automatic Retries

The library can be configured to automatically retry requests that fail due to an intermittent network problem: