NAV
json xml csv r python excel

Introduction

Overview

Welcome to Quandl’s documentation portal!

Quandl is a marketplace for financial and economic data. All data on Quandl can be accessed via our API, and directly from within R, Python and Excel. This page is the official reference manual for using these tools with Quandl.

The column on the right shows code examples. Use the tabs on the top right of this page to switch between tools.

Access

Quandl’s API and packages for R, Python and Excel are free. However, you must have an API key to use them.

To get an API key, please sign up for a free Quandl account. (No credit card required).

You can find your API key on your account settings page.

Installation

You do not need to install any software to make a JSON API call.

You do not need to install any software to make an XML API call.

You do not need to install any software to make a CSV API call.

To install the Quandl R package from CRAN, do this:

install.packages("Quandl")
library(Quandl)

To install the Quandl R package from Github using devtools, do this:

install.packages("devtools")
library(devtools)
install_github("quandl/quandl-r")
library(Quandl)

Python package installation varies depending on your system. On most systems, this should work:

pip install quandl

On some systems, you may need to do this instead:

pip3 install quandl

You can find detailed installation instructions for Python modules at these links: Python 3.x and Python 2.7x

The Quandl Excel Add-In supports Excel for Windows versions 2010, 2013 and 2016. To install the Add-In on Windows, click here.

The Quandl Excel Add-In does not support Mac usage.

API: You do not need any special software to use the Quandl API. You can paste any API call directly into your browser address bar, to retrieve data. You can also make API calls from the command line (console / terminal) of your computer, using curl or wget or similar utilities.

R: You can download the Quandl R package from CRAN or from Github. Follow the installation instructions on the right.

Python: You can download the Quandl Python package from PyPi or from Github. Follow the installation instructions on the right.

Excel: Download the Quandl Excel Add-In for Windows. Follow the installation instructions on the right.

Authentication

Getting an API Key

To get an API key, please sign up for a free Quandl account. (No credit card required).

You can find your API key on your account settings page.

Authenticating Your Requests

Add your API key to a JSON data request:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.json?api_key=YOURAPIKEY"

You should replace YOURAPIKEY with your actual API key in this call.

Add your API key to an XML data request:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.xml?api_key=YOURAPIKEY"

You should replace YOURAPIKEY with your actual API key in this call.

Add your API key to a CSV data request:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.csv?api_key=YOURAPIKEY"

You should replace YOURAPIKEY with your actual API key in this call.

You can set your API key in R like this:

Quandl.api_key("YOURAPIKEY")

(You should include the quotes around the API key).

You can set your API key in Python like this:

quandl.ApiConfig.api_key = 'YOURAPIKEY'

(You should include the quotes around the API key).

To set your API key in Excel, click on SETTINGS under the Quandl menu and type your API key in the input box.

For API calls, append your API key to your requests using the api_key parameter. You must include your API key with every request you make.

For Python, R and Excel, you can set your API key once, and the Quandl packages will remember your key for all further calls.

In the interests of concision, we will not be including API keys in the remaining code examples on this page.

Anonymous Requests

Anonymous requests are currently accepted but may be deprecated soon.

Quick Start Examples

These examples are meant to get you started as quickly as possible. Paste them into your browser or console to see how they work.

Get a Single Time-Series

Get Facebook's stock price:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.json?api_key=YOURAPIKEY"

You should replace YOURAPIKEY with your actual API key in this call.

Run this in your terminal, or paste just the URL in your browser.

Get Facebook's stock price:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.xml?api_key=YOURAPIKEY"

You should replace YOURAPIKEY with your actual API key in this call.

Run this in your terminal, or paste just the URL in your browser.

Get Facebook's stock price:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.csv?api_key=YOURAPIKEY"

You should replace YOURAPIKEY with your actual API key in this call. Run this in your terminal, or paste just the URL in your browser.

Get Facebook's stock price in a dataframe:

data <- Quandl("WIKI/FB")

You will need to install the Quandl R package for this and other R code examples to work.

Get Facebook's stock price in a pandas dataframe:

data = quandl.get("WIKI/FB")

You will need to install the Quandl Python package for this and other Python code examples to work.

Get Facebook's stock price:

Type =QSERIES("WIKI/FB") into any empty cell and hit enter.

You will need to install the Quandl Excel addin for this and other Excel code examples to work.

This call downloads a single time-series dataset.

Get a Custom Time-Series

Get monthly changes in Facebook's closing price for the year 2014:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.json?column_index=4&start_date=2014-01-01&end_date=2014-12-31&collapse=monthly&transform=diff&api_key=YOURAPIKEY"

Get monthly changes in Facebook's closing price for the year 2014:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.xml?column_index=4&start_date=2014-01-01&end_date=2014-12-31&collapse=monthly&transform=diff&api_key=YOURAPIKEY"

Get monthly changes in Facebook's closing price for the year 2014:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.csv?column_index=4&start_date=2014-01-01&end_date=2014-12-31&collapse=monthly&transform=diff&api_key=YOURAPIKEY"

Get monthly changes in Facebook's closing price for the year 2014:

data <- Quandl("WIKI/FB.11", start_date="2014-01-01", end_date="2014-12-31", collapse="monthly", transform="diff")

Get monthly changes in Facebook's closing price for the year 2014:

data = quandl.get("WIKI/FB.11", start_date="2014-01-01", end_date="2014-12-31", collapse="monthly", transform="diff")

Get monthly changes in Facebook's closing price for the year 2014:

Type =QSERIES("WIKI/FB/CLOSE", {"2014-01-01", "2014-12-31"}, "monthly",,"diff") into any empty cell and hit enter.

This call downloads a custom slice from a single time-series dataset.

Get a Time-Series Database

This method is not available for JSON. Please use CSV instead.

This method is not available for XML. Please use CSV instead.

Get the entire YC yield curve database as a zipped CSV:

curl "https://www.quandl.com/api/v3/databases/YC/data?api_key=YOURAPIKEY"

Note that you need to be a premium data subscriber for this to work.

Get the entire YC yield curve database in one call:

Quandl.database.bulk_download_to_file("YC", "./YC.zip")

Note that you need to be a premium data subscriber for this to work.

Get the entire YC yield curve database in one call:

quandl.Database("YC").bulk_download_to_file("./YC.zip")

Note that you need to be a premium data subscriber for this to work.

This method is not available in Excel. Please use the CSV API call in your browser instead.

This call downloads an entire time-series database, consisting of multiple datasets.

Get Non-Time-Series Data

Get all rows for MSFT from the ZACKS/FC fundamentals data table:

curl "https://www.quandl.com/api/v3/datatables/ZACKS/FC.json?ticker=MSFT&api_key=YOURAPIKEY"

Get all rows for MSFT from the ZACKS/FC fundamentals data table:

curl "https://www.quandl.com/api/v3/datatables/ZACKS/FC.xml?ticker=MSFT&api_key=YOURAPIKEY"

Get all rows for MSFT from the ZACKS/FC fundamentals data table:

curl "https://www.quandl.com/api/v3/datatables/ZACKS/FC.csv?ticker=MSFT&api_key=YOURAPIKEY"

Get all rows for MSFT from the ZACKS/FC fundamentals data table:

data <- Quandl.datatable("ZACKS/FC", ticker="MSFT")

Get all rows for MSFT from the ZACKS/FC fundamentals data table:

data = quandl.get_table("ZACKS/FC", ticker="MSFT")

Get all of the data from the Zacks/FC data table:

Type =QTABLE("ZACKS/FC") into any empty cell and hit enter.

This call downloads selected rows and columns from a non-time-series datatable.

Free and Premium Data

Much of the data on Quandl is free. You can use it without payment and without restriction.

Some data on Quandl is premium. You need to subscribe to premium data in order to access it. Subscriptions are a la carte: you can subscribe to the precise premium data you need, and nothing more. Subscriptions can be cancelled at any time.

Premium data is generally of higher quality, accuracy, reliability and timeliness than free data. Free data is suitable for experimentation and exploration, but we strongly recommend using premium data for professional applications.

Data Organization

Data Overview

Data on Quandl is organized into “databases”. Each database covers a different subject.

Here are some examples of databases:

Quandl offers multiple APIs to access the data contained in each of its databases:

Note that not all databases support every API route. Read each database’s description or documentation page to find out what type of data it holds, and which API routes are valid.

Databases API

The databases API allows users to download an entire database in one call.

Users can also use this API to download only the last day’s worth of data; to download database metadata; to search through databases; and to download lists of available data.

The databases API is described in further detail in the Database API Calls section below.

Datatables API

ZACKS/FE is a datatable. It looks like this:

Ticker   Company    Exch   Curr   FiscYr   Filing   Revenue
"MSFT    Microsoft  NSDQ   USD    1983     10-K     50.065   ...629
 MSFT    Microsoft  NSDQ   USD    1984     10-K     97.479   ...more
 MSFT    Microsoft  NSDQ   USD    1985     10-K     140.417   ...cols
 ...
 918,834 more rows

ZACKS/FE is a datatable. It looks like this:

Ticker   Company    Exch   Curr   FiscYr   Filing   Revenue
"MSFT    Microsoft  NSDQ   USD    1983     10-K     50.065   ...629
 MSFT    Microsoft  NSDQ   USD    1984     10-K     97.479   ...more
 MSFT    Microsoft  NSDQ   USD    1985     10-K     140.417   ...cols
 ...
 918,834 more rows

ZACKS/FE is a datatable. It looks like this:

 Ticker  Company    Exch   Curr   FiscYr   Filing   Revenue
"MSFT    Microsoft  NSDQ   USD    1983     10-K     50.065   ...629
 MSFT    Microsoft  NSDQ   USD    1984     10-K     97.479   ...more
 MSFT    Microsoft  NSDQ   USD    1985     10-K     140.417   ...cols
 ...
 918,834 more rows

ZACKS/FE is a datatable. It looks like this:

Ticker   Company    Exch   Curr   FiscYr   Filing   Revenue
"MSFT    Microsoft  NSDQ   USD    1983     10-K     50.065   ...629
 MSFT    Microsoft  NSDQ   USD    1984     10-K     97.479   ...more
 MSFT    Microsoft  NSDQ   USD    1985     10-K     140.417   ...cols
 ...
 918,834 more rows"

ZACKS/FE is a datatable. It looks like this:

Ticker   Company    Exch   Curr   FiscYr   Filing   Revenue
MSFT    Microsoft  NSDQ   USD    1983     10-K     50.065   ...629
MSFT    Microsoft  NSDQ   USD    1984     10-K     97.479   ...more
MSFT    Microsoft  NSDQ   USD    1985     10-K     140.417   ...cols
...
918,834 more rows

ZACKS/FE is a datatable. It looks like this:

Ticker   Company    Exch   Curr   FiscYr   Filing   Revenue
"MSFT    Microsoft  NSDQ   USD    1983     10-K     50.065   ...629
 MSFT    Microsoft  NSDQ   USD    1984     10-K     97.479   ...more
 MSFT    Microsoft  NSDQ   USD    1985     10-K     140.417   ...cols
 ...
 918,834 more rows

A datatable is a two-dimensional matrix with any number of rows and columns. The elements of this matrix can be any of these data types: date, datetime, string, and numeric.

Columns in a datatable represent indicators; all values in a given column must have the same data type. Rows in a datatable represent individual records or tuples.

ZFC is an example of a database that supports data access via the datatables API. Data in ZFC can be accessed as 5 datatables, corresponding to 5 groups of information.

ZACKS/FE is one of the 5 datatables accessible within ZFC. This particular datatable holds stock fundamentals data. Other datatables within ZFC include ZACKS/FR (financial ratios) and ZACKS/MT (securities master).

ZACKS/FE has over 600 columns: ticker, time period, company name, revenue, expenditure, and so on. Each row in ZACKS/FE is a tuple or record, showing various fundamental values for a given ticker and time period. You can access specific rows and columns of ZACKS/FE using the datatables API.

The datatables API is described in further detail in the Datatable API Calls section below.

Datasets API

EOD/AAPL is a time-series dataset. Time-series data looks like this:

 Date         Open    High    Low     Close   
"2016-05-04   95.20   95.90   93.82   94.19  ... 8 more columns
 2016-05-03   94.20   95.74   93.68   95.18
 ...
 8,923 more rows

EOD/AAPL is a time-series dataset. Time-series data looks like this:

 Date         Open    High    Low     Close   
"2016-05-04   95.20   95.90   93.82   94.19  ... 8 more columns
 2016-05-03   94.20   95.74   93.68   95.18
 ...
 8,923 more rows

EOD/AAPL is a time-series dataset. Time-series data looks like this:

 Date         Open    High    Low     Close   
"2016-05-04   95.20   95.90   93.82   94.19  ... 8 more columns
 2016-05-03   94.20   95.74   93.68   95.18
 ...
 8,923 more rows

EOD/AAPL is a time-series dataset. Time-series data looks like this:

 Date         Open    High    Low     Close   
"2016-05-04   95.20   95.90   93.82   94.19  ... 8 more columns
 2016-05-03   94.20   95.74   93.68   95.18
 ...
 8,923 more rows

EOD/AAPL is a time-series dataset. Time-series data looks like this:

Date         Open    High    Low     Close   
2016-05-04   95.20   95.90   93.82   94.19  ... 8 more columns
2016-05-03   94.20   95.74   93.68   95.18
...
8,923 more rows

EOD/AAPL is a time-series dataset. Time-series data looks like this:

 Date         Open    High    Low     Close   
"2016-05-04   95.20   95.90   93.82   94.19  ... 8 more columns
 2016-05-03   94.20   95.74   93.68   95.18
 ...
 8,923 more rows 

A dataset is a two-dimensional matrix with two or more columns and any number of rows. The first column is always a unique date, and the other columns are always numerical values. Datasets are thus views of time-series numerical data.

EOD is an example of a database that supports data access via the datasets API. Data in EOD can be accessed as 9500 individual datasets, corresponding to time-series price histories for 9500 individual stocks.

EOD/AAPL is an example of a single time-series dataset belonging to the EOD database.

EOD/AAPL has 13 columns. Column 0 is a date. Columns 1-4 are Open, High, Low and Close, and so on. EOD/AAPL has 8925 rows, each with a different row date, corresponding to 35 years of historical data. You can access specific rows and columns of EOD/AAPL using the datasets API.

The datasets API is described in further detail in the Dataset API Calls section below.

Database API Calls

Get Entire Database

This method is not available for JSON. Please use CSV instead.

This method is not available for XML. Please use CSV instead.

Definition:

GET https://www.quandl.com/api/v3/databases/:database_code/data?download_type=:download_type

Example Request:

curl "https://www.quandl.com/api/v3/databases/WIKI/data"

Example Response:

Code,Date,Open,High,Low 
AAPL,2015-05-28,9.58,10.17,12.96
AAPL,2015-05-27,9.53,10.13,12.97
AAPL,2015-05-26,9.53,10.11,12.98
MSFT,2015-05-28,51.58,53.17,50.96
...

Definition:

Quandl.database.bulk_download_to_file("database_code","file_with_path")

Example Request:

Quandl.database.bulk_download_to_file("ZEA","./ZEA.zip")

This downloads the entire ZEA database into a file named ZEA.zip.
The downloaded file looks like this:

Code,Date,Open,High,Low 
AAPL,2015-05-28,9.58,10.17,12.96
AAPL,2015-05-27,9.53,10.13,12.97
AAPL,2015-05-26,9.53,10.11,12.98
MSFT,2015-05-28,51.58,53.17,50.96
...

As the example response shows, data is returned in CSV format. All datasets in the database are concatenated into a single large CSV. The first column of this concatenated CSV is the dataset code, and the remaining columns are the dataset's usual columns.

Definition:

quandl.bulkdownload("database_code",download_type="partial_or_complete", filename="file_with_path")

Example Request:

quandl.bulkdownload("ZEA",download_type="partial",filename="./ZEA.zip")

This downloads the entire ZEA database into a file named ZEA.zip.
The downloaded file looks like this:

Code,Date,Open,High,Low 
AAPL,2015-05-28,9.58,10.17,12.96
MSFT,2015-05-28,51.58,53.17,50.96
...

Note that download_type and filename are optional arguments.

As the example response shows, data is returned in CSV format. All datasets in the database are concatenated into a single large CSV. The first column of this concatenated CSV is the dataset code, and the remaining columns are the dataset's usual columns.

Since we specified a partial download, only the latest day's worth of updates are included in the response file.

If the filename is not provided as an argument, the bulkdownload function will return the filename of the downloaded zip file.

You can download an entire database in a single call using this method. Simply append /data to your database code, to get a zipped CSV file of the entire database.

This method has two restrictions:

Irrespective of whether you call this method via the API, R, or Python, the output format is always the same: a single zipped CSV file of the entire database. The first column of this CSV is the dataset code; the remaining columns replicate the columns of individual datasets, as shown in the example response on the right.

Instead of downloading the entire databse, it is possible to request only the last day’s worth of updates, using the optional download_type parameter.

AVAILABLE PARAMETERS

Name Req’d Values Description
database_code yes string short code for database
download_type no “partial” or “complete” If “partial”, returns last day of data. If “complete”, returns entire database. Default is “complete”.

Get Database Metadata

Definition:

GET https://www.quandl.com/api/v3/databases/:database_code.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/databases/WIKI.json"

Example Response:

{  
  "database":{  
     "id":4922,
     "database_code":"WIKI",
     "name":"Wiki EOD Stock Prices",
     "description":"End of day stock prices, dividends and splits for 30000 US companies curated by the Quandl community and released into the public domain.",
     "datasets_count":3179,
     "downloads":186224033,
     "premium":false,
     "image":"https://quandl-data-upload.s3.amazonaws.com/uploads/source/profile_image/4922/thumb_thumb_quandl-open-data-logo.jpg"
  }
}

Definition:

GET https://www.quandl.com/api/v3/databases/:database_code.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/databases/WIKI.xml"

Example Response:


<?xml version="1.0" encoding="UTF-8"?>
<quandl-response>
   <database>
       <id type="integer">4922</id>
       <name>Wiki EOD Stock Prices</name>
       <database-code>WIKI</database-code>
       <description>End of day stock prices, dividends and splits for 30000 US companies curated by the Quandl community and released into the public domain.</description>
       <datasets_count type="integer">3179</datasets_count>
       <downloads type="integer">186224033</downloads>
       <premium type="boolean">false</premium>
       <image>https://quandl-data-upload.s3.amazonaws.com/uploads/source/profile_image/4922/thumb_thumb_quandl-open-data-logo.jpg</image>
   </database>
</quandl-response>

Definition:

GET https://www.quandl.com/api/v3/databases/:database_code.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/databases/WIKI.csv"

Example Response:

id,name,database_code,description, ...
4922,WIKI EOD Stock Prices,WIKI,End of day stock prices ...

It is not currently possible to get database metadata using the Quandl R package.

It is not currently possible to get database metadata using the Quandl Python package.

It is not currently possible to get database metadata using the Quandl Excel addin.

Use this call to get metadata for a specified database.

This method is only available for databases that support time-series dataset views. It is not available for databases that support datatable views.

The following metadata fields are available:

METADATA FIELDS

Field Name Description Example
id Numerical identifier for the database 4922
name The name of the database WIKI EOD Stock Prices
database_code A short code for the database WIKI
description A description of the database End of day stock prices, dividends, splits …
datasets_count The number of distinct time-series datasets in the database 3179
downloads The number of times a dataset from this database has been downloaded 186,209,776
premium Boolean: true for premium databases, false for free databases false
image A link to the database logo whttps://quandl-data-upload.s3.amazonaws.com/uploads/source/profile_image/4922/thumb_thumb_quandl-open-data-logo.jpg

Get List of Databases

Definition:

GET https://www.quandl.com/api/v3/databases.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/databases.json"

Example Response:

{
  "databases":[
     {
        "id":33,
        "name":"National Stock Exchange of India",
        "database_code":"NSE",
        "description":"Stock and index data from the National Stock Exchange of India.",
        "datasets_count":2014,
        "downloads":6681467,
        "premium":false,
        "image":"https://quandl-data-upload.s3.amazonaws.com/uploads/source/profile_image/33/thumb_nse.png"
     }
  ],
  "meta":{
     "query":"",
     "per_page":100,
     "current_page":1,
     "prev_page":null,
     "total_pages":1,
     "total_count":1,
     "next_page":null,
     "current_first_item":1,
     "current_last_item":1
  }
}

Definition:

GET https://www.quandl.com/api/v3/databases.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/databases.xml"

Example Response:


<quandl-response>
   <databases type="array" query="" per_page="100" current_page="1" prev_page="" total_pages="4" total_count="372" next_page="2" current_first_item="1" current_last_item="100">
       <database>
           <id type="integer">33</id>
           <name>National Stock Exchange of India</name>
           <database-code>NSE</database-code>
           <description>Stock and index data from the National Stock Exchange of India.</description>
           <datasets_count type="integer">2014</datasets_count>
           <downloads type="integer">6681467</downloads>
           <premium type="boolean">false</premium>
           <image>https://quandl-data-upload.s3.amazonaws.com/uploads/source/profile_image/33/thumb_nse.png</image>
       </database>
       <database>
      ...
      </database>
   </databases>
</quandl-response>

Definition:

GET https://www.quandl.com/api/v3/databases.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/databases.csv"

Example Response:

id,name,database_code,description,datasets_count ...
33,National Stock Exchange of India,NSE,Stock and index data from ...

It is not currently possible to get a list of databases using the Quandl R package.

It is not currently possible to get a list of databases using the Quandl Python package.

It is not currently possible to get a list of databases using the Quandl Excel addin.

Use this call to get a list of all databases on Quandl, along with their respective metadata.

Databases are returned 100 results at a time. You can page through the results using the page and per_page parameters tabulated below.

QUERY PARAMETERS

Parameter Req’d Type Description
per_page no int Number of search results per page
page no int Page number to return

Get List of Database Contents

This call is not available in JSON format.

This call is not available in XML format.

Definition:

GET https://www.quandl.com/api/v3/databases/:database_code/codes.csv

Example Request:

curl "https://www.quandl.com/api/v3/databases/YC/codes.csv"

Example Response:

YC/DEU7Y,German Government 7-Year Bond Yield
YC/NZL10Y, New Zealand Government 10-Year Bond Yield
...

This call is not available in the Quandl R package.

This call is not available in the Quandl Python package.

This call is not available in the Quandl Excel addin.

For databases that support the datasets API route, this call gets a list of available datasets within the database, in the form of a zipped CSV file.

This call is not available for databases that do not support the datasets API route.

Search for Databases

Definition:

GET https://www.quandl.com/api/v3/databases.:return_format?query=:keyword1+:keyword2&per_page=:page_size&page=:page_number

Example Request:

curl "https://www.quandl.com/api/v3/databases.json?query=stock+price&per_page=1&page=1"

Example Response:

{  
  "databases":[  
     {  
        "id":14005,
        "name":"Zacks Equity Prices",
        "database_code":"ZEP",
        "description":"Stock price history for over 30000 active and dead tickers. Daily close prices from 1987 onward, volume from 1990, high and low prices from mid 1995.",
        "datasets_count":30323,
        "downloads":38111480,
        "premium":true,
        "image":"https://quandl-data-upload.s3.amazonaws.com/uploads/source/profile_image/14005/thumb_zacks.png"
     }
  ]
}

Definition:

GET https://www.quandl.com/api/v3/databases.:return_format?query=:keyword1+:keyword2&per_page=:page_size&page=:page_number

Example Request:

curl "https://www.quandl.com/api/v3/databases.xml?query=stock+price&per_page=1&page=1 "

Example Response:

<quandl-response>
   <databases type="array" query="stock price" per_page="1" current_page="1" prev_page="" total_pages="212" total_count="212" next_page="2" current_first_item="1" current_last_item="1">
       <database>
           <id type="integer">14005</id>
           <name>Zacks Equity Prices</name>
           <database-code>ZEP</database-code>
           <description>Stock price history for over 30000 active and dead tickers. Daily close prices from 1987 onward, volume from 1990, high and low prices from mid 1995.</description>
           <datasets_count type="integer">30323</datasets_count>
           <downloads type="integer">38111480</downloads>
           <premium type="boolean">true</premium>
           <image>https://quandl-data-upload.s3.amazonaws.com/uploads/source/profile_image/14005/thumb_zacks.png
</image>
       </database>
       <database>
      ...
      </database>
   </databases>
</quandl-response>

Definition:

GET "https://www.quandl.com/api/v3/databases.:return_format?query=:keyword1+:keyword2&per_page=:page_size&page=:page_number"

Example Request:

curl "https://www.quandl.com/api/v3/databases.csv?query=stock+price&per_page=1&page=1"

Example Response:

id,name,database_code,description,datasets_count ...
14005,Zacks Equity Prices,ZEP,Stock price history for over 30000 ...

It is not currently possible to search for databases using the Quandl R package.

It is not currently possible to search for databases using the Quandl Python package.

It is not currently possible to search for databases using the Quandl Excel addin. You can only browse for databases by using the Get Data button.

You can search for specific databases on Quandl using this API route. The API will return all databases related to your query.

Databases are returned 100 results at a time. You can page through the results using the page and per_page parameters tabulated below.

QUERY PARAMETERS

Parameter Req’d Type Description
query no string Search keywords. Separate multiple keywords with a + character.
per_page no int Number of search results per page.
page no int Page number to return.

Notice that if the query parameter is omitted, this API route returns a list of all databases on Quandl, i.e., it reduces to the “Get List of Databases” route described above.

Datatable API Calls

Get Entire Datatable

Definition:

GET https://www.quandl.com/api/v3/datatables/:datatable_code.format

Example Request:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.json"

Example Response:

{
  "datatable":{
     "data":[
        [
           "DE000BAY0017",
           "BAYER",
           "2016-06-30",
           "Q",
           2016
        ],
        [
           "DE000BAY0017",
           "BAYER",
           "2016-12-31",
           "Y",
           2016
        ],
        [
           "DE000BAY0017",
           "BAYER",
           "2017-12-31",
           "Y",
           2017
        ]
     ],
     "columns":[
        {
           "name":"isin",
           "type":"String"
        },
        {
           "name":"company",
           "type":"String"
        },
        {
           "name":"per_date",
           "type":"Date"
        },
        {
           "name":"per_type",
           "type":"String"
        },
        {
           "name":"fisc_year",
           "type":"Integer"
        }
     ]
  },
  "meta":{
     "next_cursor_id":null
  }
}

The response will be truncated at 10,000 records. To download records beyond that limit, use the cursor that is returned in the meta section of your first request, like this:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.json?api_key=YOURAPIKEY&qopts.cursor_id=NEXT_CURSOR_ID"

Definition:

GET https://www.quandl.com/api/v3/datatables/:datatable_code.format

Example Request:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.xml

Example Response:

<quandl-response>
   <datatable>
       <data type="array">
           <datum type="array">
               <datum>DE000A0HL8N9</datum>
               <datum>2G ENERGY AG</datum>
               <datum type="date">2016-12-31</datum>
               <datum>Y</datum>
               <datum type="integer">2016</datum>
           ...

          </datum>
       </data>
   </datatable>
</quandl-response>

The response will be truncated at 10,000 records. To download records beyond that limit, use the cursor that is returned in the meta section of your first request, like this:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.xml?api_key=YOURAPIKEY&qopts.cursor_id=NEXT_CURSOR_ID"

Definition:

GET https://www.quandl.com/api/v3/datatables/:datatable_code.format

Example Request:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.csv"

Example Response:

isin,company,per_date,per_type,fisc_yr, ...
DE0000A0HL8N9,2G ENERGY AG,2016-12-31,Y,2016, ...

The response will be truncated at 10,000 records. To download records beyond that limit use one of the following:

A. add qopts.export=true parameter to generate a file with the full result:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.json?api_key=YOURAPIKEY&qopts.export=true"

B. use the cursor that is returned in the meta section of your first request, like this:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.json?api_key=YOURAPIKEY&qopts.cursor_id=NEXT_CURSOR_ID"

Example Request:

mydata <- Quandl.datatable("INQ/EE")

The above example retrieves all records in the datatable INQ/EE, subject to a size cutoff at 10,000 rows.

To retrieve more rows, turn pagination on like this:

mydata <- Quandl.datatable("INQ/EE", paginate=TRUE)

Example Request:

mydata = quandl.get_table("INQ/EE")

The above example retrieves all records in the datatable INQ/EE, subject to a size cutoff at 10,000 rows.

To retrieve more rows, turn pagination on like this:

mydata = quandl.get_table("INQ/EE", paginate=True)

You can download data for the entire datatable, including all rows and columns, using a Cell Formula:

In an empty cell, type the following request
=QTABLE("ZACKS/FC") and hit enter.

This will return the data for the Zacks/FC datatable.

This API call returns an entire datatable, including all rows and columns, subject to a limit of 10,000 rows.

If the datatable has more than 10,000 rows, the first 10,000 rows are returned along with a cursor pointing to the next set of rows to download.

Alternatively, use qopts.export=true to generate a CSV file with the full result.

Filter Rows

Definition:

GET https://www.quandl.com/api/v3/datatables/:datatable_code.format?<row_filter_criteria>

Example Request:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.json?isin=FI0009000681"

The above request returns those records from datatable "INQ/EE" for which field "isin" has a value of "FI0009000681".

This request generates the following API response structure:

{
  "datatable":{
     "data":[
        [
           "FI0009000681",
           "NOKIA",
           "2016-12-31",
           "Y",
           2016
        ],
        [
           "FI0009000681",
           "NOKIA",
           "2016-06-30",
           "Q",
           2016
        ],
        [
           "FI0009000681",
           "NOKIA",
           "2017-12-31",
           "Y",
           2017
        ]
     ],
     "columns":[
        {
           "name":"isin",
           "type":"String"
        },
        {
           "name":"company",
           "type":"String"
        },
        {
           "name":"per_date",
           "type":"Date"
        },
        {
           "name":"per_type",
           "type":"String"
        },
        {
           "name":"fisc_year",
           "type":"Integer"
        }
     ]
  },
  "meta":{
     "next_cursor_id":null
  }
}

Filter on multiple values using commas like this:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.json?isin=FI0009000681,DE0007236101" -X GET 

The above request returns records where field "isin" has a value of either "FI0009000681" or "DE0007236101".

This request generates the following API response:

{
  " datatable":{
     " data":{
        "-":[
           "DE000A0HL8N9",
           "2G ENERGY AG",
           "2016-12-31",
           "Y",
           "2016"
        ],
        "-":[
           "FI0009000681",
           "NOKIA",
           "2016-12-31",
           "Y",
           "2016"
        ]
     }
  }
}

Definition:

GET https://www.quandl.com/api/v3/datatables/:datatable_code.format?<row_filter_criteria>

Example Request:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.xml?isin=FI0009000681"

The above request returns those rows from datatable "INQ/EE" for which column "isin" has a value of "FI0009000681".

This request generates the following API response:

<quandl-response>
   <datatable>
       <data type="array">
           <datum type="array">
               <datum>FI0009000681</datum>
               <datum>NOKIA</datum>
               <datum type="date">2016-12-31</datum>
               <datum>Y</datum>
               <datum type="integer">2016</datum>
           ...
        </datum>
           <datum type="array">
               <datum>FI00900681</datum>
               <datum>NOKIA</datum>
               <datum type="date">2016-06-30</datum>
               <datum>Y</datum>
               <datum type="integer">2016</datum>
           ...
        </datum>
        ...
     </data>
   </datatable>
</quandl-response>

Filter on multiple values using commas like this:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.xml?isin=FI0009000681,DE0007236101"

The above request returns rows where column "isin" has a value of either "FI0009000681" or "DE0007236101".

This request generates the following API response:

<quandl-response>
   <datatable>
       <data type="array">
           <datum type="array">
               <datum>FI0009000681</datum>
               <datum>NOKIA</datum>
               <datum type="date">2016-12-31</datum>
               <datum>Y</datum>
               <datum type="integer">2016</datum>
           ...
        </datum>
           <datum type="array">
               <datum>DE0007236101</datum>
               <datum>SIEMENS</datum>
               <datum type="date">2017-09-30</datum>
               <datum>Y</datum>
               <datum type="integer">2017</datum>
           ...
        </datum>
        ...
     </data>
   </datatable>
</quandl-response>

Definition:

GET https://www.quandl.com/api/v3/datatables/:datatable_code.format?<row_filter_criteria>

Example Request:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.csv?isin=FI0009000681"

The above request returns those rows from datatable "INQ/EE" for which column "isin" has a value of "FI0009000681".

This request generates the following API response:

isin,company,per_date,per_type,fisc_yr, ...
FI0009000681,NOKIA,2016-12-31,Y,2016, ...

Filter on multiple values using commas like this:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.csv?isin=FI0009000681,DE0007236101"

The above request returns rows where column "isin" has a value of either "FI0009000681" or "DE0007236101".

This request generates the following API response:

isin,company,per_date,per_type,fisc_yr, ...
FI0009000681,NOKIA,2016-12-31,Y,2016, ...
DE0007236101,SIEMENS,2016-12-31,Y,2016, ...

Example Request:

mydata <- Quandl.datatable("INQ/EE", isin="FI0009000681")

The above example retrieves all records in the datatable INQ/EE for which the field "isin" has the value "FI0009000681".

Specify multiple filter criteria by concatenating them like this:

mydata <- Quandl.datatable("INQ/EE", isin=c("ES0148396007","FR0000120578"))

The above example retrieves all records in the datatable INQ/EE for which field "isin" has values "ES0148396007" or "FR0000120578".

Example Request:

mydata = quandl.get_table("INQ/EE", isin="FI0009000681")

The above example retrieves all records in the datatable INQ/EE for which the field "isin" has the value "FI0009000681".

Specify multiple filter criteria by concatenating them like this:

mydata = quandl.get_table("INQ/EE", isin=["ES0148396007","FR0000120578"])

The above example retrieves all records in the datatable INQ/EE for which field "isin" has values "ES0148396007" or "FR0000120578".

You can download data for a specific set of row(s) from a datatable by using a Cell Formula:

In an empty cell, type the following request
=QTABLE("ZACKS/FC",,"ticker", "AAPL") and hit enter.

This will return the data for all rows with a ticker value of "AAPL" in the Zacks/FC datatable.

It is possible to download only certain desired rows from a datatable, by specifying one or more columns to act as criteria to filter rows. Iff the value in a given column matches the filter argument, then the row containing that value is returned.

Note that only columns designated as “filterable” in the datatable’s documentation page can be used as criteria to filter rows.

The examples on the right all involve datatable INQ/EE. This particular datatable is filterable on columns isin, per_date and per_type. This means that users can narrow down their request to rows with specific values of isin, per_date and/or per_type. These three columns are the primary keys for this particular datatable; other datatables will be filterable on other columns.

Filter Columns

Definition:

GET https://www.quandl.com/api/v3/datatables/:datatable_code.format?<column_filter_criteria>

Example Request:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.json?qopts.columns=isin"

The above request returns the values field "isin", for all records in datatable "INQ/EE". This request generates the following API response structure:

{
  "datatable":{
     "data":[
        [
           "DE000BAY0017"
        ],
        [
           "NO0010031479"
        ],
        [
           "NO0010208051"
        ]
     ],
     "columns":[
        {
           "name":"isin",
           "type":"String"
        }
     ]
  },
  "meta":{
     "next_cursor_id":null
  }
}

Request multiple columns using commas like this:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.json?qopts.columns=isin,company"

The above request returns columns "isin" and "company" for all rows in datatable "INQ/EE".

This request generates the following API response structure:

{
  "datatable":{
     "data":[
        [
           "DE000BAY0017",
           "BAYER"
        ],
        [
           "FI0009000681",
           "NOKIA"
        ],
        [
           "NO0010208051",
           "YARA"
        ]
     ],
     "columns":[
        {
           "name":"isin",
           "type":"String"
        },
        {
           "name":"company",
           "type":"String"
        }
     ]
  },
  "meta":{
     "next_cursor_id":null
  }
}

Definition:

GET https://www.quandl.com/api/v3/datatables/:datatable_code.format?<column_filter_criteria>

Example Request:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.xml?qopts.columns=isin"

The above request returns the values in the column named "isin", for all rows in datatable "INQ/EE".

This request generates the following API response:

<quandl-response>
   <datatable>
       <data type="array">
           <datum type="array">
               <datum>FI0009000681</datum>
           </datum>
           <datum type="array">
               <datum>DE0007236101</datum>
           </datum>
        ...
     </data>
   </datatable>
</quandl-response>

Request multiple columns using commas like this:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.xml?qopts.columns=isin,company"

The above request returns columns "isin" and "company" for all rows in datatable "INQ/EE".

This request generates the following API response:

<quandl-response>
   <datatable>
       <data type="array">
           <datum type="array">
               <datum>FI0009000681</datum>
               <datum>NOKIA</datum>
           </datum>
           <datum type="array">
               <datum>DE0007236101</datum>
               <datum>SIEMENS</datum>
           </datum>
        ...
     </data>
   </datatable>
</quandl-response>

Definition:

GET https://www.quandl.com/api/v3/datatables/:datatable_code.format?<column_filter_criteria>

Example Request:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.csv?qopts.columns=isin"

The above request returns the values in the column named "isin", for all rows in datatable "INQ/EE".

This request generates the following API response:

isin,company,per_date,per_type,fisc_yr, ...
FI0009000681,NOKIA,2016-12-31,Y,2016, ...

Request multiple columns using commas like this:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.csv?qopts.columns=isin,company"

The above request returns columns "isin" and "company" for all rows in datatable "INQ/EE".

This request generates the following API response:

isin,company,per_date,per_type,fisc_yr, ...
FI0009000681,NOKIA,2016-12-31,Y,2016, ...
DE0007236101,SIEMENS,2016-12-31,Y,2016, ...

Example Request:

mydata <- Quandl.datatable("INQ/EE",qopts.columns="isin")

The above example downloads column "isin" for all records in datatable INQ/EE.

Download multiple columns by concatenating them like this:

mydata <- Quandl.datatable("INQ/EE",qopts.columns=c("isin","comp"))

The above example downloads columns "isin" and "comp" for all records in datatable INQ/EE.

Example Request:

mydata = quandl.get_table("INQ/EE",qopts={"columns":"isin"})

The above example downloads column "isin" for all records in datatable INQ/EE.

Download multiple columns by concatenating them like this:

mydata = quandl.get_table("INQ/EE", qopts={"columns":["isin","comp"]})

The above example downloads columns "isin" and "comp" for all records in datatable INQ/EE.

You can download a specific set of columns from a datatable by using a Cell Formula:

In an empty cell, type the following request
=QTABLE("ZACKS/FC", {"comp_name", "per_type", "per_end_date"}) and hit enter.

This will return the data for the columns, comp_name, per_type, and per_end_date for the Zacks/FC datatable.

It is possible to download only certain desired columns from a datatable, by identifying them with the qopts.columns parameter.

Filter Rows and Columns

Definition:

GET https://www.quandl.com/api/v3/datatables/:datatable_code.format?<column_filter_criteria>&<row_filter_criteria>

Example Request:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.json?qopts.columns=company&isin=FI0009000681"

The above request returns the values in the column named "company", for all rows where column "isin" has the value "FI0009000681".

This request generates the following API response structure:

{
  "datatable":{
     "data":[
        [
           "BAYER"
        ],
        [
           "NOKIA"
        ],
        [
           "YARA"
        ]
     ],
     "columns":[
        {
           "name":"company",
           "type":"String"
        }
     ]
  },
  "meta":{
     "next_cursor_id":null
  }
}

Specify multiple column and row filters using commas like this:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.json?qopts.columns=isin,company&isin=FI0009000681,DE0007236101"

The above request returns columns "isin" and "company" for rows where column "isin" has values "FI0009000681" or "DE0007236101".

This request generates the following API response structure:

{
  "datatable":{
     "data":[
        [
           "FI0009000681",
           "NOKIA"
        ],
        [
           "DE0007236101",
           "SIEMENS"
        ]
     ],
     "columns":[
        {
           "name":"isin",
           "type":"String"
        },
        {
           "name":"company",
           "type":"String"
        }
     ]
  },
  "meta":{
     "next_cursor_id":null
  }
}

Intuitively, the above API call can be thought of as analogous to this SQL statement:

SELECT isin,company 
FROM INQ/EE 
WHERE isin=FI0009000681 OR isin=DE0007236101 

Definition:

GET https://www.quandl.com/api/v3/datatables/:datatable_code.format?<column_filter_criteria>&<row_filter_criteria>

Example Request:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.xml?qopts.columns=company&isin=FI0009000681"

The above request returns the values in the column named "company", for all rows where column "isin" has the value "FI0009000681".

This request generates the following API response:

<quandl-response>
   <datatable>
       <data type="array">
           <datum type="array">
               <datum>NOKIA</datum>
           </datum> 
        ...
     </data>
   </datatable>
</quandl-response>

Specify multiple column and row filters using commas like this:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.xml?qopts.columns=isin,company&isin=FI0009000681,DE0007236101"

The above request returns columns "isin" and "company" for rows where column "isin" has values "FI0009000681" or "DE0007236101".

This request generates the following API response:

<quandl-response>
   <datatable>
       <data type="array">
           <datum type="array">
               <datum>FI0009000681</datum>
               <datum>NOKIA</datum>
           </datum>
           <datum type="array">
               <datum>DE0007236101</datum>
               <datum>SIEMENS</datum>
           </datum>
        ...
     </data>
   </datatable>
</quandl-response>

Intuitively, the above API call can be thought of as analogous to this SQL statement:

SELECT isin,company 
FROM INQ/EE 
WHERE isin=FI0009000681 OR isin=DE0007236101 

Definition:

GET https://www.quandl.com/api/v3/datatables/:datatable_code.format?<column_filter_criteria>&<row_filter_criteria>

Example Request:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.csv?qopts.columns=company&isin=FI0009000681"

The above request returns the values in the column named "company", for all rows where column "isin" has the value "FI0009000681".

This request generates the following API response:

company
NOKIA

Specify multiple column and row filters using commas like this:

curl "https://www.quandl.com/api/v3/datatables/INQ/EE.csv?qopts.columns=isin,company&isin=FI0009000681,DE0007236101"

The above request returns columns "isin" and "company" for rows wherecolumn "isin" has values "FI0009000681" or "DE0007236101".

This request generates the following API response:

isin,company
FI0009000681,NOKIA
DE0007236101,SIEMENS

Intuitively, the above API call can be thought of as analogous to this SQL statement:

SELECT isin,company 
FROM INQ/EE 
WHERE isin=FI0009000681 OR isin=DE0007236101 

Example Request:

mydata <- Quandl.datatable("INQ/EE", isin="FI0009000681", qopts.columns="company")

The above example downloads column "company" for those records in datatable "INQ/EE" for which "isin" equals "FI0009000681".

Download multiple columns and specify multiple criteria by concatenating them like this:

mydata <- Quandl.datatable("INQ/EE", isin=c("ES0148396007","FR0000120578"), qopts.columns=c("isin","comp"))

This call downloads columns "isin" and "comp" for those records in datatable "INQ/EE" where "isin" equals "ES0148396007" or "FR0000120578".

Example Request:

mydata = quandl.get_table("INQ/EE", isin="FI0009000681", 
qopts={"columns":"company"})

The above example downloads column "company" for those records in datatable "INQ/EE" for which "isin" equals "FI0009000681".

Download multiple columns and specify multiple criteria by concatenating them like this:

mydata = quandl.get_table("INQ/EE", isin=["ES0148396007","FR0000120578"],
qopts={"columns":["isin","comp"]})

This call downloads columns "isin" and "comp" for those records in datatable "INQ/EE" where "isin" equals "ES0148396007" or "FR0000120578".

You can filter on both rows and columns by using a Cell Formula:

In an empty cell, type the following request
=QTABLE("ZACKS/FC", {"comp_name", "per_type"}, "ticker", "AAPL") and hit enter.

This will return the data for all rows with a ticker value of "AAPL" for the columns, comp_name and per_type for the Zacks/FC datatable.

You can filter on both rows and columns, by appending both types of filter criterion to your API request.

Dataset API Calls

Get Data

Definition:

GET https://www.quandl.com/api/v3/datasets/:database_code/:dataset_code/data.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB/data.json"

Example Response:

{
  "dataset_data":{
     "limit":null,
     "transform":null,
     "column_index":null,
     "column_names":[
        "Date",
        "Open",
        "High",
        "Low"
     ],
     "start_date":"2015-05-24",
     "end_date":"2015-05-28",
     "frequency":"daily",
     "data":[
        [
           "2015-05-28",
           9.58,
           10.17,
           12.96
        ],
        [
           "2015-05-27",
           9.53,
           10.13,
           12.97
        ],
        [
           "2015-05-26",
           9.53,
           10.11,
           12.98
        ]
     ],
     "collapse":null,
     "order":"desc"
  }
}

For conciseness, only 3 data rows appear in the example response.

Definition:

GET https://www.quandl.com/api/v3/datasets/:database_code/:dataset_code/data.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB/data.xml"

Example Response:

<?xml version="1.0" encoding="UTF-8"?>
<quandl-response>
   <dataset-data>
       <limit nil="true" />
       <transform nil="true" />
       <column-index nil="true" />
       <column-names type="array">
           <column-name>Date</column-name>
           <column-name>Open</column-name>
           <column-name>High</column-name>
           <column-name>Low</column-name>
       </column-names>
       <start-date type="date">2015-05-24</start-date>
       <end-date type="date">2015-05-28</end-date>
       <frequency>daily</frequency>
       <data type="array">
           <datum type="array">
               <datum type="date">2015-05-28</datum>
               <datum type="float">9.58</datum>
               <datum type="float">10.17</datum>
               <datum type="float">12.97</datum>
           </datum>
           <datum type="array">
               <datum type="date">2015-05-27</datum>
               <datum type="float">9.53</datum>
               <datum type="float">10.13</datum>
               <datum type="float">12.97</datum>
           </datum>
           <datum type="array">
               <datum type="date">2015-05-26</datum>
               <datum type="float">9.53</datum>
               <datum type="float">10.11</datum>
               <datum type="float">12.98</datum>
           </datum>
       </data>
       <collapse nil="true" />
       <order>desc</order>
   </dataset-data>
</quandl-response>

For conciseness, only 3 data rows appear in the example response.

Definition:

GET https://www.quandl.com/api/v3/datasets/:database_code/:dataset_code/data.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB/data.csv"

Example Response:

Date,Open,High,Low 
2015-05-28,9.58,10.17,12.96
2015-05-27,9.53,10.13,12.97
2015-05-26,9.53,10.11,12.98
...

For conciseness, only 3 data rows appear in the example response.

Definition:

Quandl(":database_code/:dataset_code", type = ":return_format")

Parameters:

The parameter type can take the following values:

   "raw" : returns a data frame
   "zoo" : returns a zoo object
   "ts" : returns a time-series object
   "xts" : returns an extensible time-series object
   "timeSeries" : returns a financial time-series object

When type is omitted, a data frame is returned.

Learn more about return types: data frame, zoo, ts, xts, timeSeries

Example Request:

data <- Quandl("WIKI/FB")

Example Response:

             Open   High    Low 
2015-05-28   9.58   10.17   12.96
2015-05-27   9.53   10.13   12.97
2015-05-26   9.53   10.11   12.98
...

For conciseness, only 3 data rows appear in the example response.

Definition:

quandl.get(":database_code/:dataset_code", returns = ":return_format")

Parameters:

The parameter returns can take the following values:

   "numpy" : returns a numpy object
   "pandas" : returns a pandas data frame

When returns is omitted, a pandas dataframe is returned. Learn more about return types: pandas, numpy

Example Request:

data = quandl.get("WIKI/FB") 

Example Response:

              Open   High    Low 
2015-05-28   9.58   10.17   12.96
2015-05-27   9.53   10.13   12.97
2015-05-26   9.53   10.11   12.98
...

For conciseness, only 3 data rows appear in the example response.

Using the Ribbon:

Click on the GET DATA button in the Quandl Ribbon and follow the step-by-step process of downloading the dataset from the database that you choose. 

Using Cell Formula:

=QSERIES(":database_code/:dataset_code")

This returns the entire history of the selected dataset. 

Example Request:

=QSERIES("WIKI/FB")

By default, this returns all of the columns found in the dataset. To return the data for a specific column, append the column name to your request like this:

=QSERIES("WIKI/FB/CLOSE")

To get data for a specific date of a given column of a dataset, do this:

=QSERIES("WIKI/FB/CLOSE", "2016-08-16")

This call returns data from a specified dataset.

Get Metadata

Definition:

GET https://www.quandl.com/api/v3/datasets/:database_code/:dataset_code/metadata.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB/metadata.json" 

Example Response:

{
  "dataset":{
     "id":9775409,
     "dataset_code":"FB",
     "database_code":"WIKI",
     "name":"Facebook Inc. (FB) Price",
     "description":"End of day price for Facebook Inc.",
     "refreshed_at":"2015-07-31T17:46:36.000Z",
     "newest_available_date":"2015-08-01",
     "oldest_available_date":"2015-05-24",
     "column_names":[
        "Date",
        "Open",
        "High",
        "Low"
     ],
     "frequency":"daily",
     "type":"Time Series",
     "premium":false,
     "database_id":4922
  }
}

Definition:

GET https://www.quandl.com/api/v3/datasets/:database_code/:dataset_code/metadata.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB/metadata.xml"

Example Response:

<?xml version="1.0" encoding="UTF-8"?>
<quandl-response>
   <dataset>
       <id type="integer">9775409</id>
       <dataset-code>FB</dataset-code>
       <database-code>WIKI</database-code>
       <name>Facebook Inc. (FB) Price</name>
       <description>End of day price for Facebook Inc.</description>
       <refreshed-at type="dateTime">2015-07-31T17:46:36Z</refreshed-at>
       <newest-available-date type="date">2015-08-01</newest-available-date>
       <oldest-available-date type="date">2015-05-24</oldest-available-date>
       <column-names type="array">
           <column-name>Date</column-name>
           <column-name>Open</column-name>
           <column-name>High</column-name>
           <column-name>Low</column-name>
       </column-names>
       <frequency>daily</frequency>
       <type>Time Series</type>
       <premium type="boolean">false</premium>
       <database-id type="integer">4922</database-id>
   </dataset>
</quandl-response>    

Definition:

GET https://www.quandl.com/api/v3/datasets/:database_code/:dataset_code/metadata.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB/metadata.csv"

Example Response:

id,dataset_code,database_code,name,description,refreshed_at, ...
9775409,FB,WIKI,Facebook Inc.(FB) Price,End of day price for Facebook ...

Definition:

metaData(Quandl(":database_code/:dataset_code",meta=TRUE,rows=1))

Explanation:

By setting meta=TRUE, we include both data and metadata in the Quandl object. Since we want to minimize the data payload, we also set rows=1.

metaData(data_obj) is just an alias for attr(data_obj,"meta").

Metadata Request:

data <- Quandl("WIKI/FB",meta=TRUE,rows=1)
metadata <- metaData(data)

Metadata Response:

# $id
# [1] 9775409

# $dataset_code
# [1] "FB"

# $database_code
# [1] "WIKI"

# $name
# [1] "Facebook Inc. (FB) Price"

# $description
# [1] "End of day price for Facebook Inc."

# $refreshed_at
# [1] "2016-05-09T21:54:54.266Z"

# $newest_available_date
# [1] "2016-05-09"

# $oldest_available_date
# [1] "1980-12-12"

# $column_names
# [1] "Date"        "Open"        "High"        "Low"         

# $frequency
# [1] "daily"

# $type
# [1] "Time Series"

# $premium
# [1] FALSE

# $database_id
# [1] 4922

Definition:

quandl.Dataset(":database_code/:dataset_code").data_fields()

Example Request:

metadata = quandl.Dataset("WIKI/FB").data_fields()

Example Response:

=> ['premium', 'name', 'frequency', 'description', 'column_names',  
'database_code', 'type', 'refreshed_at',... ]

There is no way to download metadata using the current version of the Quandl Excel add-in.

This call returns metadata for a specified dataset. The following metadata fields are available:

METADATA FIELDS

Field Name Description Example
dataset_code The code for this dataset FB
database_code The code for the database this dataset belongs to EOD
name The name of this dataset Facebook Inc (FB) stock price
description A brief description of the dataset End-of-day stock price for Facebook Inc (FB)
refereshed_at The time at which the data and/or metadata of this dataset was most recently refreshed 2015-07-31 17:46:36 UTC
newest_available_date The most recent date of all available data points in this dataset 2015-07-31
oldest_available_date The earliest date of all available data points in this dataset 2012-04-16
column_names The titles for each column of data in this dataset [“Date”, “Open”,“High”,“Low”]
frequency The frequency of observations in the dataset daily
type The type of data being returned Time-Series
premium Whether this dataset is premium TRUE

Get Data and Metadata

Definition:

GET https://www.quandl.com/api/v3/datasets/:database_code/:dataset_code.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.json"  

Example Response:

{
  "dataset":{
     "id":1,
     "dataset_code":"FB",
     "database_code":"WIKI",
     "name":"Facebook Inc. (FB) stock price",
     "description":"End of day open, high, low",
     "refreshed_at":"2015-07-31T17:46:36.000Z",
     "newest_available_date":"2015-08-01",
     "oldest_available_date":"2015-05-24",
     "column_names":[
        "Date",
        "Open",
        "High",
        "Low"
     ],
     "frequency":"daily",
     "type":"Time Series",
     "premium":false,
     "limit":null,
     "transform":null,
     "column_index":null,
     "start_date":"2015-05-24",
     "end_date":"2015-05-28",
     "data":[
        [
           "2015-05-28",
           9.58,
           10.17,
           12.96
        ],
        [
           "2015-05-27",
           9.53,
           10.13,
           12.97
        ],
        [
           "2015-05-26",
           9.526415957480097,
           10.11017545854056,
           12.982029225784581
        ]
     ],
     "collapse":null,
     "order":"desc",
     "database_id":1
  }
}

The response includes both data and metadata. For conciseness, only 3 data rows are shown in the example response.

Definition:

GET https://www.quandl.com/api/v3/datasets/:database_code/:dataset_code.:return_format

Example Request:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.xml"

Example Response:

<?xml version="1.0" encoding="UTF-8"?>
<quandl-response>
   <dataset>
       <id type="integer">1</id>
       <dataset-code>FB</dataset-code>
       <database-code>WIKI</database-code>
       <name>Facebook Inc. (FB)</name>
       <description>End of day open, high, low</description>
       <refreshed-at type="dateTime">2015-07-31T17:46:36Z</refreshed-at>
       <newest-available-date type="date">2015-08-01</newest-available-date>
       <oldest-available-date type="date">2015-05-24</oldest-available-date>
       <column-names type="array">
           <column-name>Date</column-name>
           <column-name>Open</column-name>
           <column-name>High</column-name>
           <column-name>Low</column-name>
       </column-names>
       <frequency>daily</frequency>
       <type>Time Series</type>
       <premium type="boolean">false</premium>
       <limit nil="true" />
       <transform nil="true" />
       <column-index nil="true" />
       <start-date type="date">2015-05-24</start-date>
       <end-date type="date">2015-05-28</end-date>
       <data type="array">
           <datum type="array">
               <datum type="date">2015-05-28</datum>
               <datum type="float">9.58</datum>
               <datum type="float">10.17</datum>
               <datum type="float">12.97</datum>
           </datum>
           <datum type="array">
               <datum type="date">2015-05-27</datum>
               <datum type="float">9.53</datum>
               <datum type="float">10.13</datum>
               <datum type="float">12.97</datum>
           </datum>
           <datum type="array">
               <datum type="date">2015-05-26</datum>
               <datum type="float">9.53</datum>
               <datum type="float">10.11</datum>
               <datum type="float">12.98</datum>
           </datum>
       </data>
       <collapse nil="true" />
       <order>desc</order>
       <database-id type="integer">1</database-id>
   </dataset>
</quandl-response>  

The response includes both data and metadata. For conciseness, only 3 data rows are shown in the example response.

It is not possible to get both data and metadata in a single CSV API call. Instead, you must do 2 calls, for data and metadata respectively.

See the sections titled "Get Data" and "Get Only Metadata" for syntax.

Definition:

Quandl(":database_code/:dataset_code", meta=TRUE, type=":data_format")

Parameters:

The parameter meta can be either TRUE or FALSE.  If TRUE or omitted, 
metadata is included in the returned object.

The parameter type can take the following values:

   "raw" : returns a data frame
   "zoo" : returns a zoo object
   "ts" : returns a time-series object
   "xts" : returns an extensible time-series object
   "timeSeries" : returns a financial time-series object

When type is omitted, a data frame is returned.

Learn more about return types: data frame, zoo, ts, xts, timeSeries

Data Request:

data <- Quandl("WIKI/FB")

Data Response:

             Open   High    Low 
2015-05-28   9.58   10.17   12.96
2015-05-27   9.53   10.13   12.97
2015-05-26   9.53   10.11   12.98
...

Metadata Request:

metadata <- metaData(data)   # just an alias for attr(data,"meta")

Metadata Response:

# $id
# [1] 9775409

# $dataset_code
# [1] "FB"

# $database_code
# [1] "WIKI"

# $name
# [1] "Facebook Inc. (FB) Price"

# $description
# [1] "End of day price for Facebook Inc."

# $refreshed_at
# [1] "2016-05-09T21:54:54.266Z"

# $newest_available_date
# [1] "2016-05-09"

# $oldest_available_date
# [1] "1980-12-12"

# $column_names
# [1] "Date"        "Open"        "High"        "Low"         

# $frequency
# [1] "daily"

# $type
# [1] "Time Series"

# $premium
# [1] FALSE

# $database_id
# [1] 4922

The response includes both data and metadata. For conciseness, only 3 data rows are shown in the example response.

Instantiation:

quandl.Dataset(":database_code/:dataset_code")

Data Request:

quandl.Dataset(":database_code/:dataset_code").data()

  e.g.:  quandl.Dataset("WIKI/FB").data()

Metadata Request:

quandl.Dataset(":database_code/:dataset_code").data_fields()

  e.g.:  quandl.Dataset("WIKI/FB").data_fields()

Metadata Response:

=> ['premium', 'name', 'frequency', 'description', 'column_names',  
'database_code', 'type', 'refreshed_at',... ]

The Quandl Excel add-in does not support metadata downloads, hence it is not possible to get data and metadata using the add-in.

This call returns data and metadata for a given dataset. The available metadata fields are the same as described in the previous section.

Customize Your Dataset

Get monthly % changes in Facebook's closing price for the year 2014:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.json?column_index=4&start_date=2014-01-01&end_date=2014-12-31&collapse=monthly&transform=rdiff&api_key=YOURAPIKEY"

Get monthly % changes in Facebook's closing price for the year 2014:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.xml?column_index=4&start_date=2014-01-01&end_date=2014-12-31&collapse=monthly&transform=rdiff&api_key=YOURAPIKEY"

Get monthly % changes in Facebook's closing price for the year 2014:

curl "https://www.quandl.com/api/v3/datasets/WIKI/FB.csv?column_index=4&start_date=2014-01-01&end_date=2014-12-31&collapse=monthly&transform=rdiff&api_key=YOURAPIKEY" 

Get monthly % changes in Facebook's closing price for the year 2014:

data <- Quandl("WIKI/FB.11", start_date="2014-01-01", 
end_date="2014-12-31", collapse="monthly", transform="rdiff")

Get monthly % changes in Facebook's closing price for the year 2014:

data = quandl.get("WIKI/FB.11", start_date="2014-01-01", end_date="2014-12-31", collapse="monthly", transform="rdiff")

Get monthly changes in Facebook's closing price for the year 2014:

Type =QSERIES("WIKI/FB/CLOSE", {"2014-01-01", "2014-12-31"}, "monthly",,"diff") into any empty cell and hit enter.

You can slice, transform and otherwise customize your time-series dataset prior to download by appending various optional parameters to your query.

Available parameters are tabulated below:

QUERY PARAMETERS

Parameter Req’d Type Values Description
database_code yes string Code identifying the database to which the dataset belongs.
dataset_code yes string Code indentifying the dataset.
limit no int Use limit=n to get the first n rows of the dataset. Use limit=1 to get just the latest row.
column_index no int Request a specific column. Column 0 is the date column and is always returned. Data begins at column 1.
start_date no string yyyy-mm-dd Retrieve data rows on and after the specified start date.
end_date no string yyyy-mm-dd Retrieve data rows up to and including the specified end date.
order no string asc
desc
Return data in ascending or descending order of date. Default is “desc”.
collapse no string none
daily
weekly
monthly
quarterly
annual
Change the sampling frequency of the returned data. Default is “none” i.e. data is returned in its original granularity.
transform no string none
diff
rdiff
rdiff_from
cumul
normalize
Perform elementary calculations on the data prior to downloading. Default is “none”. Calculation options are described below.

Notes:

Codes: The combination of database_code and dataset_code is globally unique.

Collapse: Quandl returns the last observation for any given time period. So if you “collapse” a daily dataset to monthly, you will get a sample of the original daily dataset where the observation for each month is the last daily data point available for that month. Note that this can cause errors for fields like “open price” since the daily open price on the last day of the month is not equal to the monthly open price. a – b

Transform: Available transformations are described in the table below: ÷÷

Transformations

Name Effect Formula
none no effect y"[t] = y[t]
diff row-on-row change y"[t] = y[t] – y[t-1]
rdiff row-on-row % change y"[t] = (y[t] – y[t-1]) / y[t-1]
rdiff_from latest value as % increment y"[t] = (y[latest] – y[t]) / y[t]
cumul cumulative sum y"[t] = y[0] + y[1] + … + y[t]
normalize scale series to start at 100 y"[t] = y[t] ÷ y[0] * 100

Note that in the above table, y[0] referes to the starting date specified by start_date or limit, and not the starting date of the underlying raw dataset. Similarly, y[latest] refers to the latest date specified by end_date.

Multiple Datasets in One Call

You cannot download multiple JSON datasets in one call. Use our packages or the databases API route instead.

You cannot download multiple XML datasets in one call. Use our packages or the databases API route instead.

You cannot download multiple CSV datasets in one call. Use our packages or the databases API route instead.

To get multiple datasets in one call, comma-delimit their codes and put them in an array like this:

merged_data <- Quandl(c("WIKI/FB","EOD/AAPL","WIKI/MSFT"))

You can also request specific columns from multiple datasets:

merged_data <- Quandl(c("WIKI/FB.1","EOD/AAPL.2","WIKI/MSFT.3"))

To get multiple datasets in one call, comma-delimit their codes and put them in an array like this:

merged_data = quandl.get(["WIKI/FB","EOD/AAPL","WIKI/MSFT"])

You can also request specific columns from multiple datasets:

merged_data = quandl.get(["WIKI/FB.1","EOD/AAPL.2","WIKI/MSFT.3"])

Get stock prices for Facebook, Apple and Microsoft:

Using a Cell Formula:

In an empty cell, type the following request
=QSERIES({"WIKI/FB", "WIKI/AAPL", "WIKI/MSFT"}) and hit enter.

The R, Python and Excel packages allow you to request multiple time-series datasets in a single call. The packages automatically synchronize the dates across these datasets.

Note that multiple dataset download is not possible in the raw API. To download large quantities of data, we recommend using the /databases/ route. This route is only available to paying subscribers for premium data.

Definition:

GET https://www.quandl.com/api/v3/datasets.:return_format?query=:search_terms&database_code=:db_code&per_page=:pp&page=:p

Example Request:
Search database ODA for "crude oil" and show top 1 result:

curl "https://www.quandl.com/api/v3/datasets.json?query=crude+oil&database_code=ODA&per_page=1&page=1"

Example Response:

{
  "datasets":[
     {
        "id":2076,
        "dataset_code":"POILAPSP_INDEX",
        "database_code":"ODA",
        "name":"Blended Crude Oil Price",
        "description":"Crude Oil (petroleum) Price Index, 2005 = 100, average of three spot prices; Dated Brent, West Texas Intermediate, and Dubai Fateh",
        "refreshed_at":"2015-10-19T14:50:51.000Z",
        "newest_available_date":"2015-10-20",
        "oldest_available_date":"2015-08-12",
        "column_names":[
           "Date",
           "Value"
        ],
        "frequency":"monthly",
        "type":"Time Series",
        "premium":false,
        "database_id":4443
     }
  ],
  "meta":{
     "query":"crude oil",
     "per_page":1,
     "current_page":1,
     "prev_page":null,
     "total_pages":1,
     "total_count":1,
     "next_page":null,
     "current_first_item":1,
     "current_last_item":1
  }
}

Definition:

GET https://www.quandl.com/api/v3/datasets.:return_format?query=:search_terms&database_code=:db_code&per_page=:pp&page=:p

Example Request:
Search database ODA for "crude oil" and show top 1 result:

curl "https://www.quandl.com/api/v3/datasets.xml?query=crude+oil&database_code=ODA&per_page=1&page=1"

Example Response:

<?xml version="1.0" encoding="UTF-8"?>
<quandl-response>
   <datasets type="array" query="crude oil" per_page="1" current_page="1" prev_page="" total_pages="1" total_count="1" next_page="" current_first_item="1" current_last_item="1">
       <dataset>
           <id type="integer">2076</id>
           <dataset-code>POILAPSP_INDEX</dataset-code>
           <database-code>ODA</database-code>
           <name>Blended Crude Oil Price</name>
           <description>Crude Oil (petroleum) Price Index, 2005 = 100, average of three spot prices: Dated Brent, West Texas Intermediate, and Dubai Fateh. </description>
           <refreshed-at type="dateTime">2015-10-19T14:50:51Z</refreshed-at>
           <newest-available-date type="date">2015-10-20</newest-available-date>
           <oldest-available-date type="date">2015-08-12</oldest-available-date>
           <column-names type="array">
               <column-name>Date</column-name>
               <column-name>Value</column-name>
           </column-names>
           <frequency>monthly</frequency>
           <type>Time Series</type>
           <premium type="boolean">false</premium>
           <database-id type="integer">4443</database-id>
       </dataset>
   </datasets>
</quandl-response>

Definition:

GET https://www.quandl.com/api/v3/datasets.:return_format?query=:search_terms&database_code=:db_code&per_page=:pp&page=:p

Example Request:

Search database ODA for "crude oil" and show top 1 result:

curl "https://www.quandl.com/api/v3/datasets.csv?query=crude+oil&database_code=ODA&per_page=1&page=1"

Example Response:

id,dataset_code,database_code,name,description,refreshed_at,
newest_available_date,oldest_available_date,column_names,frequency,
type,premium,database_id

2076,POILAPSP_INDEX,ODA,"Blended Crude Oil Price","Crude Oil (petroleum)
Price Index, 2005 = 100, average of three spot prices; Dated Brent, West 
Texas Intermediate, and Dubai Fateh",2015-10-19 14:50:51 UTC,
2015-10-20,2015-08-12,"["Date","Value"]",monthly,TimeSeries,false,4443

Definition:

Quandl.search(:search_terms, database_code=:database_code, per_page=:per_page, page=:page_number, silent=true|false)

Parameters searchterms, databasecode, perpage and pagenumber behave exactly as in the API calls.

If silent=false, the first three results are printed to the console.

Example: search database NSE for "oil" and show top 1 result:

Quandl.search("oil",database_code="NSE",per_page=1,page=1,silent=FALSE)

This prints:

Oil India Limited 
Code: NSE/OIL 
Desc: Historical prices for Oil India Limited on the National Stock 
Exchange of India. 
Freq: daily 
Cols: Date | Open | High | Low | Last | Close | Total Trade Quantity

Dataset search is not available in the Python package.

Click GET DATA on the Quandl ribbon and then follow the instructions in the dialog box.

You can search for datasets after you choose the database in the first step of the dialog box.

You can search for individual datasets on Quandl using this API route. The API will return datasets directly related to your query, as well as datasets that belong to databases related to your query.

Using the following query parameters, you can restrict your search to be within a specific database, and you can paginate the results.

QUERY PARAMETERS

Parameter Req’d Type Description
query yes string Your search query. Separate multiple items with “+”.
database_code no string Restrict search results to a specific database.
per_page no int Number of search results per page.
page no int Page number to return.

Usage Information

Support

There are three primary support routes:

  1. This document: the official reference to the Quandl API.

  2. Help.quandl.com: a searchable collection of short documents answering specific questions about our API, packages, and the Quandl platform.

  3. Email: you can reach out to us for direct support at connect@quandl.com.

Rate Limits

Authenticated users have a limit of 300 calls per 10 seconds, 2,000 calls per 10 minutes, and a limit of 50,000 calls per day.

Authenticated users can make 1 call at a time and have an additional 1 call in the queue.

Premium data subscribers have a limit of 5,000 calls per 10 minutes, and a limit of 720,000 calls per day.

Anonymous requests are subject to a limit of 50 calls per day with 1 call allowed at a time. Note that anonymous requests will be deprecated soon.

HTTPS

All API requests must be made using HTTPS. Requests made over HTTP will fail.

API Status

You can see the current status ad response times for the Quandl API at status.quandl.com.

HTTP Return Codes

The Quandl API returns standard HTTP status codes to indicate the success or failure of all requests.

Quandl Error Codes

Example: Incorrect Quandl Code(QECx02)

{
  "quandl_error":{
      "code":"QECx02",
      "message":"You have submitted an incorrect Quandl code. Please check your Quandl codes and try again."
  }
}

Example: Incorrect Quandl Code(QECx02)

<quandl-response>
  <quandl-error>
      <code>
          QECx02
      </code>
      <message>
          You have submitted an incorrect Quandl code. Please check your Quandl codes and try again.
      </message>
  </quandl-error>
</quandl-response>

Example: Incorrect Quandl Code(QECx02)

code,message
QECx02,You have submitted an incorrect Quandl code. Please check your Quandl codes and try again.

Example: Incorrect Quandl Code(QECx02)

Error: {"quandl_error":{"code":"QECx02","message":"You have submitted an incorrect Quandl code. Please check your Quandl codes and try again."}}

Example: Incorrect Quandl Code(QECx02)

quandl.errors.quandl_error.NotFoundError: (Status 404) (Quandl Error QECx02) You have submitted an incorrect Quandl code. Please check your Quandl codes and try again.

In addition to HTTP status codes, the Quandl API returns custom error messages for specific error types. These are tabulated below:

Quandl Error Code HTTP Status Code Decription
QELx01 429 You have exceeded your daily call limit as an anonymous user.
QELx02 429 You have exceeded your daily call limit as a registered user.
QELx03 429 You have exceeded your daily call limit as a subscriber.
QELx04 429 You have exceeded your 10-minute call limit as a registered user.
QELx05 429 You have exceeded your 10-minute call limit as a subscriber.
QELx06 422 You have requested too many rows of data.
QELx07 414 Your request query parameters are too long.
QELx08 413 The amount of data you are trying to return is too large. You need to narrow the data returned with filters.
QEAx01 400 We could not recognize your API key. Please check your API key and try again. You can find your API key under your account settings.
QEAx02 422 Your login credentials are invalid.
QEAx03 403 You must have an API key to access this resource.
QEPx01 401 You have attempted to view a protected resource in anonymous mode, i.e., without providing an API key. Please register for a free Quandl account, and then include your API key with your requests.
QEPx02 403 You do not have permission to use this endpoint.
QEPx04 403 You do not have permission to view this database OR you have exceeded your quota of free trials for this database. Please subscribe to this database to get more views or downloads.
QEPx05 403 You have attempted to view a premium database in anonymous mode, i.e., without providing an API key. Please login or register for a free Quandl account, and then include your API key with your requests.
QEPx06 403 You do not have access to view part of the data requested eg. column.
QESx02 422 You are missing a required parameter or its value is empty. Please check your parameters and try again.
QESx03 422 You have submitted incorrect parameters for creating/updating this resource. Please check your API call syntax and try again.
QESx04 422 You have submitted incorrect query parameters. Please check your API call syntax and try again.
QESx05 406 You have requested an unknown format. Please check the format you requested and try again.
QESx06 400 You have used an invalid cursor or page ID with your query. Please check your query and try again.
QESx07 422 You have used an unsupported operator for your query parameters. Please check and try again.
QESx08 422 You have tried to filter a column that is not available for filtering. Please remove and try again.
QESx09 400 The syntax of your query parameters is incorrect. Please check the syntax and try again.
QECx01 400 Unknown API route. We could not recognize the URL you requested. Please check your URL and try again.
QECx02 404 You have submitted an incorrect Quandl code. Please check your Quandl codes and try again.
QECx03 404 We could not find the resource you requested. Please check your URL and try again.
QECx04 404 The referral code is invalid. Please try again.
QECx05 422 The url you requested is incorrect. You may be presented with an alternative URL to use instead.
QECx06 404 You cannot make API calls to this database. This database has been deprecated. Please contact connect@quandl.com for further information.
QEMx01 500 Something went wrong. Please try again. If you continue to have problems, please contact us at connect@quandl.com.
QEXx01 503 The request took too long. Please try again later.
QEXx02 502 We are experiencing issues with connection. Please try again later.
QEXx03 500 Something went wrong. Please try again. If you continue to have problems, please contact us at connect@quandl.com.