Skip to main content

A python library for the marketstack API

Project description

pymarketstack

build

Pymarket is a simple python library for the Marketstack API. It’s a requirement to have a valid API token, the free version or a paid alternative, see Pricing. Needless to say, this is not an official library.

Available features

The different features marketstack supports can be found on marketstack’s documentation.

End of Data

Gets the stock data after the market has closed. Supports 3 alternatives:

  • All: Downloads all data.
  • Latest: Downloads the data corresponding to the last date.
  • Date: Downloads a specific range of data.

Intraday data

Not yet implemented.

Splits data

Not yet implemented.

Dividends data

Not yet implemented.

Tickers

Not yet implemented.

Exchanges

Not yet implemented.

Currencies

Not yet implemented.

Timezones

Not yet implemented.

Usage

from pymarketstack import EndOfDay, download

query = EndOfDay.query(token="your api token")
data, failed = download(query, "AAPL", "XEL", ...)

Here the first line will just create the request with the appropriate fields, the download function will return a tuple with a Response object and a list of strings corresponding to failed tickers. The query function has several options such as the usage of HTTPS, etc. If you want to check how much quota downloading the symbols will take, you can use the quota function as follows:

from pymarketstack import EndOfDay, quota

query = EndOfDay.query(token="your api token")
q: int = quota(query, "AAPL", "XEL", ...)

An end of data request will return 2 things, a Pagination object and a list of Data objects. Both of which are wrapped in a Response object.

Responses

class Response:
    pagination: Pagination
    data: List[Data]

The data field is overall the most interesting one and contains a single date of data for each ticker. The fields include things like date, symbol, open, close, high, low, among others. All the fields are listed in the documentation.

In case of an error the library will raise an exception corresponding to the common API error codes. An example API response could be:

{
    "pagination": {
        "limit": 100,
        "offset": 0,
        "count": 100,
        "total": 9944
    },
    "data": [
        {
            "open": 129.8,
            "high": 133.04,
            "low": 129.47,
            "close": 132.995,
            "volume": 106686703.0,
            "adj_high": 133.04,
            "adj_low": 129.47,
            "adj_close": 132.995,
            "adj_open": 129.8,
            "adj_volume": 106686703.0,
            "split_factor": 1.0,
            "dividend": 0.0,
            "symbol": "AAPL",
            "exchange": "XNAS",
            "date": "2021-04-09T00:00:00+0000"
            },
            [...]
    ]
}

which would be equivalent to

Response(
    pagination = Pagination(limit=100, offset=0, count=100, total=9944),
    data = [
        Data(
            open=129.8,
            high=133.04,
            low=129.47,
            close=132.995,
            volume=106686703.0,
            adj_high=133.04,
            adj_low=129.47,
            adj_close=132.995,
            adj_open=129.8,
            adj_volume=106686703.0,
            split_factor=1.0,
            dividend=0.0,
            symbol="AAPL",
            exchange="XNAS",
            date=datetime.datetime(2021, 4, 29)
        ),
        ...
    ]
)

due to the usage of dataclasses-json, Response, Pagination, and Data are serializable to/from dicts and json strings.

Dependencies

The dependencies used are listed in the requirements.txt package file but the main ones are:

License

Apache 2.0, see the LICENSE file for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymarketstack-0.0.7.tar.gz (12.1 kB view hashes)

Uploaded Source

Built Distribution

pymarketstack-0.0.7-py3-none-any.whl (12.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page