Skip to content
Easy access to the Quandl Data API using PHP.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
tests
.gitignore
.travis.yml
LICENSE
Quandl.php
README.md
composer.json
example_cache.php
examples.php

README.md

PHP Quandl

Latest Stable Version Build Status Maintainability


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.

You can’t perform that action at this time.