POST /api/data-hub/gpu/archive/list

Get GPU batch download list. A list of id from response must be used in the /download endpoint to find the download URL.

Authorization

🔒OAuth2: OAuth2PasswordBearer
Flow type: password
Token URL: token

Request Body

The request body must be in application/json format.

FieldTypeRequiredDescriptionConstraints
filter/tierintegerYesThe data tier to be downloaded[2, 3]
filter/intervalstringYesInterval of the data[day, month, year]
filter/typestringYesProduct id of price history[rental, retail]
filter/periodstringYesDate range in YYYY/MM/DD-YYYY/MM/DD
paginate/num_per_pageintegerNoHow many records will be return per one page, value score in 1 to 100,default value is 50[ 1 .. 100 ]
paginate/page_numintegerNoThe page index number, default value is 1>= 1
order_by/periodstringNoOrder of the file list[asc, desc]

Request Example

{
  "filter": [
    {"tier": 3},
    {"interval": "day"},
    {"type": "rental"},
    {"period": "2025/05/30-2025/06/02"}
  ],
  "paginate": {"num_per_page": 10, "page_num": 1},
  "order_by": [
    {"period": "desc"}
  ]
}

Responses

Response consists of meta and data, where:

  • meta is the metadata regarding the request. code in meta indicates the error code of the request, with 0 indicating no error.
  • data contains the total number of results and a list of results, each containing the id that can be used to download the data.
{
  "meta": {
    "code": "integer",
    "url": "string",
    "message": "string",
    "timestamp": "integer"
  },
  "data": {
    "total": "integer",
    "results": [
      {
        "tier": "integer",
        "interval": "string",
        "period": "string",
        "type": "string",
        "csv_s3_path": "string",
        "id": "string",
        "sequence_id": "integer"
      }
    ]
  }
}

POST /api/data-hub/gpu/archive/download

Get GPU data download URL using id, obtained from the /list endpoint.

Authorization

🔒OAuth2: OAuth2PasswordBearer
Flow type: password
Token URL: token

Request Body

The request body must be in application/json format.

FieldTypeRequiredDescriptionConstraints
idintegerYesID used for find download URL

Request Example

{
  "id": 1234567890123456789
}

Responses

{
  "meta": {
    "code": "integer",
    "url": "string",
    "message": "string",
    "timestamp": "integer",
    "args": [],
    "kwargs": {}
  },
  "data": {
    "csv_download_url": "string"
  }
}

Batch download GPU data using Python

This example shows how to batch download GPU data using the two endpoints above. We first list the available data using the /list endpoint, and then download each file using the /download endpoint.

The required API token can be obtained through the user portal.

import requests

token = "ENTER YOUR API TOKEN HERE"
headers = {'Authorization': f'Bearer {token}'}
base_url = "https://api.silicondata.com/api/data-hub/gpu/archive"
body = {
    "filter": [
        {"tier": 3},
        {"interval": "day"},
        {"type": "rental"},
        {"period": "2025/05/30-2025/06/02"}
    ],
    "paginate": {"num_per_page": 10, "page_num": 1},
    "order_by": [
        {"period": "desc"}
    ]
}
listing_res = requests.post(f"{base_url}/list", json=body, headers=headers).json()
for res in listing_res['data']['results']:
    download_res = requests.post(f"{base_url}/download", json={"id": res['id']}, headers=headers).json()
    csv_download_url = download_res['data']['csv_download_url']
    with open(f"{res['period']}.csv", 'wb') as file:
        file.write(requests.get(csv_download_url).content)