Documentation

DataMine List API

Table of Contents

1. Overview

The DataMine List API allows the querying of all entitled files, with optional criteria to limit the number of results returned. The maximum number of results from a list is 1,000 per page. 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. The API updates in real-time giving you the most up-to-date view of your accessible files, such as when a new daily file is made available. 

DataMine’s List API Service uses the same API credentials as the File Download API and pairs well when you want a list of your entitled files, or which files have been made available for the given date.

Key features:

  • Ability to list entitled files available for download.
  • Filtering to see which files are available by dataset or other parameters.
  • Real-time updates to the list of files available.

URL: All API requests should be prefixed with the following base URL:

https://datamine.new.cmegroup.com/api/list_entitlements_files

2. Authentication

All requests to the API require authentication. Both OAuth 2.0 or Basic Auth are supported per  your existing entitled API ID. 

OAuth 2.0 (Bearer token): To authenticate, obtain an access token and include it in the authorization header as a Bearer token. To generate the access token, do so through the OAuth 2.0 Access Token endpoint:

https://auth.cmegroup.com/as/token.oauth2

Note: Tokens expire after 30 minutes

Header Example: Authorization: Bearer <YOUR_ACCESS_TOKEN_HERE>

Basic Authentication: To authenticate, provide your username and password encoded in the Authorization header.

3. List API Data and Response Structure

The following data is available in the API:

Endpoint: GET /list_entitlements_files

Full URL: https://datamine.new.cmegroup.com/api/list_entitlements_files

Field Type Description Example
category_code string The dataset’s category code as listed on DataMine. EOD
exchange_code string

The product’s listed exchange. Can be checked on DataMine or the Product Slate page. CME Group exchanges are abbreviated to: XCME (CME), XCEC (COMEX), XNYM (NYMEX), or XCBT (CBOT).

XCEC
product_code string The listed product code, typically the Globex Code. Can be checked on DataMine or the Product Slate page for a full list of codes (i.e. Globex, Clearing, etc.). GC
dataset_code string The dataset code as listed on DataMine. EOD_XCEC_GC_FUT_0
dataset_name string The dataset’s standard name. Gold futures
foi_indicator string Product type: FUT (futures) or OPT (options). FUT
num_of files integer The number of available files within the dataset_code for the given period_date. 3
period_date string The data content date in YYYYMMDD format. 20250611
total_size integer The total file(s) size in bytes. 3111
files array Files within the specified dataset_name and period_date.  
→ api_download_link string The File Download API URL for the given file.  https://datamine.cmegroup.com/cme/api/v2/download?fid=20250611-EOD_XCEC_GC_FUT_0_ETH_P
→ file_id string The “fid” that can be used for identifying and downloading the given file through the File Download API. 20250611-EOD_XCEC_GC_FUT_0_ETH_P
→ file_name string The given file name when downloading through the File Download API.  xcec-eode-gc-fut-20250611.csv.gz
→ sftp_path string The file path if downloading through the SFTP.  EOD_XCEC_GC_FUT_0/EOD_XCEC_GC_FUT_0/2025/06/11/xcec-eode-gc-fut-20250611.csv.gz
→ size integer The file size in bytes. 882
paging object Pagination information if the request exceeds 1000 results.  
→ next string The List API request for the next page of results. It will be null if there’s no next pages. https://datamine.cmegroup.com/api/list_entitlements_files?offset=1000&limit=1000&dataset_code=EOD_XCEC_GC_FUT_0
→ previous string The List API request for the prior page of results. It will be null if there’s no previous pages.  https://datamine.cmegroup.com/api/list_entitlements_files?offset=0&limit=1000&dataset_code=EOD_XCEC_GC_FUT_0

4. Parameters

Accepted Parameters (all are optional, case-sensitive):

Parameter Name Type Description Example value
category_code string Unique code by category. EOD
exchange_code string The product’s listed exchange. Can be checked on DataMine or the Product Slate page. CME Group exchanges are abbreviated to: XCME (CME), XCEC (COMEX), XNYM (NYMEX), or XCBT (CBOT). XCEC
product_code string The listed product code, typically the Globex Code. Can be checked on DataMine or the Product Slate page for a full list of codes (i.e. Globex, Clearing, etc.). GC
dataset_code string Unique code by dataset. The dataset code can be found on the catalog product page. EOD_XCEC_GC_FUT_0
period_date string Date of file publishing in YYYYMMDD format. 20250611
foi_indicator string Product type: FUT (futures) or OPT (options). FUT
limit integer Maximum number of items to return per page. Defaults to 1000 (Max: 1000). 50
offset integer The number of items to skip before starting to collect results. 1000

Request Example:

None

GET
https://datamine.new.cmegroup.com/api/list_entitlements_files?category_code=EOD&period_date=20250611&dataset_code=EOD_XCEC_GC_FUT_0

Response Example:

JSON

{

"data": [

{

"category_code": "EOD",

"dataset_code": "EOD_XCEC_GC_FUT_0",

"dataset_name": "Gold Futures",

"files": [

{

"api_download_link": "https://datamine.new.cmegroup.com/cme/api/v2/download?fid=20250611-EOD_XCEC_GC_FUT_0_ETH_P",

"file_id": "20250611-EOD_XCEC_GC_FUT_0_ETH_P",

"file_name": "xcec-eode-gc-fut-20250611.csv.gz",

"sftp_path": "EOD_XCEC_GC_FUT_0/EOD_XCEC_GC_FUT_0/2025/06/11/xcec-eode-gc-fut-20250611.csv.gz",

"size": 882

},

{

"api_download_link": "https://datamine.new.cmegroup.com/cme/api/v2/download?fid=20250611-EOD_XCEC_GC_FUT_0_ETH_F",

"file_id": "20250611-EOD_XCEC_GC_FUT_0_ETH_F",

"file_name": "xcec-eodf-gc-fut-20250611.csv.gz",

"sftp_path": "EOD_XCEC_GC_FUT_0/EOD_XCEC_GC_FUT_0/2025/06/11/xcec-eodf-gc-fut-20250611.csv.gz",

"size": 1114

},

{

"api_download_link": "https://datamine.new.cmegroup.com/cme/api/v2/download?fid=20250611-EOD_XCEC_GC_FUT_0_ETH_P",

"file_id": "20250611-EOD_XCEC_GC_FUT_0_ETH_P",

"file_name": "xcec-eodp-gc-fut-20250611.csv.gz",

"sftp_path": "EOD_XCEC_GC_FUT_0/EOD_XCEC_GC_FUT_0/2025/06/11/xcec-eodp-gc-fut-20250611.csv.gz",

"size": 1115

}

],

"num_of_files": 3,

"period_date": "20250611",

"total_size": 3111

}

],

"paging": {

"next": "",

"previous": ""

}

}

5. Pagination

The following parameters/fields are used to support pagination:

  • limit: Parameter that specifies the maximum number of records to return in a single response. Default is 1000, maximum is 1000.
  • offset: Parameter that specifies the number of records to skip from the beginning of the result set. Useful for skipping to a particular page.
  • nextPage: A field that provides the URL in the paging object of the response. Follow this URL to retrieve the next set of results.
  • previousPage: A field that provides the URL in the paging object of the response. Follow this URL to retrieve the previous set of results.

How to use nextPage and previousPage: Instead of manually calculating limit and offset, it's recommended to use the nextPage and previousPage URLs provided in the response. These URLs already contain the correct limit and offset values for the subsequent or preceding pages. If the field is null, that implies there are no next or prior pages to scan respectively.

6. Error handling

The DataMine List API uses standard HTTP status codes to indicate the success or failure of an API request. In case of an error, the response body will contain a JSON object with details about the error.

HTTP status codes and error codes:

HTTP status code Error code Description
200 OK (N/A) The request was successful.
400 Bad Request INVALID_INPUT The request was malformed or had invalid parameters/headers.
401 Unauthorized UNAUTHORIZED Authentication credentials were missing or invalid.
403 Forbidden ACCESS_DENIED The authenticated user does not have permission to access the resource.
404 Not Found RESOURCE_NOT_FOUND The requested file/file path could not be found.
429 Too Many Requests RATE_LIMIT_EXCEEDED The client has sent too many requests in a given amount of time.
500 Internal Server Error INTERNAL_ERROR An unexpected error occurred on the server.

7. Rate limiting

To ensure stability of the API, rate limiting is implemented. You are allowed to make up to 120 requests per minute per API ID.

If you exceed the rate limit, you will receive a 429 Too Many Requests HTTP status code. The following headers will be included in the response to help you manage your rate limit:

  • X-RateLimit-Limit: The maximum number of requests allowed in the current window.
  • X-RateLimit-Remaining: The number of requests remaining in the current window.
  • X-RateLimit-Reset: The time at which the current rate limit window resets, in seconds.

8. Sample connection code (Python)

Python

import requests

api_id = '<API ID>' # Enter API ID here

api_password = '<API PASSWORD>' # Enter API Password here

# Function for generating OAuth token

auth_url = 'https://auth.cmegroup.com/as/token.oauth2'

def bearer_token(token_url, client_id, client_secret):

response = requests.post(

token_url,

data={"grant_type": "client_credentials"},

auth=(client_id, client_secret),

)

return response.json()["access_token"]

access_token = bearer_token(auth_url, api_id, api_password)

datamine_list_url = 'https://datamine.new.cmegroup.com/api/list_entitlements_files'

header = {"Authorization": f"Bearer {access_token}",

"User-Agent": "Python/DataMine List API"}

# Optional Parameters Example

#params = {"category_code": "EOD",

#          "dataset_code": "EOD_XCEC_GC_FUT_0",

#          "period_date": "20250616",

#          "limit": "1000",

#          "offset": "0"}

response = requests.get(datamine_list_url, 

headers=header,

#params=params

)

response.json()

Example for using cURL to retrieve the List API using an OAuth API ID

None

curl -d "grant_type=client_credentials" -u '<API_ID>:<API_PASSWORD>' https://auth.cmegroup.com/as/token.oauth2

curl -H 'Authorization: Bearer <PASTE_TOKEN_HERE>' https://datamine.new.cmegroup.com/api/list_entitlements_files

9. Changelog

Version Date Description
1.0 Jun 23, 2025 Initial release of the List API documentation.

CME Group is the world’s leading derivatives marketplace. The company is comprised of four Designated Contract Markets (DCMs). 
Further information on each exchange's rules and product listings can be found by clicking on the links to CME, CBOT, NYMEX and COMEX.

© 2025 CME Group Inc. All rights reserved.