CME DataMine API

CME DataMine now offers a secure data download API and Query API service to access and download historical data. Your API ID allows you to programmatically retrieve your purchased data and query custom Market Datasets. Learn more about use and functionality of the API.

You can query a list of entitled files using this API call, with optional criteria to limit the number of results returned. The maximum number of results from a list is 1,000. If you have more results than the limit, you need to use the paging links that are returned in the "paging" section as part of the response.

DataMine’s Query API Service uses the same API credentials and provides the ability to customize an API call that queries all of CME Historical Market Data residing in DataMine’s comprehensive Archived Market Database (ARMADA).

In order to access your data, please complete the following steps:

Step 1: Creating an API ID

  • Sign into your CME Group Account at CMEgroup.com (click login button in the top right corner)
  • Click the Human Silhouette icon and select “Profile”
  • In "My Profile," go to "API Management" and click on "Create API ID" at the bottom of the page

    • Note: API Management requires Multi-Factor Authentication, so ensure it is enabled or it will not appear in your navigation. The guide found here illustrates the steps.

  • Select “CREATE API ID”

  • Under “Type” select "Basic Auth"

    • Note: all API IDs must begin with "API_" (Ex. “API_customer”)

    • Additional guidance on API ID Management and Password Reset can be found here.

  • Click “CREATE API ID” in the bottom right hand corner of the window

  • Copy your password and store it securely before closing the window.

Step 2: Requesting DataMine access for your API ID

  • Go to datamine.cmegroup.com
  • Use the Cart or Human Silhouette icon to log in with your CME Group Login ID credentials
  • Navigate to “Profile” in the dropdown menu underneath your name
  • Click the “Edit” button below "API ID" and enter your API ID credentials starting with "API_" (Ex. API_customer)
  • Click “Save” to resubmit your request
  • You will receive a confirmation email when your API ID is enabled for DataMine access.

  • The API ID created in these steps is interoperable with Query API data access. Only one API ID is needed for DataMine.

You will be able to access your data through the following channels:

1) Data API
2) SFTP File Transfer
3) Automatic S3 transfer
4) File Browser

For inquiries related to CME DataMine API, Bitcoin Data Access:

CSET - CME Globex

Sundays 4 p.m.–Fridays 4:30 p.m.

U.S.: +1 312 930 2322

Europe: +44 20 3379 3803

Asia: +65 6593 5593

Criteria

Name

Description

Required

Type

dataset

Dataset the user is querying.

Example: bbo, block, eod, voi, md, tick, mbo, cryptocurrency, telluslabs

Note: For Cryptocurrency, only the dataset name ‘CRYPTOCURRENCY’ is required for the list API

No

String

exchangecode

Exchange Code the data is requested for.

Example: xcme, xnym, xcbt, xcec, cmed, etc. (see reference section for remaps)

No

String

foiindicator

Future Option Indicator.

Possible values:

  • fut – Futures
  • opt – Options
  • idx – Indices

No

String

venue

The venue the product is traded in.

Possible values: 

  • rth - Regular trading hours
  • eth - Extended trading hours
  • otc - Clearport

No

String

productcode

CME Product Code

Example: cl, es, gs

No

String

yyyymmdd

CME trade date. Accepted format is yyyymmdd

Example: 20150131

No

String

limit

Amount of results per request. Maximum 1000 rows will be returned.

A paging information will return with offset information.

No

int

offset

Pagination mechanism 

Use the offset returned by previous query for previous or next page.

No

int

firstfid

Alternative pagination mechanism

Use the firstfid returned in the paging section to query previous page

No String
lastfid Use the lastfid returned in the paging section to query next page No String

Syntax

curl --user {{UNO_API_KEY}}:{{UNO_API_PASSWORD}} 'https://{{URL}}/cme/api/v1/list?{{criteria1}}={{val1}}&{{criteria2}}={{val2}}&{{criteriaN}}={{valN}}'

Curl Users:
curl --user API_JOHNSMITH:12345
'
https://datamine.cmegroup.com/cme/api/v1/list?dataset=eod&exchangecode=xcec&yyyymmdd=20150130'
WGET Users:
wget --user API_JOHNSMITH -O- -q --password 12345 'https://datamine.cmegroup.com/cme/api/v1/list'

Response

Elements of the "files" array

Name

Description

Type

dataset

Dataset of the file

String

exchangecode

Exchange Code for the file

String

url

Fully qualified download URL

String

expiration

expiration date of file access

String

productcode

CME Product Code

String

yyyymmdd

CME trade date

String

checksum

MD5 Checksum for data

String

size

File size in bytes

int

fid

Unique identifier for file

String

orderid

Order number

String

"Paging" Object

Name

Description

Type

previous

Pre-populated link that will bring you toprevious the previous page of result

String

next

Pre-populated link that will bring you to the next page of result

String

Sample Response

{

  "files": [

    {

      "dataset": "eod",

      "yyyymmdd": "20150130",

      "url": "http://localhost:8080/cme/api/v1/download?fid=20150130-eod_xcec_ali_fut_0-eth_p",

      "fid": "20150130-eod_xcec_ali_fut_0-eth_p",

      "orderid": "29",

      "exchangecode": "xcec",

      "productcode": "ali",

      "checksum": "c609f0a1091c693e759d46f1b8756f54",

      "size": 642,

      "expiration": "2016-06-10"

    },

    {

      "dataset": "eod",

      "yyyymmdd": "20150130",

      "url": "http://localhost:8080/cme/api/v1/download?fid=20150130-eod_xcec_ali_fut_0-eth_f",

      "fid": "20150130-eod_xcec_ali_fut_0-eth_f",

      "orderid": "31",

      "exchangecode": "xcec",

      "productcode": "ali",

      "checksum": "c609f0a1091c693e759d46f1b8756f54",

      "size": 642,

      "expiration": "2016-06-12"

    }

  ],

  "paging": {

    "previous": "http://localhost:8080/cme/api/v1/list?limit=2&offset=0",

    "next": "http://localhost:8080/cme/api/v1/list?limit=2&offset=3"

  }

}

 

**Please note that paging information is at the end of the response**

Download

You can download a file that you have access to using this API call.

Criteria

Name

Description

Required

Type

fid

File ID, available from the list API.

The fid format is: yyyymmdd-dataset_exch_symbol_foi_spread-venue

foi possible value:

  • fut
  • opt

spread possible value:

  • 0 for outright
  • 1 for spread

Example: 20160107-bbo_xcme_sp_fut_0-rth

Yes

String

Syntax:

curl -J -O --user {{UNO_API_KEY}}:{{UNO_API_PASSWORD}} 'https://{{URL}}/cme/api/v1/download?fid={{val}}'

Curl Users: 
curl -J -O --user API_JOHNSMITH:12345
'https://datamine.cmegroup.com/cme/api/v1/download?fid=20150130-eod_xcec_ali_fut_0-eth_p'

You can use “-o” option to name your own file: 
curl --user API_JOHNSMITH:12345
'https://datamine.cmegroup.com/cme/api/v1/download?fid=20150130-eod_xcec_ali_fut_0-eth_p' -o my_eod_file.gz

WGET Users:
wget --content-disposition --user API_TEST_DM_PROD --password Test12345 'https://datamine.cmegroup.com/cme/api/v1/download?fid=20160920-EOD_xcbt_c_fut_0-eth_p'

Note: For Dataset ‘cryptocurrency’ only the ‘fid’ visible in the List API is required to generate queries.

Note: For Dataset ‘TellusLabs’ only the ‘fid’ visible in the List API is required to generate queries

Batch Download

You can download a concatenated csv file containing all the EOD files that you have access to for a specific day using this api call.

Criteria

Name

Description

Required

Type

dataset

Currently only EOD is supported

Yes

String

yyyymmdd

CME trade date. Accepted format is yyyymmdd

 

Example: 20150131

Yes

String

period

Possible values:

f, e, p

Yes

String

Syntax:

curl -J -O --user {{UNO_API_KEY}}:{{UNO_API_PASSWORD}} 'https://{{URL}}/cme/api/v1/batchdownload?dataset={{val}}&yyyymmdd={{val}}&period={{value}}'

curl -J -O --user API_JOHNSMITH:12345

'https://datamine.cmegroup.com/cme/api/v1/batchdownload?dataset=eod&yyyymmdd=20150130&period=f'

Reference

Dataset

API Value

Top-of-Book

BBO

Block Trades

BLOCK

End-of-day

EOD

Volume and Open Interest VOI

Market Depth (FIX)

MD

Market Depth (RLC)

RLC

RLC-SecDef

RLCSECDEF

SecDef

SECDEF

Time & Sales

TICK

Market By Order (MBO) MBO
CF Crypto Currencies CRYPTOCURRENCY
CF Bitcoin BITCOIN
Exchange

API value

COMEX

XCEC

CBOT

XCBT

CME

XCME

NYMEX

XNYM

CMED

CMED

DME DUMX

Web Browser API Calls

For clients who are not familiar with Curl nor WGET, a simpler way of executing API calls is through the web browser. Simply put this list call in a browser, and hit enter:

https://datamine.cmegroup.com/cme/api/v1/list

Enter your API username and password, hit enter to see the listing. You should see something similar to this:

{

  "files": [

    {

      "dataset": "MD",

      "yyyymmdd": "20161003",

      "url": "https://datamine.cmegroup.com/cme/api/v1/download?fid=20161003-MD_xnym_zz6_fut_1-eth",

      "fid": "20161003-MD_xnym_zz6_fut_1-eth",

      "orderid": "2793",

      "exchangecode": "xnym",

      "productcode": "zz6",

      "checksum": "87ba2eada6a38c093307d579ad97026e",

      "size": 299,

      "expiration": "2017-07-05"

    }

  ],

  "paging": {

    "previous": "",

    "next": "https://datamine.cmegroup.com/cme/api/v1/list?limit=1&lastFid=20161003-MD_xnym_zz6_fut_1-eth&page=1"

 }

}

The "url" can be copy / pasted into a browser to download the file.

More about DataMine API