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
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
You will receive a confirmation email when your API ID is enabled for DataMine access.
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:
Sundays 4 p.m.–Fridays 4:30 p.m.
U.S.: +1 312 930 2322
Europe: +44 20 3379 3803
Asia: +65 6593 5593
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:
|
No |
String |
venue |
The venue the product is traded in. Possible values:
|
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 |
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' |
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 |
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 |
{ "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" } }
|
You can download a file that you have access to using this API call.
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:
spread possible value:
Example: 20160107-bbo_xcme_sp_fut_0-rth |
Yes |
String |
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: |
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
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.
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 |
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' |
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 |
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.