php-quandl
php-quandl copied to clipboard
Easy access to the Quandl Data API using PHP
PHP Quandl
This library provides easy access to the Quandl API using PHP.
It provides several convenience methods to common Quandl API endpoints, as well as a generic method to access any of Quandl's endpoints directly.
Geting Started
Include the Quandl.php
class in your code, and run one of the examples.
To install with composer:
$ composer require dannyben/php-quandl
Examples
This is a basic call. It will return a PHP object with price data for AAPL:
$api_key = "YOUR_KEY_HERE";
$quandl = new Quandl($api_key);
$data = $quandl->getSymbol("WIKI/AAPL");
You may pass any parameter that is mentioned in the Quandl documentation:
$quandl = new Quandl($api_key);
$data = $quandl->getSymbol($symbol, [
"sort_order" => "desc",
"rows" => 10,
"column_index" => 4,
]);
The date range options get a special treatment. You may use
any date string that PHP's strtotime()
understands.
$quandl = new Quandl($api_key, "csv");
$data = $quandl->getSymbol($symbol, [
"trim_start" => "today-30 days",
"trim_end" => "today",
]);
You can also search the entire Quandl database and get a list of supported symbols in a data source:
$quandl = new Quandl($api_key);
$data = $quandl->getSearch("crude oil");
$data = $quandl->getList("WIKI", 1, 10);
To access any Quandl API endpoint directly, use the get
method
$quandl = new Quandl($api_key);
$data = $quandl->get("databases/WIKI");
More examples can be found in the examples.php file
Caching
You may provide the quandl
object with a cache handler function.
This function should be responsible for both reading from your cache and storing to it.
See the example_cache.php file.
Reference
Constructor
The constructor accepts two optional parameters: $api_key
and $format
:
$quandl = new Quandl("YOUR KEY", "csv");
You may also set these properties later (see below);
Public Properties
$api_key
$quandl->api_key = "YOUR KEY";
Set your API key
$format
$quandl->format = 'csv';
Set the output format. Can be: csv
, xml
, json
, and object
(which will return a php object obtained with json_decode()
).
$force_curl
$quandl->force_curl = true;
Force download using curl. By default, we will try to download with
file_get_contents
if available, and fall back to curl
only as a last
resort.
$no_ssl_verify
$quandl->no_ssl_verify = true;
Disables curl SSL verification. Set to true if you get an error saying "SSL certificate problem".
$timeout
$quandl->timeout = 60;
Set the timeout for the download operations.
$last_url
print $quandl->last_url;
Holds the last API URL as requested from Quandl, for debugging.
$error
print $quandl->error;
In case there was an error getting the data from Quandl, the request
response will be false
and this property will contain the error message.
$was_cached
print $quandl->was_cached;
When using a cache handler, this property will be set to true
if the
response came from the cache.
Methods
get
mixed get( string $path [, array $params ] )
// Examples
$data = $quandl->get( 'datasets/EOD/QQQ' );
$data = $quandl->get( 'datasets/EOD/QQQ', ['rows' => 5] );
Returns an object containing the response from any of Quandl's API
endpoints. The format of the result depends on the value of
$quandl->format
.
The optional parameters array is an associative key => value
array with any of the parameters supported by Quandl.
You do not need to pass auth_token
in the array, it will be
automatically appended.
getSymbol
mixed getSymbol( string $symbol [, array $params ] )
// Examples
$data = $quandl->getSymbol( 'WIKI/AAPL' );
$data = $quandl->getSymbol( 'WIKI/AAPL', ['rows' => 5] );
Returns an object containing data for a given symbol. The format
of the result depends on the value of $quandl->format
.
The optional parameters array is an associative key => value
array with any of the parameters supported by Quandl.
You do not need to pass auth_token
in the array, it will be
automatically appended.
getSearch
mixed getSearch( string $query [, int $page, int $per_page] )
// Examples
$data = $quandl->getSearch( "gold" );
$data = $quandl->getSearch( "gold", 1, 10 );
Returns a search result object. Number of results per page is limited to 300 by default.
Note that currently Quandl does not support CSV response for this
node so if $quandl->format
is "csv", this call will return a JSON
string instead.
getList
mixed getList( string $source [, int $page, int $per_page] )
// Examples
$data = $quandl->getList( 'WIKI' );
$data = $quandl->getList( 'WIKI', 1, 10 );
Returns a list of symbols in a given source. Number of results per page is limited to 300 by default.
getMeta
mixed getMeta( string $source )
// Example
$data = $quandl->getMeta( 'WIKI' );
Returns metadata about a symbol.
getDatabases
mixed getDatabases( [int $page, int $per_page] )
// Examples
$data = $quandl->getDatabases();
$data = $quandl->getDatabases( 1, 10 );
Returns a list of available databases. Number of results per page is limited to 100 by default.
getBulk
This feature is only supported with premium databases.
boolean getBulk( string $database, string $path [, boolean $complete] )
// Examples
boolean getBulk( 'EOD', 'eod-partial.zip' );
boolean getBulk( 'EOD', 'eod-full.zip', true );
Downloads the entire database and saves it to a ZIP file. If $complete
is true (false by default), it will download the entire database, otherwise,
it will download the last day only.