cryptodatapy


Namecryptodatapy JSON
Version 0.2.30 PyPI version JSON
download
home_pageNone
SummaryCryptoasset data library
upload_time2025-07-29 10:51:37
maintainerNone
docs_urlNone
authorSystamental
requires_python<4.0,>=3.9
licenseApache-2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![](cryptodatapy_logo.jpeg)

# CryptoDataPy
### _Better data beats advanced algorithms_
<br/>

**CryptoDataPy** is a python library which makes it easy to build high quality data pipelines 
for the analysis of digital assets. By providing easy access to over 100,000 time series for thousands of  assets, 
it facilitates the pre-processing of a wide range of data from different sources.

Cryptoassets generate a huge amount of market, on-chain and off-chain data. 
But unlike legacy financial markets, this data is often fragmented, 
unstructured and dirty. By extracting data from various sources, 
pre-processing it into a user-friendly (tidy) format, detecting and repairing 'bad' data,
and allowing for easy storage and retrieval, CryptoDataPy allows you to spend less time gathering 
and cleaning data, and more time analyzing it.

Our data includes:

- **Market:** market prices of varying granularity (e.g. tick, trade and bar data, aka OHLC),
for spot, futures and options markets, as well as funding rates for the analysis of 
cryptoasset returns.
- **On-chain:** network health and usage data, circulating supply, asset holder positions and 
cost-basis, for the analysis of underlying crypto network fundamentals.
- **Off-chain:** news, social media, developer activity, web traffic and search for project interest and 
sentiment, as well as traditional financial market and macroeconomic data for broader financial and 
economic conditions.

The library's intuitive interface facilitates each step of the ETL/ETL (extract-transform-load) process:

- **Extract**: Extracting data from a wide range of data sources and file formats.
- **Transform**: 
  - Wrangling data into a pandas DataFrame in a structured and user-friendly format, 
  a.k.a [tidy data](https://www.jstatsoft.org/article/view/v059i10). 
  - Detecting, scrubbing and repairing 'bad' data (e.g. outliers, missing values, 0s, etc.) to improve the accuracy and reliability
of machine learning/predictive models.
- **Load**: Storing clean and ready-for-analysis data and metadata for easy access.

## Installation

```bash
$ pip install cryptodatapy
```

## Usage

**CryptoDataPy** allows you to pull ready-to-analyze data from a variety of sources 
with only a few lines of code.

First specify which data you want with a `DataRequest`:

```python
# import DataRequest
from cryptodatapy.extract.datarequest import DataRequest
# specify parameters for data request: tickers, fields, start date, end_date, etc.
data_req = DataRequest(
    source='glassnode',  # name of data source
    tickers=['btc', 'eth'], # list of asset tickers, in CryptoDataPy format, defaults to 'btc'
    fields=['close', 'add_act', 'hashrate'],  # list of fields, in CryptoDataPy, defaults to 'close'
    freq=None,  # data frequency, defaults to daily  
    quote_ccy=None,  # defaults to USD/USDT
    exch=None,  # defaults to exchange weighted average or Binance
    mkt_type= 'spot',  # defaults to spot
    start_date=None,  # defaults to start date for longest series
    end_date=None,  # defaults to most recent 
    tz=None,  # defaults to UTC time
    cat=None,  # optional, should be specified when asset class is not crypto, eg. 'fx', 'rates', 'macro', etc.
)
```
Then get the data :

```python
# import GetData
from cryptodatapy.extract.getdata import GetData
# get data
GetData(data_req).get_series()
```

With the same data request parameters, you can retrieve the same data from a different source:

```python
# modify data source parameter
data_req = DataRequest(
  source='coinmetrics',           
  tickers=['btc', 'eth'], 
  fields=['close', 'add_act', 'hashrate'], 
  req='d',
  start_date='2016-01-01')
# get data
GetData(data_req).get_series()
```

For more detailed code examples and interactive tutorials 
see [here](https://github.com/systamental/cryptodatapy/blob/main/docs/example.ipynb).
## Supported Data Sources

- [CryptoCompare](https://min-api.cryptocompare.com/documentation)
- [CCXT](https://docs.ccxt.com/en/latest/)
- [Glassnode](https://docs.glassnode.com/)
- [Coin Metrics](https://docs.coinmetrics.io/api/v4/)
- [Tiingo](https://api.tiingo.com/documentation/general/overview)
- [Yahoo Finance](https://github.com/ranaroussi/yfinance)
- [Fama-French Data](http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data_library.html)
- [AQR](https://www.aqr.com/Insights/Datasets)
- [Federal Reserve Economic Data (FRED)](https://fred.stlouisfed.org/docs/api/fred/)
- [DBnomics](https://db.nomics.world/docs/)
- [WorldBank](https://documents.worldbank.org/en/publication/documents-reports/api)
- [Pandas-datareader](https://pandas-datareader.readthedocs.io/en/latest/)

## Contributing

Interested in contributing? Check out the contributing guidelines and 
contact us at info@systamental.com. Please note that this project is s
released with a Code of Conduct. By contributing to this project, you agree 
to abide by its terms.

## License

`cryptodatapy` was created by Systamental. 
It is licensed under the terms of the Apache License 2.0 license.


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "cryptodatapy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "Systamental",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/25/57/9ff209291d41edfa0f8e808ce61c85aef91a3b89ac8225d85c40c939c982/cryptodatapy-0.2.30.tar.gz",
    "platform": null,
    "description": "![](cryptodatapy_logo.jpeg)\n\n# CryptoDataPy\n### _Better data beats advanced algorithms_\n<br/>\n\n**CryptoDataPy** is a python library which makes it easy to build high quality data pipelines \nfor the analysis of digital assets. By providing easy access to over 100,000 time series for thousands of  assets, \nit facilitates the pre-processing of a wide range of data from different sources.\n\nCryptoassets generate a huge amount of market, on-chain and off-chain data. \nBut unlike legacy financial markets, this data is often fragmented, \nunstructured and dirty. By extracting data from various sources, \npre-processing it into a user-friendly (tidy) format, detecting and repairing 'bad' data,\nand allowing for easy storage and retrieval, CryptoDataPy allows you to spend less time gathering \nand cleaning data, and more time analyzing it.\n\nOur data includes:\n\n- **Market:** market prices of varying granularity (e.g. tick, trade and bar data, aka OHLC),\nfor spot, futures and options markets, as well as funding rates for the analysis of \ncryptoasset returns.\n- **On-chain:** network health and usage data, circulating supply, asset holder positions and \ncost-basis, for the analysis of underlying crypto network fundamentals.\n- **Off-chain:** news, social media, developer activity, web traffic and search for project interest and \nsentiment, as well as traditional financial market and macroeconomic data for broader financial and \neconomic conditions.\n\nThe library's intuitive interface facilitates each step of the ETL/ETL (extract-transform-load) process:\n\n- **Extract**: Extracting data from a wide range of data sources and file formats.\n- **Transform**: \n  - Wrangling data into a pandas DataFrame in a structured and user-friendly format, \n  a.k.a [tidy data](https://www.jstatsoft.org/article/view/v059i10). \n  - Detecting, scrubbing and repairing 'bad' data (e.g. outliers, missing values, 0s, etc.) to improve the accuracy and reliability\nof machine learning/predictive models.\n- **Load**: Storing clean and ready-for-analysis data and metadata for easy access.\n\n## Installation\n\n```bash\n$ pip install cryptodatapy\n```\n\n## Usage\n\n**CryptoDataPy** allows you to pull ready-to-analyze data from a variety of sources \nwith only a few lines of code.\n\nFirst specify which data you want with a `DataRequest`:\n\n```python\n# import DataRequest\nfrom cryptodatapy.extract.datarequest import DataRequest\n# specify parameters for data request: tickers, fields, start date, end_date, etc.\ndata_req = DataRequest(\n    source='glassnode',  # name of data source\n    tickers=['btc', 'eth'], # list of asset tickers, in CryptoDataPy format, defaults to 'btc'\n    fields=['close', 'add_act', 'hashrate'],  # list of fields, in CryptoDataPy, defaults to 'close'\n    freq=None,  # data frequency, defaults to daily  \n    quote_ccy=None,  # defaults to USD/USDT\n    exch=None,  # defaults to exchange weighted average or Binance\n    mkt_type= 'spot',  # defaults to spot\n    start_date=None,  # defaults to start date for longest series\n    end_date=None,  # defaults to most recent \n    tz=None,  # defaults to UTC time\n    cat=None,  # optional, should be specified when asset class is not crypto, eg. 'fx', 'rates', 'macro', etc.\n)\n```\nThen get the data :\n\n```python\n# import GetData\nfrom cryptodatapy.extract.getdata import GetData\n# get data\nGetData(data_req).get_series()\n```\n\nWith the same data request parameters, you can retrieve the same data from a different source:\n\n```python\n# modify data source parameter\ndata_req = DataRequest(\n  source='coinmetrics',           \n  tickers=['btc', 'eth'], \n  fields=['close', 'add_act', 'hashrate'], \n  req='d',\n  start_date='2016-01-01')\n# get data\nGetData(data_req).get_series()\n```\n\nFor more detailed code examples and interactive tutorials \nsee [here](https://github.com/systamental/cryptodatapy/blob/main/docs/example.ipynb).\n## Supported Data Sources\n\n- [CryptoCompare](https://min-api.cryptocompare.com/documentation)\n- [CCXT](https://docs.ccxt.com/en/latest/)\n- [Glassnode](https://docs.glassnode.com/)\n- [Coin Metrics](https://docs.coinmetrics.io/api/v4/)\n- [Tiingo](https://api.tiingo.com/documentation/general/overview)\n- [Yahoo Finance](https://github.com/ranaroussi/yfinance)\n- [Fama-French Data](http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data_library.html)\n- [AQR](https://www.aqr.com/Insights/Datasets)\n- [Federal Reserve Economic Data (FRED)](https://fred.stlouisfed.org/docs/api/fred/)\n- [DBnomics](https://db.nomics.world/docs/)\n- [WorldBank](https://documents.worldbank.org/en/publication/documents-reports/api)\n- [Pandas-datareader](https://pandas-datareader.readthedocs.io/en/latest/)\n\n## Contributing\n\nInterested in contributing? Check out the contributing guidelines and \ncontact us at info@systamental.com. Please note that this project is s\nreleased with a Code of Conduct. By contributing to this project, you agree \nto abide by its terms.\n\n## License\n\n`cryptodatapy` was created by Systamental. \nIt is licensed under the terms of the Apache License 2.0 license.\n\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Cryptoasset data library",
    "version": "0.2.30",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c192eb6b68830519ea2722af57f36d4cf7e69f89628b1ab4eb1d533a874fffd5",
                "md5": "5002f90da62e266e8c023e156d29a997",
                "sha256": "cf498734f6239f87c8fa8a25cc5b657c88b4c4ef696ff8d1e6c9b5241dacbc1f"
            },
            "downloads": -1,
            "filename": "cryptodatapy-0.2.30-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5002f90da62e266e8c023e156d29a997",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 4823496,
            "upload_time": "2025-07-29T10:51:35",
            "upload_time_iso_8601": "2025-07-29T10:51:35.896586Z",
            "url": "https://files.pythonhosted.org/packages/c1/92/eb6b68830519ea2722af57f36d4cf7e69f89628b1ab4eb1d533a874fffd5/cryptodatapy-0.2.30-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "25579ff209291d41edfa0f8e808ce61c85aef91a3b89ac8225d85c40c939c982",
                "md5": "1066f670578a9552619d8955cc00aeb6",
                "sha256": "9a2d771b6cbe47a3fa88d24239b7588f6250c8956f3f03b9346520d8bfe11703"
            },
            "downloads": -1,
            "filename": "cryptodatapy-0.2.30.tar.gz",
            "has_sig": false,
            "md5_digest": "1066f670578a9552619d8955cc00aeb6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 4751226,
            "upload_time": "2025-07-29T10:51:37",
            "upload_time_iso_8601": "2025-07-29T10:51:37.565458Z",
            "url": "https://files.pythonhosted.org/packages/25/57/9ff209291d41edfa0f8e808ce61c85aef91a3b89ac8225d85c40c939c982/cryptodatapy-0.2.30.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-29 10:51:37",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "cryptodatapy"
}
        
Elapsed time: 0.45823s